This is the mail archive of the gcc@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]

Re: Reload problem & question


  In message <37FBD85D.55346D87@maker.com>you write:
  > The memory reference is an illegal operand on my target processor. I am
  > assuming that this has something to do with register elimination, I just
  > don't know what can be done about this case. Why didn't reload verify
  > that the insn was legal? 
I doubt it's from register elimination.  I'd bet that reg74 did not get
a hard register and was spilled to the stack.


  > What is most disturbing is that the problem was found in
  > 'output_operand_lossage'. It seems 'final_scan_insn' should have caught
  > it but when it calls 'recog_memoized' it does not try to match the
  > pattern because it has already matched the insn previously. Similarly
  > 'constrain_operands' does not check the 'mem' against
  > 'GO_IF_LEGITIMATE_ADDRESS'. This seems wrong.
reload does a lot of things that might seem wrong like not re-recognizing
insns it modifies.  In fact, most insns created by reload are never
examined.

Anyway, start with the simple.  What are the predicates for your movsf
insn.  Do they claim (mem (plus (mem ...)))  is a valid operand.  Then
start looking at your constraints.

jeff


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