Hi
I am seeing an issue (compiled application seg faults) when llc is
used at -O1. I first need to triage out which optimization/pass is
responsible for the seg fault. As such I am following this strategy:
disable gradually those passes at -O1 which do not exist at -O0. For
this I used -pass-debug=Structure. [ diff pasted at the end for
reference]
The problem is I have used almost all -disable-* options from llc
hidden help. Yet I could not make it equivalent to -O0. Here are my
questions:
1. For some reason, I am not able to use -regalloc=fast at -O1. Gives
the following error:
$ llc -regalloc=fast -O1 -mcpu=bdver2 test.ll
LLVM ERROR: regalloc=... not currently supported with -O0
How do I switch to "fast" allocator at -O1?
2. How do I disable following passes:
(a) Optimize for code generation
(b) Remove dead machine instructions
(c) Optimize machine instruction PHIs
(d) Remove unreachable machine basic blocks
(Note that I am already using -disable-machine-dse, cse, -machine-sink
, lsr ...)
3. Is there any other better way to see which pass(es) are responsible
for the seg fault at -O1 ?