From 9918f5482edda50339844652d2a75e563af54ea9 Mon Sep 17 00:00:00 2001 From: bdemsky Date: Wed, 10 Mar 2004 06:15:03 +0000 Subject: [PATCH] Added: Concrete Interference rule that falsify a rule that quantifies over a set can't remove the last element of the set. Concrete Interference rule that updates that definitely falsify a rule can't modify the inclusion condition causing a possible addition. Intelligence in the GraphAnalysis package that computes must & cant remove sets. Search through only unique combinations. --- .../MCC/IR/AbstractInterferes.java | 49 +++++ Repair/RepairCompiler/MCC/IR/CastExpr.java | 4 + .../MCC/IR/ConcreteInterferes.java | 200 +++++++++++++++-- Repair/RepairCompiler/MCC/IR/DotExpr.java | 8 + Repair/RepairCompiler/MCC/IR/Expr.java | 3 + .../RepairCompiler/MCC/IR/GraphAnalysis.java | 203 ++++++++++++++---- Repair/RepairCompiler/MCC/IR/OpExpr.java | 58 +++-- .../MCC/IR/RepairGenerator.java | 11 +- Repair/RepairCompiler/MCC/IR/Termination.java | 56 ++++- Repair/RepairCompiler/MCC/Runtime/redblack.c | 17 +- 10 files changed, 525 insertions(+), 84 deletions(-) diff --git a/Repair/RepairCompiler/MCC/IR/AbstractInterferes.java b/Repair/RepairCompiler/MCC/IR/AbstractInterferes.java index 5b24327..592b9d4 100755 --- a/Repair/RepairCompiler/MCC/IR/AbstractInterferes.java +++ b/Repair/RepairCompiler/MCC/IR/AbstractInterferes.java @@ -1,4 +1,5 @@ package MCC.IR; +import java.util.*; class AbstractInterferes { static public boolean interferes(AbstractRepair ar, Rule r, boolean satisfy) { @@ -191,6 +192,54 @@ class AbstractInterferes { return true; } + static public boolean interferes(ScopeNode sn, DNFPredicate dp) { + if (!sn.getSatisfy()&&(sn.getDescriptor() instanceof SetDescriptor)) { + Rule r=sn.getRule(); + Set target=r.getInclusion().getTargetDescriptors(); + boolean match=false; + for(int i=0;ihigh && + if (lowhigh&& x->keyleft!=RBNULL && x->left->max>low) @@ -923,6 +923,19 @@ dumptree(struct rbnode *x, int n) /* * $Log: redblack.c,v $ + * Revision 1.2 2004/03/10 06:15:03 bdemsky + * + * + * Added: + * Concrete Interference rule that falsify a rule that quantifies over a set can't + * remove the last element of the set. + * + * Concrete Interference rule that updates that definitely falsify a rule can't modify + * the inclusion condition causing a possible addition. + * + * Intelligence in the GraphAnalysis package that computes must & cant remove sets. + * Search through only unique combinations. + * * Revision 1.1 2004/03/07 22:02:43 bdemsky * * -- 2.34.1