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