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]

Re: Discussion: What is unspec_volatile?


> What about liveness? No hard reg, pseudo, mem will live avross the
> unspec volatile. Right?

Wrong. A volatile unspec may use/change machine state not directly accessible 
by gcc.  Any use of or changes to the machine state modelled by gcc should be 
explicit in the pattern.

i.e. if your pattern clobbers a hard register, you should include a clobber of 
that register in parallel with the unspec.  Likewise if you set a hard 
register to a useful value, you should include an explicit set, typically 
something like "(set (reg) (unspec_volatile ...))"

Paul


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