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]
Other format: [Raw text]

RS6000 call pattern clobbers


Richard,

	While fixing ports in preparation for the new dataflow
infrastructure, we found a problem with the way that the rs6000 port
represents clobbers and uses of registers in call and sibcall patterns.
The patterns clobber and use the rs6000 link register as a match_scratch
with constraint of the link register class:

   (clobber (match_scratch:SI 0 "=l"))

instead of clobbering the link register hard register directly in the
early insn generation.  This style dates to the original rs6000 port.  A
naked use that starts as a pseudo causes problems for dataflow.

	Do you remember why you wrote the call patterns this way?  Was
there a problem with reload and clobbers of hard registers in a register
class containing a single register or some other historical quirk?

Thanks, David


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