This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [COMMITTED][PATCH] Improve prepare_shrink_wrap to sink more instructions
- From: Christophe Lyon <christophe dot lyon at linaro dot org>
- To: Jiong Wang <jiong dot wang at arm dot com>
- Cc: Jeff Law <law at redhat dot com>, "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Date: Thu, 25 Sep 2014 13:25:57 +0200
- Subject: Re: [COMMITTED][PATCH] Improve prepare_shrink_wrap to sink more instructions
- Authentication-results: sourceware.org; auth=none
- References: <54087404 dot 1040608 at arm dot com> <540A137A dot 9010402 at redhat dot com> <540DB5CB dot 6080801 at arm dot com> <54120886 dot 30903 at redhat dot com> <5416F8AA dot 7060206 at arm dot com> <541C9563 dot 2050700 at redhat dot com> <541FF9F2 dot 6080204 at arm dot com> <542063FA dot 7060207 at redhat dot com> <54230E52 dot 4050703 at arm dot com>
On 24 September 2014 20:32, Jiong Wang <jiong.wang@arm.com> wrote:
>
> On 22/09/14 19:01, Jeff Law wrote:
>>
>> On 09/22/14 04:29, Jiong Wang wrote:
>>>
>>> On 19/09/14 21:43, Jeff Law wrote:
>>>
>>> patch attached.
>>>
>>> please review, thanks.
>>>
>>> gcc/
>>> * shrink-wrap.c (move_insn_for_shrink_wrap): Add further check when
>>> !REG_P (src) to
>>> release more instruction sink opportunities.
>>>
>>> gcc/testsuite/
>>> * gcc.target/aarch64/shrink_wrap_symbol_ref_1.c: New testcase.
>>
>> Thanks. Please verify this version passes a bootstrap & regression
>> test. Assuming it does it is OK for the trunk.
>
>
> pass bootstrap and on regression on x86 based on revision 215515.
>
> committed as revision 215563.
>
> -- Jiong
>
I have observed regressions in the g++ testsuite: pr49847 now FAILs
after this patch.
Here is what I have in my logs:
/aci-gcc-fsf/builds/gcc-fsf-gccsrc/obj-arm-none-linux-gnueabihf/gcc3/gcc/testsuite/g++/../../xg++
-B/aci-gcc-fsf/builds/gcc-fsf-gccsrc/obj-arm-none-linux-gnueabihf/gcc3/gcc/testsuite/g++/../../
/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/testsuite/g++.dg/pr49847.C
-fno-diagnostics-show-caret -fdiagnostics-color=never -nostdinc++
-I/aci-gcc-fsf/builds/gcc-fsf-gccsrc/obj-arm-none-linux-gnueabihf/gcc3/arm-none-linux-gnueabihf/libstdc++-v3/include/arm-none-linux-gnueabihf
-I/aci-gcc-fsf/builds/gcc-fsf-gccsrc/obj-arm-none-linux-gnueabihf/gcc3/arm-none-linux-gnueabihf/libstdc++-v3/include
-I/aci-gcc-fsf/sources/gcc-fsf/gccsrc/libstdc++-v3/libsupc++
-I/aci-gcc-fsf/sources/gcc-fsf/gccsrc/libstdc++-v3/include/backward
-I/aci-gcc-fsf/sources/gcc-fsf/gccsrc/libstdc++-v3/testsuite/util
-fmessage-length=0 -std=gnu++98 -O -fnon-call-exceptions -S -o
pr49847.s (timeout = 800)
/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/testsuite/g++.dg/pr49847.C: In
function 'int f(float)':
/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/testsuite/g++.dg/pr49847.C:7:1:
error: missing REG_EH_REGION note at the end of bb 2
/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/testsuite/g++.dg/pr49847.C:7:1:
internal compiler error: verify_flow_info failed
0x82f8ba verify_flow_info()
/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/cfghooks.c:260
0x840cd3 commit_edge_insertions()
/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/cfgrtl.c:2068
0x9bf243 thread_prologue_and_epilogue_insns
/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/function.c:5852
0x9bfa52 rest_of_handle_thread_prologue_and_epilogue
/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/function.c:6245
0x9bfa52 execute
/aci-gcc-fsf/sources/gcc-fsf/gccsrc/gcc/function.c:6283
As per
http://cbuild.validation.linaro.org/build/cross-validation/gcc/trunk/215563/report-build-info.html
I've noticed this on targets:
arm-none-linux-gnueabihf
armeb-none-linux-gnueabihf
aarch64-none-elf
aarch64_be-none-elf
aarch64-none-linux-gnu
but NOT on
arm-none-eabi
arm-none-linux-gnueabi
Christophe.