Mercurial > hg > truffle
changeset 15143:c68064651847
Make prim method from LoopFragmentInside to an abstract method on LoopFragment
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Mon, 14 Apr 2014 15:13:17 +0200 |
parents | c92546febda6 |
children | 76695509b2fd |
files | graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragment.java graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragmentInside.java graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragmentWhole.java |
diffstat | 3 files changed, 16 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragment.java Mon Apr 14 15:08:36 2014 +0200 +++ b/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragment.java Mon Apr 14 15:13:17 2014 +0200 @@ -79,6 +79,15 @@ duplicationMap.put(oldNode, newNode); } + /** + * Gets the corresponding value in this fragment. Should be called on duplicate fragments with a + * node from the original fragment as argument. + * + * @param b original value + * @return corresponding value in the peel + */ + protected abstract ValueNode prim(ValueNode b); + public boolean isDuplicate() { return original != null; }
--- a/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragmentInside.java Mon Apr 14 15:08:36 2014 +0200 +++ b/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragmentInside.java Mon Apr 14 15:13:17 2014 +0200 @@ -229,7 +229,8 @@ * @param b original value * @return corresponding value in the peel */ - private ValueNode prim(ValueNode b) { + @Override + protected ValueNode prim(ValueNode b) { assert isDuplicate(); LoopBeginNode loopBegin = original().loop().loopBegin(); if (loopBegin.isPhiAtMerge(b)) {
--- a/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragmentWhole.java Mon Apr 14 15:08:36 2014 +0200 +++ b/graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragmentWhole.java Mon Apr 14 15:13:17 2014 +0200 @@ -63,6 +63,11 @@ } @Override + protected ValueNode prim(ValueNode b) { + return getDuplicatedNode(b); + } + + @Override protected DuplicationReplacement getDuplicationReplacement() { final FixedNode entry = loop().entryPoint(); final Graph graph = this.graph();