Skip to content

Commit

Permalink
Merge a6eb62e into ac34115
Browse files Browse the repository at this point in the history
  • Loading branch information
smarr committed Dec 1, 2016
2 parents ac34115 + a6eb62e commit 89072ab
Show file tree
Hide file tree
Showing 69 changed files with 344 additions and 412 deletions.
6 changes: 5 additions & 1 deletion src/som/compiler/MixinBuilder.java
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@
import som.interpreter.nodes.ExpressionNode;
import som.interpreter.nodes.IsValueCheckNode;
import som.interpreter.nodes.dispatch.Dispatchable;
import som.interpreter.objectstorage.InitializerFieldWrite;
import som.primitives.NewObjectPrimNodeGen;
import som.vm.Symbols;
import som.vmobjects.SInvokable;
Expand Down Expand Up @@ -313,11 +314,14 @@ public void addSlot(final SSymbol name, final AccessModifier acccessModifier,

if (init != null) {
ExpressionNode self = initializer.getSelfRead(source);
slotAndInitExprs.add(slot.getInitializerWriteNode(self, init, source));
InitializerFieldWrite write = slot.getInitializerWriteNode(self, init, source);
write.markAsStatement();
slotAndInitExprs.add(write);
}
}

public void addInitializerExpression(final ExpressionNode expression) {
expression.markAsStatement();
slotAndInitExprs.add(expression);
}

