Can register rename pass rename a callee-saved register?

Ian Lance Taylor iant@google.com
Thu Jun 19 13:06:00 GMT 2008


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

> Before register renaming pass, callee registers was being used in the
> body of the code. Hence function prologue saved the register and
> epilogue restored the register. But register renaming pass removed
> this particular callee saved register.The output and code generation
> is proper, but there is an unnecessary save and restore of a callee
> saved register in the prologue and epilogue even though the reference
> of the callee saved register has been removed by the renaming pass.
> I am using the prologue/epilogue patterns instead of the target macros.

Which version of gcc?  I was under the impression that this
longstanding buglet was cleaned up by the dataflow work.

> So is the rename pass allowed to rename a callee saved register? Where
> might this going wrong?

If this is the buglet I'm thinking of, the resulting code does work,
despite being suboptimal.  It just does an unnecessary save and
restore.

Ian



More information about the Gcc mailing list