"Mohamed Shafi" <[EMAIL PROTECTED]> 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