Skip to content

[experimental] Export yul cfg to json#15180

Merged
clonker merged 1 commit intodevelopfrom
export-yul-cfg-json
Aug 29, 2024
Merged

[experimental] Export yul cfg to json#15180
clonker merged 1 commit intodevelopfrom
export-yul-cfg-json

Conversation

@r0qs
Copy link
Member

@r0qs r0qs commented Jun 4, 2024

Depends on #15359

Test with:

solc --ir-optimized --optimize --yul-cfg-json --pretty-json test/benchmarks/verifier.sol

Or in assembler mode:

solc --strict-assembly --ir-optimized --optimize --yul-cfg-json --pretty-json test/libyul/yulStackLayout/if.yul

TODO:

  • command-line tests (Adjust Yul CFG export output #15513)
  • Fix Yul switch statements (still contains GHOST and TMP slots)
    • TMP variables were removed, the GHOST variables may not be a problem after all.
  • convert to SSA form

@r0qs r0qs force-pushed the export-yul-cfg-json branch from 93107e6 to 97b3fe3 Compare June 4, 2024 14:30
@r0qs r0qs requested a review from ekpyron June 4, 2024 14:31
@github-actions github-actions bot added the stale The issue/PR was marked as stale because it has been open for too long. label Jun 21, 2024
@argotorg argotorg deleted a comment from github-actions bot Jun 21, 2024
@r0qs r0qs added must have eventually Something we consider essential but not enough to prevent us from releasing Solidity 1.0 without it. epic and removed stale The issue/PR was marked as stale because it has been open for too long. must have eventually Something we consider essential but not enough to prevent us from releasing Solidity 1.0 without it. labels Jun 21, 2024
@r0qs r0qs force-pushed the export-yul-cfg-json branch from 516a2b3 to acb7f40 Compare June 24, 2024 19:36
@r0qs r0qs force-pushed the export-yul-cfg-json branch 3 times, most recently from b30c404 to dec8e3a Compare June 26, 2024 12:10
@r0qs r0qs self-assigned this Jun 28, 2024
@r0qs r0qs force-pushed the export-yul-cfg-json branch from dec8e3a to 6e5cf07 Compare June 28, 2024 13:09
@r0qs r0qs force-pushed the export-yul-cfg-json branch 2 times, most recently from 47156a3 to cf8b262 Compare July 9, 2024 13:57
@r0qs r0qs force-pushed the export-yul-cfg-json branch 4 times, most recently from 123532c to f533ec6 Compare August 6, 2024 14:30
@r0qs r0qs force-pushed the export-yul-cfg-json branch 6 times, most recently from 2a930c0 to a6f3a88 Compare August 13, 2024 10:37
@r0qs r0qs added the has dependencies The PR depends on other PRs that must be merged first label Aug 20, 2024
@r0qs r0qs force-pushed the export-yul-cfg-json branch from e14dc92 to 710d104 Compare August 20, 2024 12:36
@r0qs r0qs force-pushed the export-yul-cfg-json branch 2 times, most recently from 5b6983b to 6190a8c Compare August 21, 2024 12:12
@r0qs r0qs force-pushed the export-yul-cfg-json branch from 694649a to d7cb236 Compare August 21, 2024 14:05
@r0qs r0qs force-pushed the export-yul-cfg-json branch from d7cb236 to aa1ce2d Compare August 26, 2024 10:05
@r0qs r0qs force-pushed the export-yul-cfg-json branch from aa1ce2d to 530bfc6 Compare August 26, 2024 10:25
@r0qs r0qs marked this pull request as ready for review August 26, 2024 13:21
@r0qs r0qs force-pushed the export-yul-cfg-json branch 2 times, most recently from 0229d8b to 08f709f Compare August 27, 2024 14:59
@clonker clonker force-pushed the export-yul-cfg-json branch from ac41450 to 40a694d Compare August 28, 2024 08:58
@r0qs r0qs force-pushed the ssaCfg branch 2 times, most recently from cc26966 to 253c89b Compare August 28, 2024 13:27
@r0qs r0qs force-pushed the export-yul-cfg-json branch 3 times, most recently from 1b5c409 to d052708 Compare August 28, 2024 13:58
@r0qs r0qs force-pushed the export-yul-cfg-json branch from d052708 to 80533d8 Compare August 28, 2024 14:36
Base automatically changed from ssaCfg to develop August 29, 2024 15:13
Copy link
Collaborator

@ekpyron ekpyron left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The existing tests for * output selection not changing confirm that this is hidden unless undocumented output selections or cli options are used, so I'm approving despite the lack of testing for now - we can let the GreY project play with it on the next release and work towards refining, stabilizing and testing it more properly later.

@clonker clonker merged commit ae1c3d4 into develop Aug 29, 2024
@clonker clonker deleted the export-yul-cfg-json branch August 29, 2024 15:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

epic experimental has dependencies The PR depends on other PRs that must be merged first 🟡 PR review label

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants