Re: QUery regarding target macros ELIMINABLE_REGS and CAN_ELIMINATE.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



sumanth <sumanth.gundapneni@xxxxxxxxxxxxxxxxxx> writes:

> Ian Lance Taylor wrote:
>> sumanth <sumanth.gundapneni@xxxxxxxxxxxxxxxxxx> writes:
>>
>>   
>>>   But, my code generated is not according to CAN_ELIMINATE . It is not
>>> replacing FRAME_POINTER_REGNUM  with HARD_FRAME_POINTER_REGNUM.
>>>     
>>
>> Frame pointer elimination is based on FRAME_POINTER_REQUIRED.  You need
>> to set both that and CAN_ELIMINATE to prevent frame pointer elimination.
>
> Currently I am using  #define FRAME_POINTER_REQUIRED
> (current_function_calls_alloca)
> How ever i tried with #define FRAME_POINTER_REQUIRED  0 too and my
> result is same.
> Any suggestions are  welcome

If FRAME_POINTER_REQUIRED is 0, and ELIMINABLE_REGS is defined, and
CAN_ELIMINATE (FRAME_POINTER_REGNUM, HARD_FRAME_POINTER_REGNUM) returns
0, then the register should not be eliminated.

I may have gotten confused about what you want.  Do you want
FRAME_POINTER_REGNUM replaced by HARD_FRAME_POINTER_REGNUM or not?  If
you do want it replaced, then CAN_ELIMINATE must return 1 for that case.
If you do not want it eliminated, then I think that both must be real
registers.

Ian

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux