On Fri, Sep 9, 2016 at 6:37 PM, Peter Bergner <berg...@vnet.ibm.com> wrote: > On 9/9/16 5:51 PM, Jeff Law wrote: >> >> On 08/30/2016 10:23 PM, Peter Bergner wrote: >>> >>> gcc/ >>> PR rtl-optimization/77289 >>> * lra-constraints.c (get_final_hard_regno): Add support for non hard >>> register numbers. Remove support for subregs. >>> (get_hard_regno): Use SUBREG_P. Don't call get_final_hard_regno(). >>> (get_reg_class): Delete removed get_final_hard_regno() argument. >>> (uses_hard_regs_p): Call get_final_hard_regno(). >>> >>> gcc/testsuite/ >>> PR rtl-optimization/77289 >>> * gcc.target/powerpc/pr77289.c: New test. >> >> OK. > > > Committed as revision 240065. Thanks!
This patch caused many regressions on aarch64-linux-gnu: gcc.c-torture/compile/20020604-1.c -O1 (test for excess errors) gcc.c-torture/compile/complex-6.c -O2 (test for excess errors) gcc.c-torture/compile/complex-6.c -O2 -flto -fno-use-linker-plugin -flto-partition=none (test for excess errors) gcc.c-torture/compile/complex-6.c -O3 -g (test for excess errors) gcc.c-torture/compile/complex-6.c -Os (test for excess errors) gcc.c-torture/compile/pr22422.c -O1 (test for excess errors) gcc.c-torture/compile/pr22422.c -O2 (test for excess errors) gcc.c-torture/compile/pr22422.c -O2 -flto -fno-use-linker-plugin -flto-partition=none (test for excess errors) gcc.c-torture/compile/pr22422.c -O3 -g (test for excess errors) gcc.c-torture/compile/pr22422.c -Os (test for excess errors) gcc.dg/ipa/ipcp-cstagg-5.c (test for excess errors) gcc.dg/ipa/ipcp-cstagg-6.c (test for excess errors) gcc.dg/torture/pr39074.c -Os (test for excess errors) gcc.dg/torture/pr55882.c -O1 (test for excess errors) gcc.dg/torture/pr55882.c -O2 (test for excess errors) gcc.dg/torture/pr55882.c -O2 -flto -fno-use-linker-plugin -flto-partition=none (test for excess errors) gcc.dg/torture/pr55882.c -O3 -g (test for excess errors) gcc.dg/torture/pr55882.c -Os (test for excess errors) gcc.dg/torture/pr57569.c -O1 (test for excess errors) gcc.dg/torture/pr57569.c -O2 (test for excess errors) gcc.dg/torture/pr57569.c -O2 -flto -fno-use-linker-plugin -flto-partition=none (test for excess errors) gcc.dg/torture/pr57569.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects (test for excess errors) gcc.dg/torture/pr57569.c -Os (test for excess errors) gcc.dg/tree-ssa/ssa-fre-13.c (test for excess errors) gcc.dg/tree-ssa/ssa-fre-42.c (test for excess errors) An example ICEs are: /home/jenkins/workspace/BuildThunderX_native_gcc_upstream/gcc/gcc/testsuite/gcc.c-torture/compile/20020604-1.c:91:1: error: insn does not satisfy its constraints: (insn 112 111 113 5 (set (reg:DI 7 x7 [196]) (plus:DI (ashift:DI (reg:DI 7 x7 [194]) (const_int 4 [0x4])) (reg/f:DI 31 sp))) 189 {*add_lsl_di} (nil)) /home/jenkins/workspace/BuildThunderX_native_gcc_upstream/gcc/gcc/testsuite/gcc.c-torture/compile/20020604-1.c:91:1: internal compiler error: in extract_constrain_insn, at recog.c:2212 /home/jenkins/workspace/BuildThunderX_native_gcc_upstream/gcc/gcc/testsuite/gcc.c-torture/compile/pr22422.c:29:1: error: insn does not satisfy its constraints: (insn 7 6 12 2 (set (mem/f:DI (reg:DI 0 x0 [ b ]) [2 b_2(D)->a+0 S8 A64]) (reg/f:DI 31 sp)) /home/jenkins/workspace/BuildThunderX_native_gcc_upstream/gcc/gcc/testsuite/gcc.c-torture/compile/pr22422.c:25 50 {*movdi_aarch64} (nil)) Notice how sp is being used there. That register is not valid in that location. Thanks, Andrew > > Peter > > >