aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/BasicBlockSections.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@sifive.com>2021-03-15 11:44:59 -0700
committerCraig Topper <craig.topper@sifive.com>2021-03-15 11:54:01 -0700
commit41759c3d92c5445857a89087a877c47bef907f13 (patch)
treeacd3dc718810dd20d24a0b304c9513ae0400b970 /llvm/lib/CodeGen/BasicBlockSections.cpp
parentf675b3df4848bae5a8203c2508b721b41086471f (diff)
downloadllvm-41759c3d92c5445857a89087a877c47bef907f13.zip
llvm-41759c3d92c5445857a89087a877c47bef907f13.tar.gz
llvm-41759c3d92c5445857a89087a877c47bef907f13.tar.bz2
[RISCV] Add RISCVISD::BR_CC similar to RISCVISD::SELECT_CC.
This allows me to introduce similar combines for branches as we have recently added for SELECT_CC. Some of them are less useful for standalone setccs and only help branch instructions. By having a BR_CC node its easier to only affect branches. I'm using CondCodeSDNode to make isel patterns easier to write so we can refer to the codes by name. SELECT_CC uses a constant instead. I've translated the condition code just like SELECT_CC so we need less patterns for the swapped conditions. This includes special cases for X < 1 and X > -1 that get translated to blez and bgez by using a 0 constant. computeKnownBitsForTargetNode support for SELECT_CC is added to allow MaskedValueIsZero to work for cases where the true and false values of the SELECT_CC are setccs and the result of the SELECT_CC is used by a BR_CC. This was needed to avoid regressions in some of the overflow tests. Reviewed By: luismarques Differential Revision: https://reviews.llvm.org/D98159
Diffstat (limited to 'llvm/lib/CodeGen/BasicBlockSections.cpp')
0 files changed, 0 insertions, 0 deletions