# HG changeset patch # User Thomas Wuerthinger # Date 1303915411 -7200 # Node ID 58c05e4c51e2f7c482f58830007b92ca3a98f8d3 # Parent 2f271a85d1043f28ce5cf605861e3ce534c700a5 Removing two more HIR instructions. diff -r 2f271a85d104 -r 58c05e4c51e2 graal/GraalCompiler/src/com/sun/c1x/gen/LIRGenerator.java --- a/graal/GraalCompiler/src/com/sun/c1x/gen/LIRGenerator.java Wed Apr 27 16:40:09 2011 +0200 +++ b/graal/GraalCompiler/src/com/sun/c1x/gen/LIRGenerator.java Wed Apr 27 16:43:31 2011 +0200 @@ -350,14 +350,6 @@ } @Override - public void visitNewObjectArrayClone(NewObjectArrayClone x) { - XirArgument length = toXirArgument(x.length()); - XirArgument referenceArray = toXirArgument(x.referenceArray()); - XirSnippet snippet = xir.genNewObjectArrayClone(site(x), length, referenceArray); - emitXir(snippet, x, stateFor(x), null, true); - } - - @Override public void visitNewMultiArray(NewMultiArray x) { XirArgument[] dims = new XirArgument[x.dimensions().length]; @@ -508,28 +500,6 @@ } @Override - public void visitTemplateCall(TemplateCall x) { - CiValue resultOperand = resultOperandFor(x.kind); - List argList; - if (x.receiver() != null) { - CiCallingConvention cc = compilation.frameMap().getCallingConvention(new CiKind[] {CiKind.Object}, JavaCall); - argList = visitInvokeArguments(cc, new Value[] {x.receiver()}, null); - } else { - argList = new ArrayList(); - } - - if (x.address() != null) { - CiValue callAddress = load(x.address()); - argList.add(callAddress); - } - lir.templateCall(resultOperand, argList); - if (resultOperand.isLegal()) { - CiValue result = createResultVariable(x); - lir.move(resultOperand, result); - } - } - - @Override public void visitMonitorAddress(MonitorAddress x) { CiValue result = createResultVariable(x); lir.monitorAddress(x.monitor(), result); diff -r 2f271a85d104 -r 58c05e4c51e2 graal/GraalCompiler/src/com/sun/c1x/ir/DefaultValueVisitor.java --- a/graal/GraalCompiler/src/com/sun/c1x/ir/DefaultValueVisitor.java Wed Apr 27 16:40:09 2011 +0200 +++ b/graal/GraalCompiler/src/com/sun/c1x/ir/DefaultValueVisitor.java Wed Apr 27 16:43:31 2011 +0200 @@ -67,7 +67,6 @@ @Override public void visitNewInstance(NewInstance i) { visit(i); } @Override public void visitNewMultiArray(NewMultiArray i) { visit(i); } @Override public void visitNewObjectArray(NewObjectArray i) { visit(i); } - @Override public void visitNewObjectArrayClone(NewObjectArrayClone i) { visit(i); } @Override public void visitNewTypeArray(NewTypeArray i) { visit(i); } @Override public void visitNullCheck(NullCheck i) { visit(i); } @Override public void visitPhi(Phi i) { visit(i); } @@ -78,6 +77,5 @@ @Override public void visitStoreField(StoreField i) { visit(i); } @Override public void visitStoreIndexed(StoreIndexed i) { visit(i); } @Override public void visitTableSwitch(TableSwitch i) { visit(i); } - @Override public void visitTemplateCall(TemplateCall i) { visit(i); } @Override public void visitThrow(Throw i) { visit(i); } } diff -r 2f271a85d104 -r 58c05e4c51e2 graal/GraalCompiler/src/com/sun/c1x/ir/NewObjectArrayClone.java --- a/graal/GraalCompiler/src/com/sun/c1x/ir/NewObjectArrayClone.java Wed Apr 27 16:40:09 2011 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,72 +0,0 @@ -/* - * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ -package com.sun.c1x.ir; - -import com.sun.c1x.debug.*; -import com.sun.c1x.value.*; -import com.sun.cri.ri.*; - -/** - * The {@code NewObjectArray} instruction represents an allocation of an object array. - * - * @author Thomas Wuerthinger - */ -public final class NewObjectArrayClone extends NewArray { - - final Value referenceArray; - - /** - * Constructs a new NewObjectArray instruction. - * @param length the instruction producing the length of the array - * @param referenceArray - * @param stateBefore the state before the allocation - */ - public NewObjectArrayClone(Value length, Value referenceArray, FrameState stateBefore) { - super(length, stateBefore); - this.referenceArray = referenceArray; - } - - @Override - public RiType exactType() { - return referenceArray.exactType(); - } - - @Override - public RiType declaredType() { - return referenceArray.declaredType(); - } - - public Value referenceArray() { - return referenceArray; - } - - @Override - public void accept(ValueVisitor v) { - v.visitNewObjectArrayClone(this); - } - - @Override - public void print(LogStream out) { - out.print("new object array [").print(length()).print("] ").print(referenceArray()); - } -} diff -r 2f271a85d104 -r 58c05e4c51e2 graal/GraalCompiler/src/com/sun/c1x/ir/TemplateCall.java --- a/graal/GraalCompiler/src/com/sun/c1x/ir/TemplateCall.java Wed Apr 27 16:40:09 2011 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,91 +0,0 @@ -/* - * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ -package com.sun.c1x.ir; - -import com.sun.c1x.debug.*; -import com.sun.cri.bytecode.*; -import com.sun.cri.ci.*; - -/** - * Represents a {@linkplain Bytecodes#TEMPLATE_CALL template call}. - * - * @author Doug Simon - */ -public final class TemplateCall extends Instruction { - - /** - * The address to call (null implies a direct call that will be patched). - */ - private Value address; - - private Value receiver; - - public TemplateCall(CiKind returnKind, Value address, Value receiver) { - super(returnKind.stackKind()); - this.address = address; - this.receiver = receiver; - setFlag(Flag.LiveSideEffect); // ensure this instruction is not eliminated - } - - @Override - public boolean canTrap() { - return true; - } - - public Value address() { - return address; - } - - public Value receiver() { - return receiver; - } - - @Override - public void inputValuesDo(ValueClosure closure) { - if (address != null) { - address = closure.apply(address); - } - if (receiver != null) { - receiver = closure.apply(receiver); - } - } - - @Override - public void accept(ValueVisitor v) { - v.visitTemplateCall(this); - } - - @Override - public void print(LogStream out) { - out.print("template_call").print('('); - if (address != null) { - out.print(address); - if (receiver != null) { - out.print(", ").print(receiver); - } - } else if (receiver != null) { - out.print(receiver); - out.print(')'); - } - } -} diff -r 2f271a85d104 -r 58c05e4c51e2 graal/GraalCompiler/src/com/sun/c1x/ir/ValueVisitor.java --- a/graal/GraalCompiler/src/com/sun/c1x/ir/ValueVisitor.java Wed Apr 27 16:40:09 2011 +0200 +++ b/graal/GraalCompiler/src/com/sun/c1x/ir/ValueVisitor.java Wed Apr 27 16:43:31 2011 +0200 @@ -57,7 +57,6 @@ public abstract void visitNewInstance(NewInstance i); public abstract void visitNewMultiArray(NewMultiArray i); public abstract void visitNewObjectArray(NewObjectArray i); - public abstract void visitNewObjectArrayClone(NewObjectArrayClone newObjectArrayClone); public abstract void visitNewTypeArray(NewTypeArray i); public abstract void visitNullCheck(NullCheck i); public abstract void visitPhi(Phi i); @@ -68,6 +67,5 @@ public abstract void visitStoreField(StoreField i); public abstract void visitStoreIndexed(StoreIndexed i); public abstract void visitTableSwitch(TableSwitch i); - public abstract void visitTemplateCall(TemplateCall templateCall); public abstract void visitThrow(Throw i); }