[llvm-commits] [llvm] r151429 - in /llvm/trunk: include/llvm/Transforms/IPO.h include/llvm/Transforms/IPO/InlinerPass.h include/llvm/Transforms/Utils/Cloning.h lib/Transforms/IPO/InlineAlways.cpp lib/Transforms/IPO/InlineSimple.cpp lib/Transforms
Rafael Espíndola
rafael.espindola at gmail.com
Sat Feb 25 17:53:00 PST 2012
> At -O0 the AlwaysInliner pass is run to honor the always_inline attribute. By default the @llvm.lifetime_start and @llvm.lifetime_end intrinsics were being emitted. These are compiler hints and at -O0 they're never used and thus should not be emitted. The particular test case I came across was compiling in 283s at -O0 (fast, huh). Now it compiles in 1.35s at -O0. By abuse I mean the developer thinks they're smarted then the compiler, so they mark everything with the always_inline attribute. I'm not saying this is a common problem, but regardless these intrinsics are useless at -O0.
Why did you had to change both llvm and clang? Why not just stop
emitting the hints in clang?
Cheers,
Rafael
More information about the llvm-commits
mailing list