]> granicus.if.org Git - llvm/commit
[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)
commit2bfdb54bfd8071436a4cbabe691be0b67e0aff28
tree9197e2ae57864fd20ed615e0fe84d9f3db9d72bf
parent6ef4e7b8898a001f64f0d80089707712778c41d7
[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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@369395 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/Passes.h
include/llvm/InitializePasses.h
lib/CodeGen/CodeGen.cpp
lib/CodeGen/EarlyIfConversion.cpp