/3rd_party/llvm/include/llvm/CodeGen/ProcessImplicitDefs.h
https://code.google.com/p/softart/ · C++ Header · 51 lines · 28 code · 13 blank · 10 comment · 0 complexity · 7101af4212372b4cf4270e0ed9637f0d MD5 · raw file
- //===-------------- llvm/CodeGen/ProcessImplicitDefs.h ----------*- C++ -*-===//
- //
- // The LLVM Compiler Infrastructure
- //
- // This file is distributed under the University of Illinois Open Source
- // License. See LICENSE.TXT for details.
- //
- //===----------------------------------------------------------------------===//
- #ifndef LLVM_CODEGEN_PROCESSIMPLICITDEFS_H
- #define LLVM_CODEGEN_PROCESSIMPLICITDEFS_H
- #include "llvm/CodeGen/MachineFunctionPass.h"
- #include "llvm/ADT/SmallSet.h"
- namespace llvm {
- class MachineInstr;
- class TargetInstrInfo;
- class TargetRegisterInfo;
- class MachineRegisterInfo;
- class LiveVariables;
- /// Process IMPLICIT_DEF instructions and make sure there is one implicit_def
- /// for each use. Add isUndef marker to implicit_def defs and their uses.
- class ProcessImplicitDefs : public MachineFunctionPass {
- const TargetInstrInfo *TII;
- const TargetRegisterInfo *TRI;
- MachineRegisterInfo *MRI;
- LiveVariables *LV;
- bool CanTurnIntoImplicitDef(MachineInstr *MI, unsigned Reg,
- unsigned OpIdx,
- SmallSet<unsigned, 8> &ImpDefRegs);
- public:
- static char ID;
- ProcessImplicitDefs() : MachineFunctionPass(ID) {
- initializeProcessImplicitDefsPass(*PassRegistry::getPassRegistry());
- }
- virtual void getAnalysisUsage(AnalysisUsage &au) const;
- virtual bool runOnMachineFunction(MachineFunction &fn);
- };
- }
- #endif // LLVM_CODEGEN_PROCESSIMPLICITDEFS_H