summaryrefslogtreecommitdiff
path: root/include/llvm/CodeGen/FastISel.h
diff options
context:
space:
mode:
authorBob Wilson <bob.wilson@apple.com>2012-08-03 04:06:28 +0000
committerBob Wilson <bob.wilson@apple.com>2012-08-03 04:06:28 +0000
commitd49edb7ab098fa0c82f59efbcf1b4eb2958f8dc3 (patch)
tree4b5501fbb4854f887d64f9f1f828402f0fcc6600 /include/llvm/CodeGen/FastISel.h
parentd1e672e0234b99dbff78baed0e47d033cf963abe (diff)
downloadllvm-d49edb7ab098fa0c82f59efbcf1b4eb2958f8dc3.tar.gz
llvm-d49edb7ab098fa0c82f59efbcf1b4eb2958f8dc3.tar.bz2
llvm-d49edb7ab098fa0c82f59efbcf1b4eb2958f8dc3.tar.xz
Fall back to selection DAG isel for calls to builtin functions.
Fast isel doesn't currently have support for translating builtin function calls to target instructions. For embedded environments where the library functions are not available, this is a matter of correctness and not just optimization. Most of this patch is just arranging to make the TargetLibraryInfo available in fast isel. <rdar://problem/12008746> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161232 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen/FastISel.h')
-rw-r--r--include/llvm/CodeGen/FastISel.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/include/llvm/CodeGen/FastISel.h b/include/llvm/CodeGen/FastISel.h
index 9fe743eddb..7cb96952aa 100644
--- a/include/llvm/CodeGen/FastISel.h
+++ b/include/llvm/CodeGen/FastISel.h
@@ -34,6 +34,7 @@ class MachineFrameInfo;
class MachineRegisterInfo;
class TargetData;
class TargetInstrInfo;
+class TargetLibraryInfo;
class TargetLowering;
class TargetMachine;
class TargetRegisterClass;
@@ -57,6 +58,7 @@ protected:
const TargetInstrInfo &TII;
const TargetLowering &TLI;
const TargetRegisterInfo &TRI;
+ const TargetLibraryInfo *LibInfo;
/// The position of the last instruction for materializing constants
/// for use in the current block. It resets to EmitStartPt when it
@@ -144,7 +146,8 @@ public:
virtual ~FastISel();
protected:
- explicit FastISel(FunctionLoweringInfo &funcInfo);
+ explicit FastISel(FunctionLoweringInfo &funcInfo,
+ const TargetLibraryInfo *libInfo);
/// TargetSelectInstruction - This method is called by target-independent
/// code when the normal FastISel process fails to select an instruction.