diff options
author | Michael Ilseman <milseman@apple.com> | 2013-02-26 23:15:23 +0000 |
---|---|---|
committer | Michael Ilseman <milseman@apple.com> | 2013-02-26 23:15:23 +0000 |
commit | bdc98d3510c1b3d32679ed3188becdc6d6dfd545 (patch) | |
tree | 1d45dcad9f1ddbdf14c2bd3caa28b47cbf2cb92f | |
parent | 533048228fe7bf3bac05e7db3d2f12aaf3f47fa1 (diff) |
Have a way for a target to opt-out of target-independent fast isel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176136 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/CodeGen/FastISel.h | 5 | ||||
-rw-r--r-- | lib/CodeGen/SelectionDAG/FastISel.cpp | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/include/llvm/CodeGen/FastISel.h b/include/llvm/CodeGen/FastISel.h index 705db7e643..57273d8b81 100644 --- a/include/llvm/CodeGen/FastISel.h +++ b/include/llvm/CodeGen/FastISel.h @@ -372,6 +372,11 @@ protected: return 0; } + /// Whether we should skip target-independent fast-isel + virtual bool SkipTargetIndependentFastISel() { + return false; + } + private: bool SelectBinaryOp(const User *I, unsigned ISDOpcode); diff --git a/lib/CodeGen/SelectionDAG/FastISel.cpp b/lib/CodeGen/SelectionDAG/FastISel.cpp index 04f5b32e04..ff9b2ba542 100644 --- a/lib/CodeGen/SelectionDAG/FastISel.cpp +++ b/lib/CodeGen/SelectionDAG/FastISel.cpp @@ -822,7 +822,7 @@ FastISel::SelectInstruction(const Instruction *I) { } // First, try doing target-independent selection. - if (SelectOperator(I, I->getOpcode())) { + if (!SkipTargetIndependentFastISel() && SelectOperator(I, I->getOpcode())) { ++NumFastIselSuccessIndependent; DL = DebugLoc(); return true; |