diff options
| author | Ulrich Weigand <ulrich.weigand@de.ibm.com> | 2018-01-19 20:54:18 +0000 |
|---|---|---|
| committer | Ulrich Weigand <ulrich.weigand@de.ibm.com> | 2018-01-19 20:54:18 +0000 |
| commit | 31112895d966ccd5a3098866f0826a789d36f3b7 (patch) | |
| tree | 1fbcdf415c5465ee28b3f6522e873e95f4918ae1 /llvm/lib/Target/SystemZ/SystemZISelLowering.h | |
| parent | 849a59fd4b15967672f94fe034a0b152833b6320 (diff) | |
| download | bcm5719-llvm-31112895d966ccd5a3098866f0826a789d36f3b7.tar.gz bcm5719-llvm-31112895d966ccd5a3098866f0826a789d36f3b7.zip | |
[SystemZ] Directly use CC result of compare-and-swap
In order to implement a test whether a compare-and-swap succeeded, the
SystemZ back-end currently emits a rather inefficient sequence of first
converting the CC result into an integer, and then testing that integer
against zero. This commit changes the back-end to simply directly test
the CC value set by the compare-and-swap instruction.
llvm-svn: 322988
Diffstat (limited to 'llvm/lib/Target/SystemZ/SystemZISelLowering.h')
| -rw-r--r-- | llvm/lib/Target/SystemZ/SystemZISelLowering.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Target/SystemZ/SystemZISelLowering.h b/llvm/lib/Target/SystemZ/SystemZISelLowering.h index a74ca69c08b..be20cd61996 100644 --- a/llvm/lib/Target/SystemZ/SystemZISelLowering.h +++ b/llvm/lib/Target/SystemZ/SystemZISelLowering.h @@ -581,6 +581,8 @@ private: SDValue combineFP_ROUND(SDNode *N, DAGCombinerInfo &DCI) const; SDValue combineBSWAP(SDNode *N, DAGCombinerInfo &DCI) const; SDValue combineSHIFTROT(SDNode *N, DAGCombinerInfo &DCI) const; + SDValue combineBR_CCMASK(SDNode *N, DAGCombinerInfo &DCI) const; + SDValue combineSELECT_CCMASK(SDNode *N, DAGCombinerInfo &DCI) const; // If the last instruction before MBBI in MBB was some form of COMPARE, // try to replace it with a COMPARE AND BRANCH just before MBBI. |

