I faced similar problem. I have set 'flag_omit_frame_pointer = TRUE' in the function written for the macro OVERRIDE_OPTIONS. > -----Original Message----- > From: gcc-help-owner@xxxxxxxxxxx [mailto:gcc-help-owner@xxxxxxxxxxx] On > Behalf Of sumanth > Sent: Wednesday, April 22, 2009 10:51 AM > To: gnu > Subject: QUery regarding target macros ELIMINABLE_REGS and CAN_ELIMINATE. > > Hi, > I have a doubt regarding target macros ELIMINABLE_REGS and > CAN_ELIMINATE. > I defined eliminable regs as > #define ELIMINABLE_REGS { \ > {FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM} , \ > {FRAME_POINTER_REGNUM, HARD_FRAME_POINTER_REGNUM} , \ > {HARD_FRAME_POINTER_REGNUM, STACK_POINTER_REGNUM} } > and CAN_ELIMINATE(FROM, TO) as if it has to replace > FRAME_POINTER_REGNUM with HARD_FRAME_POINTER_REGNUM > whenever !(frame_pointer_needed). > > But, my code generated is not according to CAN_ELIMINATE . It is not > replacing FRAME_POINTER_REGNUM with HARD_FRAME_POINTER_REGNUM. > > Can any one point me to solution. > > Thanks in advance, > Sumanth