Mercurial > hg > truffle
diff graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/ReadArgumentNode.java @ 13336:d4c6dd07be76
SL: added exemplary uses of new profiling utility BranchProfile to SL.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Sun, 15 Dec 2013 22:20:12 +0100 |
parents | 71991b7a0f14 |
children |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/ReadArgumentNode.java Sun Dec 15 22:19:19 2013 +0100 +++ b/graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/ReadArgumentNode.java Sun Dec 15 22:20:12 2013 +0100 @@ -23,12 +23,16 @@ package com.oracle.truffle.sl.nodes; import com.oracle.truffle.api.frame.*; +import com.oracle.truffle.api.utilities.*; import com.oracle.truffle.sl.runtime.*; public class ReadArgumentNode extends TypedNode { private final int index; + private final BranchProfile outOfBounds = new BranchProfile(); + private final BranchProfile inBounds = new BranchProfile(); + public ReadArgumentNode(int index) { this.index = index; } @@ -37,8 +41,10 @@ public Object executeGeneric(VirtualFrame frame) { Object[] args = SLArguments.get(frame).arguments; if (index < args.length) { + inBounds.enter(); return args[index]; } else { + outOfBounds.enter(); return SLNull.INSTANCE; } }