-
Notifications
You must be signed in to change notification settings - Fork 493
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
AVM: Deadcode and basic block analysis (#3870)
* Simplify assembly and add flexible opcode cost support Unify most assembly routines to minimize difference and ease doc gen Flexible opcode costs and fewer assembly routines * Mark exiting opcodes * Tracks types more accurately during assembly Ignores deadcode. Understands how jumps obscure typing info. Detects error within basic blocks Adds #pragma typetrack false Makes spec creation a bit more uniform * CR cleanup * Retain type tracking state during consecutive type tracking enablements * ensure type tracking continues after callsub * Centralize OpStream initialization by introducing factory method * Update missed references * Remove redundant initialization * CR updates * Simplify the representation of deadcode in Programknowledge * Update data/transactions/logic/assembler.go Co-authored-by: Michael Diamant <[email protected]> Co-authored-by: michaeldiamant <[email protected]>
- Loading branch information
1 parent
07b2fbb
commit 3dd1b6f
Showing
17 changed files
with
862 additions
and
605 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
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.