| Index: lib/Target/PNaCl/PNaClTargetMachine.cpp
|
| diff --git a/lib/Target/PNaCl/PNaClTargetMachine.cpp b/lib/Target/PNaCl/PNaClTargetMachine.cpp
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..9e0e380420f03ae3f08c1b6635b2d9a6e3e1e629
|
| --- /dev/null
|
| +++ b/lib/Target/PNaCl/PNaClTargetMachine.cpp
|
| @@ -0,0 +1,66 @@
|
| +//===-- llvm/Target/PNaCl/PNaClTargetMachine.cpp - Target Information -*- C++ -*-===//
|
| +//
|
| +// The LLVM Compiler Infrastructure
|
| +//
|
| +// This file is distributed under the University of Illinois Open Source
|
| +// License. See LICENSE.TXT for details.
|
| +//
|
| +//===----------------------------------------------------------------------===//
|
| +//
|
| +// This file defines the TargetMachine class specific to PNaCl.
|
| +//
|
| +//===----------------------------------------------------------------------===//
|
| +
|
| +#include "PNaClTargetMachine.h"
|
| +#include "TargetInfo/PNaClTargetInfo.h"
|
| +
|
| +#include "llvm/Bitcode/BitcodeWriterPass.h"
|
| +#include "llvm/IR/IRPrintingPasses.h"
|
| +#include "llvm/IR/LegacyPassManager.h"
|
| +#include "llvm/Support/TargetRegistry.h"
|
| +
|
| +using namespace llvm;
|
| +
|
| +extern "C" void LLVMInitializePNaClTarget() {
|
| + RegisterTargetMachine<PNaClTargetMachine> X(PNaClLe32_Target);
|
| +}
|
| +
|
| +static const char* Datalayout = "e-p:32:32-i64:64-n32";
|
| +
|
| +llvm::PNaClTargetMachine::PNaClTargetMachine(const Target& T, StringRef TT,
|
| + StringRef CPU, StringRef FS,
|
| + const TargetOptions &Options,
|
| + Reloc::Model RM,
|
| + CodeModel::Model CM,
|
| + CodeGenOpt::Level OL)
|
| + : TargetMachine(T, Datalayout, TT, CPU, FS, Options)
|
| +{
|
| + (void)RM; (void)CM; (void)OL;
|
| +}
|
| +
|
| +llvm::PNaClTargetMachine::~PNaClTargetMachine() {
|
| +}
|
| +
|
| +bool llvm::PNaClTargetMachine::addPassesToEmitFile(PassManagerBase &PM,
|
| + raw_pwrite_stream &Out,
|
| + CodeGenFileType FType,
|
| + bool DisableVerify,
|
| + AnalysisID StartAfter,
|
| + AnalysisID StopAfter) {
|
| + (void)DisableVerify;
|
| + (void)StartAfter;
|
| + (void)StopAfter;
|
| +
|
| + switch(FType) {
|
| + case CGFT_ObjectFile:
|
| + PM.add(createBitcodeWriterPass(Out));
|
| + break;
|
| + case CGFT_AssemblyFile:
|
| + PM.add(createPrintModulePass(Out));
|
| + break;
|
| + case CGFT_Null:
|
| + return true;
|
| + }
|
| +
|
| + return false;
|
| +}
|
|
|