diff options
Diffstat (limited to 'include/llvm/CodeGen/SelectionDAGISel.h')
| -rw-r--r-- | include/llvm/CodeGen/SelectionDAGISel.h | 32 | 
1 files changed, 22 insertions, 10 deletions
diff --git a/include/llvm/CodeGen/SelectionDAGISel.h b/include/llvm/CodeGen/SelectionDAGISel.h index c42f6558007b..5f503deff10e 100644 --- a/include/llvm/CodeGen/SelectionDAGISel.h +++ b/include/llvm/CodeGen/SelectionDAGISel.h @@ -12,13 +12,13 @@  //  //===----------------------------------------------------------------------===// -#ifndef LLVM_CODEGEN_SELECTIONDAG_ISEL_H -#define LLVM_CODEGEN_SELECTIONDAG_ISEL_H +#ifndef LLVM_CODEGEN_SELECTIONDAGISEL_H +#define LLVM_CODEGEN_SELECTIONDAGISEL_H -#include "llvm/BasicBlock.h" -#include "llvm/Pass.h" -#include "llvm/CodeGen/SelectionDAG.h"  #include "llvm/CodeGen/MachineFunctionPass.h" +#include "llvm/CodeGen/SelectionDAG.h" +#include "llvm/IR/BasicBlock.h" +#include "llvm/Pass.h"  namespace llvm {    class FastISel; @@ -31,6 +31,7 @@ namespace llvm {    class TargetLowering;    class TargetLibraryInfo;    class TargetInstrInfo; +  class TargetTransformInfo;    class FunctionLoweringInfo;    class ScheduleHazardRecognizer;    class GCFunctionInfo; @@ -44,6 +45,7 @@ public:    const TargetMachine &TM;    const TargetLowering &TLI;    const TargetLibraryInfo *LibInfo; +  const TargetTransformInfo *TTI;    FunctionLoweringInfo *FuncInfo;    MachineFunction *MF;    MachineRegisterInfo *RegInfo; @@ -247,16 +249,26 @@ private:                      const SDValue *Ops, unsigned NumOps, unsigned EmitNodeInfo);    void PrepareEHLandingPad(); + +  /// \brief Perform instruction selection on all basic blocks in the function.    void SelectAllBasicBlocks(const Function &Fn); -  bool TryToFoldFastISelLoad(const LoadInst *LI, const Instruction *FoldInst, -                             FastISel *FastIS); -  void FinishBasicBlock(); +  /// \brief Perform instruction selection on a single basic block, for +  /// instructions between \p Begin and \p End.  \p HadTailCall will be set +  /// to true if a call in the block was translated as a tail call.    void SelectBasicBlock(BasicBlock::const_iterator Begin,                          BasicBlock::const_iterator End,                          bool &HadTailCall); + +  bool TryToFoldFastISelLoad(const LoadInst *LI, const Instruction *FoldInst, +                             FastISel *FastIS); +  void FinishBasicBlock(); +    void CodeGenAndEmitDAG(); -  void LowerArguments(const BasicBlock *BB); + +  /// \brief Generate instructions for lowering the incoming arguments of the +  /// given function. +  void LowerArguments(const Function &F);    void ComputeLiveOutVRegInfo(); @@ -279,4 +291,4 @@ private:  } -#endif /* LLVM_CODEGEN_SELECTIONDAG_ISEL_H */ +#endif /* LLVM_CODEGEN_SELECTIONDAGISEL_H */  | 
