]> git.proxmox.com Git - rustc.git/blob - src/llvm/lib/Analysis/FunctionTargetTransformInfo.cpp
Imported Upstream version 1.0.0+dfsg1
[rustc.git] / src / llvm / lib / Analysis / FunctionTargetTransformInfo.cpp
1 //===- llvm/Analysis/FunctionTargetTransformInfo.h --------------*- C++ -*-===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // This pass wraps a TargetTransformInfo in a FunctionPass so that it can
11 // forward along the current Function so that we can make target specific
12 // decisions based on the particular subtarget specified for each Function.
13 //
14 //===----------------------------------------------------------------------===//
15
16 #include "llvm/InitializePasses.h"
17 #include "llvm/Analysis/FunctionTargetTransformInfo.h"
18
19 using namespace llvm;
20
21 #define DEBUG_TYPE "function-tti"
22 static const char ftti_name[] = "Function TargetTransformInfo";
23 INITIALIZE_PASS_BEGIN(FunctionTargetTransformInfo, "function_tti", ftti_name, false, true)
24 INITIALIZE_AG_DEPENDENCY(TargetTransformInfo)
25 INITIALIZE_PASS_END(FunctionTargetTransformInfo, "function_tti", ftti_name, false, true)
26 char FunctionTargetTransformInfo::ID = 0;
27
28 namespace llvm {
29 FunctionPass *createFunctionTargetTransformInfoPass() {
30 return new FunctionTargetTransformInfo();
31 }
32 }
33
34 FunctionTargetTransformInfo::FunctionTargetTransformInfo()
35 : FunctionPass(ID), Fn(nullptr), TTI(nullptr) {
36 initializeFunctionTargetTransformInfoPass(*PassRegistry::getPassRegistry());
37 }
38
39 void FunctionTargetTransformInfo::getAnalysisUsage(AnalysisUsage &AU) const {
40 AU.setPreservesAll();
41 AU.addRequired<TargetTransformInfo>();
42 }
43
44 void FunctionTargetTransformInfo::releaseMemory() {}
45
46 bool FunctionTargetTransformInfo::runOnFunction(Function &F) {
47 Fn = &F;
48 TTI = &getAnalysis<TargetTransformInfo>();
49 return false;
50 }