summaryrefslogtreecommitdiff
path: root/lib/Target/MSIL/MSILWriter.h
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-08-28 16:33:36 +0000
committerChris Lattner <sabre@nondot.org>2010-08-28 16:33:36 +0000
commit885b661e1004978f39cd1d74e586f193dfc0b0a6 (patch)
treea94f664646bc8d8463cf362ef07e4e7926c05a62 /lib/Target/MSIL/MSILWriter.h
parent9df0a0a8711596eaa3c7dd3413c0835ad99d3929 (diff)
downloadllvm-885b661e1004978f39cd1d74e586f193dfc0b0a6.tar.gz
llvm-885b661e1004978f39cd1d74e586f193dfc0b0a6.tar.bz2
llvm-885b661e1004978f39cd1d74e586f193dfc0b0a6.tar.xz
remove the MSIL backend. It isn't maintained, is buggy, has no testcases
and hasn't kept up with ToT. Approved by Anton. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112375 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/MSIL/MSILWriter.h')
-rw-r--r--lib/Target/MSIL/MSILWriter.h258
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 87440e2298..0000000000
--- 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
-