Fix a bug that would cause subzero to fail when --threads=0.
Creates a single TargetDataLowering.
BUG= None
R=stichnot@chromium.org
Review URL: https://codereview.chromium.org/1179313004.
diff --git a/src/IceCompiler.cpp b/src/IceCompiler.cpp
index 2db7abc..7619b17 100644
--- a/src/IceCompiler.cpp
+++ b/src/IceCompiler.cpp
@@ -141,21 +141,28 @@
}
Ctx.waitForWorkerThreads();
- Translator->transferErrorCode();
- Translator->emitConstants();
+ if (Translator->getErrorStatus()) {
+ Ctx.getErrorStatus()->assign(Translator->getErrorStatus().value());
+ } else {
+ Ctx.lowerGlobals("last");
+ Ctx.lowerProfileData();
+ Ctx.lowerConstants();
- if (Ctx.getFlags().getOutFileType() == FT_Elf) {
- TimerMarker T1(Ice::TimerStack::TT_emit, &Ctx);
- Ctx.getObjectWriter()->setUndefinedSyms(Ctx.getConstantExternSyms());
- Ctx.getObjectWriter()->writeNonUserSections();
+ if (Ctx.getFlags().getOutFileType() == FT_Elf) {
+ TimerMarker T1(Ice::TimerStack::TT_emit, &Ctx);
+ Ctx.getObjectWriter()->setUndefinedSyms(Ctx.getConstantExternSyms());
+ Ctx.getObjectWriter()->writeNonUserSections();
+ }
}
+
if (Ctx.getFlags().getSubzeroTimingEnabled())
Ctx.dumpTimers();
+
if (Ctx.getFlags().getTimeEachFunction()) {
const bool DumpCumulative = false;
Ctx.dumpTimers(GlobalContext::TSK_Funcs, DumpCumulative);
}
- const bool FinalStats = true;
+ constexpr bool FinalStats = true;
Ctx.dumpStats("_FINAL_", FinalStats);
}