| Index: src/IceConverter.cpp
|
| diff --git a/src/IceConverter.cpp b/src/IceConverter.cpp
|
| index 7cc8d5adc464ea07b59ffcc27f0a297aeb940be7..cc523fa541b0a2d185765cc0e3924107354df6b4 100644
|
| --- a/src/IceConverter.cpp
|
| +++ b/src/IceConverter.cpp
|
| @@ -84,7 +84,9 @@ public:
|
| : LLVM2ICEConverter(Converter), Func(nullptr) {}
|
|
|
| void convertFunction(const Function *F) {
|
| - Func = Ice::Cfg::create(Ctx);
|
| + if (Ctx->isIRGenerationDisabled())
|
| + return;
|
| + Func = Ice::Cfg::create(Ctx, Converter.getNextSequenceNumber());
|
| Ice::Cfg::setCurrentCfg(Func.get());
|
|
|
| VarMap.clear();
|
| @@ -658,10 +660,10 @@ public:
|
| : LLVM2ICEConverter(Converter) {}
|
|
|
| /// Converts global variables, and their initializers into ICE
|
| - /// global variable declarations, for module Mod. Puts corresponding
|
| - /// converted declarations into VariableDeclarations.
|
| - void convertGlobalsToIce(Module *Mod,
|
| - Ice::VariableDeclarationList &VariableDeclarations);
|
| + /// global variable declarations, for module Mod. Returns the set of
|
| + /// converted declarations.
|
| + std::unique_ptr<Ice::VariableDeclarationList>
|
| + convertGlobalsToIce(Module *Mod);
|
|
|
| private:
|
| // Adds the Initializer to the list of initializers for the Global
|
| @@ -696,8 +698,10 @@ private:
|
| }
|
| };
|
|
|
| -void LLVM2ICEGlobalsConverter::convertGlobalsToIce(
|
| - Module *Mod, Ice::VariableDeclarationList &VariableDeclarations) {
|
| +std::unique_ptr<Ice::VariableDeclarationList>
|
| +LLVM2ICEGlobalsConverter::convertGlobalsToIce(Module *Mod) {
|
| + std::unique_ptr<Ice::VariableDeclarationList> VariableDeclarations(
|
| + new Ice::VariableDeclarationList);
|
| for (Module::const_global_iterator I = Mod->global_begin(),
|
| E = Mod->global_end();
|
| I != E; ++I) {
|
| @@ -706,7 +710,7 @@ void LLVM2ICEGlobalsConverter::convertGlobalsToIce(
|
|
|
| Ice::GlobalDeclaration *Var = getConverter().getGlobalDeclaration(GV);
|
| Ice::VariableDeclaration *VarDecl = cast<Ice::VariableDeclaration>(Var);
|
| - VariableDeclarations.push_back(VarDecl);
|
| + VariableDeclarations->push_back(VarDecl);
|
|
|
| if (!GV->hasInternalLinkage() && GV->hasInitializer()) {
|
| std::string Buffer;
|
| @@ -739,6 +743,7 @@ void LLVM2ICEGlobalsConverter::convertGlobalsToIce(
|
| addGlobalInitializer(*VarDecl, Initializer);
|
| }
|
| }
|
| + return std::move(VariableDeclarations);
|
| }
|
|
|
| void LLVM2ICEGlobalsConverter::addGlobalInitializer(
|
| @@ -801,7 +806,7 @@ void LLVM2ICEGlobalsConverter::addGlobalInitializer(
|
| namespace Ice {
|
|
|
| void Converter::nameUnnamedGlobalVariables(Module *Mod) {
|
| - const IceString &GlobalPrefix = Flags.getDefaultGlobalPrefix();
|
| + const IceString &GlobalPrefix = Ctx->getFlags().getDefaultGlobalPrefix();
|
| if (GlobalPrefix.empty())
|
| return;
|
| uint32_t NameIndex = 0;
|
| @@ -816,7 +821,7 @@ void Converter::nameUnnamedGlobalVariables(Module *Mod) {
|
| }
|
|
|
| void Converter::nameUnnamedFunctions(Module *Mod) {
|
| - const IceString &FunctionPrefix = Flags.getDefaultFunctionPrefix();
|
| + const IceString &FunctionPrefix = Ctx->getFlags().getDefaultFunctionPrefix();
|
| if (FunctionPrefix.empty())
|
| return;
|
| uint32_t NameIndex = 0;
|
| @@ -882,10 +887,7 @@ void Converter::installGlobalDeclarations(Module *Mod) {
|
| }
|
|
|
| void Converter::convertGlobals(Module *Mod) {
|
| - LLVM2ICEGlobalsConverter GlobalsConverter(*this);
|
| - VariableDeclarationList VariableDeclarations;
|
| - GlobalsConverter.convertGlobalsToIce(Mod, VariableDeclarations);
|
| - lowerGlobals(VariableDeclarations);
|
| + lowerGlobals(LLVM2ICEGlobalsConverter(*this).convertGlobalsToIce(Mod));
|
| }
|
|
|
| void Converter::convertFunctions() {
|
|
|