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 |