From mboxrd@z Thu Jan 1 00:00:00 1970 From: peter.rydesater@ite.mh.se To: gcc-gnats@gcc.gnu.org Subject: optimization/2275: Bad optimization for simple sum loops. -O0 better than -O3 Date: Sun, 01 Apr 2001 00:00:00 -0000 Message-id: <20010313162526.6315.qmail@sourceware.cygnus.com> X-SW-Source: 2001-q1/msg02291.html List-Id: >Number: 2275 >Category: optimization >Synopsis: Bad optimization for simple sum loops. -O0 better than -O3 >Confidential: no >Severity: non-critical >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Tue Mar 13 08:26:00 PST 2001 >Closed-Date: >Last-Modified: >Originator: (Peter Rydesäter) >Release: gcc version 2.95.3 19991030 (prerelease) >Organization: >Environment: Mandrake Linux 7.2, glibc 2.1, kernel 2.2.17 >Description: Optimization of the code with the -O3 option actualy generates quite slower code than with without -O0. retlation ~730ms : ~430 ms. The output is listed below. I also included the output from an old version of gcc 2.7.2.3 and from this we can se that the the optimized result was better at this old compiler version. mailto:peter.rydesater@ite.mh.se /Peter ====================================================== ========== Output with gcc 2.95.3 ==================== ====================================================== [petryd@petrydpc dotproj]$ gcc -v Reading specs from /usr/lib/gcc-lib/i586-mandrake-linux/2.95.3/specs gcc version 2.95.3 19991030 (prerelease) [petryd@petrydpc dotproj]$ gcc -O0 -o test test.c ; ./test =============CALC1================ double IM_TOC: 461 ms float IM_TOC: 435 ms long IM_TOC: 437 ms short IM_TOC: 425 ms char IM_TOC: 412 ms ============== IM_TOC: 412 ms IM_TOC: 249 ms IM_TOC: 247 ms =============CALC2================ double IM_TOC: 411 ms double IM_TOC: 411 ms [petryd@petrydpc dotproj]$ [petryd@petrydpc dotproj]$ gcc -O3 -o test test.c ; ./test =============CALC1================ double IM_TOC: 752 ms float IM_TOC: 727 ms long IM_TOC: 752 ms short IM_TOC: 738 ms char IM_TOC: 727 ms ============== IM_TOC: 753 ms IM_TOC: 64 ms IM_TOC: 101 ms =============CALC2================ double IM_TOC: 421 ms double IM_TOC: 411 ms ====================================================== ========= Output with gcc 2.7.2.3 ==================== ====================================================== [petryd@petrydpc dotproj]$ i486-linuxlibc5-gcc -v Reading specs from /usr/lib/gcc-lib/i486-linuxlibc5/2.7.2.3/specs gcc version 2.7.2.3 [petryd@petrydpc dotproj]$ i486-linuxlibc5-gcc -static -O0 -o test test.c ; ./test =============CALC1================ double IM_TOC: 841 ms float IM_TOC: 909 ms long IM_TOC: 1161 ms short IM_TOC: 1352 ms char IM_TOC: 1339 ms ============== IM_TOC: 1103 ms IM_TOC: 252 ms IM_TOC: 248 ms =============CALC2================ double IM_TOC: 725 ms double IM_TOC: 757 ms [petryd@petrydpc dotproj]$ i486-linuxlibc5-gcc -static -O3 -o test test.c ; ./test =============CALC1================ double IM_TOC: 313 ms float IM_TOC: 278 ms long IM_TOC: 279 ms short IM_TOC: 342 ms char IM_TOC: 342 ms ============== IM_TOC: 253 ms IM_TOC: 95 ms IM_TOC: 101 ms =============CALC2================ double IM_TOC: 253 ms double IM_TOC: 252 ms [petryd@petrydpc dotproj]$ >How-To-Repeat: gcc -v gcc -O0 -o test test.c ; ./test gcc -O3 -o test test.c ; ./test >Fix: >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="test.c" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="test.c" I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDx0aW1lLmg+CiNpbmNsdWRlIDxzeXMvdGltZS5o PgojaW5jbHVkZSA8dW5pc3RkLmg+IAoKI2RlZmluZSBTSSAoMTAqMTAyNCoxMDI0KQoKZG91Ymxl IGRkYXRhW1NJXTsKZmxvYXQgIGZkYXRhW1NJXTsKbG9uZyAgIGxkYXRhW1NJXTsKc2hvcnQgIHNk YXRhW1NJXTsKY2hhciAgIGNkYXRhW1NJXTsKCmRvdWJsZSBjYWxjMShkb3VibGUgKmRwLGZsb2F0 ICpmcCxsb25nICpscCxzaG9ydCAqc3AsY2hhciAqY3ApOwpkb3VibGUgY2FsYzIoZG91YmxlICpk cCxmbG9hdCAqZnAsbG9uZyAqbHAsc2hvcnQgKnNwLGNoYXIgKmNwKTsKZG91YmxlIHRpY3RvYyhp bnQgbW9kZSk7CgoKCmlubGluZSBkb3VibGUgY2FsYzIoZG91YmxlICpkcCxmbG9hdCAqZmQsbG9u ZyAqbHAsc2hvcnQgKnNwLGNoYXIgKmNwKQp7CiAgZG91YmxlIHN1bTsKICBsb25nIGxzdW07CiAg aW50IGk7CgogIHN1bT0wOwogIGxzdW09MDsKCiAgcHJpbnRmKCI9PT09PT09PT09PT09Q0FMQzI9 PT09PT09PT09PT09PT09XG4iKTsKICBwcmludGYoImRvdWJsZSAiKTsKICB0aWN0b2MoMSk7CiAg Zm9yKGk9MDtpPFNJO2krKykKICAgIHN1bSs9ZHBbaV07CiAgdGljdG9jKDApOwoKICB0aWN0b2Mo MSk7CiAgcHJpbnRmKCJkb3VibGUgIik7CiAgZm9yKGk9MDtpPFNJO2krKykKICAgIHN1bSs9ZGRh dGFbNTEyK2NkYXRhW2ldXTsKICB0aWN0b2MoMCk7CgogIHJldHVybiBzdW0qKGRvdWJsZSlsc3Vt Owp9CgoKaW5saW5lIGRvdWJsZSBjYWxjMShkb3VibGUgKmRwLGZsb2F0ICpmcCxsb25nICpscCxz aG9ydCAqc3AsY2hhciAqY3ApCnsKICByZWdpc3RlciBkb3VibGUgc3VtOwogIGxvbmcgbHN1bTsK ICBpbnQgaTsKCiAgc3VtPTA7CiAgbHN1bT0wOwoKICBwcmludGYoIj09PT09PT09PT09PT1DQUxD MT09PT09PT09PT09PT09PT1cbiIpOwogIHByaW50ZigiZG91YmxlICIpOwogIHRpY3RvYygxKTsK ICBmb3IoaT0wO2k8U0k7aSsrKQogICAgc3VtKz1kcFtpXTsKICB0aWN0b2MoMCk7CgogIHByaW50 ZigiZmxvYXQgICIpOwogIHRpY3RvYygxKTsKICBmb3IoaT0wO2k8U0k7aSsrKQogICAgc3VtKz1m cFtpXTsKICB0aWN0b2MoMCk7CgogIHByaW50ZigibG9uZyAgICIpOwogIHRpY3RvYygxKTsKICBm b3IoaT0wO2k8U0k7aSsrKQogICAgc3VtKz0oKGRvdWJsZSlscFtpXSkgLygyNTYqMjU2KTsKICB0 aWN0b2MoMCk7CgogIHByaW50Zigic2hvcnQgICIpOwogIHRpY3RvYygxKTsKICBmb3IoaT0wO2k8 U0k7aSsrKQogICAgc3VtKz0oKGRvdWJsZSlzcFtpXSkgLygyNTYpOwogIHRpY3RvYygwKTsKCiAg cHJpbnRmKCJjaGFyICAgIik7CiAgdGljdG9jKDEpOwogIGZvcihpPTA7aTxTSTtpKyspCiAgICBz dW0rPSgoZG91YmxlKXNwW2ldKSAvKDE2KTsKICB0aWN0b2MoMCk7CgogIHByaW50ZigiPT09PT09 PT09PT09PT1cbiIpOwoKICB0aWN0b2MoMSk7CiAgZm9yKGk9MDtpPFNJO2krKykKICAgIHN1bSs9 c3BbaV07CiAgdGljdG9jKDApOwoKICB0aWN0b2MoMSk7CiAgZm9yKGk9MDtpPFNJO2krKykKICAg IGxzdW0rPWxwW2ldOwogIHRpY3RvYygwKTsKCiAgdGljdG9jKDEpOwogIGZvcihpPTA7aTxTSTtp KyspCiAgICBsc3VtKz1jcFtpXTsKICB0aWN0b2MoMCk7CgogIHJldHVybiBzdW0qKGRvdWJsZSls c3VtOwp9CgppbnQgbWFpbih2b2lkKQp7CiAgZG91YmxlIHN1bT0wOwogIHN1bSs9Y2FsYzEoZGRh dGEsZmRhdGEsbGRhdGEsc2RhdGEsY2RhdGEpOwogIHN1bSs9Y2FsYzIoZGRhdGEsZmRhdGEsbGRh dGEsc2RhdGEsY2RhdGEpOwogIHJldHVybiAoaW50KXN1bTsKfQoKZG91YmxlIHRpY3RvYyhpbnQg bW9kZSkKewogICAgc3RhdGljIHN0cnVjdCB0aW1ldmFsIHRpbWV2YWxBOwogICAgc3RhdGljIHN0 cnVjdCB0aW1ldmFsIHRpbWV2YWxCOwogICAgaW50IGV0aW1lOwogICAgaWYobW9kZSkKICAgIHsK CWdldHRpbWVvZmRheSgmdGltZXZhbEEsTlVMTCk7CglyZXR1cm4gMDsKICAgIH0KICAgIGdldHRp bWVvZmRheSgmdGltZXZhbEIsTlVMTCk7CiAgICBldGltZT0odGltZXZhbEIudHZfc2VjLXRpbWV2 YWxBLnR2X3NlYykqMTAwMDsKICAgIGV0aW1lPSgodGltZXZhbEIudHZfdXNlYy8xMDAwKS0odGlt ZXZhbEEudHZfdXNlYy8xMDAwKSkrZXRpbWU7CiAgICBwcmludGYoIklNX1RPQzogJWQgbXNcbiIs ZXRpbWUpOwogICAgcmV0dXJuICgoZG91YmxlKWV0aW1lKS8xMDAwOwp9Cgo=