comparison graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/FrameSlotNode.java @ 9258:07f8d136a05e

Truffle API changes for the Frame API. Introduction of Assumptions class.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Tue, 23 Apr 2013 15:34:06 +0200
parents 5e3d1a68664e
children 447465567e6f
comparison
equal deleted inserted replaced
9257:542712a4732a 9258:07f8d136a05e
22 */ 22 */
23 package com.oracle.truffle.sl.nodes; 23 package com.oracle.truffle.sl.nodes;
24 24
25 import com.oracle.truffle.api.frame.*; 25 import com.oracle.truffle.api.frame.*;
26 26
27 public abstract class FrameSlotNode extends TypedNode implements FrameSlotTypeListener { 27 public abstract class FrameSlotNode extends TypedNode {
28 28
29 protected final FrameSlot slot; 29 protected final FrameSlot slot;
30 30
31 public FrameSlotNode(FrameSlot slot) { 31 public FrameSlotNode(FrameSlot slot) {
32 this.slot = slot; 32 this.slot = slot;
33 slot.registerOneShotTypeListener(this);
34 }
35
36 @Override
37 public void typeChanged(FrameSlot changedSlot, Class<?> oldType) {
38 if (getParent() != null) {
39 replace(specialize(changedSlot.getType()));
40 }
41 } 33 }
42 34
43 protected abstract FrameSlotNode specialize(Class<?> clazz); 35 protected abstract FrameSlotNode specialize(Class<?> clazz);
44 } 36 }