This is the mail archive of the gcc-patches@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: [tree-ssa] Treat ASM_EXPR operands as real operands [patch]


On 22 Jul 2003, Diego Novillo wrote:

> On Tue, 2003-07-22 at 10:06, Andrew MacLeod wrote:
> Apparently the issue is with tree-ssa copy propagating T.1233 into
> ar_ccv, which is declared with
>
> register long unsigned int ar_ccv __asm__("ar.ccv") = old;
>
> In the course of copy propagation, variable 'old' ended up being
> assigned 'T.1233', which made it into the asm operand.  Perhaps we
> shouldn't optimize variables with __asm__ declarations?

(Please excuse this panicky message -- I'm behind on the lists
and seeing something that could possibly be due to an overlooked
or perhaps misunderstood issue.  I've also forgotten if I've
pointed this out in the past.  Disregard if you're doing right.
:-)

For asm-declared register vars, that's correct.  When they're
used in an asm, they *must* make it into the asm in those
declared registers.  It's documented and critically relied upon.
Don't "optimize" that use.  It really is special.

brgds, H-P


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