summaryrefslogtreecommitdiff
path: root/Source/Provers/Z3
diff options
context:
space:
mode:
authorGravatar qadeer <unknown>2010-02-16 23:04:53 +0000
committerGravatar qadeer <unknown>2010-02-16 23:04:53 +0000
commit0549304b5beaf553ba3e5fa6550a6b8e43e31553 (patch)
tree1333dc7fd6b911b4a2e0cd001c7dd3955e1c5c40 /Source/Provers/Z3
parent717eaee0063074b804098d3cfd44a7a3f822b064 (diff)
1. Removed a quadratic loop in SimplifyLikeLineariser.ssc in favor of a linear procedure call
2. Inlining requires two fields OriginalBlocks and OriginalLocVars in Implementation. These are set just before inlining is called and now I reset them to null afterwards to help garbage collection. 3. Clear live variables right after passification again to help garbage collection.
Diffstat (limited to 'Source/Provers/Z3')
-rw-r--r--Source/Provers/Z3/ProverInterface.ssc7
1 files changed, 7 insertions, 0 deletions
diff --git a/Source/Provers/Z3/ProverInterface.ssc b/Source/Provers/Z3/ProverInterface.ssc
index c3a61fe3..9a28eb42 100644
--- a/Source/Provers/Z3/ProverInterface.ssc
+++ b/Source/Provers/Z3/ProverInterface.ssc
@@ -169,6 +169,13 @@ namespace Microsoft.Boogie.Z3
allVars.Add(furtherVar);
return new Z3LineariserOptions(AsTerm, opts, allVars);
}
+
+ public override LineariserOptions! AddLetVariables(List<VCExprVar!>! furtherVars) {
+ List<VCExprVar!>! allVars = new List<VCExprVar!> ();
+ allVars.AddRange(LetVariables);
+ allVars.AddRange(furtherVars);
+ return new Z3LineariserOptions(AsTerm, opts, allVars);
+ }
}
// -----------------------------------------------------------------------------------------------