[Bug middle-end/48377] [4.6 regression] miscompilation at -O3

matt at use dot net gcc-bugzilla@gcc.gnu.org
Fri Apr 1 01:38:00 GMT 2011


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48377

--- Comment #2 from Matt Hargett <matt at use dot net> 2011-04-01 01:38:20 UTC ---
(In reply to comment #1)
> Does the issue reproduce without using -ftree-loop-linear?  In general try
> to avoid loads of -f switches and stick to basic (and well tested) -Ox
> options.  Does it fail with just -O3?

Yes, it appears to fail in the same way with all of the -ftree-* flags removed:
SOGS-g++ -pipe -m64 -minline-all-stringops -fvisibility-inlines-hidden -ggdb
-g3 -c -fpic -nostdinc  -march=amdfam10 -Wa,-mtune=amdfam10 -Wchar-subscripts
-Wreturn-type -Wunknown-pragmas -Wno-int-to-pointer-cast -Wformat
-Wformat-nonliteral -Wformat-security -Wpointer-arith -Wcast-align
-Wwrite-strings -Wsign-compare -Wunused-variable -Wunused-parameter
-Wparentheses -fasynchronous-unwind-tables -fno-enforce-eh-specs -fcheck-new
-O3 -fno-omit-frame-pointer -fno-strict-aliasing -fno-builtin-abort
-fno-builtin-calloc -fno-builtin-exit -fno-builtin-free -fno-builtin-malloc
-fno-builtin-realloc -fvisibility=hidden -fno-threadsafe-statics -Werror
-I/home/matt/src/clueboat/porkius/main/src/include/libc
-I/home/matt/src/clueboat/porkius/main/src/include/os
-I/home/matt/src/clueboat/porkius/main/src/include/hal/x86_64
-I/home/matt/src/clueboat/porkius/main/src/include/hal
-I/home/matt/src/clueboat/porkius/main/src/common/include
-I/home/matt/src/clueboat/porkius/main/src/common/portability/shared/include
-I.
-I/home/matt/src/clueboat/porkius/main/src/common/portability/shared/include
-I/home/matt/src/clueboat/porkius/main/src/common/include
-I/home/matt/src/clueboat/porkius/main/src/include/legacy
-I/home/matt/src/clueboat/porkius/main/src/network/stack/sys
-I/home/matt/src/clueboat/porkius/main/src/network/stack/local
-I/home/matt/src/clueboat/porkius/main/src/network/stack/include
-I/home/matt/src/clueboat/porkius/main/src/standard/include
-I/home/matt/src/clueboat/porkius/main/src/include/legacy/cfssl
-I/home/matt/src/clueboat/porkius/main/src/include/legacy/openssl
-I/home/matt/src/clueboat/porkius/main/src/include/os/core/platform
-I/home/matt/src/clueboat/porkius/main/src/proxy/ssl/ssl_proxy
-I/home/matt/src/clueboat/porkius/toolchain/linux/x86_64_host/gcc-cross/x86_64_target/v4.6.0/x86_64-iscb-SOGS/include/c++/4.6.0
-I/home/matt/src/clueboat/porkius/toolchain/linux/x86_64_host/gcc-cross/x86_64_target/v4.6.0/x86_64-iscb-SOGS/include/c++/4.6.0/x86_64-iscb-SOGS
-DCFSSL_PROXY -DOPENSSL_FIPS -DSOGS_ANY -DSOGS_NATIVE -DSOGS_porkius
-DSOGS_TARGET_NAME=x86_64 -D_CRTBLD  
-DSOGS_SRC_ROOT="\"/home/matt/src/clueboat/porkius/main/src/proxy/ssl/\"" -o
build_products/shared/x86_64/SOGS_native/release/gcc_v4.6.0/cli.o
/home/matt/src/clueboat/porkius/main/src/proxy/ssl/cli.cpp

I do generally agree with you on not employing too many individual optimization
flags. We did a lot of testing with GCC 4.4.x and found this set of flags
produced optimal system performance for our codebase. If plain -O3 in 4.6.0
provides superior performance, then I have an argument for simplifying thing.
If plain -O3 is worse than 4.4.x, the product performance would regress and
I'll have no legitimate argument ;)

Either way, it used to work fine, so it's still a regression. I have attached
the object file output compiled with the above commandline.



More information about the Gcc-bugs mailing list