[COMMITTED][PATCH] Improve prepare_shrink_wrap to sink more instructions

Jiong Wang jiong.wang@arm.com
Thu Sep 25 13:07:00 GMT 2014


On 25/09/14 12:25, Christophe Lyon wrote:
> 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.
no.

even without my patch, the regression still happen.

or you could specify -fno-shrink-wrap, gcc still crash.

so, this regression should caused by other commits which haven't exposed 
on x86 regression test.

-- Jiong

>
> 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.
>




More information about the Gcc-patches mailing list