-
Notifications
You must be signed in to change notification settings - Fork 4
IR Program Slicing #476
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
Open
henrybatt
wants to merge
68
commits into
UQ-PAC:main
Choose a base branch
from
henrybatt:ir-slicing
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
IR Program Slicing #476
Changes from all commits
Commits
Show all changes
68 commits
Select commit
Hold shift + click to select a range
71213ef
Replace empty gotos with assume false
henrybatt 89491e6
Create SlicerLogger
henrybatt d240896
Create Slicer Summaries from results
henrybatt 5694a1c
Slicer IDE Analysis to build sets
henrybatt 025d830
Create Slicer class to run analysis
henrybatt 668701c
Run slicer on IR
henrybatt ea2549f
Added performance timers + cleanup
henrybatt a5649c2
Cleanup criterion pair generation
henrybatt c97a5f6
Cleanup IDEAnalysis with better match grouping
henrybatt f8b17ae
Merge branch 'main' into ir-slicing
henrybatt ac3db10
Extend IDEAnalysis to allow stateless transfer functions
henrybatt a1bfecf
Use new IDE Transfers in Slicer Analysis
henrybatt 7e007d0
Move StatementSlice def
henrybatt d6e8a4d
Add Summary toString + Fix single assign issue
henrybatt 1d1fafd
Updated summary generation
henrybatt 8ab41df
Separate into Slicer Phase1 + Cleanup
henrybatt 20bb97b
Added in Phase2 + debugging methods
henrybatt dd759f6
Cleanup RunUtils so slicer is single line usage
henrybatt 4a4ed5e
Merge branch 'main' into ir-slicing
henrybatt 1e924ca
Slicer indirect call analysis extended
henrybatt 25fa239
Slicer defined starting node
henrybatt 04523a5
Cleanup + added logging of statements removed
henrybatt d393e94
Utilise Slicer results for parameter reduction
henrybatt 42bda04
Fixed impact detection error
henrybatt 568fefe
Added BASIL flags to enable slicer
henrybatt d65fe53
Add in SC to all transfers
henrybatt a697882
SlicingCriterion now used FOR not FROM
henrybatt b489925
Remove matcher for criterion definition
henrybatt b2e6814
Restructure SlicerAnalysis results
henrybatt c272d33
Parse Slicer config to build starting criterion
henrybatt b926a02
Cleanup + define transfer application
henrybatt 49973b6
Added label to DSL directCall
henrybatt c1363be
Improve call impact detection
henrybatt bf2ea2b
Only add assume/assert if criterion is still alive (not empty)
henrybatt baab705
Cleanup
henrybatt d2d705c
Add and remove temp NOP if starting on call edge to insert criterion
henrybatt 02ade11
Use IRWalker to get call edge pred
henrybatt 2045775
Remove LocalVars when entering new call and readd after exit
henrybatt 9a1f4b2
Replace Registers with Global detection
henrybatt 9615de6
Move NOP insertion into Phase1 + change access modifiers
henrybatt 1748496
Clean up DirectCall transfer and impact detection
henrybatt 9138505
Added simplify & memory-transform flag checks for slicer
henrybatt 72d71f0
Ensure global criterion are correctly handled across calls
henrybatt b49837a
Remove Pair Generation
henrybatt 34bfede
Add jumps into variable detection
henrybatt 8f87560
Remove Structures
henrybatt fa3bbfa
Merge branch 'main' into ir-slicing
henrybatt a318be8
Convert MemoryStore + MemoryLoad indexes as required
henrybatt f3f08cc
Formatter
henrybatt 678f750
Cache call procedure globals
henrybatt 38301b4
Improve logging levels on Slicer
henrybatt 31ebf47
Ensure variable exists in parameter list
henrybatt c25f88b
Added invariant checking after IR Slice
henrybatt e7c81e3
Add SlicerConfig to Basil tests + fix Boogie verification checking
henrybatt 6e4af26
Slicer IDE - cleanup + strip locals on flow back
henrybatt 941cd4a
Filter SlicerConfig + correctly parse return command variables
henrybatt 599a580
Slicer - Formatting + early call handling
henrybatt a518cc3
Added slicer scenario tests
henrybatt d434fa6
Added tests that slice system tests to ensure they still verify
henrybatt fbf2124
Remove StatementSlice type + refactor our unnecessary methods
henrybatt 2c7cfa4
Don't strip unreachables if slicer on
henrybatt 5ace412
Added test to check if non main criterion procedure preserved
henrybatt 30ef708
Move and merge all slicer classes into 1 file in ir.transforms.
henrybatt 2cae2db
Added comments to slicer + cleanup access
henrybatt 30602b2
Fix test imports
henrybatt 11d2f58
Merge branch 'main' into ir-slicing
henrybatt 1fa4bad
Cleanup comments + loggers
henrybatt 63500fe
Add cli arg docs
henrybatt File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or 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 hidden or 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 hidden or 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.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As far as I can tell, slicer doesn't directly use the results from DSA but implicitly benefits from the region separation, why is the region pass enforced here?