I have a complex complex code, which I compile using GCC 4.8.1.
g ++ -c file.cc-march = native -mfpmath = sse -mpreferred-stack-boundary = 4 -minute inline-unit-increment = 50 -GGDB3-with WALL While compiling - the crashed code with the default (which I was unable to debug, but the address of a straight) Wextra-Winit-self -O2 -fPIC -funroll-loops -fforce-addr -rdynamic< / Pre>Anything that was created suddenly varies from that time, in particular, is not aligned with the 32bytes required by the code, but only up to 8bytes).
-O1Instead, the code works fine so I added all customizable flags that are-O1and-O2(at the end of this, I have two files throughO1-optsandO2-optsG ++ -march = native -mfpmath = sse has been created -Capreid-Stack-cement = 4 -Perm inline-unit-increment = 50 -GGD3 -Wall -extra -winit-self -O1 -fPIC -Frolroll-less -Force-edit -RDNIC-KLLP = Optimizer> O1-opts g ++ -march = native -mfpmath = sse -mpreferred-stack-boundary = 4-ultimate Nullin-unit-increase = 50 -GGDB3 -Wall -extra -Vinit-self -O2 -fPIC- Funnel-Loop - Fforce-addr -rdynamic -q --help = Adapter> O2-opts< / Pre>when the
diff O1-opts O2-optsoption provides the difference). When adding all option differences to-O1, the generated code still does not crash, it's my puzzle, so my question is: Is it absolutely Do not give results with-O2? (And also: What is the probable cause of my problem?)
The issue is that - O2 option not only defines different flags, but also enables additional customization in contrast to -O1 .
For GCC Wiki is an appropriate entry in the FQF section.
No comments:
Post a Comment