[CodeGen] Add a pass to do block predication on SSA machine IR.
authorThomas Raoux <thomas.raoux@gmail.com>
Tue, 20 Aug 2019 15:54:59 +0000 (15:54 +0000)
committerThomas Raoux <thomas.raoux@gmail.com>
Tue, 20 Aug 2019 15:54:59 +0000 (15:54 +0000)
commitbe699bf38995f940225aa31b520be00721e258b2
tree9357a33564220276f7445e42bda674a2c30444c7
parent6585f018ada85c53efeec28fb6b1d9c978c209f7
[CodeGen] Add a pass to do block predication on SSA machine IR.

    For targets requiring aggressive scheduling and/or software pipeline we need to
    apply predication before preRA scheduling. This adds a pass re-using the early
    if-cvt infrastructure but generating predicated instructions instead of
    speculatively executing instructions. It allows doing if conversion on blocks
    containing instructions with side-effects. The pass re-use the target hook from
    postRA if-conversion to let the target decide on the heuristic to apply.

    Differential Revision: https://reviews.llvm.org/D66190

llvm-svn: 369395
llvm/include/llvm/CodeGen/Passes.h
llvm/include/llvm/InitializePasses.h
llvm/lib/CodeGen/CodeGen.cpp
llvm/lib/CodeGen/EarlyIfConversion.cpp