Skip to content

Commit

Permalink
Renaming
Browse files Browse the repository at this point in the history
  • Loading branch information
natgavrilenko committed Jul 15, 2024
1 parent 98c3d75 commit a975028
Show file tree
Hide file tree
Showing 37 changed files with 196 additions and 185 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.dat3m.dartagnan.parsers.SpirvBaseVisitor;
import com.dat3m.dartagnan.parsers.SpirvParser;
import com.dat3m.dartagnan.parsers.program.visitors.spirv.*;
import com.dat3m.dartagnan.parsers.program.visitors.spirv.utils.ProgramBuilder;
import com.dat3m.dartagnan.program.Program;
import com.dat3m.dartagnan.program.Register;
import org.antlr.v4.runtime.tree.ParseTree;
Expand All @@ -20,7 +21,7 @@ public class VisitorSpirv extends SpirvBaseVisitor<Program> {

private final Map<String, SpirvBaseVisitor<?>> visitors = new HashMap<>();
private VisitorOpsConstant specConstantVisitor;
private ProgramBuilderSpv builder;
private ProgramBuilder builder;

static String parseOpName(SpirvParser.OpContext ctx) {
ParseTree innerCtx = ctx.getChild(0);
Expand Down Expand Up @@ -63,7 +64,7 @@ private static Set<Class<?>> getChildVisitors() {
private void initializeVisitors() {
for (Class<?> cls : getChildVisitors()) {
try {
Constructor<?> constructor = cls.getDeclaredConstructor(ProgramBuilderSpv.class);
Constructor<?> constructor = cls.getDeclaredConstructor(ProgramBuilder.class);
SpirvBaseVisitor<?> visitor = (SpirvBaseVisitor<?>) constructor.newInstance(builder);
Method method = cls.getDeclaredMethod("getSupportedOps");
Object object = method.invoke(visitor);
Expand Down Expand Up @@ -103,7 +104,7 @@ public Program visitSpv(SpirvParser.SpvContext ctx) {
return builder.build();
}

private ProgramBuilderSpv createBuilder(SpirvParser.SpvContext ctx) {
private ProgramBuilder createBuilder(SpirvParser.SpvContext ctx) {
List<Integer> threadGrid = List.of(1, 1, 1, 1);
VisitorSpirvInput visitor = new VisitorSpirvInput();
boolean hasConfig = false;
Expand All @@ -122,7 +123,7 @@ private ProgramBuilderSpv createBuilder(SpirvParser.SpvContext ctx) {
threadGrid = List.of(threadAmount, subGroupAmount, workGroupAmount, 1);
}
}
return new ProgramBuilderSpv(threadGrid, visitor.getInputs());
return new ProgramBuilder(threadGrid, visitor.getInputs());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,17 @@
import com.dat3m.dartagnan.parsers.SpirvBaseVisitor;
import com.dat3m.dartagnan.parsers.SpirvParser;
import com.dat3m.dartagnan.parsers.program.visitors.spirv.decorations.DecorationType;
import com.dat3m.dartagnan.parsers.program.visitors.spirv.utils.ProgramBuilder;

import java.util.Set;

import static com.dat3m.dartagnan.parsers.program.visitors.spirv.decorations.DecorationType.*;

public class VisitorOpsAnnotation extends SpirvBaseVisitor<Void> {

private final ProgramBuilderSpv builder;
private final ProgramBuilder builder;

public VisitorOpsAnnotation(ProgramBuilderSpv builder) {
public VisitorOpsAnnotation(ProgramBuilder builder) {
this.builder = builder;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import com.dat3m.dartagnan.expression.type.IntegerType;
import com.dat3m.dartagnan.parsers.SpirvBaseVisitor;
import com.dat3m.dartagnan.parsers.SpirvParser;
import com.dat3m.dartagnan.parsers.program.visitors.spirv.utils.ProgramBuilder;
import com.dat3m.dartagnan.program.Register;
import com.dat3m.dartagnan.program.event.Event;
import com.dat3m.dartagnan.program.event.EventFactory;
Expand All @@ -25,9 +26,9 @@ public class VisitorOpsArithmetic extends SpirvBaseVisitor<Event> {

private static final ExpressionFactory expressions = ExpressionFactory.getInstance();

private final ProgramBuilderSpv builder;
private final ProgramBuilder builder;

public VisitorOpsArithmetic(ProgramBuilderSpv builder) {
public VisitorOpsArithmetic(ProgramBuilder builder) {
this.builder = builder;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import com.dat3m.dartagnan.expression.type.IntegerType;
import com.dat3m.dartagnan.parsers.SpirvBaseVisitor;
import com.dat3m.dartagnan.parsers.SpirvParser;
import com.dat3m.dartagnan.parsers.program.visitors.spirv.utils.ProgramBuilder;
import com.dat3m.dartagnan.program.Register;
import com.dat3m.dartagnan.program.event.Event;
import com.dat3m.dartagnan.program.event.lang.spirv.*;
Expand All @@ -19,9 +20,9 @@

public class VisitorOpsAtomic extends SpirvBaseVisitor<Event> {

private final ProgramBuilderSpv builder;
private final ProgramBuilder builder;

public VisitorOpsAtomic(ProgramBuilderSpv builder) {
public VisitorOpsAtomic(ProgramBuilder builder) {
this.builder = builder;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import com.dat3m.dartagnan.expression.type.TypeFactory;
import com.dat3m.dartagnan.parsers.SpirvBaseVisitor;
import com.dat3m.dartagnan.parsers.SpirvParser;
import com.dat3m.dartagnan.parsers.program.visitors.spirv.utils.ProgramBuilder;
import com.dat3m.dartagnan.program.event.Event;
import com.dat3m.dartagnan.program.event.EventFactory;
import com.dat3m.dartagnan.program.event.Tag;
Expand All @@ -18,10 +19,10 @@ public class VisitorOpsBarrier extends SpirvBaseVisitor<Event> {

private static final ExpressionFactory expressions = ExpressionFactory.getInstance();
private final IntegerType archType = TypeFactory.getInstance().getArchType();
private final ProgramBuilderSpv builder;
private final ProgramBuilder builder;
private int nextBarrierId = 0;

public VisitorOpsBarrier(ProgramBuilderSpv builder) {
public VisitorOpsBarrier(ProgramBuilder builder) {
this.builder = builder;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import com.dat3m.dartagnan.expression.type.IntegerType;
import com.dat3m.dartagnan.parsers.SpirvBaseVisitor;
import com.dat3m.dartagnan.parsers.SpirvParser;
import com.dat3m.dartagnan.parsers.program.visitors.spirv.utils.ProgramBuilder;
import com.dat3m.dartagnan.program.Register;
import com.dat3m.dartagnan.program.event.Event;
import com.dat3m.dartagnan.program.event.EventFactory;
Expand All @@ -21,9 +22,9 @@ public class VisitorOpsBits extends SpirvBaseVisitor<Event> {

private static final ExpressionFactory expressions = ExpressionFactory.getInstance();

private final ProgramBuilderSpv builder;
private final ProgramBuilder builder;

public VisitorOpsBits(ProgramBuilderSpv builder) {
public VisitorOpsBits(ProgramBuilder builder) {
this.builder = builder;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import com.dat3m.dartagnan.parsers.program.visitors.spirv.decorations.BuiltIn;
import com.dat3m.dartagnan.parsers.program.visitors.spirv.decorations.DecorationType;
import com.dat3m.dartagnan.parsers.program.visitors.spirv.decorations.SpecId;
import com.dat3m.dartagnan.parsers.program.visitors.spirv.utils.ProgramBuilder;
import com.dat3m.dartagnan.program.Register;
import org.antlr.v4.runtime.RuleContext;

Expand All @@ -27,11 +28,11 @@ public class VisitorOpsConstant extends SpirvBaseVisitor<Expression> {
private static final ExpressionFactory expressions = ExpressionFactory.getInstance();

private final Set<String> specConstants = new HashSet<>();
private final ProgramBuilderSpv builder;
private final ProgramBuilder builder;
private final SpecId specIdDecorator;
private final BuiltIn builtInDecorator;

public VisitorOpsConstant(ProgramBuilderSpv builder) {
public VisitorOpsConstant(ProgramBuilder builder) {
this.builder = builder;
this.specIdDecorator = (SpecId) builder.getDecoration(DecorationType.SPEC_ID);
this.builtInDecorator = (BuiltIn) builder.getDecoration(DecorationType.BUILT_IN);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
import com.dat3m.dartagnan.expression.type.TypeFactory;
import com.dat3m.dartagnan.parsers.SpirvBaseVisitor;
import com.dat3m.dartagnan.parsers.SpirvParser;
import com.dat3m.dartagnan.parsers.program.visitors.spirv.helpers.HelperControlFlow;
import com.dat3m.dartagnan.parsers.program.visitors.spirv.utils.ControlFlowBuilder;
import com.dat3m.dartagnan.parsers.program.visitors.spirv.utils.ProgramBuilder;
import com.dat3m.dartagnan.program.Register;
import com.dat3m.dartagnan.program.event.Event;
import com.dat3m.dartagnan.program.event.EventFactory;
Expand All @@ -21,15 +22,15 @@
public class VisitorOpsControlFlow extends SpirvBaseVisitor<Event> {

private static final TypeFactory types = TypeFactory.getInstance();
private final ProgramBuilderSpv builder;
private final HelperControlFlow helper;
private final ProgramBuilder builder;
private final ControlFlowBuilder cfBuilder;
private String continueLabelId;
private String mergeLabelId;
private String nextLabelId;

public VisitorOpsControlFlow(ProgramBuilderSpv builder) {
public VisitorOpsControlFlow(ProgramBuilder builder) {
this.builder = builder;
this.helper = builder.getHelperControlFlow();
this.cfBuilder = builder.getHelperControlFlow();
}

@Override
Expand All @@ -41,7 +42,7 @@ public Event visitOpPhi(SpirvParser.OpPhiContext ctx) {
SpirvParser.PairIdRefIdRefContext pCtx = vCtx.pairIdRefIdRef();
String labelId = pCtx.idRef(1).getText();
String expressionId = pCtx.idRef(0).getText();
helper.addPhiDefinition(labelId, register, expressionId);
cfBuilder.addPhiDefinition(labelId, register, expressionId);
}
builder.addExpression(id, register);
return null;
Expand All @@ -57,8 +58,8 @@ public Event visitOpLabel(SpirvParser.OpLabelContext ctx) {
nextLabelId = null;
}
String labelId = ctx.idResult().getText();
Label event = helper.getOrCreateLabel(labelId);
helper.startBlock(labelId);
Label event = cfBuilder.getOrCreateLabel(labelId);
cfBuilder.startBlock(labelId);
return builder.addEvent(event);
}

Expand Down Expand Up @@ -119,7 +120,7 @@ public Event visitOpReturn(SpirvParser.OpReturnContext ctx) {
if (types.getVoidType().equals(returnType)) {
Return event = newFunctionReturn(null);
builder.addEvent(event);
return helper.endBlock(event);
return cfBuilder.endBlock(event);
}
throw new ParsingException("Illegal non-value return for a non-void function '%s'",
builder.getCurrentFunctionName());
Expand All @@ -133,17 +134,17 @@ public Event visitOpReturnValue(SpirvParser.OpReturnValueContext ctx) {
Expression expression = builder.getExpression(valueId);
Event event = newFunctionReturn(expression);
builder.addEvent(event);
return helper.endBlock(event);
return cfBuilder.endBlock(event);
}
throw new ParsingException("Illegal value return for a void function '%s'",
builder.getCurrentFunctionName());
}

private Event visitGoto(String labelId) {
Label label = helper.getOrCreateLabel(labelId);
Label label = cfBuilder.getOrCreateLabel(labelId);
Event event = EventFactory.newGoto(label);
builder.addEvent(event);
return helper.endBlock(event);
return cfBuilder.endBlock(event);
}

private Event visitLoopBranch(String labelId) {
Expand All @@ -154,23 +155,23 @@ private Event visitLoopBranch(String labelId) {

private Event visitIfBranch(Expression guard, String trueLabelId, String falseLabelId) {
for (String labelId : List.of(trueLabelId, falseLabelId)) {
if (helper.isBlockStarted(labelId)) {
if (cfBuilder.isBlockStarted(labelId)) {
throw new ParsingException("Illegal backward jump to '%s' from a structured branch", labelId);
}
}
mergeLabelId = null;
nextLabelId = trueLabelId;
builder.setNextOps(Set.of("OpLabel"));
Label falseLabel = helper.getOrCreateLabel(falseLabelId);
Label mergeLabel = helper.createMergeLabel(falseLabelId);
Label falseLabel = cfBuilder.getOrCreateLabel(falseLabelId);
Label mergeLabel = cfBuilder.createMergeLabel(falseLabelId);
Event event = EventFactory.newIfJumpUnless(guard, falseLabel, mergeLabel);
builder.addEvent(event);
return helper.endBlock(event);
return cfBuilder.endBlock(event);
}

private Event visitConditionalJump(Expression guard, String trueLabelId, String falseLabelId) {
if (helper.isBlockStarted(trueLabelId)) {
if (helper.isBlockStarted(falseLabelId)) {
if (cfBuilder.isBlockStarted(trueLabelId)) {
if (cfBuilder.isBlockStarted(falseLabelId)) {
throw new ParsingException("Unsupported conditional branch " +
"with two backward jumps to '%s' and '%s'", trueLabelId, falseLabelId);
}
Expand All @@ -179,11 +180,11 @@ private Event visitConditionalJump(Expression guard, String trueLabelId, String
falseLabelId = labelId;
guard = ExpressionFactory.getInstance().makeNot(guard);
}
Label trueLabel = helper.getOrCreateLabel(trueLabelId);
Label falseLabel = helper.getOrCreateLabel(falseLabelId);
Label trueLabel = cfBuilder.getOrCreateLabel(trueLabelId);
Label falseLabel = cfBuilder.getOrCreateLabel(falseLabelId);
Event trueJump = builder.addEvent(EventFactory.newJump(guard, trueLabel));
builder.addEvent(EventFactory.newGoto(falseLabel));
return helper.endBlock(trueJump);
return cfBuilder.endBlock(trueJump);
}

private Event visitLoopBranchConditional(Expression guard, String trueLabelId, String falseLabelId) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
package com.dat3m.dartagnan.parsers.program.visitors.spirv;

import com.dat3m.dartagnan.parsers.SpirvBaseVisitor;
import com.dat3m.dartagnan.parsers.program.visitors.spirv.utils.ProgramBuilder;

import java.util.Set;

public class VisitorOpsDebug extends SpirvBaseVisitor<Void> {

public VisitorOpsDebug(ProgramBuilderSpv builder) {
public VisitorOpsDebug(ProgramBuilder builder) {
// Nothing to do for debug operations
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import com.dat3m.dartagnan.parsers.SpirvParser;
import com.dat3m.dartagnan.parsers.program.visitors.spirv.extenstions.VisitorExtension;
import com.dat3m.dartagnan.parsers.program.visitors.spirv.extenstions.VisitorExtensionClspvReflection;
import com.dat3m.dartagnan.parsers.program.visitors.spirv.utils.ProgramBuilder;
import org.antlr.v4.runtime.tree.ParseTree;
import org.antlr.v4.runtime.tree.TerminalNode;

Expand All @@ -17,7 +18,7 @@ public class VisitorOpsExtension extends SpirvBaseVisitor<Void> {
private final Map<String, VisitorExtension<?>> availableVisitors = new HashMap<>();
private final Map<String, String> visitorIds = new HashMap<>();

public VisitorOpsExtension(ProgramBuilderSpv builder) {
public VisitorOpsExtension(ProgramBuilder builder) {
this.availableVisitors.put("NonSemantic.ClspvReflection.5", new VisitorExtensionClspvReflection(builder));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import com.dat3m.dartagnan.expression.type.VoidType;
import com.dat3m.dartagnan.parsers.SpirvBaseVisitor;
import com.dat3m.dartagnan.parsers.SpirvParser;
import com.dat3m.dartagnan.parsers.program.visitors.spirv.utils.ProgramBuilder;
import com.dat3m.dartagnan.program.memory.ScopedPointer;
import com.dat3m.dartagnan.program.Function;
import com.dat3m.dartagnan.program.Register;
Expand All @@ -25,12 +26,12 @@ public class VisitorOpsFunction extends SpirvBaseVisitor<Void> {

private static final TypeFactory types = TypeFactory.getInstance();

private final ProgramBuilderSpv builder;
private final ProgramBuilder builder;
private String currentId;
private FunctionType currentType;
private List<String> currentArgs;

public VisitorOpsFunction(ProgramBuilderSpv builder) {
public VisitorOpsFunction(ProgramBuilder builder) {
this.builder = builder;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import com.dat3m.dartagnan.expression.type.IntegerType;
import com.dat3m.dartagnan.parsers.SpirvBaseVisitor;
import com.dat3m.dartagnan.parsers.SpirvParser;
import com.dat3m.dartagnan.parsers.program.visitors.spirv.utils.ProgramBuilder;
import com.dat3m.dartagnan.program.Register;
import com.dat3m.dartagnan.program.event.Event;
import com.dat3m.dartagnan.program.event.EventFactory;
Expand All @@ -24,9 +25,9 @@ public class VisitorOpsLogical extends SpirvBaseVisitor<Event> {

private static final ExpressionFactory expressions = ExpressionFactory.getInstance();

private final ProgramBuilderSpv builder;
private final ProgramBuilder builder;

public VisitorOpsLogical(ProgramBuilderSpv builder) {
public VisitorOpsLogical(ProgramBuilder builder) {
this.builder = builder;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import com.dat3m.dartagnan.parsers.program.visitors.spirv.decorations.DecorationType;
import com.dat3m.dartagnan.parsers.program.visitors.spirv.helpers.HelperAccessChain;
import com.dat3m.dartagnan.parsers.program.visitors.spirv.helpers.HelperInput;
import com.dat3m.dartagnan.parsers.program.visitors.spirv.utils.ProgramBuilder;
import com.dat3m.dartagnan.program.memory.ScopedPointer;
import com.dat3m.dartagnan.program.memory.ScopedPointerVariable;
import com.dat3m.dartagnan.expression.type.ScopedPointerType;
Expand All @@ -27,10 +28,10 @@
public class VisitorOpsMemory extends SpirvBaseVisitor<Event> {

private static final TypeFactory types = TypeFactory.getInstance();
private final ProgramBuilderSpv builder;
private final ProgramBuilder builder;
private final BuiltIn builtInDecorator;

public VisitorOpsMemory(ProgramBuilderSpv builder) {
public VisitorOpsMemory(ProgramBuilder builder) {
this.builder = builder;
this.builtInDecorator = (BuiltIn) builder.getDecoration(DecorationType.BUILT_IN);
}
Expand Down
Loading

0 comments on commit a975028

Please sign in to comment.