[Bug tree-optimization/79534] [7 Regression] tree-ifcombine aarch64 performance regression with trunk@245151
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79534 --- Comment #9 from Brian Rzycki --- Hello James, If this is working as designed this may just be a case of having to live with the regression. Do we know if anyone analyzed the net-benefit of Honza's patch? If more benchmarks/tests win then I think we have our answer.
[Bug tree-optimization/79534] [7/8 Regression] tree-ifcombine aarch64 performance regression with trunk@245151
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79534 --- Comment #11 from Brian Rzycki --- HI James, if you don't see any major regressions and some good uplifts I understand if this case is considered marginal. From my perspective I think it's best to close this ticket and move on to more pressing issues. Thank you for analyzing this.
[Bug tree-optimization/79534] [7/8 Regression] tree-ifcombine aarch64 performance regression with trunk@245151
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79534 --- Comment #13 from Brian Rzycki --- James, if you develop any new ifcvt any patches you'd like to test on my full source base I'd be happy to help. The code is very branchy and in some cases have up to 4 nested if/else pairs. There are a couple of cases where THEN and ELSE blocks are identical. I think such a pass would optimize more than one hot if/else nested pair.
[Bug sanitizer/79168] New: libtsan fails to link when cross compiling GCC tip for Aarch64 target
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79168 Bug ID: 79168 Summary: libtsan fails to link when cross compiling GCC tip for Aarch64 target Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: sanitizer Assignee: unassigned at gcc dot gnu.org Reporter: brzycki at gmail dot com CC: dodji at gcc dot gnu.org, dvyukov at gcc dot gnu.org, jakub at gcc dot gnu.org, kcc at gcc dot gnu.org Target Milestone: --- GCC tip has failed to successfully compile now since our last successful nightly build on January 9 2017. The error is the following: .libs/tsan_rtl_aarch64.o: In function `InitializeGuardPtr()': /tmp/tmp.d1V9p3OGZO.cbatch02777/build-aarch64-sarc-linux-gnu/aarch64-sarc-linux-gnu/libsanitizer/tsan/../../../../libsanitizer/tsan/tsan_rtl_aarch64.S:49:(.text+0x34): relocation truncated to fit: R_AARCH64_LDST64_ABS_LO12_NC against `.text' .libs/tsan_rtl_aarch64.o: In function `setjmp': /tmp/tmp.d1V9p3OGZO.cbatch02777/build-aarch64-sarc-linux-gnu/aarch64-sarc-linux-gnu/libsanitizer/tsan/../../../../libsanitizer/tsan/tsan_rtl_aarch64.S:81:(.text+0x54): relocation truncated to fit: R_AARCH64_LDST64_ABS_LO12_NC against `.text' .libs/tsan_rtl_aarch64.o: In function `_setjmp': /tmp/tmp.d1V9p3OGZO.cbatch02777/build-aarch64-sarc-linux-gnu/aarch64-sarc-linux-gnu/libsanitizer/tsan/../../../../libsanitizer/tsan/tsan_rtl_aarch64.S:128:(.text+0x94): relocation truncated to fit: R_AARCH64_LDST64_ABS_LO12_NC against `.text' .libs/tsan_rtl_aarch64.o: In function `sigsetjmp': /tmp/tmp.d1V9p3OGZO.cbatch02777/build-aarch64-sarc-linux-gnu/aarch64-sarc-linux-gnu/libsanitizer/tsan/../../../../libsanitizer/tsan/tsan_rtl_aarch64.S:177:(.text+0xd8): relocation truncated to fit: R_AARCH64_LDST64_ABS_LO12_NC against `.text' .libs/tsan_rtl_aarch64.o: In function `__sigsetjmp': /tmp/tmp.d1V9p3OGZO.cbatch02777/build-aarch64-sarc-linux-gnu/aarch64-sarc-linux-gnu/libsanitizer/tsan/../../../../libsanitizer/tsan/tsan_rtl_aarch64.S:228:(.text+0x120): relocation truncated to fit: R_AARCH64_LDST64_ABS_LO12_NC against `.text' collect2: error: ld returned 1 exit status And the command executed is the following: libtool: link: /tmp/tmp.d1V9p3OGZO.cbatch02777/build-aarch64-sarc-linux-gnu/./gcc/xgcc -shared-libgcc -B/tmp/tmp.d1V9p3OGZO.cbatch02777/build-aarch64-sarc-linux-gnu/./gcc -nostdinc++ -L/tmp/tmp.d1V9p3OGZO.cbatch02777/build-aarch64-sarc-linux-gnu/aarch64-sarc-linux-gnu/libstdc++-v3/src -L/tmp/tmp.d1V9p3OGZO.cbatch02777/build-aarch64-sarc-linux-gnu/aarch64-sarc-linux-gnu/libstdc++-v3/src/.libs -L/tmp/tmp.d1V9p3OGZO.cbatch02777/build-aarch64-sarc-linux-gnu/aarch64-sarc-linux-gnu/libstdc++-v3/libsupc++/.libs -B/sarc-c/compiler_tmp/tools/cross/aarch64-sarc-linux-gnu/gcc-7.0/2017-01-18-18-37-57-fe8aea6-master/aarch64-sarc-linux-gnu/bin/ -B/sarc-c/compiler_tmp/tools/cross/aarch64-sarc-linux-gnu/gcc-7.0/2017-01-18-18-37-57-fe8aea6-master/aarch64-sarc-linux-gnu/lib/ -isystem /sarc-c/compiler_tmp/tools/cross/aarch64-sarc-linux-gnu/gcc-7.0/2017-01-18-18-37-57-fe8aea6-master/aarch64-sarc-linux-gnu/include -isystem /sarc-c/compiler_tmp/tools/cross/aarch64-sarc-linux-gnu/gcc-7.0/2017-01-18-18-37-57-fe8aea6-master/aarch64-sarc-linux-gnu/sys-include -fPIC -DPIC -shared -nostdlib /sarc-c/compiler_tmp/tools/cross/aarch64-sarc-linux-gnu/gcc-7.0/2017-01-18-18-37-57-fe8aea6-master/aarch64-sarc-linux-gnu/sysroot/usr/lib/../lib64/crti.o /tmp/tmp.d1V9p3OGZO.cbatch02777/build-aarch64-sarc-linux-gnu/./gcc/crtbeginS.o .libs/tsan_clock.o .libs/tsan_debugging.o .libs/tsan_fd.o .libs/tsan_flags.o .libs/tsan_ignoreset.o .libs/tsan_interceptors.o .libs/tsan_interceptors_mac.o .libs/tsan_interface_ann.o .libs/tsan_interface_atomic.o .libs/tsan_interface.o .libs/tsan_interface_java.o .libs/tsan_libdispatch_mac.o .libs/tsan_malloc_mac.o .libs/tsan_md5.o .libs/tsan_mman.o .libs/tsan_mutex.o .libs/tsan_mutexset.o .libs/tsan_new_delete.o .libs/tsan_platform_linux.o .libs/tsan_platform_mac.o .libs/tsan_platform_posix.o .libs/tsan_platform_windows.o .libs/tsan_report.o .libs/tsan_rtl.o .libs/tsan_rtl_mutex.o .libs/tsan_rtl_proc.o .libs/tsan_rtl_report.o .libs/tsan_rtl_thread.o .libs/tsan_stack_trace.o .libs/tsan_stat.o .libs/tsan_suppressions.o .libs/tsan_symbolize.o .libs/tsan_sync.o .libs/tsan_rtl_aarch64.o -Wl,--whole-archive ../sanitizer_common/.libs/libsanitizer_common.a ../interception/.libs/libinterception.a ../libbacktrace/.libs/libsanitizer_libbacktrace.a -Wl,--no-whole-archive -Wl,-rpath -Wl,/tmp/tmp.d1V9p3OGZO.cbatch02777/build-aarch64-sarc-linux-gnu/aarch64-sarc-linux-gnu/libstdc++-v3/src/.libs -Wl,-rpath -Wl,/sarc-c/compiler_tmp/tools/cross/aarch64-sarc-linux-gnu/gcc-7.0/2017-01-18-18-37-57-fe8aea6-master/aarch64-sarc-linux-gnu/lib/../lib64 -L/tmp/tmp.d1V9p3OGZO.cbatch02777/build-aarch64-sarc-linux-gnu/aa
[Bug sanitizer/79168] [7 Regression] libtsan fails to link when cross compiling GCC tip for Aarch64 target
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79168 --- Comment #2 from Brian Rzycki --- Hello Jakub. Thank you for the fast response. We have verified that gcc with your patch successfully compiles. We haven't done any real testing on the compiler itself though. I think it'd be good to push that patch and if we encounter any new issues to address them in a new ticket. Thanks!
[Bug sanitizer/79168] [7 Regression] libtsan fails to link when cross compiling GCC tip for Aarch64 target
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79168 --- Comment #5 from Brian Rzycki --- Hi Jakub, I just manually ran our nightly snapshot script and successfully built a GCC AArch64 compiler. The SHA used was d889d15 which contains your fix in its history. I have verified this as fixed. Thank you for the fast turnaround!
[Bug tree-optimization/79534] New: tree-ifcombine aarch64 regression with trunk@245151
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79534 Bug ID: 79534 Summary: tree-ifcombine aarch64 regression with trunk@245151 Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: brzycki at gmail dot com Target Milestone: --- Created attachment 40752 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40752&action=edit Reduced test-case. Larger scores are better. I am seeing about a 6-10% performance regression on a proprietary benchmark on AArch64, depending on the target micro-architecture. # SHA d2c3261, trunk@245149, patch immediately preceding regression /gcc/2017-02-03-12-17-59-d2c3261-master/bin/aarch64-sarc-linux-gnu-g++ -O3 -mcpu=cortex-a57 -std=c++11 -c a.cpp -o a.o /gcc/2017-02-03-12-17-59-d2c3261-master/bin/aarch64-sarc-linux-gnu-g++ -o a a.o (best of 3 runs) SCORE_DIRECTION ==> larger is better SCORE ==> 1619.832509 # SHA f56c861, trunk@245151, regressing patch /gcc/2017-02-03-14-03-35-f56c861-master/bin/aarch64-sarc-linux-gnu-g++ -O3 -mcpu=cortex-a57 -std=c++11 -c a.cpp -o a.o /gcc/2017-02-03-14-03-35-f56c861-master/bin/aarch64-sarc-linux-gnu-g++ -o a a.o (best of 3 runs) SCORE_DIRECTION ==> larger is better SCORE ==> 1468.440527 # SHA e502db7, a recent 2/14/2017 tip build /gcc/2017-02-14-23-11-19-e502db7-master/bin/aarch64-sarc-linux-gnu-g++ -O3 -mcpu=cortex-a57 -std=c++11 -c a.cpp -o a.o /gcc/2017-02-14-23-11-19-e502db7-master/bin/aarch64-sarc-linux-gnu-g++ -o a a.o SCORE_DIRECTION ==> larger is better SCORE ==> 1483.952217 I do not see the slowdown when testing on x86_64.
[Bug tree-optimization/79534] [7 Regression] tree-ifcombine aarch64 performance regression with trunk@245151
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79534 --- Comment #4 from Brian Rzycki --- Hi James, thank you for taking the time to test this. Unfortunately I can't post the original code because of its license. The problem is with the weighting changing enough that at least one pair of if conditionals is no longer converted into a boolean logical if. If it helps I can talk to Sebastian to see if we have time to refine the reduced test case. Alternatively I may be able to post the diff of the previous and current passes on the real code showing the branch no longer selected for conversion.
[Bug tree-optimization/79534] [7 Regression] tree-ifcombine aarch64 performance regression with trunk@245151
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79534 --- Comment #6 from Brian Rzycki --- James, my apologies if it wasn't clear enough what the compile options were. The test platform in this case is a Juno A57 running Ubuntu. I actually never turned off -mcpu=cortex-a57 during my testing. I'll keep this in mind too in the future.