Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incomplete global v2 #123

Merged
merged 17 commits into from
Jan 23, 2024
Merged

Incomplete global v2 #123

merged 17 commits into from
Jan 23, 2024

Conversation

sifislag
Copy link
Collaborator

@sifislag sifislag commented Jan 17, 2024

This PR includes a few changes:

  • Detect edges that introduce imprecision at the incompleteGlobal level and have the same context for from and to. Add from to the context during the main global analysis round.
  • Support for new pattern present in viaIR produced bytecode. Call blocks that do not include a JUMP (or JUMPI). Call start is the fallthrough.
  • Slightly better more general block cloning

All results shown will be using -T 200 --disable_inline -- disable_scalable_fallback

viair-dec23

2881 contracts decompiled/analyzed by jan24-ir-master-200 (25 exclusively)
2905 contracts decompiled/analyzed by jan24-ir-branch-200 (49 exclusively)

ANALYTIC: decomp_time
jan24-ir-master-200 (common): 12580.137337684631
jan24-ir-branch-200 (common): 16028.838307857513 (+27.41%)

ANALYTIC: Analytics_JumpToMany
jan24-ir-master-200 (common): 5334 (+14.64%)
jan24-ir-branch-200 (common): 4653

ANALYTIC: Analytics_ReachableBlocks
jan24-ir-master-200 (common): 1256925
jan24-ir-branch-200 (common): 1256925

ANALYTIC: Analytics_BlockHasNoTACBlock
jan24-ir-master-200 (common): 1380 (+1.322%)
jan24-ir-branch-200 (common): 1362

ANALYTIC: Analytics_DeadBlocks
jan24-ir-master-200 (common): 12122 (+13.89%)
jan24-ir-branch-200 (common): 10644

ANALYTIC: Analytics_PolymorphicTargetSameCtx
jan24-ir-master-200 (common): 744 (+736%)
jan24-ir-branch-200 (common): 89

ANALYTIC: Analytics_StmtMissingOperand
jan24-ir-master-200 (common): 623 (+25.6%)
jan24-ir-branch-200 (common): 496

ANALYTIC: Analytics_Contexts
jan24-ir-master-200 (common): 2386797 (+2.208%)
jan24-ir-branch-200 (common): 2335239

metadata-dataset1

1990 contracts decompiled/analyzed by jan24-metadata-master-200 (0 exclusively)
1996 contracts decompiled/analyzed by jan24-metadata-branch-200 (6 exclusively)

ANALYTIC: decomp_time
jan24-metadata-master-200 (common): 7452.368603944778 (+15.88%)
jan24-metadata-branch-200 (common): 6430.882352113724

ANALYTIC: Analytics_JumpToMany
jan24-metadata-master-200 (common): 358 (+2.874%)
jan24-metadata-branch-200 (common): 348

ANALYTIC: Analytics_ReachableBlocks
jan24-metadata-master-200 (common): 1229995
jan24-metadata-branch-200 (common): 1229995

ANALYTIC: Analytics_BlockHasNoTACBlock
jan24-metadata-master-200 (common): 94 (+1243%)
jan24-metadata-branch-200 (common): 7

ANALYTIC: Analytics_PolymorphicTargetSameCtx
jan24-metadata-master-200 (common): 734 (+3236%)
jan24-metadata-branch-200 (common): 22

ANALYTIC: Analytics_StmtMissingOperand
jan24-metadata-master-200 (common): 86 (+1.176%)
jan24-metadata-branch-200 (common): 85

ANALYTIC: Analytics_Contexts
jan24-metadata-master-200 (common): 1500998 (+28.23%)
jan24-metadata-branch-200 (common): 1170534

solc08-over10k

1981 contracts decompiled/analyzed by jan24-large-master-200 (2 exclusively)
1993 contracts decompiled/analyzed by jan24-large-branch-200 (14 exclusively)

ANALYTIC: decomp_time
jan24-large-master-200 (common): 10076.616517066956 (+8.747%)
jan24-large-branch-200 (common): 9266.106414556503

ANALYTIC: Analytics_JumpToMany
jan24-large-master-200 (common): 441 (+5.251%)
jan24-large-branch-200 (common): 419

ANALYTIC: Analytics_ReachableBlocks
jan24-large-master-200 (common): 1630449
jan24-large-branch-200 (common): 1630449


ANALYTIC: Analytics_BlockHasNoTACBlock
jan24-large-master-200 (common): 180 (+8900%)
jan24-large-branch-200 (common): 2

ANALYTIC: Analytics_PolymorphicTargetSameCtx
jan24-large-master-200 (common): 1248 (+4060%)
jan24-large-branch-200 (common): 30

ANALYTIC: Analytics_StmtMissingOperand
jan24-large-master-200 (common): 83
jan24-large-branch-200 (common): 84 (+1.205%)

ANALYTIC: Analytics_Contexts
jan24-large-master-200 (common): 2146643 (+21.27%)
jan24-large-branch-200 (common): 1770172

Copy link

github-actions bot commented Jan 17, 2024

Test Results (Souffle 2.4)

46 tests  ±0   46 ✅ ±0   24m 38s ⏱️ +50s
 1 suites ±0    0 💤 ±0 
 1 files   ±0    0 ❌ ±0 

Results for commit 9292238. ± Comparison against base commit 2c3994b.

♻️ This comment has been updated with latest results.

Copy link

github-actions bot commented Jan 17, 2024

Test Results (Souffle 2.3)

46 tests  ±0   46 ✅ ±0   23m 23s ⏱️ +5s
 1 suites ±0    0 💤 ±0 
 1 files   ±0    0 ❌ ±0 

Results for commit 9292238. ± Comparison against base commit 2c3994b.

♻️ This comment has been updated with latest results.

@sifislag sifislag merged commit 485a501 into master Jan 23, 2024
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant