<div dir="ltr">Hello, <div><br></div><div>I'm trying to minimize the processing time for llc -O3 by using a three step compilation process of </div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>1. llc input.bc -stopafter=targetlibinfo -o input.mir</div><div>2. llc -run-pass={....min passes...} input.mir -o opt.mir</div><div>3. llc -startafter=machine-opt-remark-emitter -filetype=obj opt.mir -o final.obj</div></blockquote><div><br></div><div>Examining the passes produced by llc for O1,O2,O3 I compared (with XXX = {1,2,3}):</div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>llc input.bc -filetype=obj -OXXX  -o XXXfinal.obj  -debug-pass=Executions </div></blockquote><div><br></div><div>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). </div><div><br></div><div>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.</div><div><br></div><div>Thanks for considering this, </div><div><br></div><div>-Chad</div></div>