When -start-after or -start-before is given tti pass is added with default TargetTransformInfo and LSR (probably other passes also) fails to make some optimizations. This also makes it impossible to properly analyze codegen pipeline, because in the example below foo.s and bar.s will almost always be different:
llc -O3 foo.ll -o foo.s
llc -O3 -stop-after=<pass> foo.ll -o foo.mir llc -O3 -start-after=<pass> foo.mir -o bar.s
Thanks! In the case of -start-after, this line was a no-op..
How did you notice the problem?