Skip to content

Commit 6110ab6

Browse files
authored
Add lowering support for conditional nodes (#71705)
* Add lowering support for conditional nodes * Contain conditionals * Fix formatting * Use AND and CMP nodes * Fix formatting * Remove LowerNodeCC changes Change-Id: Icdf1828905c4a3f210b06e047ef3c0ac913d71f7 CustomizedGitHooks: yes * Remove asserts & fix variable names * Better contain checks for conditional compares * Simpler contained conditions codegen * Remove Conditional Compare nodes * Minor cleanups * Generate AND compare chains * Fix unsigned compares && reduce chain check recursion * Add compare chain tests * Review fixes * Use GenCondition * Change CompareChainSize to IsValidCompareChain * Move lowering functions to lowerarmarch * Formatting fixes * Fix SELECT issues * Fix test output messages. * Better explanations for AND chains * Compare chains should not contain tst compares Change-Id: I8a1761e1e89f589e1daf0318e120aae5dd3d7241 CustomizedGitHooks: yes * Don't allow tst compares in codegeneration of compare chains * Add tests for chains with tst compares * Don't allow tst compares in lsrabuild of compare chains
1 parent 4211dc4 commit 6110ab6

22 files changed

+1790
-247
lines changed

src/coreclr/jit/codegen.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1050,7 +1050,9 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
10501050
void genCkfinite(GenTree* treeNode);
10511051
void genCodeForCompare(GenTreeOp* tree);
10521052
#ifdef TARGET_ARM64
1053-
void genCodeForConditional(GenTreeConditional* tree);
1053+
void genCodeForConditionalCompare(GenTreeOp* tree, GenCondition prevCond);
1054+
void genCodeForContainedCompareChain(GenTree* tree, bool* inchain, GenCondition* prevCond);
1055+
void genCodeForSelect(GenTreeConditional* tree);
10541056
#endif
10551057
void genIntrinsic(GenTree* treeNode);
10561058
void genPutArgStk(GenTreePutArgStk* treeNode);
@@ -1715,9 +1717,8 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
17151717
#endif // TARGET_XARCH
17161718

17171719
#ifdef TARGET_ARM64
1718-
static insCond InsCondForCompareOp(GenTree* tree);
1719-
static insCond InvertInsCond(insCond cond);
1720-
static insCflags InsCflagsForCcmp(insCond cond);
1720+
static insCflags InsCflagsForCcmp(GenCondition cond);
1721+
static insCond JumpKindToInsCond(emitJumpKind condition);
17211722
#endif
17221723

17231724
#ifndef TARGET_LOONGARCH64

0 commit comments

Comments
 (0)