Message ID | 40EA3BFC-C4F7-4CA0-9C65-19C47AA3C74D@sandoe.co.uk |
---|---|
State | New |
Headers | show |
Series | [PPC] Fix PR88343. | expand |
On Wed, Dec 05, 2018 at 05:10:07PM +0000, Iain Sandoe wrote: > Hi, > > The PR is about unnecessary saves of the pic base register, it shows on m32 Linux and m32/m64 Darwin. > > The fix is to check that we are in a pic mode and that the picbase has actually been used. > As a bonus, some #ifdef’d TARGET_MACHO code is no longer required. > > Tested on power7, bootstrapped on Darwin (testing continues). > > OK for trunk? Okay for trunk if testing completes successfully :-) Thanks! > Branches? Sure. Please let is soak on trunk for a week first; and don't do 7 until 7.4 has been made? > 2018-xx-xx Segher Boessenkool <segher@kernel.crashing.org> > Iain Sandoe <iain@sandoe.co.uk> > > gcc/ > * config/rs6000/rs6000.c (save_reg_p): Do not save the picbase reg > unless it has been used. (first_reg_to_save): Remove dead code. Your changelogs still wrap (the second "(" should start a new line). Segher
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index dfd5303..380cf9d 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -23961,7 +23961,7 @@ save_reg_p (int reg) return true; if ((DEFAULT_ABI == ABI_V4 || DEFAULT_ABI == ABI_DARWIN) - && flag_pic) + && flag_pic && crtl->uses_pic_offset_table) return true; } @@ -23981,13 +23981,6 @@ first_reg_to_save (void) if (save_reg_p (first_reg)) break; -#if TARGET_MACHO - if (flag_pic - && crtl->uses_pic_offset_table - && first_reg > RS6000_PIC_OFFSET_TABLE_REGNUM) - return RS6000_PIC_OFFSET_TABLE_REGNUM; -#endif - return first_reg; }