diff options
Diffstat (limited to 'lib/Target/MSIL/MSILWriter.h')
-rw-r--r-- | lib/Target/MSIL/MSILWriter.h | 258 |
1 files changed, 0 insertions, 258 deletions
diff --git a/lib/Target/MSIL/MSILWriter.h b/lib/Target/MSIL/MSILWriter.h deleted file mode 100644 index 92a3abe5c0a7..000000000000 --- a/lib/Target/MSIL/MSILWriter.h +++ /dev/null @@ -1,258 +0,0 @@ -//===-- MSILWriter.h - TargetMachine for the MSIL ---------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// This file declares the MSILWriter that is used by the MSIL. -// -//===----------------------------------------------------------------------===// -#ifndef MSILWRITER_H -#define MSILWRITER_H - -#include "llvm/CallingConv.h" -#include "llvm/Constants.h" -#include "llvm/Module.h" -#include "llvm/Instructions.h" -#include "llvm/IntrinsicInst.h" -#include "llvm/Pass.h" -#include "llvm/PassManager.h" -#include "llvm/ADT/StringRef.h" -#include "llvm/Analysis/FindUsedTypes.h" -#include "llvm/Analysis/LoopInfo.h" -#include "llvm/Support/FormattedStream.h" -#include "llvm/Support/GetElementPtrTypeIterator.h" -#include "llvm/Target/TargetData.h" -#include "llvm/Target/TargetMachine.h" - -namespace llvm { - extern Target TheMSILTarget; - - class MSILModule : public ModulePass { - Module *ModulePtr; - const std::set<const Type *>*& UsedTypes; - const TargetData*& TD; - - public: - static char ID; - MSILModule(const std::set<const Type *>*& _UsedTypes, - const TargetData*& _TD) - : ModulePass(&ID), UsedTypes(_UsedTypes), TD(_TD) {} - - void getAnalysisUsage(AnalysisUsage &AU) const { - AU.addRequired<FindUsedTypes>(); - AU.addRequired<TargetData>(); - } - - virtual const char *getPassName() const { - return "MSIL backend definitions"; - } - - virtual bool runOnModule(Module &M); - - }; - - class MSILWriter : public FunctionPass { - struct StaticInitializer { - const Constant* constant; - uint64_t offset; - - StaticInitializer() - : constant(0), offset(0) {} - - StaticInitializer(const Constant* _constant, uint64_t _offset) - : constant(_constant), offset(_offset) {} - }; - - uint64_t UniqID; - - uint64_t getUniqID() { - return ++UniqID; - } - - public: - formatted_raw_ostream &Out; - Module* ModulePtr; - const TargetData* TD; - LoopInfo *LInfo; - std::vector<StaticInitializer>* InitListPtr; - std::map<const GlobalVariable*,std::vector<StaticInitializer> > - StaticInitList; - const std::set<const Type *>* UsedTypes; - static char ID; - DenseMap<const Value*, unsigned> AnonValueNumbers; - unsigned NextAnonValueNumber; - - MSILWriter(formatted_raw_ostream &o) : FunctionPass(&ID), Out(o), - NextAnonValueNumber(0) { - UniqID = 0; - } - - enum ValueType { - UndefVT, - GlobalVT, - InternalVT, - ArgumentVT, - LocalVT, - ConstVT, - ConstExprVT - }; - - bool isVariable(ValueType V) { - return V==GlobalVT || V==InternalVT || V==ArgumentVT || V==LocalVT; - } - - bool isConstValue(ValueType V) { - return V==ConstVT || V==ConstExprVT; - } - - virtual const char *getPassName() const { return "MSIL backend"; } - - void getAnalysisUsage(AnalysisUsage &AU) const { - AU.addRequired<LoopInfo>(); - AU.setPreservesAll(); - } - - bool runOnFunction(Function &F); - - virtual bool doInitialization(Module &M); - - virtual bool doFinalization(Module &M); - - void printModuleStartup(); - - bool isZeroValue(const Value* V); - - std::string getValueName(const Value* V); - - std::string getLabelName(const Value* V); - - std::string getLabelName(const std::string& Name); - - std::string getConvModopt(CallingConv::ID CallingConvID); - - std::string getArrayTypeName(Type::TypeID TyID, const Type* Ty); - - std::string getPrimitiveTypeName(const Type* Ty, bool isSigned); - - std::string getFunctionTypeName(const Type* Ty); - - std::string getPointerTypeName(const Type* Ty); - - std::string getTypeName(const Type* Ty, bool isSigned = false, - bool isNested = false); - - ValueType getValueLocation(const Value* V); - - std::string getTypePostfix(const Type* Ty, bool Expand, - bool isSigned = false); - - void printConvToPtr(); - - void printPtrLoad(uint64_t N); - - void printValuePtrLoad(const Value* V); - - void printConstLoad(const Constant* C); - - void printValueLoad(const Value* V); - - void printValueSave(const Value* V); - - void printBinaryInstruction(const char* Name, const Value* Left, - const Value* Right); - - void printSimpleInstruction(const char* Inst, const char* Operand = NULL); - - void printPHICopy(const BasicBlock* Src, const BasicBlock* Dst); - - void printBranchToBlock(const BasicBlock* CurrBB, - const BasicBlock* TrueBB, - const BasicBlock* FalseBB); - - void printBranchInstruction(const BranchInst* Inst); - - void printSelectInstruction(const Value* Cond, const Value* VTrue, - const Value* VFalse); - - void printIndirectLoad(const Value* V); - - void printIndirectSave(const Value* Ptr, const Value* Val); - - void printIndirectSave(const Type* Ty); - - void printCastInstruction(unsigned int Op, const Value* V, - const Type* Ty, const Type* SrcTy=0); - - void printGepInstruction(const Value* V, gep_type_iterator I, - gep_type_iterator E); - - std::string getCallSignature(const FunctionType* Ty, - const Instruction* Inst, - std::string Name); - - void printFunctionCall(const Value* FnVal, const Instruction* Inst); - - void printIntrinsicCall(const IntrinsicInst* Inst); - - void printCallInstruction(const Instruction* Inst); - - void printICmpInstruction(unsigned Predicate, const Value* Left, - const Value* Right); - - void printFCmpInstruction(unsigned Predicate, const Value* Left, - const Value* Right); - - void printInvokeInstruction(const InvokeInst* Inst); - - void printSwitchInstruction(const SwitchInst* Inst); - - void printVAArgInstruction(const VAArgInst* Inst); - - void printAllocaInstruction(const AllocaInst* Inst); - - void printInstruction(const Instruction* Inst); - - void printLoop(const Loop* L); - - void printBasicBlock(const BasicBlock* BB); - - void printLocalVariables(const Function& F); - - void printFunctionBody(const Function& F); - - void printConstantExpr(const ConstantExpr* CE); - - void printStaticInitializerList(); - - void printFunction(const Function& F); - - void printDeclarations(const TypeSymbolTable& ST); - - unsigned int getBitWidth(const Type* Ty); - - void printStaticConstant(const Constant* C, uint64_t& Offset); - - void printStaticInitializer(const Constant* C, const std::string& Name); - - void printVariableDefinition(const GlobalVariable* G); - - void printGlobalVariables(); - - const char* getLibraryName(const Function* F); - - const char* getLibraryName(const GlobalVariable* GV); - - const char* getLibraryForSymbol(StringRef Name, bool isFunction, - CallingConv::ID CallingConv); - - void printExternals(); - }; - -} - -#endif - |