summaryrefslogtreecommitdiff
path: root/lib/Target/X86/X86ISelDAGToDAG.cpp
diff options
context:
space:
mode:
authorEric Christopher <echristo@gmail.com>2014-05-22 01:53:26 +0000
committerEric Christopher <echristo@gmail.com>2014-05-22 01:53:26 +0000
commitc5f6f15fe50ab2ead490f21671c2c407b1c41dcd (patch)
treee878f822beaff250e32b096397dd963e805e2253 /lib/Target/X86/X86ISelDAGToDAG.cpp
parent26bbeece29b85cae68657aaa2af2e33d5ca67182 (diff)
downloadllvm-c5f6f15fe50ab2ead490f21671c2c407b1c41dcd.tar.gz
llvm-c5f6f15fe50ab2ead490f21671c2c407b1c41dcd.tar.bz2
llvm-c5f6f15fe50ab2ead490f21671c2c407b1c41dcd.tar.xz
Override runOnMachineFunction for X86ISelDAGToDAG so that we can
reset the subtarget on each function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209384 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86ISelDAGToDAG.cpp')
-rw-r--r--lib/Target/X86/X86ISelDAGToDAG.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/Target/X86/X86ISelDAGToDAG.cpp b/lib/Target/X86/X86ISelDAGToDAG.cpp
index 03c9620db4..74386d3399 100644
--- a/lib/Target/X86/X86ISelDAGToDAG.cpp
+++ b/lib/Target/X86/X86ISelDAGToDAG.cpp
@@ -162,6 +162,13 @@ namespace {
return "X86 DAG->DAG Instruction Selection";
}
+ bool runOnMachineFunction(MachineFunction &MF) override {
+ // Reset the subtarget each time through.
+ Subtarget = &TM.getSubtarget<X86Subtarget>();
+ SelectionDAGISel::runOnMachineFunction(MF);
+ return true;
+ }
+
void EmitFunctionEntryCode() override;
bool IsProfitableToFold(SDValue N, SDNode *U, SDNode *Root) const override;