Skip to content
  • Chandler Carruth's avatar
    Move the instruction simplification of callsite arguments in the inliner · 21211992
    Chandler Carruth authored
    to instead rely on much more generic and powerful instruction
    simplification in the function cloner (and thus inliner).
    
    This teaches the pruning function cloner to use instsimplify rather than
    just the constant folder to fold values during cloning. This can
    simplify a large number of things that constant folding alone cannot
    begin to touch. For example, it will realize that 'or' and 'and'
    instructions with certain constant operands actually become constants
    regardless of what their other operand is. It also can thread back
    through the caller to perform simplifications that are only possible by
    looking up a few levels. In particular, GEPs and pointer testing tend to
    fold much more heavily with this change.
    
    This should (in some cases) have a positive impact on compile times with
    optimizations on because the inliner itself will simply avoid cloning
    a great deal of code. It already attempted to prune proven-dead code,
    but now it will be use the stronger simplifications to prove more code
    dead.
    
    llvm-svn: 153403
    21211992
Loading