-
-
Notifications
You must be signed in to change notification settings - Fork 81
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
fix and implement ConditionalBranchFolder, Unreachable Code Eliminator #1041
base: develop
Are you sure you want to change the base?
fix and implement ConditionalBranchFolder, Unreachable Code Eliminator #1041
Conversation
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.
this seems expensive - old Soot did cut the connection to the never reached branch and was calling UnreachableCodeEliminator afterwards, which at least looks simpler/cleaner than the current state (havent checked if the proposed algorithm is faster e.g. due to a possible smaller n?)
sootup.java.core/src/main/java/sootup/java/core/interceptors/ConditionalBranchFolder.java
Outdated
Show resolved
Hide resolved
Old soot has a connection to statements and not blocks, so removing a statement is simpler than removing intermediate blocks. |
can you explain why? I would assume it is instantly "infecting" the complete block (so all its following |
…r-removes-complete-tail-of-the-cfg
…at least one continuous block sequence that has no exception range applied to its last block)
fixing the iterator should have fixed: |
…r-removes-complete-tail-of-the-cfg
progress: -2 failing
…r-removes-complete-tail-of-the-cfg # Conflicts: # sootup.java.bytecode.frontend/src/test/java/sootup/java/bytecode/frontend/TryCatchFinallyTests.java # sootup.java.bytecode.frontend/src/test/java/sootup/java/bytecode/frontend/interceptors/ConditionalBranchFolderTest.java
…r-removes-complete-tail-of-the-cfg
…omplete-tail-of-the-cfg
…r-removes-complete-tail-of-the-cfg
Todo: fix for try-catch blocks