-
Notifications
You must be signed in to change notification settings - Fork 10
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Implement discovery of packed encodings (#46)
This commit implements the following features into the analyzer: - Discovery and lifting of multiplicative shifts of values that are commonly used by solc when constructing packed encodings. - Discovery and lifting of packed encoding structures themselves, taking the form of bitwise disjunctions of masked and shifted values. - Care is taken in the lifting pass to ensure that segments of packed encodings that are _not used_ (are direct reads from the slot into which the packed encoding is being written) are ignored, thus ensuring we do not infer types for segments of storage slots that are not really written to. - Loads from storage are now wrapped in `SLoad` nodes, allowing for detailed tracking of when a value was loaded from storage in the value trees.
- Loading branch information
1 parent
072897a
commit 241f442
Showing
20 changed files
with
1,683 additions
and
1,441 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -19,7 +19,7 @@ Getting set up with this project is pretty simple. | |
git clone https://github.com/smlxlio/storage-layout-analyzer.git | ||
``` | ||
|
||
If you _do_ want to contribute, we recommend cloning over SSH: | ||
If you _do_ want to contribute directly to the tree, we recommend cloning over SSH: | ||
|
||
```shell | ||
git clone [email protected]:smlxlio/storage-layout-analyzer.git | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.