[llvm-dev] llc -O2 vs. llc -O3 --> same debug-pass=Executions but output.obj differs?

Chad Verbowski via llvm-dev llvm-dev at lists.llvm.org
Tue Aug 4 17:19:24 PDT 2020


Hello,

I'm trying to minimize the processing time for llc -O3 by using a three
step compilation process of

1. llc input.bc -stopafter=targetlibinfo -o input.mir
2. llc -run-pass={....min passes...} input.mir -o opt.mir
3. llc -startafter=machine-opt-remark-emitter -filetype=obj opt.mir -o
final.obj


Examining the passes produced by llc for O1,O2,O3 I compared (with XXX =
{1,2,3}):

llc input.bc -filetype=obj -OXXX  -o XXXfinal.obj  -debug-pass=Executions


This showed the passes were identical for O1,O2,O3 yet the .obj produced
was different for O3 versus O1 and O2 (which were the same).

Does anyone happen to know why O3 is different, I'm wondering if this is
caused by some other llc flag unrelated to the passes which appear to be
the same looking at -debug-pass=Executions.

Thanks for considering this,

-Chad
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200804/0f6b7484/attachment.html>


More information about the llvm-dev mailing list