Skip to content

Commit f1021af

Browse files
committed
Code generator / OpenCL
1 parent 8e303f9 commit f1021af

File tree

5 files changed

+19
-3
lines changed

5 files changed

+19
-3
lines changed

pom.xml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@
5656
<groupId>org.junit.jupiter</groupId>
5757
<artifactId>junit-jupiter-engine</artifactId>
5858
<version>${junit.version}</version>
59-
<optional>true</optional>
6059
</dependency>
6160
<dependency>
6261
<groupId>org.assertj</groupId>
@@ -91,6 +90,11 @@
9190
<target>${java.version}</target>
9291
</configuration>
9392
</plugin>
93+
<plugin>
94+
<groupId>org.apache.maven.plugins</groupId>
95+
<artifactId>maven-surefire-plugin</artifactId>
96+
<version>3.5.4</version>
97+
</plugin>
9498
</plugins>
9599
</pluginManagement>
96100

@@ -110,7 +114,6 @@
110114
<plugin>
111115
<groupId>org.apache.maven.plugins</groupId>
112116
<artifactId>maven-surefire-plugin</artifactId>
113-
<version>3.5.4</version>
114117
</plugin>
115118

116119
<plugin>

src/main/java/de/mirkosertic/metair/ir/MethodAnalyzer.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -801,7 +801,15 @@ private void step5FollowCFGAndInterpret(final CodeModel code) {
801801
// the outgoing status for this node is not computed yet.
802802
if (edge.flowType() == FlowType.FORWARD) {
803803
final Frame incomingFrame = posToFrame.get(edge.fromIndex());
804-
incomingFrame.out.control.controlFlowsTo(target, FlowType.FORWARD);
804+
Node source = incomingFrame.out.control;
805+
if (source instanceof TupleNode) {
806+
source = ((TupleNode) source).getNamedNode(edge.projection().name());
807+
} else if (FrameNamedProjection.DEFAULT.equals(edge.projection())) {
808+
// No nothing in this case, we just keep the incoming control node
809+
} else {
810+
illegalState("Unknown projection type " + edge.projection() + " or unsupported node : " + incomingStatus.control);
811+
}
812+
source.controlFlowsTo(target, FlowType.FORWARD);
805813
}
806814
}
807815

src/main/java/de/mirkosertic/metair/ir/Sequencer.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ private void visitDominationTreeOf(final Node startNode, final Deque<Block> acti
5555
// We can continue to the child
5656
return user;
5757
}
58+
codegenerator.writePreJump(node);
5859
generateGOTO(node, user, activeStack);
5960
}
6061
}

src/test/java/de/mirkosertic/metair/ir/opencl/AliceBobCarolDaveTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import de.mirkosertic.metair.opencl.api.Platform;
99
import de.mirkosertic.metair.opencl.api.PlatformFactory;
1010
import de.mirkosertic.metair.opencl.api.PlatformProperties;
11+
import org.junit.jupiter.api.Disabled;
1112
import org.junit.jupiter.api.Test;
1213

1314
import static de.mirkosertic.metair.opencl.api.Float4.float4;
@@ -16,6 +17,7 @@
1617
import static de.mirkosertic.metair.opencl.api.VectorFunctions.dot;
1718
import static de.mirkosertic.metair.opencl.api.VectorFunctions.length;
1819

20+
@Disabled
1921
public class AliceBobCarolDaveTest {
2022

2123
@Test

src/test/java/de/mirkosertic/metair/ir/opencl/ContextTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,14 @@
66
import de.mirkosertic.metair.opencl.api.OpenCLOptions;
77
import de.mirkosertic.metair.opencl.api.Platform;
88
import de.mirkosertic.metair.opencl.api.PlatformFactory;
9+
import org.junit.jupiter.api.Disabled;
910
import org.junit.jupiter.api.Test;
1011

1112
import static de.mirkosertic.metair.opencl.api.Float2.float2;
1213
import static de.mirkosertic.metair.opencl.api.GlobalFunctions.get_global_id;
1314
import static de.mirkosertic.metair.opencl.api.VectorFunctions.normalize;
1415

16+
@Disabled
1517
public class ContextTest {
1618

1719
@Test

0 commit comments

Comments
 (0)