diff options
author | Dan Gohman <gohman@apple.com> | 2008-08-28 23:21:34 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2008-08-28 23:21:34 +0000 |
commit | 99b218218c0ca3ebfdd568ddfeafa07842e9d69d (patch) | |
tree | e4205b702341cd8904cf8e126f7027a4aef2b5c5 /include/llvm/CodeGen/FastISel.h | |
parent | 327ef031ed038c55ddccb34fb922dd9c9fd735a6 (diff) | |
download | external_llvm-99b218218c0ca3ebfdd568ddfeafa07842e9d69d.zip external_llvm-99b218218c0ca3ebfdd568ddfeafa07842e9d69d.tar.gz external_llvm-99b218218c0ca3ebfdd568ddfeafa07842e9d69d.tar.bz2 |
Add a target callback for FastISel.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55512 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen/FastISel.h')
-rw-r--r-- | include/llvm/CodeGen/FastISel.h | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/include/llvm/CodeGen/FastISel.h b/include/llvm/CodeGen/FastISel.h index 20a923b..364f82e 100644 --- a/include/llvm/CodeGen/FastISel.h +++ b/include/llvm/CodeGen/FastISel.h @@ -52,10 +52,21 @@ public: /// the generated MachineInstrs. BasicBlock::iterator SelectInstructions(BasicBlock::iterator Begin, BasicBlock::iterator End, - DenseMap<const Value*, unsigned> &ValueMap, - DenseMap<const BasicBlock*, MachineBasicBlock *> &MBBMap, + DenseMap<const Value *, unsigned> &ValueMap, + DenseMap<const BasicBlock *, MachineBasicBlock *> &MBBMap, MachineBasicBlock *MBB); + /// TargetSelectInstruction - This method is called by target-independent + /// code when the normal FastISel process fails to select an instruction. + /// This gives targets a chance to emit code for anything that doesn't + /// fit into FastISel's framework. It returns true if it was successful. + /// + virtual bool + TargetSelectInstruction(Instruction *I, + DenseMap<const Value *, unsigned> &ValueMap, + DenseMap<const BasicBlock *, MachineBasicBlock *> &MBBMap, + MachineBasicBlock *MBB) = 0; + virtual ~FastISel(); protected: |