aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm/lib/Target/TargetMachine.cpp
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2017-12-24 01:04:58 +0000
committerDimitry Andric <dim@FreeBSD.org>2017-12-24 01:04:58 +0000
commitda09e106efc76da569f2bad3d59b6b19b503bf39 (patch)
tree3dc7690165275d86df8841532970801b0dc1230d /contrib/llvm/lib/Target/TargetMachine.cpp
parentfb142d88715c407bebf777730d5bd6cbf73e2bc7 (diff)
parentc7dac04c3480f3c20487f912f77343139fce2d99 (diff)
Notes
Diffstat (limited to 'contrib/llvm/lib/Target/TargetMachine.cpp')
-rw-r--r--contrib/llvm/lib/Target/TargetMachine.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/contrib/llvm/lib/Target/TargetMachine.cpp b/contrib/llvm/lib/Target/TargetMachine.cpp
index ad63c7a9cb30..c4c0dd22ee0c 100644
--- a/contrib/llvm/lib/Target/TargetMachine.cpp
+++ b/contrib/llvm/lib/Target/TargetMachine.cpp
@@ -219,10 +219,8 @@ CodeGenOpt::Level TargetMachine::getOptLevel() const { return OptLevel; }
void TargetMachine::setOptLevel(CodeGenOpt::Level Level) { OptLevel = Level; }
-TargetIRAnalysis TargetMachine::getTargetIRAnalysis() {
- return TargetIRAnalysis([](const Function &F) {
- return TargetTransformInfo(F.getParent()->getDataLayout());
- });
+TargetTransformInfo TargetMachine::getTargetTransformInfo(const Function &F) {
+ return TargetTransformInfo(F.getParent()->getDataLayout());
}
void TargetMachine::getNameWithPrefix(SmallVectorImpl<char> &Name,
@@ -244,3 +242,10 @@ MCSymbol *TargetMachine::getSymbol(const GlobalValue *GV) const {
getNameWithPrefix(NameStr, GV, TLOF->getMangler());
return TLOF->getContext().getOrCreateSymbol(NameStr);
}
+
+TargetIRAnalysis TargetMachine::getTargetIRAnalysis() {
+ // Since Analysis can't depend on Target, use a std::function to invert the
+ // dependency.
+ return TargetIRAnalysis(
+ [this](const Function &F) { return this->getTargetTransformInfo(F); });
+}