diff options
Diffstat (limited to 'projects/ModuleMaker/tools/ModuleMaker/ModuleMaker.cpp')
-rw-r--r-- | projects/ModuleMaker/tools/ModuleMaker/ModuleMaker.cpp | 55 |
1 files changed, 0 insertions, 55 deletions
diff --git a/projects/ModuleMaker/tools/ModuleMaker/ModuleMaker.cpp b/projects/ModuleMaker/tools/ModuleMaker/ModuleMaker.cpp deleted file mode 100644 index 71e6c8c..0000000 --- a/projects/ModuleMaker/tools/ModuleMaker/ModuleMaker.cpp +++ /dev/null @@ -1,55 +0,0 @@ -//===- ModuleMaker.cpp - Example project which creates modules --*- C++ -*-===// -// -// This programs is a simple example that creates an LLVM module "from scratch", -// emitting it as a bytecode file to standard out. This is just to show how -// LLVM projects work and to demonstrate some of the LLVM APIs. -// -//===----------------------------------------------------------------------===// - -#include "llvm/Module.h" -#include "llvm/DerivedTypes.h" -#include "llvm/Constants.h" -#include "llvm/Instructions.h" -#include "llvm/Bytecode/Writer.h" -#include <iostream> - -using namespace llvm; - -int main() { - // Create the "module" or "program" or "translation unit" to hold the - // function - Module *M = new Module("test"); - - // Create the main function: first create the type 'int ()' - FunctionType *FT = FunctionType::get(Type::IntTy, std::vector<const Type*>(), - /*not vararg*/false); - - // By passing a module as the last parameter to the Function constructor, - // it automatically gets appended to the Module. - Function *F = new Function(FT, Function::ExternalLinkage, "main", M); - - // Add a basic block to the function... again, it automatically inserts - // because of the last argument. - BasicBlock *BB = new BasicBlock("EntryBlock", F); - - // Get pointers to the constant integers... - Value *Two = ConstantSInt::get(Type::IntTy, 2); - Value *Three = ConstantSInt::get(Type::IntTy, 3); - - // Create the add instruction... does not insert... - Instruction *Add = BinaryOperator::create(Instruction::Add, Two, Three, - "addresult"); - - // explicitly insert it into the basic block... - BB->getInstList().push_back(Add); - - // Create the return instruction and add it to the basic block - BB->getInstList().push_back(new ReturnInst(Add)); - - // Output the bytecode file to stdout - WriteBytecodeToFile(M, std::cout); - - // Delete the module and all of its contents. - delete M; - return 0; -} |