Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(201)

Unified Diff: src/IceConverter.cpp

Issue 361733002: Update Subzero to start parsing PNaCl bitcode files. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Reformat IceConverter.cpp Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/IceConverter.cpp
diff --git a/src/IceConverter.cpp b/src/IceConverter.cpp
index 654d5e87532022dc27d5db8220de8a768c33de46..af22d7ba6b7fc0c79498764eeeda96ef1489a098 100644
--- a/src/IceConverter.cpp
+++ b/src/IceConverter.cpp
@@ -15,11 +15,11 @@
#include "IceCfg.h"
#include "IceCfgNode.h"
+#include "IceClFlags.h"
#include "IceDefs.h"
#include "IceGlobalContext.h"
#include "IceInst.h"
#include "IceOperand.h"
-#include "IceTargetLowering.h"
#include "IceTypes.h"
#include "llvm/IR/Constant.h"
@@ -616,64 +616,24 @@ private:
std::map<const BasicBlock *, Ice::CfgNode *> NodeMap;
};
-}
+} // end of anonymous namespace.
int Ice::Converter::convertToIce(llvm::Module *Mod) {
- int ExitStatus = 0;
-
- // Ideally, Func would be declared inside the loop and its object
- // would be automatically deleted at the end of the loop iteration.
- // However, emitting the constant pool requires a valid Cfg object,
- // so we need to defer deleting the last non-empty Cfg object until
- // outside the loop and after emitting the constant pool. TODO:
- // Since all constants are globally pooled in the Ice::GlobalContext
- // object, change all Ice::Constant related functions to use
- // GlobalContext instead of Cfg, and then clean up this loop.
- OwningPtr<Ice::Cfg> Func;
-
for (Module::const_iterator I = Mod->begin(), E = Mod->end(); I != E; ++I) {
if (I->empty())
continue;
LLVM2ICEConverter FunctionConverter(Ctx);
Ice::Timer TConvert;
- Func.reset(FunctionConverter.convertFunction(I));
- if (DisableInternal)
- Func->setInternal(false);
-
- if (SubzeroTimingEnabled) {
+ Ice::Cfg *Fcn = FunctionConverter.convertFunction(I);
+ if (Flags.SubzeroTimingEnabled) {
std::cerr << "[Subzero timing] Convert function "
- << Func->getFunctionName() << ": " << TConvert.getElapsedSec()
+ << Fcn->getFunctionName() << ": " << TConvert.getElapsedSec()
<< " sec\n";
}
-
- if (DisableTranslation) {
- Func->dump();
- } else {
- Ice::Timer TTranslate;
- Func->translate();
- if (SubzeroTimingEnabled) {
- std::cerr << "[Subzero timing] Translate function "
- << Func->getFunctionName() << ": "
- << TTranslate.getElapsedSec() << " sec\n";
- }
- if (Func->hasError()) {
- errs() << "ICE translation error: " << Func->getError() << "\n";
- ExitStatus = 1;
- }
-
- Ice::Timer TEmit;
- Func->emit();
- if (SubzeroTimingEnabled) {
- std::cerr << "[Subzero timing] Emit function "
- << Func->getFunctionName() << ": " << TEmit.getElapsedSec()
- << " sec\n";
- }
- }
+ translateFcn(Fcn);
}
- if (!DisableTranslation && Func)
- Func->getTarget()->emitConstants();
-
+ emitConstants();
return ExitStatus;
}
« no previous file with comments | « src/IceConverter.h ('k') | src/IceTranslator.h » ('j') | src/PNaClTranslator.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698