Hi James, On Wed, Dec 07, 2016 at 10:31:14AM +0000, James Greenhalgh wrote: > We always keep the entries in the constant pool after we first see them, and > we figure out what gets used in the constant pool by sweeping through > looking for referenced entries. That means we can always answer the > question "has the constant pool ever had entries?" by checking if there > is anything at all in there. > > So that's what this patch does. > > Bootstrapped on gcc110 (powerpc64-none-linux-gnu) configured with > --enable-languages=all,ada,go,obj-c++ with no issues, Segher has also > tested it with no issues, and I've tested an aarch64-none-elf cross > compiler to ensure that the original fix still works on AArch64. > > OK?
The rs6000 changes are okay for trunk. The rest I cannot approve (but it does look fine). Thanks, Segher > 2016-12-07 James Greenhalgh <james.greenha...@arm.com> > > PR rtl-optimization/78561 > * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p) Use (Missing colon here) > constant_pool_empty_p in place of get_pool_size_upper_bound. > (rs6000_stack_info): Likewise. > (rs6000_emit_prologue): Likewise. > (rs6000_elf_declare_function_name): Likewise. > (rs6000_set_up_by_prologue): Likewise. > (rs6000_can_eliminate): Likewise. > * output.h (get_pool_size_upper_bound): Delete. > (constant_pool_empty_p): New. > * varasm.c (get_pool_size_upper_bound): Delete > (constant_pool_empty_p): New.