Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 //===- subzero/src/IceTranslator.cpp - ICE to machine code ------*- C++ -*-===// | 1 //===- subzero/src/IceTranslator.cpp - ICE to machine code ------*- C++ -*-===// |
| 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 // This file defines the general driver class for translating ICE to | 10 // This file defines the general driver class for translating ICE to |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 76 !matchSymbolName(Func->getFunctionName(), | 76 !matchSymbolName(Func->getFunctionName(), |
| 77 Ctx->getFlags().TranslateOnly)) { | 77 Ctx->getFlags().TranslateOnly)) { |
| 78 Func->dump(); | 78 Func->dump(); |
| 79 } else { | 79 } else { |
| 80 Func->translate(); | 80 Func->translate(); |
| 81 if (Func->hasError()) { | 81 if (Func->hasError()) { |
| 82 std::cerr << "ICE translation error: " << Func->getError() << "\n"; | 82 std::cerr << "ICE translation error: " << Func->getError() << "\n"; |
| 83 ErrorStatus = true; | 83 ErrorStatus = true; |
| 84 } | 84 } |
| 85 | 85 |
| 86 if (Ctx->getFlags().UseIntegratedAssembler) { | 86 if (!ErrorStatus) { |
|
Jim Stichnoth
2014/11/14 22:14:33
Without the !ErrorStatus guard, Om1 was aborting d
| |
| 87 Func->emitIAS(); | 87 if (Ctx->getFlags().UseIntegratedAssembler) { |
| 88 } else { | 88 Func->emitIAS(); |
| 89 Func->emit(); | 89 } else { |
| 90 Func->emit(); | |
| 91 } | |
| 90 } | 92 } |
| 91 Ctx->dumpStats(Func->getFunctionName()); | 93 Ctx->dumpStats(Func->getFunctionName()); |
| 92 } | 94 } |
| 93 | 95 |
| 94 Ctx->setVerbose(OldVerboseMask); | 96 Ctx->setVerbose(OldVerboseMask); |
| 95 } | 97 } |
| 96 | 98 |
| 97 void Translator::emitConstants() { | 99 void Translator::emitConstants() { |
| 98 if (!Ctx->getFlags().DisableTranslation && Func) | 100 if (!Ctx->getFlags().DisableTranslation && Func) |
| 99 Func->getTarget()->emitConstants(); | 101 Func->getTarget()->emitConstants(); |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 110 const IceString &TranslateOnly = Ctx->getFlags().TranslateOnly; | 112 const IceString &TranslateOnly = Ctx->getFlags().TranslateOnly; |
| 111 for (const Ice::VariableDeclaration *Global : VariableDeclarations) { | 113 for (const Ice::VariableDeclaration *Global : VariableDeclarations) { |
| 112 if (DumpGlobalVariables) | 114 if (DumpGlobalVariables) |
| 113 Global->dump(getContext(), Stream); | 115 Global->dump(getContext(), Stream); |
| 114 if (!DisableTranslation && | 116 if (!DisableTranslation && |
| 115 matchSymbolName(Global->getName(), TranslateOnly)) | 117 matchSymbolName(Global->getName(), TranslateOnly)) |
| 116 GlobalLowering->lower(*Global); | 118 GlobalLowering->lower(*Global); |
| 117 } | 119 } |
| 118 GlobalLowering.reset(); | 120 GlobalLowering.reset(); |
| 119 } | 121 } |
| OLD | NEW |