From 93ebaa4822571cd0a83906b4665f34c34d2343f7 Mon Sep 17 00:00:00 2001 From: chriseth Date: Fri, 29 Jul 2016 11:47:26 +0200 Subject: Reset knowledge in optimizer for path joins. --- libevmasm/ControlFlowGraph.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'libevmasm/ControlFlowGraph.cpp') diff --git a/libevmasm/ControlFlowGraph.cpp b/libevmasm/ControlFlowGraph.cpp index fc2144c7..61b24e4b 100644 --- a/libevmasm/ControlFlowGraph.cpp +++ b/libevmasm/ControlFlowGraph.cpp @@ -250,7 +250,10 @@ void ControlFlowGraph::gatherKnowledge() KnownStatePointer state = item.state; if (block.startState) { - state->reduceToCommonKnowledge(*block.startState, !item.blocksSeen.count(item.blockId)); + if (m_joinKnowledge) + state->reduceToCommonKnowledge(*block.startState, !item.blocksSeen.count(item.blockId)); + else + state->reset(); if (*state == *block.startState) continue; } -- cgit v1.2.3