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: Abt long long support


"Mohamed Shafi" <shafitvm@gmail.com> writes:

> and one more thing. In the dumps i noticed that before using a
> register in DI mode they are all clobbred first, like
> 
> (insn 30 54 28 6 (clobber (reg:DI 34)) -1 (nil)
>     (nil))
> 
> What is the use of this insns ... Why do we need to clobber these
> registers befor the use? After some pass they are not seen in the
> dump.

It's a hack to tell the flow pass that the register is not used before
it is set.  Otherwise when the code initializes half of the register,
flow will think that the other half is live, perhaps having been
initialized before the function started.  The clobber tells flow that
the register is completely dead, and is initialized one half at a
time.

Ian


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