Home | History | Annotate | Download | only in CodeGen
      1 //===- BasicTargetTransformInfo.cpp - Basic target-independent TTI impl ---===//
      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 /// \file
     10 /// This file provides the implementation of a basic TargetTransformInfo pass
     11 /// predicated on the target abstractions present in the target independent
     12 /// code generator. It uses these (primarily TargetLowering) to model as much
     13 /// of the TTI query interface as possible. It is included by most targets so
     14 /// that they can specialize only a small subset of the query space.
     15 ///
     16 //===----------------------------------------------------------------------===//
     17 
     18 #include "llvm/CodeGen/BasicTTIImpl.h"
     19 #include "llvm/Analysis/LoopInfo.h"
     20 #include "llvm/Analysis/TargetTransformInfo.h"
     21 #include "llvm/Analysis/TargetTransformInfoImpl.h"
     22 #include "llvm/CodeGen/Passes.h"
     23 #include "llvm/Support/CommandLine.h"
     24 #include <utility>
     25 using namespace llvm;
     26 
     27 #define DEBUG_TYPE "basictti"
     28 
     29 // This flag is used by the template base class for BasicTTIImpl, and here to
     30 // provide a definition.
     31 cl::opt<unsigned>
     32     llvm::PartialUnrollingThreshold("partial-unrolling-threshold", cl::init(0),
     33                                     cl::desc("Threshold for partial unrolling"),
     34                                     cl::Hidden);
     35 
     36 BasicTTIImpl::BasicTTIImpl(const TargetMachine *TM, const Function &F)
     37     : BaseT(TM, F.getParent()->getDataLayout()), ST(TM->getSubtargetImpl(F)),
     38       TLI(ST->getTargetLowering()) {}
     39