aboutsummaryrefslogtreecommitdiffstats
path: root/libevmasm/SemanticInformation.h
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2018-03-09 02:41:29 +0800
committerchriseth <chris@ethereum.org>2018-04-03 20:34:32 +0800
commit6777f7a57fed6b39128773f13084da729dd64588 (patch)
tree87b74e6f8e3f12eec98ca6b2265b23cf1e9f3a71 /libevmasm/SemanticInformation.h
parentd21382157cbda53d98f3a4e0d7c0d0a7d213aebf (diff)
downloaddexon-solidity-6777f7a57fed6b39128773f13084da729dd64588.tar.gz
dexon-solidity-6777f7a57fed6b39128773f13084da729dd64588.tar.zst
dexon-solidity-6777f7a57fed6b39128773f13084da729dd64588.zip
Optimize across MLOAD if MSIZE is not used.
Diffstat (limited to 'libevmasm/SemanticInformation.h')
-rw-r--r--libevmasm/SemanticInformation.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/libevmasm/SemanticInformation.h b/libevmasm/SemanticInformation.h
index 83656252..8bdc70be 100644
--- a/libevmasm/SemanticInformation.h
+++ b/libevmasm/SemanticInformation.h
@@ -38,7 +38,8 @@ class AssemblyItem;
struct SemanticInformation
{
/// @returns true if the given items starts a new block for common subexpression analysis.
- static bool breaksCSEAnalysisBlock(AssemblyItem const& _item);
+ /// @param _msizeImportant if false, consider an operation non-breaking if its only side-effect is that it modifies msize.
+ static bool breaksCSEAnalysisBlock(AssemblyItem const& _item, bool _msizeImportant);
/// @returns true if the item is a two-argument operation whose value does not depend on the
/// order of its arguments.
static bool isCommutativeOperation(AssemblyItem const& _item);