Expand Down
1 change: 0 additions & 1 deletion src/som/interpreter/Method.java
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,6 @@ public boolean isBlock() {
public SourceSection getRootNodeSource() {
ExpressionNode root = SOMNode.unwrapIfNecessary(expressionOrSequence);
assert root.isMarkedAsRootExpression();
assert root.assertIsStatement();

return root.getSourceSection();
}
Expand Down
4 changes: 4 additions & 0 deletions src/som/interpreter/SNodeFactory.java
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,10 @@ public static LocalVariableWriteNode createLocalVariableWrite(

public static ExpressionNode createSequence(
final List<ExpressionNode> expressions, final SourceSection source) {
for (ExpressionNode statement : expressions) {
statement.markAsStatement();
}

if (expressions.size() == 0) {
return new NilLiteralNode(source);
} else if (expressions.size() == 1) {
Expand Down
3 changes: 0 additions & 3 deletions src/som/interpreter/actors/EventualSendNode.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import com.oracle.truffle.api.dsl.Specialization;
import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.instrumentation.Instrumentable;
import com.oracle.truffle.api.instrumentation.StandardTags.StatementTag;
import com.oracle.truffle.api.nodes.ExplodeLoop;
import com.oracle.truffle.api.nodes.Node;
import com.oracle.truffle.api.source.SourceSection;
Expand Down Expand Up @@ -292,8 +291,6 @@ public final Object toNearRefWithoutResultPromise(final Object[] args) {
protected boolean isTaggedWith(final Class<?> tag) {
if (tag == EventualMessageSend.class) {
return true;
} else if (tag == StatementTag.class) {
return true;
}
return super.isTaggedWith(tag);
}
Expand Down
9 changes: 0 additions & 9 deletions src/som/interpreter/actors/ReceivedRootNode.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import com.oracle.truffle.api.TruffleLanguage;
import com.oracle.truffle.api.frame.FrameDescriptor;
import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.instrumentation.StandardTags.StatementTag;
import com.oracle.truffle.api.nodes.RootNode;
import com.oracle.truffle.api.source.SourceSection;

Expand Down Expand Up @@ -76,13 +75,5 @@ public Object executeEvaluated(final VirtualFrame frame, final Object receiver,
public Object executeGeneric(final VirtualFrame frame) {
return null;
}

@Override
protected boolean isTaggedWithIgnoringEagerness(final Class<?> tag) {
if (tag == StatementTag.class) {
return isMarkedAsRootExpression();
}
return super.isTaggedWithIgnoringEagerness(tag);
}
}
}
5 changes: 0 additions & 5 deletions src/som/interpreter/nodes/ArgumentReadNode.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.instrumentation.Instrumentable;
import com.oracle.truffle.api.instrumentation.StandardTags.StatementTag;
import com.oracle.truffle.api.profiles.ValueProfile;
import com.oracle.truffle.api.source.SourceSection;

Expand Down Expand Up @@ -56,8 +55,6 @@ protected boolean isTaggedWith(final Class<?> tag) {
return true;
} else if (tag == LocalArgRead.class) {
return true;
} else if (tag == StatementTag.class) {
return isMarkedAsRootExpression();
} else {
return super.isTaggedWith(tag);
}
Expand Down Expand Up @@ -167,8 +164,6 @@ protected boolean isTaggedWith(final Class<?> tag) {
return true;
} else if (tag == LocalArgRead.class) {
return true;
} else if (tag == StatementTag.class) {
return isMarkedAsRootExpression();
} else {
return super.isTaggedWith(tag);
}
Expand Down
2 changes: 2 additions & 0 deletions src/som/interpreter/nodes/ExpressionNode.java
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,8 @@ public boolean assertIsStatement() {

public void markAsVirtualInvokeReceiver() { throw new UnsupportedOperationException(); }

public void markAsStatement() { throw new UnsupportedOperationException(); }

public abstract Object executeGeneric(final VirtualFrame frame);

@Override
Expand Down
9 changes: 0 additions & 9 deletions src/som/interpreter/nodes/InternalObjectArrayNode.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package som.interpreter.nodes;

import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.instrumentation.StandardTags.StatementTag;
import com.oracle.truffle.api.nodes.ExplodeLoop;
import com.oracle.truffle.api.nodes.NodeCost;
import com.oracle.truffle.api.nodes.NodeInfo;
Expand Down Expand Up @@ -33,12 +32,4 @@ public Object[] executeObjectArray(final VirtualFrame frame) {
public Object executeGeneric(final VirtualFrame frame) {
return executeObjectArray(frame);
}

@Override
protected boolean isTaggedWith(final Class<?> tag) {
if (tag == StatementTag.class) {
return false;
}
return super.isTaggedWith(tag);
}
}
9 changes: 0 additions & 9 deletions src/som/interpreter/nodes/IsValueCheckNode.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package som.interpreter.nodes;

import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.instrumentation.StandardTags.StatementTag;
import com.oracle.truffle.api.instrumentation.InstrumentableFactory.WrapperNode;
import com.oracle.truffle.api.nodes.Node;
import com.oracle.truffle.api.source.SourceSection;
Expand Down Expand Up @@ -142,12 +141,4 @@ private boolean allFieldsContainValues(final SImmutableObject rcvr) {
public Object executeGeneric(final VirtualFrame frame) {
return executeEvaluated(frame, self.executeGeneric(frame));
}

@Override
protected final boolean isTaggedWithIgnoringEagerness(final Class<?> tag) {
if (tag == StatementTag.class) {
return false;
}
return super.isTaggedWithIgnoringEagerness(tag);
}
}
3 changes: 0 additions & 3 deletions src/som/interpreter/nodes/LocalVariableNode.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import com.oracle.truffle.api.frame.FrameSlotKind;
import com.oracle.truffle.api.frame.FrameSlotTypeException;
import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.instrumentation.StandardTags.StatementTag;
import com.oracle.truffle.api.source.SourceSection;

import som.compiler.Variable.Local;
Expand Down Expand Up @@ -55,8 +54,6 @@ public final void replaceWithIndependentCopyForInlining(final SplitterForLexical
protected boolean isTaggedWith(final Class<?> tag) {
if (tag == LocalVariableTag.class) {
return true;
} else if (tag == StatementTag.class) {
return isMarkedAsRootExpression();
} else {
return super.isTaggedWith(tag);
}
Expand Down
3 changes: 0 additions & 3 deletions src/som/interpreter/nodes/MessageSendNode.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.instrumentation.Instrumentable;
import com.oracle.truffle.api.instrumentation.StandardTags.CallTag;
import com.oracle.truffle.api.instrumentation.StandardTags.StatementTag;
import com.oracle.truffle.api.nodes.ExplodeLoop;
import com.oracle.truffle.api.nodes.Node;
import com.oracle.truffle.api.nodes.NodeCost;
Expand Down Expand Up @@ -81,8 +80,6 @@ protected AbstractMessageSendNode(final SourceSection source) {
protected boolean isTaggedWith(final Class<?> tag) {
if (tag == CallTag.class) {
return true;
} else if (tag == StatementTag.class) {
return true;
}
return super.isTaggedWith(tag);
}
Expand Down
3 changes: 0 additions & 3 deletions src/som/interpreter/nodes/NonLocalVariableNode.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
import com.oracle.truffle.api.frame.FrameSlotKind;
import com.oracle.truffle.api.frame.FrameSlotTypeException;
import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.instrumentation.StandardTags.StatementTag;
import com.oracle.truffle.api.source.SourceSection;

import som.interpreter.InlinerAdaptToEmbeddedOuterContext;
Expand Down Expand Up @@ -45,8 +44,6 @@ public final void replaceWithCopyAdaptedToEmbeddedOuterContext(
protected boolean isTaggedWith(final Class<?> tag) {
if (tag == LocalVariableTag.class) {
return true;
} else if (tag == StatementTag.class) {
return isMarkedAsRootExpression();
} else {
return super.isTaggedWith(tag);
}
Expand Down
9 changes: 0 additions & 9 deletions src/som/interpreter/nodes/OuterObjectRead.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import com.oracle.truffle.api.dsl.ImportStatic;
import com.oracle.truffle.api.dsl.NodeChild;
import com.oracle.truffle.api.dsl.Specialization;
import com.oracle.truffle.api.instrumentation.StandardTags.StatementTag;
import com.oracle.truffle.api.nodes.ExplodeLoop;
import com.oracle.truffle.api.profiles.ValueProfile;
import com.oracle.truffle.api.source.SourceSection;
Expand Down Expand Up @@ -210,12 +209,4 @@ public SFarReference doFarReferenceDirect(final SFarReference receiver) {

@Specialization(guards = "contextLevel == 0")
public SBlock doSBlockDirect(final SBlock receiver) { return receiver; }

@Override
protected boolean isTaggedWith(final Class<?> tag) {
if (tag == StatementTag.class) {
return isMarkedAsRootExpression();
}
return super.isTaggedWith(tag);
}
}
9 changes: 0 additions & 9 deletions src/som/interpreter/nodes/ResolvingImplicitReceiverSend.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import com.oracle.truffle.api.CompilerDirectives;
import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.instrumentation.Instrumentable;
import com.oracle.truffle.api.instrumentation.StandardTags.StatementTag;
import com.oracle.truffle.api.source.SourceSection;

import som.compiler.MixinBuilder.MixinDefinitionId;
Expand Down Expand Up @@ -93,14 +92,6 @@ protected PreevaluatedExpression specialize(final Object[] args) {
return replacedBy;
}

@Override
protected boolean isTaggedWith(final Class<?> tag) {
if (tag == StatementTag.class) {
return isMarkedAsRootExpression();
}
return super.isTaggedWith(tag);
}

@Override
public String toString() {
return "ImplicitSend(" + selector.toString() + ")";
Expand Down
9 changes: 0 additions & 9 deletions src/som/interpreter/nodes/SequenceNode.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
package som.interpreter.nodes;

import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.instrumentation.StandardTags.StatementTag;
import com.oracle.truffle.api.nodes.ExplodeLoop;
import com.oracle.truffle.api.nodes.Node;
import com.oracle.truffle.api.nodes.NodeCost;
Expand Down Expand Up @@ -67,14 +66,6 @@ public boolean isResultUsed(final ExpressionNode child) {
return false;
}

@Override
protected boolean isTaggedWith(final Class<?> tag) {
if (tag == StatementTag.class) {
return isMarkedAsRootExpression();
}
return super.isTaggedWith(tag);
}

@Override
public String toString() {
return "SeqNode[" + getSourceSection() + "]";
Expand Down
5 changes: 0 additions & 5 deletions src/som/interpreter/nodes/UninitializedVariableNode.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

import com.oracle.truffle.api.frame.FrameSlot;
import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.instrumentation.StandardTags.StatementTag;
import com.oracle.truffle.api.source.SourceSection;

import som.compiler.Variable.Local;
Expand Down Expand Up @@ -67,8 +66,6 @@ public UninitializedVariableReadNode(final UninitializedVariableReadNode node,
protected boolean isTaggedWith(final Class<?> tag) {
if (tag == LocalVarRead.class) {
return true;
} else if (tag == StatementTag.class) {
return isMarkedAsRootExpression();
} else {
return super.isTaggedWith(tag);
}
Expand Down Expand Up @@ -152,8 +149,6 @@ public UninitializedVariableWriteNode(final UninitializedVariableWriteNode node,
protected boolean isTaggedWith(final Class<?> tag) {
if (tag == LocalVarWrite.class) {
return true;
} else if (tag == StatementTag.class) {
return isMarkedAsRootExpression();
} else {
return super.isTaggedWith(tag);
}
Expand Down
3 changes: 0 additions & 3 deletions src/som/interpreter/nodes/literals/LiteralNode.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@

import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.instrumentation.Instrumentable;
import com.oracle.truffle.api.instrumentation.StandardTags.StatementTag;
import com.oracle.truffle.api.nodes.NodeCost;
import com.oracle.truffle.api.nodes.NodeInfo;
import com.oracle.truffle.api.source.SourceSection;
Expand Down Expand Up @@ -66,8 +65,6 @@ public ExpressionNode inline(final MethodBuilder builder,
protected boolean isTaggedWith(final Class<?> tag) {
if (tag == LiteralTag.class) {
return true;
} else if (tag == StatementTag.class) {
return isMarkedAsRootExpression();
} else {
return super.isTaggedWith(tag);
}
Expand Down
4 changes: 0 additions & 4 deletions src/som/interpreter/nodes/nary/EagerBinaryPrimitiveNode.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import com.oracle.truffle.api.dsl.UnsupportedSpecializationException;
import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.instrumentation.InstrumentableFactory.WrapperNode;
import com.oracle.truffle.api.instrumentation.StandardTags.StatementTag;
import com.oracle.truffle.api.nodes.Node;
import com.oracle.truffle.api.source.SourceSection;

Expand Down Expand Up @@ -39,9 +38,6 @@ public EagerBinaryPrimitiveNode(final SourceSection source,

@Override
protected boolean isTaggedWith(final Class<?> tag) {
if (tag == StatementTag.class) {
return isMarkedAsRootExpression();
}
assert !(primitive instanceof WrapperNode);
return primitive.isTaggedWithIgnoringEagerness(tag);
}
Expand Down
4 changes: 0 additions & 4 deletions src/som/interpreter/nodes/nary/EagerTernaryPrimitiveNode.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import com.oracle.truffle.api.dsl.UnsupportedSpecializationException;
import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.instrumentation.InstrumentableFactory.WrapperNode;
import com.oracle.truffle.api.instrumentation.StandardTags.StatementTag;
import com.oracle.truffle.api.nodes.Node;
import com.oracle.truffle.api.source.SourceSection;

Expand Down Expand Up @@ -44,9 +43,6 @@ public EagerTernaryPrimitiveNode(

@Override
protected boolean isTaggedWith(final Class<?> tag) {
if (tag == StatementTag.class) {
return isMarkedAsRootExpression();
}
assert !(primitive instanceof WrapperNode);
return primitive.isTaggedWithIgnoringEagerness(tag);
}
Expand Down
4 changes: 0 additions & 4 deletions src/som/interpreter/nodes/nary/EagerUnaryPrimitiveNode.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import com.oracle.truffle.api.dsl.UnsupportedSpecializationException;
import com.oracle.truffle.api.frame.VirtualFrame;
import com.oracle.truffle.api.instrumentation.InstrumentableFactory.WrapperNode;
import com.oracle.truffle.api.instrumentation.StandardTags.StatementTag;
import com.oracle.truffle.api.nodes.Node;
import com.oracle.truffle.api.source.SourceSection;

Expand Down Expand Up @@ -34,9 +33,6 @@ public EagerUnaryPrimitiveNode(final SourceSection source, final SSymbol selecto

@Override
protected boolean isTaggedWith(final Class<?> tag) {
if (tag == StatementTag.class) {
return isMarkedAsRootExpression();
}
assert !(primitive instanceof WrapperNode);
return primitive.isTaggedWithIgnoringEagerness(tag);
}
Expand Down

0 comments on commit 89072ab

Please sign in to comment.