mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-21 20:26:41 +00:00
Merge branch 'develop-evmcc' of https://github.com/imapp-pl/ethereum into develop-evmcc
This commit is contained in:
commit
54c636a376
1 changed files with 15 additions and 9 deletions
|
|
@ -892,7 +892,16 @@ void Compiler::linkBasicBlocks(Stack& stack)
|
||||||
else
|
else
|
||||||
++it;
|
++it;
|
||||||
}
|
}
|
||||||
} while (sthErased);
|
}
|
||||||
|
while (sthErased);
|
||||||
|
|
||||||
|
// Remove jump table block if no predecessors
|
||||||
|
if (llvm::pred_begin(m_jumpTableBlock->llvm()) == llvm::pred_end(m_jumpTableBlock->llvm()))
|
||||||
|
{
|
||||||
|
m_jumpTableBlock->llvm()->eraseFromParent();
|
||||||
|
m_jumpTableBlock.reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
struct BBInfo
|
struct BBInfo
|
||||||
{
|
{
|
||||||
|
|
@ -931,7 +940,11 @@ void Compiler::linkBasicBlocks(Stack& stack)
|
||||||
for (auto predIt = llvm::pred_begin(bbPtr); predIt != llvm::pred_end(bbPtr); ++predIt)
|
for (auto predIt = llvm::pred_begin(bbPtr); predIt != llvm::pred_end(bbPtr); ++predIt)
|
||||||
{
|
{
|
||||||
if (*predIt != &entryBlock)
|
if (*predIt != &entryBlock)
|
||||||
bbInfo.predecessors.push_back(&cfg.find(*predIt)->second);
|
{
|
||||||
|
auto predInfoEntry = cfg.find(*predIt);
|
||||||
|
assert(predInfoEntry != cfg.end());
|
||||||
|
bbInfo.predecessors.push_back(&predInfoEntry->second);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1001,13 +1014,6 @@ void Compiler::linkBasicBlocks(Stack& stack)
|
||||||
for (size_t i = 0; i < localStackSize - bbInfo.outputItems; ++i)
|
for (size_t i = 0; i < localStackSize - bbInfo.outputItems; ++i)
|
||||||
stack.pushWord(bblock.getStack().get(localStackSize - 1 - i));
|
stack.pushWord(bblock.getStack().get(localStackSize - 1 - i));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove jump table block if not predecessors
|
|
||||||
if (llvm::pred_begin(m_jumpTableBlock->llvm()) == llvm::pred_end(m_jumpTableBlock->llvm()))
|
|
||||||
{
|
|
||||||
m_jumpTableBlock->llvm()->eraseFromParent();
|
|
||||||
m_jumpTableBlock.reset();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Compiler::dumpBasicBlockGraph(std::ostream& out)
|
void Compiler::dumpBasicBlockGraph(std::ostream& out)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue