OLD | NEW |
1 //===- subzero/src/IceCompiler.cpp - Driver for bitcode translation -------===// | 1 //===- subzero/src/IceCompiler.cpp - Driver for bitcode translation -------===// |
2 // | 2 // |
3 // The Subzero Code Generator | 3 // The Subzero Code Generator |
4 // | 4 // |
5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
7 // | 7 // |
8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
9 /// | 9 /// |
10 /// \file | 10 /// \file |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
80 Ctx.startWorkerThreads(); | 80 Ctx.startWorkerThreads(); |
81 | 81 |
82 std::unique_ptr<Translator> Translator; | 82 std::unique_ptr<Translator> Translator; |
83 const std::string IRFilename = Flags.getIRFilename(); | 83 const std::string IRFilename = Flags.getIRFilename(); |
84 const bool BuildOnRead = Flags.getBuildOnRead() && !llvmIRInput(IRFilename) && | 84 const bool BuildOnRead = Flags.getBuildOnRead() && !llvmIRInput(IRFilename) && |
85 !wasmInput(IRFilename); | 85 !wasmInput(IRFilename); |
86 const bool WasmBuildOnRead = Flags.getBuildOnRead() && wasmInput(IRFilename); | 86 const bool WasmBuildOnRead = Flags.getBuildOnRead() && wasmInput(IRFilename); |
87 if (BuildOnRead) { | 87 if (BuildOnRead) { |
88 std::unique_ptr<PNaClTranslator> PTranslator(new PNaClTranslator(&Ctx)); | 88 std::unique_ptr<PNaClTranslator> PTranslator(new PNaClTranslator(&Ctx)); |
89 #ifdef PNACL_LLVM | 89 #ifdef PNACL_LLVM |
90 std::unique_ptr<llvm::StreamingMemoryObject> MemObj(new llvm::StreamingMemor
yObjectImpl(InputStream.release())); | 90 std::unique_ptr<llvm::StreamingMemoryObject> MemObj( |
91 #else // !PNACL_LLVM | 91 new llvm::StreamingMemoryObjectImpl(InputStream.release())); |
92 std::unique_ptr<llvm::StreamingMemoryObject> MemObj(new llvm::StreamingMemor
yObject(std::move(InputStream))); | 92 #else // !PNACL_LLVM |
| 93 std::unique_ptr<llvm::StreamingMemoryObject> MemObj( |
| 94 new llvm::StreamingMemoryObject(std::move(InputStream))); |
93 #endif // !PNACL_LLVM | 95 #endif // !PNACL_LLVM |
94 PTranslator->translate(IRFilename, std::move(MemObj)); | 96 PTranslator->translate(IRFilename, std::move(MemObj)); |
95 Translator.reset(PTranslator.release()); | 97 Translator.reset(PTranslator.release()); |
96 } else if (WasmBuildOnRead) { | 98 } else if (WasmBuildOnRead) { |
97 if (BuildDefs::wasm()) { | 99 if (BuildDefs::wasm()) { |
98 #if !ALLOW_WASM | 100 #if !ALLOW_WASM |
99 assert(false && "wasm not allowed"); | 101 assert(false && "wasm not allowed"); |
100 #else | 102 #else |
101 std::unique_ptr<WasmTranslator> WTranslator(new WasmTranslator(&Ctx)); | 103 std::unique_ptr<WasmTranslator> WTranslator(new WasmTranslator(&Ctx)); |
102 | 104 |
(...skipping 21 matching lines...) Expand all Loading... |
124 llvm::SMDiagnostic Err; | 126 llvm::SMDiagnostic Err; |
125 TimerMarker T1(Ice::TimerStack::TT_parse, &Ctx); | 127 TimerMarker T1(Ice::TimerStack::TT_parse, &Ctx); |
126 #ifdef PNACL_LLVM | 128 #ifdef PNACL_LLVM |
127 llvm::DiagnosticHandlerFunction DiagnosticHandler = | 129 llvm::DiagnosticHandlerFunction DiagnosticHandler = |
128 Flags.getLLVMVerboseErrors() | 130 Flags.getLLVMVerboseErrors() |
129 ? redirectNaClDiagnosticToStream(llvm::errs()) | 131 ? redirectNaClDiagnosticToStream(llvm::errs()) |
130 : nullptr; | 132 : nullptr; |
131 std::unique_ptr<llvm::Module> Mod = | 133 std::unique_ptr<llvm::Module> Mod = |
132 NaClParseIRFile(IRFilename, Flags.getInputFileFormat(), Err, | 134 NaClParseIRFile(IRFilename, Flags.getInputFileFormat(), Err, |
133 llvm::getGlobalContext(), DiagnosticHandler); | 135 llvm::getGlobalContext(), DiagnosticHandler); |
134 #else // !PNACL_LLVM | 136 #else // !PNACL_LLVM |
135 llvm::DiagnosticHandlerFunction DiagnosticHandler = nullptr; | 137 llvm::DiagnosticHandlerFunction DiagnosticHandler = nullptr; |
136 llvm::LLVMContext Context; | 138 llvm::LLVMContext Context; |
137 std::unique_ptr<llvm::Module> Mod = | 139 std::unique_ptr<llvm::Module> Mod = parseIRFile(IRFilename, Err, Context); |
138 parseIRFile(IRFilename, Err, Context); | |
139 #endif // !PNACL_LLVM | 140 #endif // !PNACL_LLVM |
140 if (!Mod) { | 141 if (!Mod) { |
141 Err.print(Flags.getAppName().c_str(), llvm::errs()); | 142 Err.print(Flags.getAppName().c_str(), llvm::errs()); |
142 Ctx.getErrorStatus()->assign(EC_Bitcode); | 143 Ctx.getErrorStatus()->assign(EC_Bitcode); |
143 Ctx.waitForWorkerThreads(); | 144 Ctx.waitForWorkerThreads(); |
144 return; | 145 return; |
145 } | 146 } |
146 | 147 |
147 std::unique_ptr<Converter> Converter(new class Converter(Mod.get(), &Ctx)); | 148 std::unique_ptr<Converter> Converter(new class Converter(Mod.get(), &Ctx)); |
148 Converter->convertToIce(); | 149 Converter->convertToIce(); |
(...skipping 26 matching lines...) Expand all Loading... |
175 Ctx.dumpTimers(); | 176 Ctx.dumpTimers(); |
176 | 177 |
177 if (getFlags().getTimeEachFunction()) { | 178 if (getFlags().getTimeEachFunction()) { |
178 constexpr bool NoDumpCumulative = false; | 179 constexpr bool NoDumpCumulative = false; |
179 Ctx.dumpTimers(GlobalContext::TSK_Funcs, NoDumpCumulative); | 180 Ctx.dumpTimers(GlobalContext::TSK_Funcs, NoDumpCumulative); |
180 } | 181 } |
181 Ctx.dumpStats(); | 182 Ctx.dumpStats(); |
182 } | 183 } |
183 | 184 |
184 } // end of namespace Ice | 185 } // end of namespace Ice |
OLD | NEW |