<div dir="ltr">You can use -opt-bisect-limit to narrower down the optimization that causes the issue. <a href="https://llvm.org/docs/OptBisect.html">https://llvm.org/docs/OptBisect.html</a><div><div><br></div><div><div><div dir="ltr" class="gmail_signature">~Craig</div></div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Sat, Jun 30, 2018 at 4:57 PM Jeffrey Walton via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Sat, Jun 30, 2018 at 2:37 PM, David Blaikie <<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>> wrote:<br>
> I'd suggest approach this like any other bug in source code (not in the<br>
> compiler) - reduce the example, isolate the failure - until you either find<br>
> a source bug, or a small, standalone example that seems to demonstrate a<br>
> contradiction or bug in the way the compiler is interpreting the source.<br>
<br>
Thanks Davis.<br>
<br>
According to <a href="https://stackoverflow.com/q/15548023/608639" rel="noreferrer" target="_blank">https://stackoverflow.com/q/15548023/608639</a> the list of<br>
optimizations applied at -O1 include:<br>
<br>
-globalopt -demanded-bits -branch-prob -inferattrs -ipsccp -dse<br>
-loop-simplify -scoped-noalias -barrier -adce -deadargelim -memdep<br>
-licm -globals-aa -rpo-functionattrs -basiccg -loop-idiom -forceattrs<br>
-mem2reg -simplifycfg -early-cse -instcombine -sccp -loop-unswitch<br>
-loop-vectorize -tailcallelim -functionattrs -loop-accesses -memcpyopt<br>
-loop-deletion -reassociate -strip-dead-prototypes -loops -basicaa<br>
-correlated-propagation -lcssa -domtree -always-inline -aa -block-freq<br>
-float2int -lower-expect -sroa -loop-unroll<br>
-alignment-from-assumptions -lazy-value-info -prune-eh -jump-threading<br>
-loop-rotate -indvars -bdce -scalar-evolution -tbaa<br>
-assumption-cache-tracker<br>
<br>
I tried backing off some of the optimizations to begin to isolate:<br>
<br>
$ CXX=clang++ CXXFLAGS="-g2 -O1 -no-loop-vectorize" make cham-simd.o<br>
clang++ -g2 -O1 -no-loop-vectorize -fPIC -pthread -pipe -c cham-simd.cpp<br>
clang-6.0: error: unknown argument: '-no-loop-vectorize'<br>
make: *** [GNUmakefile:1069: cham-simd.o] Error 1<br>
<br>
So I guess my question is, how do I disable a particular optimization?<br>
<br>
Jeff<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div>