-
Notifications
You must be signed in to change notification settings - Fork 41
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
Add new IcfgBuilder #690
base: dev
Are you sure you want to change the base?
Add new IcfgBuilder #690
Conversation
Otherwise the StepInfo is reset, since mutable sets are used.
… when we build the new block
We need that BooleanLiteral have a type. We now ensure this by using the ExpressionFactory#createBooleanLiteral
This reverts commit f13a388.
… startet when we build the new block" This reverts commit ba104cf.
Bugfix for cases where atomic blocks end with an IfStatement.
* Rename identifiers * Add documentation * Make method void (returned object is an argument of method)
* Rename identifiers * Add documentation * Make method void (returned object is an argument of method)
* extract method for building IcfgLocations * remove method that became obsolete
* Bugfix: Do not merge loop entry and location after invariant. * Rename identifiers
Do not copy annotations directly from original statements to edges but only to auxiliary statements. (Because annotations are copied from all statements to edges anyway.)
Unify code for prepending statements
Use assumption that mapping returns singleton except for calls.
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.
Thanks for your work! I did not have a detailed look yet, but here are already some more general comments.
@@ -0,0 +1,27 @@ | |||
#Thu Jan 30 13:20:28 CET 2014 |
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.
These settings can be removed, once IcfgBuilder
is the default.
@@ -0,0 +1,10 @@ | |||
<rundefinition> |
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 toolchain can be removed, once IcfgBuilder
is the default.
VAL [#NULL!base=0, #NULL!offset=0] | ||
[L31] assert false; | ||
VAL [#NULL!base=0, #NULL!offset=0] | ||
[L49] CALL call ULTIMATE.init(); |
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.
What has changed in the backtranslation that is relevant for this test?
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.
Could you fix this?
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.
I was just wondering why you changed already this path and not the others.
import de.uni_freiburg.informatik.ultimate.lib.smtlibutils.solverbuilder.SolverBuilder.SolverMode; | ||
import de.uni_freiburg.informatik.ultimate.plugins.generator.icfgbuilder.Activator; | ||
|
||
public class IcfgPreferenceInitializer extends UltimatePreferenceInitializer { |
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.
Please make sure that these settings are actually the same as for RCFGBuilder
(this was at least not the case in the past for CodeBlockSize
).
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.
Could you fix this?
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.
I am not sure, if there is a problem in the current version. I just remember that there was some issue in the past. So this comment is more of a reminder 😉
import de.uni_freiburg.informatik.ultimate.boogie.ast.VarList; | ||
import de.uni_freiburg.informatik.ultimate.core.model.models.ModelUtils; | ||
|
||
public class WeakestPrecondition extends BoogieTransformer { |
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.
I suppose this class (along with some others) was simply copied from RCFGBuilder
without any change? I think we should rather have another plugin Library-CFG
with such classes, s.t. RCFGBuilder
could be safely deleted.
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.
Plan is to move the classes to from RCFGBuilder
to IcfgBuilder
if we want to get rid of the RCFGBuilder
.
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.
I see, this class is really just used in IcfgBuilder
/ RCFGBuilder
, so it makes sense to keep it there. But there are some other classes (e.g. TransFormulaAdder
) that are also used in other Plugins. So it would make sense to move them to some library, also to reduce the dependencies to IcfgBuilder
/ RCFGBuilder
.
#Tue Mar 19 19:15:08 CET 2024 | ||
file_export_version=3.0 | ||
\!/instance/de.uni_freiburg.informatik.ultimate.boogie.preprocessor= | ||
/instance/de.uni_freiburg.informatik.ultimate.boogie.preprocessor/Replace\ while\ statements\ and\ if-then-else\ statements=false |
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 should be our new default now, maybe you can simply change it in BoogiePreprocessor
.
...e/uni_freiburg/informatik/ultimate/plugins/generator/rcfgbuilder/cfg/LargeBlockEncoding.java
Outdated
Show resolved
Hide resolved
The setting "Only consider context switches at boundaries of atomic blocks" (aka the nodatarace-LBE) is only meant to affect concurrent programs. It performs a kind of large-block encoding (LBE) that is usually not desirable for sequential programs.
Commits for switching from RCFGBuilder to IcfgBuilder are missing in this branch. But Frank convinced me to already start a pull request.