diff options
author | chriseth <chris@ethereum.org> | 2018-03-09 02:41:29 +0800 |
---|---|---|
committer | chriseth <chris@ethereum.org> | 2018-04-03 20:34:32 +0800 |
commit | 6777f7a57fed6b39128773f13084da729dd64588 (patch) | |
tree | 87b74e6f8e3f12eec98ca6b2265b23cf1e9f3a71 /libevmasm/SemanticInformation.h | |
parent | d21382157cbda53d98f3a4e0d7c0d0a7d213aebf (diff) | |
download | dexon-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.h | 3 |
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); |