This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug rtl-optimization/48496] [4.7/4.8 Regression] 'asm' operand requires impossible reload


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48496

--- Comment #18 from Ulrich Weigand <uweigand at gcc dot gnu.org> 2012-04-08 17:32:23 UTC ---
According to Vlad's comment #4, the validity check fails because a reload insn
contains a spilled pseudo that will later be replaced by a MEM.

However, recog.c contains in various places checks that will *accept* -during
reload- a pseudo in places where a memory constraint is required; exactly
because such pseudos will actually get replaced by a MEM:

              case TARGET_MEM_CONSTRAINT:
[snip]
                /* During reload, accept a pseudo  */
                else if (reload_in_progress && REG_P (op)
                         && REGNO (op) >= FIRST_PSEUDO_REGISTER)
                  win = 1;

Note that those checks were originally added in the same patch that added this
asm validity check ...

So really that validity check shouldn't have failed just because of the
presence of a spilled pseudo.  The question is, why doesn't this work for the
ia64 test case as expected?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]