diff --git a/dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/DeadAssignmentElimination.java b/dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/DeadAssignmentElimination.java index b7478310da..520c4bae00 100644 --- a/dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/DeadAssignmentElimination.java +++ b/dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/DeadAssignmentElimination.java @@ -3,7 +3,6 @@ import com.dat3m.dartagnan.program.Function; import com.dat3m.dartagnan.program.Program; import com.dat3m.dartagnan.program.Register; -import com.dat3m.dartagnan.program.Thread; import com.dat3m.dartagnan.program.event.core.Event; import com.dat3m.dartagnan.program.event.core.Local; import com.dat3m.dartagnan.program.event.core.utils.RegReader; @@ -22,7 +21,7 @@ import static com.dat3m.dartagnan.program.event.Tag.NOOPT; // This is just Dead Store Elimination, but the use of the term "Store" can be confusing in our setting -public class DeadAssignmentElimination implements ProgramProcessor, FunctionProcessor { +public class DeadAssignmentElimination implements FunctionProcessor { private static final Logger logger = LogManager.getLogger(DeadAssignmentElimination.class); @@ -36,16 +35,6 @@ public static DeadAssignmentElimination fromConfig(Configuration config) throws return newInstance(); } - @Override - public void run(Program program) { - logger.info("#Events before DSE: " + program.getEvents().size()); - - for (Thread t : program.getThreads()) { - eliminateDeadAssignments(program, t); - } - logger.info("#Events after DSE: " + program.getEvents().size()); - } - @Override public void run(Function function) { eliminateDeadAssignments(function.getProgram(), function); diff --git a/dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/RemoveDeadCondJumps.java b/dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/RemoveDeadCondJumps.java index 947afaa896..43250b4b0d 100644 --- a/dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/RemoveDeadCondJumps.java +++ b/dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/RemoveDeadCondJumps.java @@ -3,12 +3,10 @@ import com.dat3m.dartagnan.expression.Atom; import com.dat3m.dartagnan.expression.BExprUn; import com.dat3m.dartagnan.program.Function; -import com.dat3m.dartagnan.program.Program; import com.dat3m.dartagnan.program.event.Tag; import com.dat3m.dartagnan.program.event.core.CondJump; import com.dat3m.dartagnan.program.event.core.Event; import com.dat3m.dartagnan.program.event.core.Label; -import com.google.common.base.Preconditions; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.sosy_lab.common.configuration.Configuration; @@ -19,7 +17,7 @@ import java.util.List; import java.util.Map; -public class RemoveDeadCondJumps implements ProgramProcessor, FunctionProcessor { +public class RemoveDeadCondJumps implements FunctionProcessor { private static final Logger logger = LogManager.getLogger(RemoveDeadCondJumps.class); @@ -34,15 +32,6 @@ public static RemoveDeadCondJumps fromConfig(Configuration config) throws Invali return newInstance(); } - @Override - public void run(Program program) { - Preconditions.checkArgument(program.isUnrolled(), "The program needs to be unrolled before performing " + getClass().getSimpleName()); - - logger.info(String.format("#Events before %s: %s", getClass().getSimpleName(), program.getEvents().size())); - program.getThreads().forEach(this::eliminateDeadCondJumps); - logger.info(String.format("#Events after %s: %s", getClass().getSimpleName(), program.getEvents().size())); - } - @Override public void run(Function function) { eliminateDeadCondJumps(function); diff --git a/dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/SparseConditionalConstantPropagation.java b/dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/SparseConditionalConstantPropagation.java index b8c56e605e..591f9e268e 100644 --- a/dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/SparseConditionalConstantPropagation.java +++ b/dartagnan/src/main/java/com/dat3m/dartagnan/program/processing/SparseConditionalConstantPropagation.java @@ -3,7 +3,6 @@ import com.dat3m.dartagnan.expression.*; import com.dat3m.dartagnan.expression.processing.ExprTransformer; import com.dat3m.dartagnan.program.Function; -import com.dat3m.dartagnan.program.Program; import com.dat3m.dartagnan.program.Register; import com.dat3m.dartagnan.program.event.Tag; import com.dat3m.dartagnan.program.event.core.CondJump; @@ -35,7 +34,7 @@ It is more precise than any sequence of simple CP/DCE passes. */ @Options -public class SparseConditionalConstantPropagation implements ProgramProcessor, FunctionProcessor { +public class SparseConditionalConstantPropagation implements FunctionProcessor { private static final Logger logger = LogManager.getLogger(SparseConditionalConstantPropagation.class); @@ -63,12 +62,6 @@ public static SparseConditionalConstantPropagation fromConfig(Configuration conf // ==================================================================================== - @Override - public void run(Program program) { - Preconditions.checkArgument(program.isUnrolled(), "Constant propagation only works on unrolled programs."); - program.getThreads().forEach(this::run); - } - @Override public void run(Function func) { final Predicate checkDoPropagate = propagateCopyAssignments