Guest User

gcc/reload.c massive conditional simplifying attempt

a guest
Jul 2nd, 2014
557
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. sri = SUBREG_REG(in);
  2. srirp = REG_P(sri);
  3. srimp = MEM_P(sri);
  4. msri = GET_MODE(sri);
  5. msris = GET_MODE_SIZE(msri);
  6. msrirp = GET_MODE_PRECISION(msri);
  7. inmp = GET_MODE_PRECISION(inmode);
  8. ins = GET_MODE_SIZE(inmode);
  9. inmpgtmsrirp = inmp > msrirp;
  10.  
  11. if (in != 0 && GET_CODE(in) == SUBREG && (subreg_lowpart_p(in) || strict_low)
  12. #ifdef CANNOT_CHANGE_MODE_CLASS
  13. && !CANNOT_CHANGE_MODE_CLASS(msri, inmode, rclass)
  14. #endif
  15. && contains_reg_of_mode[(int) rclass][(int) msri]
  16. && (
  17. CONSTANT_P(sri)
  18. || GET_CODE(sri) == PLUS
  19. || strict_low
  20. || (
  21. ((srirp && REGNO(sri) >= FIRST_PSEUDO_REGISTER) || srimp)
  22. && (inmpgtmsrirp
  23. #ifdef LOAD_EXTEND_OP
  24. || (ins <= UNITS_PER_WORD
  25. && (msris <= UNITS_PER_WORD)
  26. && inmpgtmsrirp /* <-- redundant? */
  27. && INTEGRAL_MODE_P(msri)
  28. && LOAD_EXTEND_OP(msri) != UNKNOWN)
  29. #endif
  30. #ifdef WORD_REGISTER_OPERATIONS
  31. || ((inmp < msrirp)
  32. && ((ins - 1)/UNITS_PER_WORD == ((msris - 1) / UNITS_PER_WORD)))
  33. #endif
  34. )
  35. )
  36. || (
  37. srirp && REGNO(sri) < FIRST_PSEUDO_REGISTER
  38. /* The case where out is nonzero is handled differently in the following statement. */
  39. && (out == 0 || subreg_lowpart_p (in))
  40. && (
  41. (ins <= UNITS_PER_WORD
  42. && msris > UNITS_PER_WORD
  43. && msris / UNITS_PER_WORD != (int) hard_regno_nregs[REGNO(sri)][msri]
  44. )
  45. || !HARD_REGNO_MODE_OK(subreg_regno(in), inmode)))
  46. || (secondary_reload_class(1, rclass, inmode, in) != NO_REGS
  47. && secondary_reload_class(1, rclass, msri, sri) == NO_REGS)
  48. #ifdef CANNOT_CHANGE_MODE_CLASS
  49. || (srirp && REGNO(sri) < FIRST_PSEUDO_REGISTER && REG_CANNOT_CHANGE_MODE_P(REGNO(sri), msri, inmode))
  50. #endif
  51. )
  52. )
Advertisement
Add Comment
Please, Sign In to add comment