summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86ISelLowering.h
diff options
context:
space:
mode:
authorAmaury Sechet <deadalnix@gmail.com>2017-06-01 11:14:17 +0000
committerAmaury Sechet <deadalnix@gmail.com>2017-06-01 11:14:17 +0000
commit251ea8a4f8b775d9fc39e25e208ff55ef86090c8 (patch)
tree9f8679f45701f0c20a5539217a6f29fd726c7c21 /llvm/lib/Target/X86/X86ISelLowering.h
parent6506a90a703ba1c034602b07cce81f633aebf9e4 (diff)
downloadbcm5719-llvm-251ea8a4f8b775d9fc39e25e208ff55ef86090c8.tar.gz
bcm5719-llvm-251ea8a4f8b775d9fc39e25e208ff55ef86090c8.zip
Do not legalize large setcc with setcce, introduce setcccarry and do it with usubo/setcccarry.
Summary: This is a continuation of the work started in D29872 . Passing the carry down as a value rather than as a glue allows for further optimizations. Introducing setcccarry makes the use of addc/subc unecessary and we can start the removal process. This patch only introduce the optimization strictly required to get the same level of optimization as was available before nothing more. Reviewers: jyknight, nemanjai, mkuper, spatel, RKSimon, zvi, bkramer Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D33374 llvm-svn: 304404
Diffstat (limited to 'llvm/lib/Target/X86/X86ISelLowering.h')
-rw-r--r--llvm/lib/Target/X86/X86ISelLowering.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.h b/llvm/lib/Target/X86/X86ISelLowering.h
index 18106c2eb39..a3d93d90a92 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.h
+++ b/llvm/lib/Target/X86/X86ISelLowering.h
@@ -1164,6 +1164,7 @@ namespace llvm {
SelectionDAG &DAG) const;
SDValue LowerSETCC(SDValue Op, SelectionDAG &DAG) const;
SDValue LowerSETCCE(SDValue Op, SelectionDAG &DAG) const;
+ SDValue LowerSETCCCARRY(SDValue Op, SelectionDAG &DAG) const;
SDValue LowerSELECT(SDValue Op, SelectionDAG &DAG) const;
SDValue LowerBRCOND(SDValue Op, SelectionDAG &DAG) const;
SDValue LowerJumpTable(SDValue Op, SelectionDAG &DAG) const;
OpenPOWER on IntegriCloud