Skip to content

Commit

Permalink
Changed more ProgramProcessors to FunctionProcessors
Browse files Browse the repository at this point in the history
  • Loading branch information
ThomasHaas committed Jul 27, 2023
1 parent c4e76d0 commit ce87669
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 32 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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);

Expand All @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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);

Expand All @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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);

Expand Down Expand Up @@ -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<Expression> checkDoPropagate = propagateCopyAssignments
Expand Down

0 comments on commit ce87669

Please sign in to comment.