Mercurial > hg > truffle
changeset 16727:9d55732d0880
additional info field on FrameSlot nodes (for language-specific use)
author | Lukas Stadler <lukas.stadler@oracle.com> |
---|---|
date | Fri, 08 Aug 2014 15:54:39 +0200 |
parents | 734247341e6e |
children | dbc0838b0def 444ef6194ce3 8c606e8053b8 |
files | graal/com.oracle.truffle.api/src/com/oracle/truffle/api/frame/FrameDescriptor.java graal/com.oracle.truffle.api/src/com/oracle/truffle/api/frame/FrameSlot.java |
diffstat | 2 files changed, 13 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/frame/FrameDescriptor.java Fri Aug 08 15:52:34 2014 +0200 +++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/frame/FrameDescriptor.java Fri Aug 08 15:54:39 2014 +0200 @@ -53,13 +53,17 @@ } public FrameSlot addFrameSlot(Object identifier) { - return addFrameSlot(identifier, FrameSlotKind.Illegal); + return addFrameSlot(identifier, null, FrameSlotKind.Illegal); } public FrameSlot addFrameSlot(Object identifier, FrameSlotKind kind) { + return addFrameSlot(identifier, null, kind); + } + + public FrameSlot addFrameSlot(Object identifier, Object info, FrameSlotKind kind) { CompilerAsserts.neverPartOfCompilation("interpreter-only. includes hashmap operations."); assert !identifierToSlotMap.containsKey(identifier); - FrameSlot slot = new FrameSlot(this, identifier, slots.size(), kind); + FrameSlot slot = new FrameSlot(this, identifier, info, slots.size(), kind); slots.add(slot); identifierToSlotMap.put(identifier, slot); updateVersion();
--- a/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/frame/FrameSlot.java Fri Aug 08 15:52:34 2014 +0200 +++ b/graal/com.oracle.truffle.api/src/com/oracle/truffle/api/frame/FrameSlot.java Fri Aug 08 15:54:39 2014 +0200 @@ -34,12 +34,14 @@ private final FrameDescriptor descriptor; private final Object identifier; + private final Object info; private final int index; @CompilationFinal private FrameSlotKind kind; - public FrameSlot(FrameDescriptor descriptor, Object identifier, int index, FrameSlotKind kind) { + public FrameSlot(FrameDescriptor descriptor, Object identifier, Object info, int index, FrameSlotKind kind) { this.descriptor = descriptor; this.identifier = identifier; + this.info = info; this.index = index; this.kind = kind; } @@ -48,6 +50,10 @@ return identifier; } + public Object getInfo() { + return info; + } + public int getIndex() { return index; }