From: <dgr...@us...> - 2006-11-16 21:17:22
|
Revision: 10995 http://svn.sourceforge.net/jikesrvm/?rev=10995&view=rev Author: dgrove-oss Date: 2006-11-16 13:17:20 -0800 (Thu, 16 Nov 2006) Log Message: ----------- directory trees to match the set of current java packages in each of the src subtrees. After this, the next commit should be the svn move of all the java sources. Added Paths: ----------- rvmroot/trunk/rvm/src/com/ rvmroot/trunk/rvm/src/com/ibm/ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/jni/ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/osr/ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/quick/ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/util/ rvmroot/trunk/rvm/src/gnu/ rvmroot/trunk/rvm/src/gnu/classpath/ rvmroot/trunk/rvm/src/gnu/java/ rvmroot/trunk/rvm/src/gnu/java/lang/ rvmroot/trunk/rvm/src/java/ rvmroot/trunk/rvm/src/java/io/ rvmroot/trunk/rvm/src/java/lang/ rvmroot/trunk/rvm/src/java/lang/ref/ rvmroot/trunk/rvm/src/java/lang/reflect/ rvmroot/trunk/rvm/src/java/net/ rvmroot/trunk/rvm/src/java/nio/ rvmroot/trunk/rvm/src/java/util/ rvmroot/trunk/rvm/src/org/ rvmroot/trunk/rvm/src/org/mmtk/ rvmroot/trunk/rvm/src/org/mmtk/vm/ rvmroot/trunk/rvm/src/org/mmtk/vm/gcspy/ rvmroot/trunk/rvm/src/org/vmmagic/ rvmroot/trunk/rvm/src/org/vmmagic/pragma/ rvmroot/trunk/rvm/src/org/vmmagic/unboxed/ rvmroot/trunk/rvm/src-ia32/com/ rvmroot/trunk/rvm/src-ia32/com/ibm/ rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/ rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/jni/ rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/ rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/ir/ rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/osr/ rvmroot/trunk/rvm/src-ppc/com/ rvmroot/trunk/rvm/src-ppc/com/ibm/ rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/ rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/jni/ rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/opt/ rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/opt/ir/ rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/osr/ rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/quick/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cap...@us...> - 2006-11-20 09:43:40
|
Revision: 11019 http://svn.sourceforge.net/jikesrvm/?rev=11019&view=rev Author: captain5050 Date: 2006-11-20 01:43:38 -0800 (Mon, 20 Nov 2006) Log Message: ----------- More ECJ warning fixes, a couple of fields made final. Particular focus on the opt compiler Modified Paths: -------------- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_AdjustBranchProbabilities.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_AnnotatedLSTGraph.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_AnnotatedLSTNode.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_BURS.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_BURS_Common_Helpers.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_BURS_IntConstantTreeNode.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_BranchOptimizations.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_CFGTransformations.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ClassLoadingDependencyManager.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ConvertMIRtoMC.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ConvertToLowLevelIR.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_DominatorInfo.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Dominators.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_DominatorsPhase.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_EnterSSA.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_EscapeTransformations.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ExpressionFolding.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_GCP.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_GenericStackManager.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_GlobalValueNumber.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_GlobalValueNumberState.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_HeapVariable.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_IndexPropagationSystem.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_InlineDecision.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_InlineTools.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_InterfaceHierarchy.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_InvalidationDatabase.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_InvokeeThreadLocalContext.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LICM.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LTDominatorInfo.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LTDominators.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LeaveSSA.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LinearScan.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LiveAnalysis.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LiveRangeSplitting.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LocalCopyProp.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LoopUnrolling.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_MethodSummary.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_PiNodes.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ReorderingPhase.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ResourceReservation.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SSA.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SSAOptions.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SSATuneUp.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ShortArrayReplacer.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Simple.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SimpleEscape.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Simplifier.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SpecializationDatabase.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SpecializedMethodPool.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_StaticSplitting.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SummaryDatabase.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_TailRecursionElimination.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ValueGraphVertex.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/VM_OptGCMap.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/VM_OptSaveVolatile.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_AbstractRegisterPool.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_AddressConstantOperand.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_BC2IR.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_BasicBlock.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_ControlFlowGraph.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_ExceptionHandlerBasicBlock.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_GenerateMagic.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_GenericRegisterPool.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_IRTools.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_InlineSequence.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_Instruction.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_IntConstantOperand.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_MethodOperand.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_RegisterOperand.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_TypeOperand.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/osr/OSR_EncodedOSRMap.java rvmroot/trunk/rvm/src-generated/opt-ir/InstructionFormats.template rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/OPT_CallingConvention.java rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/OPT_ComplexLIR2MIRExpansion.java rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/OPT_ConvertALUOperators.java rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/OPT_RegisterRestrictions.java rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/OPT_StackManager.java rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/VM_OptExceptionDeliverer.java rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/ir/OPT_GenerateMachineSpecificMagic.java rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/ir/OPT_PhysicalRegisterSet.java rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/ir/OPT_RegisterPool.java Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_AdjustBranchProbabilities.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_AdjustBranchProbabilities.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_AdjustBranchProbabilities.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -9,12 +9,9 @@ //$Id$ package com.ibm.jikesrvm.opt; -import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.classloader.*; import com.ibm.jikesrvm.opt.ir.*; -import org.vmmagic.pragma.*; - /** * This pass adjusts branch probabilities derived from static estimates * to account for blocks that are statically guessed to be infrequent. Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_AnnotatedLSTGraph.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_AnnotatedLSTGraph.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_AnnotatedLSTGraph.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -12,8 +12,6 @@ import com.ibm.jikesrvm.opt.ir.OPT_IR; import com.ibm.jikesrvm.opt.OPT_LSTGraph; import com.ibm.jikesrvm.VM; -import java.util.Vector; -import java.util.Enumeration; /** * Extends the functionality of a {@link OPT_LSTGraph} so that it comprises Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_AnnotatedLSTNode.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_AnnotatedLSTNode.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_AnnotatedLSTNode.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -12,7 +12,6 @@ import com.ibm.jikesrvm.opt.ir.OPT_BasicBlock; import com.ibm.jikesrvm.opt.ir.OPT_Instruction; import com.ibm.jikesrvm.opt.ir.OPT_Operand; -import com.ibm.jikesrvm.opt.ir.OPT_HeapOperand; import com.ibm.jikesrvm.opt.ir.OPT_Operators; import com.ibm.jikesrvm.opt.ir.*; import com.ibm.jikesrvm.VM; @@ -353,7 +352,7 @@ "\n"); OPT_BasicBlockEnumeration loopBlocks = getBasicBlocks(); - loop_over_basic_blocks: + // loop_over_basic_blocks: while(loopBlocks.hasMoreElements()){ // The current basic block OPT_BasicBlock curLoopBB = loopBlocks.next(); @@ -871,7 +870,7 @@ // The blocks (copy of) that are branched to from this block OPT_BasicBlockEnumeration block_outEdges = block.getOut(); // Check that the blocks that we branch into are all inside the loop - loop_over_loop_body_block_out_edges: + // loop_over_loop_body_block_out_edges: while(block_outEdges.hasMoreElements()){ OPT_BasicBlock curEdgeBB = block_outEdges.next(); // Is this block in the loop? @@ -892,7 +891,7 @@ // The blocks (copy of) that branch to this block OPT_BasicBlockEnumeration block_inEdges = block.getIn(); // Check that the blocks that branch into this one are all inside the loop too - loop_over_loop_body_block_in_edges: + // loop_over_loop_body_block_in_edges: while(block_inEdges.hasMoreElements()){ OPT_BasicBlock curEdgeBB = block_inEdges.next(); // Is this block in the loop? @@ -920,7 +919,7 @@ OPT_BasicBlockEnumeration loopBlocks = getBasicBlocks(); // Loop over all blocks within this loop and calculate iterator.. information - loop_over_basic_blocks: + // loop_over_basic_blocks: while(loopBlocks.hasMoreElements()) { // The current basic block OPT_BasicBlock curLoopBB = loopBlocks.next(); @@ -953,7 +952,7 @@ // The blocks (copy of) that branch to this block OPT_BasicBlockEnumeration head_inEdges = header.getIn(); // Loop over blocks that branch to this one - loop_over_header_in_edges: + // loop_over_header_in_edges: while(head_inEdges.hasMoreElements()){ OPT_BasicBlock curEdgeBB = head_inEdges.next(); // Is this block in the loop? @@ -994,7 +993,7 @@ // Check the exit block leaves the loop OPT_BasicBlockEnumeration exitBlock_outEdges = exit.getOut(); boolean exits = false; - check_exit_block_exits: + // check_exit_block_exits: while(exitBlock_outEdges.hasMoreElements()){ OPT_BasicBlock curExitBlockOutEdgeBB = exitBlock_outEdges.next(); if(isInLoop(curExitBlockOutEdgeBB)){ Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_BURS.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_BURS.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_BURS.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -11,7 +11,6 @@ import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.opt.ir.*; -import java.io.*; /** * A few common utilites used for invoking BURS tree-pattern matching Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_BURS_Common_Helpers.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_BURS_Common_Helpers.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_BURS_Common_Helpers.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -9,7 +9,6 @@ //$Id$ package com.ibm.jikesrvm.opt; -import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.opt.ir.*; import org.vmmagic.unboxed.Address; Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_BURS_IntConstantTreeNode.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_BURS_IntConstantTreeNode.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_BURS_IntConstantTreeNode.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -10,7 +10,6 @@ package com.ibm.jikesrvm.opt; -import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.opt.ir.*; /** Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_BranchOptimizations.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_BranchOptimizations.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_BranchOptimizations.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -14,7 +14,6 @@ import com.ibm.jikesrvm.classloader.VM_TypeReference; import java.util.HashMap; import java.util.Enumeration; -import java.util.Iterator; import java.util.HashSet; /** Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_CFGTransformations.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_CFGTransformations.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_CFGTransformations.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -197,7 +197,6 @@ * part of the loop, but guards it. */ private static boolean turnLoopIntoUntil(OPT_LSTNode n, OPT_IR ir) { - OPT_BitVector nloop = n.loop; OPT_BasicBlock header = n.header; OPT_BasicBlock newLoopTest = null; Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ClassLoadingDependencyManager.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ClassLoadingDependencyManager.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ClassLoadingDependencyManager.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -11,7 +11,6 @@ import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.classloader.*; -import java.util.*; import java.io.*; /** Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ConvertMIRtoMC.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ConvertMIRtoMC.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ConvertMIRtoMC.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -10,9 +10,7 @@ package com.ibm.jikesrvm.opt; import com.ibm.jikesrvm.*; -import com.ibm.jikesrvm.classloader.*; import com.ibm.jikesrvm.opt.ir.*; -import com.ibm.jikesrvm.memorymanagers.mminterface.MM_Interface; /** * Convert an IR object from MIR to final Machinecode @@ -52,8 +50,6 @@ } public final void perform (OPT_IR ir) { - OPT_Options options = ir.options; - if (OPT_IR.SANITY_CHECK) { ir.verify("right before Final MIR Expansion", true); } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ConvertToLowLevelIR.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ConvertToLowLevelIR.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ConvertToLowLevelIR.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -340,7 +340,6 @@ /******* First basic block */ OPT_RegisterOperand t; - int last; if (lowLimit != 0) { t = InsertBinary(s, ir, INT_ADD, VM_TypeReference.Int, reg, IC(-lowLimit)); } else { Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_DominatorInfo.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_DominatorInfo.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_DominatorInfo.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -10,7 +10,6 @@ package com.ibm.jikesrvm.opt; import com.ibm.jikesrvm.opt.ir.OPT_BasicBlock; -import java.util.*; /** * OPT_DominatorInfo.java Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Dominators.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Dominators.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Dominators.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -11,7 +11,6 @@ import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.opt.ir.*; -import java.util.*; /** * Calculate dominators for basic blocks. Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_DominatorsPhase.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_DominatorsPhase.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_DominatorsPhase.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -96,7 +96,6 @@ // computation completed, so set flag ir.HIRInfo.dominatorsAreComputed = true; } catch (OPT_OperationNotImplementedException e) { - OPT_Options options = ir.options; OPT_Compiler.report(e.getMessage()); } } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_EnterSSA.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_EnterSSA.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_EnterSSA.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -695,7 +695,7 @@ // populate the Stacks with initial names for // each parameter, and push "null" for other symbolic registers if (i >= symbolicRegisters.length) continue; - OPT_Register r = symbolicRegisters[i]; + //OPT_Register r = symbolicRegisters[i]; // If a register's name is "null", that means the // register has not yet been defined. S[i].push(null); Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_EscapeTransformations.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_EscapeTransformations.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_EscapeTransformations.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -9,10 +9,8 @@ //$Id$ package com.ibm.jikesrvm.opt; -import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.classloader.*; -import java.util.*; import com.ibm.jikesrvm.opt.ir.*; /** Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ExpressionFolding.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ExpressionFolding.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ExpressionFolding.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -13,7 +13,6 @@ import com.ibm.jikesrvm.opt.ir.*; import java.util.Enumeration; import java.util.HashSet; -import java.util.HashMap; import java.util.Iterator; import org.vmmagic.unboxed.Address; @@ -23,9 +22,6 @@ * @author Stephen Fink */ class OPT_ExpressionFolding implements OPT_Operators { - /** Generate verbose debug output? */ - private static final boolean DEBUG = false; - private static final boolean RESTRICT_TO_DEAD_EXPRESSIONS = true; /** Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_GCP.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_GCP.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_GCP.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -9,9 +9,7 @@ //$Id$ package com.ibm.jikesrvm.opt; -import java.util.*; import com.ibm.jikesrvm.opt.ir.*; -import java.lang.reflect.Constructor; /** * Global code placement comes in two flavours. The first is loop Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_GenericStackManager.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_GenericStackManager.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_GenericStackManager.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -289,8 +289,6 @@ * @param s the instruction for which we need r in a register */ private ScratchRegister getCurrentScratchRegister(OPT_Register r,OPT_Instruction s) { - ScratchRegister result = null; - for (Iterator i = scratchInUse.iterator(); i.hasNext(); ) { ScratchRegister sr = (ScratchRegister)i.next(); if (sr.currentContents == r) { @@ -319,8 +317,6 @@ * Else return null. */ private ScratchRegister getPhysicalScratchRegister(OPT_Register r) { - ScratchRegister result = null; - for (Iterator i = scratchInUse.iterator(); i.hasNext(); ) { ScratchRegister sr = (ScratchRegister)i.next(); if (sr.scratch == r) { Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_GlobalValueNumber.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_GlobalValueNumber.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_GlobalValueNumber.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -10,7 +10,6 @@ package com.ibm.jikesrvm.opt; import com.ibm.jikesrvm.opt.ir.*; -import java.util.*; /** * This class implements global value numbering Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_GlobalValueNumberState.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_GlobalValueNumberState.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_GlobalValueNumberState.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -41,10 +41,6 @@ final private static boolean NO_PARAM_ALIAS = false; /** - * Governing IR - */ - private final OPT_IR ir; - /** * ArrayList of OPT_GVCongruenceClass, indexed by value number. */ private final ArrayList B; @@ -63,7 +59,6 @@ * @param ir governing IR */ OPT_GlobalValueNumberState (OPT_IR ir) { - this.ir = ir; B = new ArrayList(); workList = new Stack(); valueGraph = new OPT_ValueGraph(ir); Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_HeapVariable.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_HeapVariable.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_HeapVariable.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -11,7 +11,6 @@ import com.ibm.jikesrvm.opt.ir.OPT_IR; import com.ibm.jikesrvm.opt.ir.OPT_BasicBlock; -import java.util.*; /** * An OPT_HeapVariable represents a heap variable for heap array SSA form Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_IndexPropagationSystem.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_IndexPropagationSystem.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_IndexPropagationSystem.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -9,7 +9,6 @@ //$Id$ package com.ibm.jikesrvm.opt; -import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.classloader.*; import com.ibm.jikesrvm.opt.ir.*; import com.ibm.jikesrvm.opt.OPT_IndexPropagation.*; Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_InlineDecision.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_InlineDecision.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_InlineDecision.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -9,7 +9,6 @@ //$Id$ package com.ibm.jikesrvm.opt; -import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.classloader.*; /** Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_InlineTools.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_InlineTools.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_InlineTools.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -14,8 +14,6 @@ import com.ibm.jikesrvm.opt.ir.*; import java.util.Stack; -import org.vmmagic.pragma.*; - /** * This class provides some utilities that are useful for inlining. * Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_InterfaceHierarchy.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_InterfaceHierarchy.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_InterfaceHierarchy.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -9,7 +9,6 @@ //$Id$ package com.ibm.jikesrvm.opt; -import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.util.*; import com.ibm.jikesrvm.classloader.*; import java.util.Iterator; Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_InvalidationDatabase.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_InvalidationDatabase.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_InvalidationDatabase.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -9,7 +9,6 @@ //$Id$ package com.ibm.jikesrvm.opt; -import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.util.*; import com.ibm.jikesrvm.classloader.*; import java.util.Iterator; Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_InvokeeThreadLocalContext.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_InvokeeThreadLocalContext.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_InvokeeThreadLocalContext.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -12,8 +12,6 @@ import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.classloader.*; -import java.util.Vector; - /** * This class represents a specialization context meaning * "the invokee is thread local". Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LICM.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LICM.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LICM.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -835,7 +835,7 @@ relocated = new HashSet(); if (ir.IRStage == OPT_IR.HIR) { - OPT_SimpleEscape analyzer = new OPT_SimpleEscape(); + // OPT_SimpleEscape analyzer = new OPT_SimpleEscape(); // escapeSummary = analyzer.simpleEscapeAnalysis(ir); - unused } // Note: the following unfactors the CFG @@ -903,7 +903,6 @@ private OPT_BasicBlock block[]; private OPT_BasicBlock origBlock[]; private OPT_Instruction earlyPos[]; - private OPT_SSA ssa; private OPT_SSADictionary ssad; private OPT_DominatorTree dominator; private OPT_IR ir; Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LTDominatorInfo.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LTDominatorInfo.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LTDominatorInfo.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -26,7 +26,7 @@ private int semiDominator; private OPT_BasicBlock dominator; // the imediate dominator private OPT_BasicBlock parent; - private java.util.HashSet bucket; + private final HashSet bucket; private OPT_BasicBlock label; private OPT_BasicBlock ancestor; // Used to keep the trees balanced, during path compression @@ -48,7 +48,7 @@ semiDominator = 0; dominator = null; parent = null; - bucket = new java.util.HashSet(); + bucket = new HashSet(); ancestor = null; label = block; size = 1; @@ -151,7 +151,7 @@ * Returns an iterator over this block's bucket * @return an iterator over this block's bucket */ - public java.util.Iterator getBucketIterator() { + public Iterator getBucketIterator() { return bucket.iterator(); } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LTDominators.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LTDominators.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LTDominators.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -11,7 +11,7 @@ import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.opt.ir.*; -import java.util.*; +import java.util.*; /** * Calculate dominators using Langauer and Tarjan's fastest algorithm. Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LeaveSSA.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LeaveSSA.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LeaveSSA.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -313,9 +313,6 @@ OPT_Register r = c.source.asRegister().register; usedByAnother.add(r); } - if (c.destination instanceof OPT_RegisterOperand) { - OPT_Register r = c.destination.asRegister().register; - } } } } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LinearScan.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LinearScan.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LinearScan.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -281,7 +281,7 @@ this.ir = ir; // The registerManager has already been initialized - OPT_GenericStackManager sm = ir.stackManager; + //OPT_GenericStackManager sm = ir.stackManager; // Get register restrictions // OPT_RegisterRestrictions restrict = sm.getRestrictions(); - unused @@ -2266,7 +2266,7 @@ static abstract class IntervalSet extends TreeSet { - private boolean sortByStart = true; + private final boolean sortByStart; /** * Create an interval set sorted by increasing start or end number Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LiveAnalysis.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LiveAnalysis.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LiveAnalysis.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -1247,7 +1247,6 @@ for (int i=0, n=ls.length; i<n; i++) { if (ls[i] != VoidTypeCode) { // check liveness - int cur_idx = elm_idx; OPT_Operand op = OsrPoint.getElement(inst, elm_idx++); OSR_LocalRegPair tuple = new OSR_LocalRegPair(OSR_Constants.LOCAL, i, ls[i], op); Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LiveRangeSplitting.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LiveRangeSplitting.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LiveRangeSplitting.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -9,11 +9,9 @@ //$Id$ package com.ibm.jikesrvm.opt; -import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.classloader.*; import com.ibm.jikesrvm.opt.ir.*; -import java.util.Map; import java.util.HashMap; import java.util.HashSet; import java.util.Enumeration; Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LocalCopyProp.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LocalCopyProp.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LocalCopyProp.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -78,7 +78,6 @@ int numUses = s.getNumberOfUses(); if (numUses > 0) { boolean didSomething = false; - int numDefs = s.getNumberOfDefs(); for (OPT_OperandEnumeration e = s.getUses(); e.hasMoreElements(); ) { OPT_Operand use = e.next(); if (use instanceof OPT_RegisterOperand) { Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LoopUnrolling.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LoopUnrolling.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LoopUnrolling.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -57,15 +57,10 @@ (options.LOOP_VERSIONING == false)); } - private OPT_IR ir = null; - /** * This is the method that actually does the work of the phase. */ public void perform (OPT_IR ir) { - - this.ir = ir; - unrollFactor = (1 << ir.options.UNROLL_LOG); if (ir.hasReachableExceptionHandlers()) return; Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_MethodSummary.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_MethodSummary.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_MethodSummary.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -9,7 +9,6 @@ //$Id$ package com.ibm.jikesrvm.opt; -import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.classloader.*; /** Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_PiNodes.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_PiNodes.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_PiNodes.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -10,8 +10,6 @@ package com.ibm.jikesrvm.opt; import com.ibm.jikesrvm.*; -import java.util.*; -import java.math.*; import com.ibm.jikesrvm.opt.ir.*; import java.lang.reflect.Constructor; Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ReorderingPhase.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ReorderingPhase.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ReorderingPhase.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -294,7 +294,6 @@ // Find the next chain to append. nextChoice = null; - float placedWeight = 0f; for (Iterator i = chainInfo.values().iterator(); i.hasNext();) { ChainInfo cand = (ChainInfo)i.next(); if (cand.placedWeight > 0f) { Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ResourceReservation.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ResourceReservation.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ResourceReservation.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -9,7 +9,6 @@ //$Id$ package com.ibm.jikesrvm.opt; -import com.ibm.jikesrvm.opt.ir.*; /** * Describes a reservation on a particular resource. * A reservation is for a continuous period of time. @@ -24,11 +23,11 @@ /** * Start Time. */ - int start; + final int start; /** * Duration of Use. */ - int duration; + final int duration; /** * Creates a new reservation for specified resource class Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SSA.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SSA.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SSA.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -247,7 +247,6 @@ OPT_Instruction s = e.next(); if (s.operator() != PHI) return; // all done (assume PHIs are first!) int numPairs = Phi.getNumberOfPreds(s); - int dst = 0; for (int src=0; src<numPairs; src++) { OPT_BasicBlockOperand bbop = Phi.getPred(s, src); if (bbop.block == B1) { Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SSAOptions.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SSAOptions.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SSAOptions.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -9,8 +9,6 @@ //$Id$ package com.ibm.jikesrvm.opt; -import java.util.*; - /** * This module defines parameters to the SSA construction process. * This is used to pass information between compiler phases. Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SSATuneUp.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SSATuneUp.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SSATuneUp.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -9,7 +9,6 @@ //$Id$ package com.ibm.jikesrvm.opt; -import java.util.*; import com.ibm.jikesrvm.opt.ir.*; import java.lang.reflect.Constructor; Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ShortArrayReplacer.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ShortArrayReplacer.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ShortArrayReplacer.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -9,7 +9,6 @@ //$Id$ package com.ibm.jikesrvm.opt; -import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.classloader.*; import com.ibm.jikesrvm.opt.ir.*; Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Simple.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Simple.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Simple.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -11,7 +11,6 @@ import com.ibm.jikesrvm.*; import java.lang.reflect.Constructor; -import java.util.Enumeration; import com.ibm.jikesrvm.opt.ir.*; /* Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SimpleEscape.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SimpleEscape.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SimpleEscape.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -218,7 +218,6 @@ private static boolean checkEscapesThread (OPT_RegisterOperand use, OPT_IR ir) { OPT_Instruction inst = use.instruction; - OPT_Register reg = use.register; switch (inst.getOpcode()) { case INT_ASTORE_opcode:case LONG_ASTORE_opcode: case FLOAT_ASTORE_opcode:case DOUBLE_ASTORE_opcode: @@ -401,7 +400,6 @@ private static boolean checkEscapesMethod (OPT_RegisterOperand use, OPT_IR ir) { OPT_Instruction inst = use.instruction; - OPT_Register reg = use.register; switch (inst.getOpcode()) { case INT_ASTORE_opcode:case LONG_ASTORE_opcode: case FLOAT_ASTORE_opcode:case DOUBLE_ASTORE_opcode: Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Simplifier.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Simplifier.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Simplifier.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -9,7 +9,6 @@ //$Id$ package com.ibm.jikesrvm.opt; -import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.classloader.*; import com.ibm.jikesrvm.opt.ir.*; import org.vmmagic.unboxed.*; Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SpecializationDatabase.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SpecializationDatabase.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SpecializationDatabase.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -9,7 +9,6 @@ //$Id$ package com.ibm.jikesrvm.opt; -import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.classloader.*; import com.ibm.jikesrvm.util.*; Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SpecializedMethodPool.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SpecializedMethodPool.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SpecializedMethodPool.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -10,9 +10,6 @@ package com.ibm.jikesrvm.opt; import com.ibm.jikesrvm.*; -import java.util.Vector; -import java.util.Enumeration; - /** * This class holds the static array of pointers to instructions * of specialized methods Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_StaticSplitting.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_StaticSplitting.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_StaticSplitting.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -141,7 +141,6 @@ OPT_BasicBlock cand = ci.candBB; OPT_BasicBlock prev = ci.prevBB; OPT_BasicBlock succ = ci.succBB; - OPT_Instruction test = ci.test; OPT_BasicBlock clone = cand.copyWithoutLinks(ir); // Redirect clone to always stay on cold path. Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SummaryDatabase.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SummaryDatabase.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SummaryDatabase.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -9,7 +9,6 @@ //$Id$ package com.ibm.jikesrvm.opt; -import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.util.*; import com.ibm.jikesrvm.classloader.*; @@ -62,8 +61,7 @@ } /** Implementation */ - private static final boolean DEBUG = false; - private static VM_HashMap hash = new VM_HashMap(); + private static final VM_HashMap hash = new VM_HashMap(); } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_TailRecursionElimination.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_TailRecursionElimination.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_TailRecursionElimination.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -9,7 +9,6 @@ //$Id$ package com.ibm.jikesrvm.opt; import com.ibm.jikesrvm.*; -import java.lang.reflect.*; import com.ibm.jikesrvm.opt.ir.*; import java.lang.reflect.Constructor; Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ValueGraphVertex.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ValueGraphVertex.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ValueGraphVertex.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -10,7 +10,6 @@ package com.ibm.jikesrvm.opt; import com.ibm.jikesrvm.opt.ir.*; -import java.util.*; /** * This class implements a vertex in the value graph used in global Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/VM_OptGCMap.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/VM_OptGCMap.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/VM_OptGCMap.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -253,7 +253,6 @@ VM.sysWrite("Regs ["); // Inspect the register bit map for the entry passed and print // those bit map entries that are true - int bitmap = gcMap[entry]; for (int registerNumber = FIRST_GCMAP_REG; registerNumber <= LAST_GCMAP_REG; registerNumber++) { Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/VM_OptSaveVolatile.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/VM_OptSaveVolatile.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/VM_OptSaveVolatile.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -10,7 +10,6 @@ package com.ibm.jikesrvm.opt; import com.ibm.jikesrvm.*; -import com.ibm.jikesrvm.classloader.*; import org.vmmagic.pragma.*; import org.vmmagic.unboxed.*; Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_AbstractRegisterPool.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_AbstractRegisterPool.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_AbstractRegisterPool.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -11,7 +11,6 @@ import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.classloader.*; -import com.ibm.jikesrvm.opt.*; /** * @author Julian Dolby Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_AddressConstantOperand.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_AddressConstantOperand.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_AddressConstantOperand.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -9,7 +9,6 @@ //$Id$ package com.ibm.jikesrvm.opt.ir; -import com.ibm.jikesrvm.opt.OPT_Bits; import org.vmmagic.unboxed.*; import com.ibm.jikesrvm.VM_SizeConstants; import com.ibm.jikesrvm.VM; Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_BC2IR.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_BC2IR.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_BC2IR.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -1657,8 +1657,6 @@ if (ref.isMiranda()) { // An invokevirtual that is really an invokeinterface. - VM_Method resolvedMethod = null; - s = _callHelper(ref, OPT_MethodOperand.INTERFACE(ref, null)); OPT_RegisterOperand receiver = Call.getParam(s, 0).asRegister(); VM_Class receiverType = (VM_Class)receiver.type.peekResolvedType(); Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_BasicBlock.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_BasicBlock.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_BasicBlock.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -187,7 +187,6 @@ * @return a String that is the name of the block. */ public String toString() { - String result = ""; int number = getNumber(); if (isExit()) return "EXIT"+number; if (number==0) return "BB0 (ENTRY)"; @@ -1364,7 +1363,6 @@ public final OPT_BasicBlock copyWithoutLinks(OPT_IR ir) { // create a new block with the same bytecode index and exception handlers int bytecodeIndex = -1; - OPT_InlineSequence position = null; // Make the label instruction of the new block have the same // bc info as the label of the original block. Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_ControlFlowGraph.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_ControlFlowGraph.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_ControlFlowGraph.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -12,7 +12,6 @@ import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.opt.*; import java.util.Enumeration; -import java.util.NoSuchElementException; /** * The Factored Control Flow Graph (FCFG). Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_ExceptionHandlerBasicBlock.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_ExceptionHandlerBasicBlock.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_ExceptionHandlerBasicBlock.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -9,7 +9,6 @@ //$Id$ package com.ibm.jikesrvm.opt.ir; -import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.classloader.*; import com.ibm.jikesrvm.opt.*; import java.util.Enumeration; Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_GenerateMagic.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_GenerateMagic.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_GenerateMagic.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -11,7 +11,6 @@ import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.classloader.*; -import com.ibm.jikesrvm.opt.OPT_ClassLoaderProxy; import com.ibm.jikesrvm.opt.OPT_MagicNotImplementedException; import org.vmmagic.pragma.*; @@ -631,7 +630,6 @@ static boolean generatePolymorphicMagic(OPT_BC2IR bc2ir, OPT_GenerationContext gc, VM_MethodReference meth, VM_Atom methodName) { - VM_TypeReference [] paramTypes = meth.getParameterTypes(); VM_TypeReference resultType = meth.getReturnType(); if (methodName == VM_MagicNames.wordFromInt || methodName == VM_MagicNames.wordFromIntSignExtend) { Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_GenericRegisterPool.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_GenericRegisterPool.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_GenericRegisterPool.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -9,9 +9,7 @@ //$Id$ package com.ibm.jikesrvm.opt.ir; -import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.classloader.*; -import com.ibm.jikesrvm.opt.OPT_ClassLoaderProxy; /** * Pool of symbolic registers. Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_IRTools.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_IRTools.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_IRTools.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -11,7 +11,6 @@ import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.classloader.*; -import com.ibm.jikesrvm.opt.*; import java.util.Enumeration; import org.vmmagic.unboxed.*; Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_InlineSequence.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_InlineSequence.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_InlineSequence.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -9,12 +9,9 @@ //$Id$ package com.ibm.jikesrvm.opt.ir; -import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.classloader.*; import com.ibm.jikesrvm.opt.*; -import java.util.StringTokenizer; - /** * Represents an inlining sequence. * Used to uniquely identify program locations. Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_Instruction.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_Instruction.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_Instruction.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -10,7 +10,6 @@ package com.ibm.jikesrvm.opt.ir; import com.ibm.jikesrvm.*; -import com.ibm.jikesrvm.classloader.*; import com.ibm.jikesrvm.opt.*; import java.util.Enumeration; Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_IntConstantOperand.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_IntConstantOperand.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_IntConstantOperand.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -11,7 +11,6 @@ import com.ibm.jikesrvm.opt.OPT_Bits; import com.ibm.jikesrvm.classloader.VM_TypeReference; -import com.ibm.jikesrvm.VM_Scheduler; /** * Represents a constant int operand. Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_MethodOperand.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_MethodOperand.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_MethodOperand.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -9,7 +9,6 @@ //$Id$ package com.ibm.jikesrvm.opt.ir; -import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.classloader.*; import com.ibm.jikesrvm.opt.OPT_SpecializedMethod; import org.vmmagic.unboxed.Offset; Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_RegisterOperand.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_RegisterOperand.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_RegisterOperand.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -9,7 +9,6 @@ //$Id$ package com.ibm.jikesrvm.opt.ir; -import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.classloader.*; /** Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_TypeOperand.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_TypeOperand.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_TypeOperand.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -9,7 +9,6 @@ //$Id$ package com.ibm.jikesrvm.opt.ir; -import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.classloader.*; /** Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/osr/OSR_EncodedOSRMap.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/osr/OSR_EncodedOSRMap.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/osr/OSR_EncodedOSRMap.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -11,7 +11,6 @@ package com.ibm.jikesrvm.osr; import com.ibm.jikesrvm.*; -import com.ibm.jikesrvm.classloader.*; import com.ibm.jikesrvm.opt.*; import com.ibm.jikesrvm.opt.ir.*; import java.util.*; @@ -44,9 +43,6 @@ private int mapSize = 16; private int lastIndex = 0; - /* the inlining encoding */ - private int[] ieMaps; - public static final boolean registerIsSet(int map, int regnum) throws InlinePragma { @@ -129,9 +125,6 @@ } } - //get inlining encoding - ieMaps = VM_OptEncodedCallSiteTree.getEncoding(inliningTree); - for (int i=0; i<n; i++) { OSR_VariableMapElement elm = osrarray[i]; Modified: rvmroot/trunk/rvm/src-generated/opt-ir/InstructionFormats.template =================================================================== --- rvmroot/trunk/rvm/src-generated/opt-ir/InstructionFormats.template 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src-generated/opt-ir/InstructionFormats.template 2006-11-20 09:43:38 UTC (rev 11019) @@ -26,9 +26,6 @@ package INSTRFMTPKG; -import RVMPKGopt.OPT_OptimizingCompilerException; -import RVMPKGVM; - /** * Abstract parent class of all InstructionFormat classes. * Modified: rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/OPT_CallingConvention.java =================================================================== --- rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/OPT_CallingConvention.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/OPT_CallingConvention.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -305,11 +305,7 @@ static void saveNonvolatilesBeforeSysCall(OPT_Instruction call, OPT_IR ir) { OPT_PhysicalRegisterSet phys = ir.regpool.getPhysicalRegisterSet(); OPT_StackManager sm = (OPT_StackManager)ir.stackManager; - OPT_Instruction result = null; - // add one to account for the processor register. - int nToSave = OPT_PhysicalRegisterSet.getNumberOfNonvolatileGPRs() + 1; - // get the offset into the stack frame of where to stash the first // nonvolatile for this case. int location = sm.getOffsetForSysCall(); @@ -346,9 +342,6 @@ OPT_PhysicalRegisterSet phys = ir.regpool.getPhysicalRegisterSet(); OPT_StackManager sm = (OPT_StackManager)ir.stackManager; - // add one to account for the processor register. - int nToSave = OPT_PhysicalRegisterSet.getNumberOfNonvolatileGPRs() + 1; - // get the offset into the stack frame of where to stash the first // nonvolatile for this case. int location = sm.getOffsetForSysCall(); @@ -386,7 +379,6 @@ int nGPRParams = 0; int nFPRParams = 0; int parameterBytes = 0; - OPT_PhysicalRegisterSet phys = ir.regpool.getPhysicalRegisterSet(); // walk over the parameters in reverse order // NOTE: All params to syscall are passed on the stack! Modified: rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/OPT_ComplexLIR2MIRExpansion.java =================================================================== --- rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/OPT_ComplexLIR2MIRExpansion.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/OPT_ComplexLIR2MIRExpansion.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -12,7 +12,6 @@ import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.opt.ir.*; import com.ibm.jikesrvm.classloader.*; -import org.vmmagic.unboxed.Offset; /** * Handles the conversion from LIR to MIR of operators whose @@ -282,7 +281,6 @@ // can't do that in burs! private static OPT_Instruction fp_ifcmp(OPT_Instruction s, OPT_IR ir) { OPT_Instruction nextInstr = s.nextInstructionInCodeOrder(); - OPT_Operator op = s.operator(); OPT_BranchOperand testFailed; OPT_BasicBlock bb = s.getBasicBlock(); OPT_Instruction lastInstr = bb.lastRealInstruction(); Modified: rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/OPT_ConvertALUOperators.java =================================================================== --- rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/OPT_ConvertALUOperators.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/OPT_ConvertALUOperators.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -9,7 +9,6 @@ //$Id$ package com.ibm.jikesrvm.opt; -import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.classloader.*; import com.ibm.jikesrvm.opt.ir.*; Modified: rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/OPT_RegisterRestrictions.java =================================================================== --- rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/OPT_RegisterRestrictions.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/OPT_RegisterRestrictions.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -74,7 +74,6 @@ break; case IA32_MOVZX__B_opcode: case IA32_MOVSX__B_opcode: { - OPT_RegisterOperand op = MIR_Unary.getResult(s).asRegister(); if (MIR_Unary.getVal(s).isRegister()) { OPT_RegisterOperand val = MIR_Unary.getVal(s).asRegister(); restrictTo8Bits(val.register); Modified: rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/OPT_StackManager.java =================================================================== --- rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/OPT_StackManager.java 2006-11-19 23:39:48 UTC (rev 11018) +++ rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/OPT_StackManager.java 2006-11-20 09:43:38 UTC (rev 11019) @@ -14,8 +14,6 @@ import com.ibm.jikesrvm.classloader.VM_TypeReference; import java.util.Enumeration; import java.util.Iterator; -import java.util.HashSet; -import java.util.HashMap; import org.vmmagic.unboxed.Offset; /** M... [truncated message content] |
From: <cap...@us...> - 2006-11-21 20:59:37
|
Revision: 11036 http://svn.sourceforge.net/jikesrvm/?rev=11036&view=rev Author: captain5050 Date: 2006-11-21 12:59:35 -0800 (Tue, 21 Nov 2006) Log Message: ----------- Make final fieds into constant object references that can live in the JTOC. Support for chasing final fields through OPT_Simplifier. New constant operands to represent objects found through final field chasing. Modified Paths: -------------- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_Method.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_TypeReference.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ClassLoaderProxy.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ConvertToLowLevelIR.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_DynamicTypeCheckExpansion.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_EnterSSA.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LeaveSSA.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_PiNodes.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Simple.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Simplifier.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_StaticFieldReader.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ValueGraph.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_BC2IR.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_ClassConstantOperand.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_ConditionOperand.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_GenerationContext.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_Inliner.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_MethodOperand.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_Operand.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_RegisterOperand.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_StringConstantOperand.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_TypeOperand.java rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/OPT_NormalizeConstants.java rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/opt/OPT_NormalizeConstants.java Added Paths: ----------- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_CodeConstantOperand.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_ObjectConstantOperand.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_TIBConstantOperand.java Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_Method.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_Method.java 2006-11-21 20:54:04 UTC (rev 11035) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_Method.java 2006-11-21 20:59:35 UTC (rev 11036) @@ -13,6 +13,7 @@ import java.io.DataInputStream; import java.io.IOException; +import org.vmmagic.unboxed.Offset; import org.vmmagic.pragma.*; /** @@ -52,6 +53,11 @@ * represents the default result from an annotation method. */ protected final Object annotationDefault; + /** + * The offset of this virtual method in the jtoc if it's been placed + * there by constant propagation, otherwise 0. + */ + private Offset jtocOffset; /** * Construct a read method @@ -91,6 +97,7 @@ this.annotationDefault = annotationDefault; memRef.asMethodReference().setResolvedMember(this); this.exceptionTypes = exceptionTypes; + this.jtocOffset = Offset.fromIntSignExtend(-1); } /** @@ -649,6 +656,11 @@ // all subclasses that inherited the method. getDeclaringClass().updateMethod(this); + // Replace constant-ified virtual method in JTOC if necessary + if(jtocOffset.toInt() != -1) { + VM_Statics.setSlotContents(jtocOffset, getCurrentEntryCodeArray()); + } + // Now that we've updated the jtoc/tib, old version is obsolete if (oldCompiledMethod != null) { VM_CompiledMethods.setCompiledMethodObsolete(oldCompiledMethod); @@ -664,4 +676,16 @@ replaceCompiledMethod(null); } } + + /** + * Find or create a jtoc offset for this method + */ + public final synchronized Offset findOrCreateJtocOffset() { + if (VM.VerifyAssertions) VM._assert(!isStatic() && !isObjectInitializer()); + if(jtocOffset.EQ(Offset.zero())) { + jtocOffset = VM_Statics.allocateReferenceSlot(); + VM_Statics.setSlotContents(jtocOffset, getCurrentEntryCodeArray()); + } + return jtocOffset; + } } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_TypeReference.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_TypeReference.java 2006-11-21 20:54:04 UTC (rev 11035) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_TypeReference.java 2006-11-21 20:59:35 UTC (rev 11036) @@ -134,8 +134,8 @@ //-#if RVM_WITH_OPT_COMPILER // Synthetic types used by the opt compiler - public static final VM_TypeReference NULL_TYPE = findOrCreate("Lcom/ibm/jikesrvm/VM_TypeReference$NULL;"); - public static final VM_TypeReference VALIDATION_TYPE = findOrCreate("Lcom/ibm/jikesrvm/VM_TypeReference$VALIDATION;"); + public static final VM_TypeReference NULL_TYPE = findOrCreate("Lcom/ibm/jikesrvm/classloader/VM_TypeReference$NULL;"); + public static final VM_TypeReference VALIDATION_TYPE = findOrCreate("Lcom/ibm/jikesrvm/classloader/VM_TypeReference$VALIDATION;"); //-#endif /** @@ -516,8 +516,7 @@ * Do this and that definitely refer to the same type? */ public final boolean definitelySame(VM_TypeReference that) { - if (that == null) System.out.println("that is null :)"); - if (this == null) System.out.println("this is null :)"); + if (VM.VerifyAssertions) VM._assert(that != null); if (this == that) return true; if (name != that.name) return false; VM_Type mine = peekResolvedType(); Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ClassLoaderProxy.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ClassLoaderProxy.java 2006-11-21 20:54:04 UTC (rev 11035) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ClassLoaderProxy.java 2006-11-21 20:59:35 UTC (rev 11036) @@ -18,6 +18,7 @@ * @author Doug Lorch (retired) * @author Dave Grove * @author Julian Dolby + * @author Ian Rogers **/ public final class OPT_ClassLoaderProxy implements VM_Constants, OPT_Constants { @@ -332,24 +333,13 @@ */ public static OPT_StringConstantOperand getStringFromConstantPool (VM_Class klass, int index) { Offset offset = klass.getLiteralOffset(index); - String val; - if (VM.runningVM) { + try { + String val; val = (String)VM_Statics.getSlotContentsAsObject(offset); - } else { - // Sigh. What we really want to do is acquire the - // String object from the class constant pool. - // But, we aren't set up to do that. The following - // isn't strictly correct, but is closer than the completely bogus - // thing we were doing before. - // TODO: Fix this to do the right thing. - // This will be wrong if someone is comparing string constants - // using ==, != since we're very unlikely to get the aliasing right. - // Then again, if you are using ==, != with strings and one of them - // isn't <null>, perhaps you deserve what you get. - // This is defect 2838. - val = ("BootImageStringConstant "+VM_Statics.offsetAsSlot(offset)).intern(); + return new OPT_StringConstantOperand(val, offset); + } catch (ClassCastException e) { + throw new Error("Corrupt JTOC at offset " + offset.toInt(), e); } - return new OPT_StringConstantOperand(val, offset); } /** @@ -358,7 +348,11 @@ */ public static OPT_ClassConstantOperand getClassFromConstantPool (VM_Class klass, int index) { Offset offset = klass.getLiteralOffset(index); - VM_TypeReference val = klass.getTypeRef(index); - return new OPT_ClassConstantOperand(val, offset); + try { + Class val = klass.getClassForType(); + return new OPT_ClassConstantOperand(val, offset); + } catch (ClassCastException e) { + throw new Error("Corrupt JTOC at offset " + offset.toInt(), e); + } } } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ConvertToLowLevelIR.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ConvertToLowLevelIR.java 2006-11-21 20:54:04 UTC (rev 11035) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ConvertToLowLevelIR.java 2006-11-21 20:59:35 UTC (rev 11036) @@ -30,20 +30,26 @@ */ public abstract class OPT_ConvertToLowLevelIR extends OPT_IRTools implements OPT_Operators, VM_Constants, OPT_Constants { - // We have slightly different ideas of what the LIR should look like - // for IA32 and PowerPC. The main difference is that for IA32 - // instead of bending over backwards in BURS to rediscover array loads, - // (where we can use base + index*scale addressing modes), we'll leave - // array loads in the LIR. + /** + * We have slightly different ideas of what the LIR should look like + * for IA32 and PowerPC. The main difference is that for IA32 + * instead of bending over backwards in BURS to rediscover array + * loads, (where we can use base + index*scale addressing modes), + * we'll leave array loads in the LIR. + */ static final boolean LOWER_ARRAY_ACCESS = VM.BuildForPowerPC; - /** + * Plant virtual calls via the JTOC rather than from the tib of an + * object when possible + */ + static final boolean CALL_VIA_JTOC = false; + /** * Converts the given HIR to LIR. * * @param ir IR to convert */ static void convert (OPT_IR ir, OPT_Options options) { - boolean didArrayStoreCheck = false; + boolean didArrayStoreCheck = false; for (OPT_Instruction s = ir.firstInstructionInCodeOrder(); s != null; s = s.nextInstructionInCodeOrder()) { @@ -210,7 +216,7 @@ case IG_METHOD_TEST_opcode: { OPT_MethodOperand methOp = InlineGuard.getClearGoal(s).asMethod(); - OPT_RegisterOperand t1 = + OPT_Operand t1 = getTIB(s, ir, InlineGuard.getClearValue(s), InlineGuard.getClearGuard(s)); @@ -406,18 +412,33 @@ thisBB.appendInstruction(Goto.create(GOTO, defTarget)); thisBB.insertOut(defaultBB); } else { - OPT_RegisterOperand reg = - LookupSwitch.getValue(switchInstr).asRegister(); - - // If you're not already at the end of the code order - if (nextBB != null) - ir.cfg.breakCodeOrder(thisBB, nextBB); - // generate the binary search tree into thisBB - OPT_BasicBlock lastNewBB = - _lookupswitchHelper(switchInstr, reg, defaultBB, ir, thisBB, 0, - high, Integer.MIN_VALUE, Integer.MAX_VALUE); - if (nextBB != null) - ir.cfg.linkInCodeOrder(lastNewBB, nextBB); + OPT_Operand match = LookupSwitch.getValue(switchInstr); + if (match.isConstant()) { + // switch on a constant + int value = match.asIntConstant().value; + int numMatches = LookupSwitch.getNumberOfMatches(switchInstr); + OPT_BranchOperand target = LookupSwitch.getDefault(switchInstr); + for (int i=0; i<numMatches; i++) { + if (value == LookupSwitch.getMatch(switchInstr, i).value) { + target = LookupSwitch.getTarget(switchInstr, i); + break; + } + } + thisBB.appendInstruction(Goto.create(GOTO, target)); + thisBB.insertOut(target.target.getBasicBlock()); + } else { + OPT_RegisterOperand reg = match.asRegister(); + + // If you're not already at the end of the code order + if (nextBB != null) + ir.cfg.breakCodeOrder(thisBB, nextBB); + // generate the binary search tree into thisBB + OPT_BasicBlock lastNewBB = + _lookupswitchHelper(switchInstr, reg, defaultBB, ir, thisBB, 0, + high, Integer.MIN_VALUE, Integer.MAX_VALUE); + if (nextBB != null) + ir.cfg.linkInCodeOrder(lastNewBB, nextBB); + } } // skip all the instrs just inserted by _lookupswitchHelper @@ -593,7 +614,7 @@ offset = InsertUnary(s, ir, INT_2ADDRZerExt, VM_TypeReference.Offset, offset.copy()); } else { offset = InsertUnary(s, ir, INT_2ADDRZerExt, VM_TypeReference.Offset, index); - } + } } Load.mutate(s, op, result, array, offset, loc, ALoad.getClearGuard(s)); } @@ -623,8 +644,8 @@ offset = InsertUnary(s, ir, INT_2ADDRZerExt, VM_TypeReference.Offset, offset.copy()); } else { offset = InsertUnary(s, ir, INT_2ADDRZerExt, VM_TypeReference.Offset, index); - } - } + } + } Store.mutate(s, op, value, array, offset, loc, AStore.getClearGuard(s)); } } @@ -679,10 +700,21 @@ Call.getClearAddress(v))); } else if (methOp.isVirtual()) { if (VM.VerifyAssertions) VM._assert(Call.hasAddress(v)); - OPT_RegisterOperand tib = getTIB(v, ir, Call.getParam(v, 0).copy(), Call.getGuard(v).copy()); - Call.setAddress(v, InsertLoadOffset(v, ir, REF_LOAD, - VM_TypeReference.CodeArray, - tib, Call.getClearAddress(v), null, TG())); + if (CALL_VIA_JTOC && methOp.hasPreciseTarget()) { + // Call to precise type can go via JTOC + VM_Method target = methOp.getTarget(); + Call.setAddress(v, + InsertLoadOffsetJTOC(v, ir, REF_LOAD, + VM_TypeReference.CodeArray, + target.findOrCreateJtocOffset() + )); + } + else { + OPT_Operand tib = getTIB(v, ir, Call.getParam(v, 0).copy(), Call.getGuard(v).copy()); + Call.setAddress(v, InsertLoadOffset(v, ir, REF_LOAD, + VM_TypeReference.CodeArray, + tib, Call.getClearAddress(v), null, TG())); + } } else if (methOp.isSpecial()) { VM_Method target = methOp.getTarget(); if (target == null || target.isObjectInitializer() || target.isStatic()) { @@ -691,18 +723,27 @@ VM_TypeReference.CodeArray, Call.getClearAddress(v))); } else { - // invoking a virtual method; do it via TIB of target's declaring class. - OPT_Operand tib = getTIB(v, ir, target.getDeclaringClass()); - Call.setAddress(v, InsertLoadOffset(v, ir, REF_LOAD, - VM_TypeReference.CodeArray, - tib, Call.getClearAddress(v), null, TG())); + if (CALL_VIA_JTOC) { + Call.setAddress(v, + InsertLoadOffsetJTOC(v, ir, REF_LOAD, + VM_TypeReference.CodeArray, + target.findOrCreateJtocOffset() + )); + } + else { + // invoking a virtual method; do it via TIB of target's declaring class. + OPT_Operand tib = getTIB(v, ir, target.getDeclaringClass()); + Call.setAddress(v, InsertLoadOffset(v, ir, REF_LOAD, + VM_TypeReference.CodeArray, + tib, Call.getClearAddress(v), null, TG())); + } } } else { if (VM.VerifyAssertions) VM._assert(methOp.isInterface()); if (VM.VerifyAssertions) VM._assert(!Call.hasAddress(v)); if (VM.BuildForIMTInterfaceInvocation) { // SEE ALSO: OPT_FinalMIRExpansion (for hidden parameter) - OPT_RegisterOperand RHStib = + OPT_Operand RHStib = getTIB(v, ir, Call.getParam(v, 0).copy(), Call.getGuard(v).copy()); VM_InterfaceMethodSignature sig = VM_InterfaceMethodSignature.findOrCreate(methOp.getMemberRef()); Offset offset = sig.getIMTOffset(); @@ -710,12 +751,12 @@ if (VM.BuildForEmbeddedIMT) { address = InsertLoadOffset(v, ir, REF_LOAD, VM_TypeReference.CodeArray, - RHStib.copyD2U(), + RHStib.copy(), offset); } else { OPT_RegisterOperand IMT = InsertLoadOffset(v, ir, REF_LOAD, VM_TypeReference.JavaLangObjectArray, - RHStib.copyD2U(), + RHStib.copy(), Offset.fromIntZeroExtend(TIB_IMT_TIB_INDEX << LOG_BYTES_IN_ADDRESS)); address = InsertLoadOffset(v, ir, REF_LOAD, VM_TypeReference.CodeArray, @@ -729,12 +770,12 @@ methOp.hasTarget() && methOp.getTarget().getDeclaringClass().isResolved()) { VM_Class I = methOp.getTarget().getDeclaringClass(); - OPT_RegisterOperand RHStib = + OPT_Operand RHStib = getTIB(v, ir, Call.getParam(v, 0).copy(), Call.getGuard(v).copy()); OPT_RegisterOperand iTables = InsertLoadOffset(v, ir, REF_LOAD, VM_TypeReference.JavaLangObjectArray, - RHStib.copyD2U(), + RHStib.copy(), Offset.fromIntZeroExtend(TIB_ITABLES_TIB_INDEX << LOG_BYTES_IN_ADDRESS)); OPT_RegisterOperand iTable = InsertLoadOffset(v, ir, REF_LOAD, @@ -782,7 +823,7 @@ // itable address OPT_RegisterOperand iTable = ir.regpool.makeTemp(VM_TypeReference.JavaLangObjectArray); - OPT_RegisterOperand RHStib = + OPT_Operand RHStib = getTIB(v, ir, Call.getParam(v, 0).copy(), Call.getGuard(v).copy()); VM_Method target = VM_Entrypoints.findItableMethod; OPT_Instruction fi = @@ -1041,10 +1082,21 @@ return regTarget.copyD2U(); } - // get the tib from the object pointer to by obj - static OPT_RegisterOperand getTIB (OPT_Instruction s, OPT_IR ir, + /** get the tib from the object pointer to by obj */ + static OPT_Operand getTIB (OPT_Instruction s, OPT_IR ir, OPT_Operand obj, OPT_Operand guard) { + if (obj.isObjectConstant()) { + // NB Constant types must already be resolved + try { + VM_Type type = obj.getType().resolve(); + return new OPT_TIBConstantOperand(type); + } catch(NoClassDefFoundError e) { + if (VM.runningVM) throw e; + // Class not found during bootstrap due to chasing a class + // only valid in the bootstrap JVM + } + } OPT_RegisterOperand res = ir.regpool.makeTemp(VM_TypeReference.JavaLangObjectArray); OPT_Instruction s2 = GuardedUnary.create(GET_OBJ_TIB, res, obj, guard); @@ -1052,12 +1104,13 @@ return res.copyD2U(); } - // get the class tib for type + /** get the class tib for type */ static OPT_Operand getTIB (OPT_Instruction s, OPT_IR ir, VM_Type type) { - return getTIB(s, ir, new OPT_TypeOperand(type)); + return new OPT_TIBConstantOperand(type); + //return getTIB(s, ir, new OPT_TypeOperand(type)); } - // get the class tib for type + /** get the class tib for type */ static OPT_Operand getTIB (OPT_Instruction s, OPT_IR ir, OPT_TypeOperand type) { VM_Type t = type.getVMType(); @@ -1065,11 +1118,13 @@ VM.runningVM && t != null && t.isResolved()) { Address addr = VM_Magic.objectAsAddress(t.getTypeInformationBlock()); return new OPT_AddressConstantOperand(addr); - } else { + } else if (!t.isResolved()) { OPT_RegisterOperand res = ir.regpool.makeTemp(VM_TypeReference.JavaLangObjectArray); s.insertBack(Unary.create(GET_CLASS_TIB, res, type)); return res.copyD2U(); + } else { + return new OPT_TIBConstantOperand(t); } } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_DynamicTypeCheckExpansion.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_DynamicTypeCheckExpansion.java 2006-11-21 20:54:04 UTC (rev 11035) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_DynamicTypeCheckExpansion.java 2006-11-21 20:59:35 UTC (rev 11036) @@ -78,7 +78,7 @@ myBlock.insertOut(instanceOfBlock); myBlock.insertOut(falseBranch); ir.cfg.linkInCodeOrder(myBlock, instanceOfBlock); - OPT_RegisterOperand RHStib = getTIB(s, ir, ref, oldGuard.copyRO()); + OPT_Operand RHStib = getTIB(s, ir, ref, oldGuard.copyRO()); return generateBranchingTypeCheck(s, ir, ref.copy(), LHStype, RHStib, trueBranch, falseBranch, oldGuard, bp); } else { @@ -102,7 +102,7 @@ prevBB.insertOut(nullCaseBB); nullCaseBB.insertOut(nextBB); ir.cfg.addLastInCodeOrder(nullCaseBB); - OPT_RegisterOperand RHStib = getTIB(s, ir, ref, guard.copyD2U()); + OPT_Operand RHStib = getTIB(s, ir, ref, guard.copyD2U()); return generateValueProducingTypeCheck(s, ir, ref.copy(), LHStype, RHStib, result); } @@ -142,7 +142,7 @@ OPT_RegisterOperand oldGuard = IfCmp.getGuardResult(next); next.remove(); OPT_BasicBlock fallThroughBB = fallThroughBB(s, ir); - OPT_RegisterOperand RHStib = getTIB(s, ir, ref, guard); + OPT_Operand RHStib = getTIB(s, ir, ref, guard); if (branchCondition) { return generateBranchingTypeCheck(s, ir, ref.copy(), LHStype, RHStib, branchBB, fallThroughBB, oldGuard, @@ -154,7 +154,7 @@ } } else { // Not a branching pattern - OPT_RegisterOperand RHStib = getTIB(s, ir, ref, guard); + OPT_Operand RHStib = getTIB(s, ir, ref, guard); return generateValueProducingTypeCheck(s, ir, ref.copy(), LHStype, RHStib, result); } @@ -197,7 +197,7 @@ Trap.create(TRAP, null, OPT_TrapCodeOperand.CheckCast()); raiseError.copyPosition(s); failBlock.appendInstruction(raiseError); - OPT_RegisterOperand RHStib = getTIB(s, ir, ref, guard.copyD2U()); + OPT_Operand RHStib = getTIB(s, ir, ref, guard.copyD2U()); return generateBranchingTypeCheck(s, ir, ref.copy(), LHStype, RHStib, succBlock, failBlock, null, OPT_BranchProfileOperand.never()); } @@ -227,7 +227,7 @@ Trap.create(TRAP, null, OPT_TrapCodeOperand.CheckCast()); raiseError.copyPosition(s); failBlock.appendInstruction(raiseError); - OPT_RegisterOperand RHStib = getTIB(s, ir, ref, guard); + OPT_Operand RHStib = getTIB(s, ir, ref, guard); return generateBranchingTypeCheck(s, ir, ref.copy(), LHStype, RHStib, succBlock, failBlock, null, OPT_BranchProfileOperand.never()); } @@ -262,7 +262,7 @@ raiseError.copyPosition(s); failBlock.appendInstruction(raiseError); - OPT_RegisterOperand RHStib = getTIB(s, ir, ref, guard); + OPT_Operand RHStib = getTIB(s, ir, ref, guard); OPT_RegisterOperand doesImpl = InsertUnary(s, ir, GET_DOES_IMPLEMENT_FROM_TIB, VM_TypeReference.IntArray, RHStib); @@ -368,7 +368,7 @@ VM_Class etc = (VM_Class)compType.asArray().getElementType(); if (etc.isResolved() && etc.isFinal()) { if (VM.VerifyAssertions) VM._assert(!etc.isInterface()); - OPT_RegisterOperand rhsTIB = getTIB(curBlock.lastInstruction(), ir, elemRef.copy(), rhsGuard.copy()); + OPT_Operand rhsTIB = getTIB(curBlock.lastInstruction(), ir, elemRef.copy(), rhsGuard.copy()); OPT_Operand etTIB = getTIB(curBlock.lastInstruction(), ir, etc); curBlock.appendInstruction(IfCmp.create(REF_IFCMP, guardResult.copyRO(), rhsTIB, etTIB, @@ -383,7 +383,7 @@ } // optionally (2) from above - OPT_RegisterOperand lhsTIB = getTIB(curBlock.lastInstruction(), ir, arrayRef, guard); + OPT_Operand lhsTIB = getTIB(curBlock.lastInstruction(), ir, arrayRef, guard); if (((arrayRef instanceof OPT_RegisterOperand)&&((OPT_RegisterOperand)arrayRef).isDeclaredType()) || compType == VM_Type.JavaLangObjectArrayType) { OPT_Operand declTIB = getTIB(curBlock.lastInstruction(), ir, compType); curBlock.appendInstruction(IfCmp.create(REF_IFCMP, guardResult.copyRO(), @@ -397,11 +397,11 @@ // On our way to doing (3) from above attempt another short-circuit. // If lhsElemTIB == rhsTIB, then we are done. - OPT_RegisterOperand rhsTIB = getTIB(curBlock.lastInstruction(), ir, elemRef.copy(), rhsGuard.copy()); + OPT_Operand rhsTIB = getTIB(curBlock.lastInstruction(), ir, elemRef.copy(), rhsGuard.copy()); OPT_RegisterOperand lhsElemTIB = InsertUnary(curBlock.lastInstruction(), ir, GET_ARRAY_ELEMENT_TIB_FROM_TIB, VM_TypeReference.JavaLangObjectArray, - lhsTIB.copyRO()); + lhsTIB.copy()); curBlock.appendInstruction(IfCmp.create(REF_IFCMP, guardResult.copyRO(), rhsTIB, lhsElemTIB, OPT_ConditionOperand.EQUAL(), @@ -420,7 +420,7 @@ lhsElemTIB.copyU2U()); OPT_RegisterOperand rhsSuperclassIds = InsertUnary(curBlock.lastInstruction(), ir, GET_SUPERCLASS_IDS_FROM_TIB, - VM_TypeReference.ShortArray, rhsTIB.copyD2U()); + VM_TypeReference.ShortArray, rhsTIB.copy()); OPT_RegisterOperand lhsElemDepth = getField(curBlock.lastInstruction(), ir, lhsElemType, VM_Entrypoints.depthField, TG()); OPT_RegisterOperand rhsSuperclassIdsLength = @@ -490,7 +490,7 @@ * @param ir The OPT_IR containing the instruction to be expanded. * @param RHSobj The OPT_RegisterOperand containing the rhs object. * @param LHStype The VM_Type to be tested against. - * @param RHStib The OPT_RegisterOperand containing the TIB of the rhs. + * @param RHStib The OPT_Operand containing the TIB of the rhs. * @param result The OPT_RegisterOperand that the result of dynamic * type check is to be stored in. * @return the opt instruction immediately before the @@ -500,7 +500,7 @@ OPT_IR ir, OPT_Operand RHSobj, VM_TypeReference LHStype, - OPT_RegisterOperand RHStib, + OPT_Operand RHStib, OPT_RegisterOperand result) { // Is LHStype a class? if (LHStype.isClassType()) { @@ -636,7 +636,7 @@ * @param ir The OPT_IR containing the instruction to be expanded. * @param RHSobj The OPT_RegisterOperand containing the rhs object. * @param LHStype The VM_TypeReference to be tested against. - * @param RHStib The OPT_RegisterOperand containing the TIB of the rhs. + * @param RHStib The OPT_Operand containing the TIB of the rhs. * @param result The OPT_RegisterOperand that the result of dynamic * @return the opt instruction immediately before the instruction to * continue expansion. @@ -645,7 +645,7 @@ OPT_IR ir, OPT_Operand RHSobj, VM_TypeReference LHStype, - OPT_RegisterOperand RHStib, + OPT_Operand RHStib, OPT_RegisterOperand result) { OPT_BasicBlock myBlock = s.getBasicBlock(); OPT_BasicBlock contBlock = myBlock.splitNodeAt(s, ir); @@ -678,7 +678,7 @@ * @param ir The OPT_IR containing the instruction to be expanded. * @param RHSobj The OPT_RegisterOperand containing the rhs object. * @param LHStype The VM_TypeReference to be tested against. - * @param RHStib The OPT_RegisterOperand containing the TIB of the rhs. + * @param RHStib The OPT_Operand containing the TIB of the rhs. * @param trueBlock The OPT_BasicBlock to continue at if the typecheck * evaluates to true * @param falseBlock The OPT_BasicBlock to continue at if the typecheck @@ -691,7 +691,7 @@ OPT_IR ir, OPT_Operand RHSobj, VM_TypeReference LHStype, - OPT_RegisterOperand RHStib, + OPT_Operand RHStib, OPT_BasicBlock trueBlock, OPT_BasicBlock falseBlock, OPT_RegisterOperand oldGuard, @@ -724,8 +724,8 @@ OPT_ConditionOperand.LESS_EQUAL(), falseBlock.makeJumpTarget(), OPT_BranchProfileOperand.unlikely()); - if (oldGuard != null) - oldGuard = oldGuard.copyD2D(); + if (oldGuard != null) + oldGuard = oldGuard.copyD2D(); continueAt.insertBefore(lengthCheck); OPT_BasicBlock oldBlock = continueAt.getBasicBlock(); oldBlock.splitNodeWithLinksAt(lengthCheck, ir); @@ -773,8 +773,8 @@ OPT_ConditionOperand.LESS(), falseBlock.makeJumpTarget(), OPT_BranchProfileOperand.unlikely()); - if (oldGuard != null) - oldGuard = oldGuard.copyD2D(); + if (oldGuard != null) + oldGuard = oldGuard.copyD2D(); continueAt.insertBefore(lengthCheck); OPT_BasicBlock oldBlock = continueAt.getBasicBlock(); oldBlock.splitNodeWithLinksAt(lengthCheck, ir); @@ -838,8 +838,8 @@ OPT_ConditionOperand.EQUAL(), trueBlock.makeJumpTarget(), new OPT_BranchProfileOperand()); - if (oldGuard != null) - oldGuard = oldGuard.copyD2D(); + if (oldGuard != null) + oldGuard = oldGuard.copyD2D(); continueAt.insertBefore(shortcircuit); OPT_BasicBlock myBlock = shortcircuit.getBasicBlock(); OPT_BasicBlock mainBlock = @@ -847,7 +847,7 @@ myBlock.insertOut(trueBlock); // must come after the splitNodeAt OPT_RegisterOperand rhsType = InsertUnary(continueAt, ir, GET_TYPE_FROM_TIB, - VM_TypeReference.VM_Type, RHStib.copyD2U()); + VM_TypeReference.VM_Type, RHStib.copy()); if (innermostElementType.isJavaLangObjectType()) { OPT_IntConstantOperand lhsDimension = IC(LHStype.getDimensionality()); OPT_RegisterOperand rhsDimension = @@ -860,8 +860,8 @@ OPT_ConditionOperand.LESS(), falseBlock.makeJumpTarget(), (OPT_BranchProfileOperand)falseProb.copy()); - if (oldGuard != null) - oldGuard = oldGuard.copyD2D(); + if (oldGuard != null) + oldGuard = oldGuard.copyD2D(); continueAt.insertBefore(dimTest); OPT_BasicBlock testBlock = mainBlock.splitNodeWithLinksAt(dimTest, ir); Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_EnterSSA.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_EnterSSA.java 2006-11-21 20:54:04 UTC (rev 11035) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_EnterSSA.java 2006-11-21 20:59:35 UTC (rev 11036) @@ -1016,8 +1016,11 @@ OPT_RegisterOperand result = (OPT_RegisterOperand)Phi.getResult(phi); result.type = meet; for (Enumeration e = OPT_DefUse.uses(result.register); e.hasMoreElements(); ) { - OPT_RegisterOperand rop = (OPT_RegisterOperand)e.nextElement(); - rop.type = meet; + OPT_RegisterOperand rop = (OPT_RegisterOperand)e.nextElement(); + if (rop.type != meet) { + rop.clearPreciseType(); + rop.type = meet; + } } } } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LeaveSSA.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LeaveSSA.java 2006-11-21 20:54:04 UTC (rev 11035) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LeaveSSA.java 2006-11-21 20:59:35 UTC (rev 11036) @@ -89,14 +89,14 @@ this.ir = ir; translateFromSSA(ir); - // reset ir.SSADictionary - ir.HIRInfo.SSADictionary = null; - // reset ssa options + // reset ir.SSADictionary + ir.HIRInfo.SSADictionary = null; + // reset ssa options ir.actualSSAOptions = null; branchOpts.perform(ir, true); - ir.HIRInfo.dominatorsAreComputed = false; + ir.HIRInfo.dominatorsAreComputed = false; } /** @@ -382,7 +382,7 @@ OPT_Instruction ci = null; // insert copy operation required to remove phi - if (c.source instanceof OPT_ConstantOperand) { + if (c.source instanceof OPT_ConstantOperand) { if (c.source instanceof OPT_UnreachableOperand) { ci = null; } else { Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_PiNodes.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_PiNodes.java 2006-11-21 20:54:04 UTC (rev 11035) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_PiNodes.java 2006-11-21 20:59:35 UTC (rev 11036) @@ -56,14 +56,16 @@ /** * Constructor for this compiler phase */ - private static final Constructor constructor = getCompilerPhaseConstructor("com.ibm.jikesrvm.opt.OPT_PiNodes", - new Class[]{Boolean.TYPE, Boolean.TYPE}); + private static Constructor constructor; /** * Get a constructor object for this compiler phase * @return compiler phase constructor */ public Constructor getClassConstructor() { + if (constructor == null) { + constructor = getCompilerPhaseConstructor("com.ibm.jikesrvm.opt.OPT_PiNodes"); + } return constructor; } @@ -90,7 +92,6 @@ * @param insert If true, we insert PI nodes, If false, we remove them. */ OPT_PiNodes(boolean insert) { - super(new Object[]{Boolean.valueOf(insert), Boolean.FALSE}); this.insertion = insert; this.typeChecks = false; } @@ -101,8 +102,7 @@ * @param insert If true, we insert PI nodes, If false, we remove them. * @param typeChecks If true, we insert PI nodes only for type checks. */ - public OPT_PiNodes(boolean insert, boolean typeChecks) { - super(new Object[]{Boolean.valueOf(insert), Boolean.valueOf(typeChecks)}); + OPT_PiNodes(boolean insert, boolean typeChecks) { this.insertion = insert; this.typeChecks = typeChecks; } @@ -328,6 +328,12 @@ OPT_RegisterOperand lval = (OPT_RegisterOperand)obj.copy(); lval.type = TypeCheck.getType(instr).getTypeRef(); lval.clearDeclaredType(); + if (lval.type.isResolved() && lval.type.isClassType() + && lval.type.peekResolvedType().asClass().isFinal()) { + lval.setPreciseType(); + } else { + lval.clearPreciseType(); + } OPT_Instruction s = GuardedUnary.create(PI, lval, obj.copy(), null); s.position = instr.position; s.bcIndex = instr.bcIndex; Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Simple.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Simple.java 2006-11-21 20:54:04 UTC (rev 11035) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Simple.java 2006-11-21 20:59:35 UTC (rev 11036) @@ -331,7 +331,8 @@ continue; OPT_RegisterOperand rhs = (OPT_RegisterOperand)rhsOp; // Propagate the type in the def - lhs.type = rhs.type; + lhs.copyType(rhs); + // Now propagate lhs into all uses; substitute rhs.type for lhs.type for (OPT_RegisterOperand use = reg.useList; use != null; use = (OPT_RegisterOperand)use.getNext()) { @@ -343,7 +344,7 @@ // don't undo the effects! if (rhs.type.isPrimitiveType() && !use.type.isPrimitiveType()) continue; - use.type = rhs.type; + use.copyType(rhs); } } } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Simplifier.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Simplifier.java 2006-11-21 20:54:04 UTC (rev 11035) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Simplifier.java 2006-11-21 20:59:35 UTC (rev 11036) @@ -10,8 +10,11 @@ package com.ibm.jikesrvm.opt; import com.ibm.jikesrvm.classloader.*; +import com.ibm.jikesrvm.VM; +import com.ibm.jikesrvm.VM_TIBLayoutConstants; import com.ibm.jikesrvm.opt.ir.*; import org.vmmagic.unboxed.*; +import java.lang.reflect.Array; /** * A constant folder, strength reducer and axiomatic simplifier. * @@ -47,16 +50,27 @@ public static final boolean CF_ADDR = true; /** - * Constant fold float operations? Default is false to avoid consuming - * precious JTOC slots to hold new constant values. + * Constant fold float operations? Default is true, flip to avoid + * consuming precious JTOC slots to hold new constant values. */ public static final boolean CF_FLOAT = true; /** - * Constant fold double operations? Default is false to avoid consuming - * precious JTOC slots to hold new constant values. + * Constant fold double operations? Default is true, flip to avoid + * consuming precious JTOC slots to hold new constant values. */ public static final boolean CF_DOUBLE = true; + /** + * Constant fold field operations? Default is true, flip to avoid + * consuming precious JTOC slots to hold new constant values. + */ + public static final boolean CF_FIELDS = true; + /** + * Constant fold TIB operations? Default is true, flip to avoid + * consuming precious JTOC slots to hold new constant values. + */ + public static final boolean CF_TIB = true; + /** * Enumeration value to indicate an operation is unchanged, although the * order of operands may have been canonicalized. @@ -124,12 +138,20 @@ return longZeroCheck(s); case CHECKCAST_opcode: return checkcast(regpool, s); + case CHECKCAST_UNRESOLVED_opcode: + return checkcast(regpool, s); case CHECKCAST_NOTNULL_opcode: return checkcastNotNull(s); case INSTANCEOF_opcode: return instanceOf(regpool, s); case INSTANCEOF_NOTNULL_opcode: return instanceOfNotNull(s); + case OBJARRAY_STORE_CHECK_opcode: + return objarrayStoreCheck(s); + case OBJARRAY_STORE_CHECK_NOTNULL_opcode: + return objarrayStoreCheckNotNull(s); + case MUST_IMPLEMENT_INTERFACE_opcode: + return mustImplementInterface(s); //////////////////// // Conditional moves //////////////////// @@ -323,32 +345,60 @@ return long2Double(s); case LONG_BITS_AS_DOUBLE_opcode: return longBitsAsDouble(s); + //////////////////// + // Field operations + //////////////////// + case ARRAYLENGTH_opcode: + return arrayLength(s); + case BOUNDS_CHECK_opcode: + return boundsCheck(s); + case CALL_opcode: + return call(s); + case GETFIELD_opcode: + return getField(s); + case GET_OBJ_TIB_opcode: + return getObjTib(s); + case GET_CLASS_TIB_opcode: + return getClassTib(s); + case GET_TYPE_FROM_TIB_opcode: + return getTypeFromTib(s); + case GET_ARRAY_ELEMENT_TIB_FROM_TIB_opcode: + return getArrayElementTibFromTib(s); + case GET_SUPERCLASS_IDS_FROM_TIB_opcode: + return getSuperclassIdsFromTib(s); + case GET_DOES_IMPLEMENT_FROM_TIB_opcode: + return getDoesImplementFromTib(s); + case REF_LOAD_opcode: + return refLoad(s); default: return UNCHANGED; } } private static byte guardCombine(OPT_Instruction s) { - { - OPT_Operand op2 = Binary.getVal2(s); - if (op2 instanceof OPT_TrueGuardOperand) { - OPT_Operand op1 = Binary.getVal1(s); - if (op1 instanceof OPT_TrueGuardOperand) { - // BOTH TrueGuards: FOLD - Move.mutate(s, GUARD_MOVE, Binary.getClearResult(s), op1); - return MOVE_FOLDED; - } else { - // ONLY OP2 IS TrueGuard: MOVE REDUCE - Move.mutate(s, GUARD_MOVE, Binary.getClearResult(s), - Binary.getClearVal1(s)); - return MOVE_REDUCED; - } + OPT_Operand op1 = Binary.getVal1(s); + OPT_Operand op2 = Binary.getVal2(s); + if (op1.similar(op2) || (op2 instanceof OPT_TrueGuardOperand)) { + Move.mutate(s, GUARD_MOVE, Binary.getClearResult(s), op1); + if (op1 instanceof OPT_TrueGuardOperand) { + // BOTH true guards: FOLD + return MOVE_FOLDED; + } else { + // ONLY OP2 IS TrueGuard: MOVE REDUCE + return MOVE_REDUCED; } } - return UNCHANGED; + else if(op1 instanceof OPT_TrueGuardOperand) { + // ONLY OP1 IS TrueGuard: MOVE REDUCE + Move.mutate(s, GUARD_MOVE, Binary.getClearResult(s), op2); + return MOVE_REDUCED; + } + else { + return UNCHANGED; + } } private static byte trapIf(OPT_Instruction s) { - { + { OPT_Operand op1 = TrapIf.getVal1(s); OPT_Operand op2 = TrapIf.getVal2(s); if (op1.isConstant()) { @@ -375,33 +425,27 @@ return UNCHANGED; } private static byte nullCheck(OPT_Instruction s) { - { OPT_Operand ref = NullCheck.getRef(s); - if (ref.isNullConstant()) { - Trap.mutate(s, TRAP, NullCheck.getClearGuardResult(s), - OPT_TrapCodeOperand.NullPtr()); - return TRAP_REDUCED; - } else if (ref.isStringConstant()) { - Move.mutate(s, GUARD_MOVE, NullCheck.getClearGuardResult(s), TG()); - return MOVE_FOLDED; - } else if (ref.isAddressConstant()) { - if (ref.asAddressConstant().value.isZero()) { + if (ref.isNullConstant() || + (ref.isAddressConstant() && ref.asAddressConstant().value.isZero())) { Trap.mutate(s, TRAP, NullCheck.getClearGuardResult(s), OPT_TrapCodeOperand.NullPtr()); return TRAP_REDUCED; - } else { + } else if (ref.isConstant()) { + // object, string, class or non-null address constant + // Make the slightly suspect assumption that all non-zero address // constants are actually valid pointers. Not necessarily true, // but unclear what else we can do. Move.mutate(s, GUARD_MOVE, NullCheck.getClearGuardResult(s), TG()); return MOVE_FOLDED; - } } - return UNCHANGED; - } + else { + return UNCHANGED; + } } private static byte intZeroCheck(OPT_Instruction s) { - { + { OPT_Operand op = ZeroCheck.getValue(s); if (op.isIntConstant()) { int val = op.asIntConstant().value; @@ -418,7 +462,7 @@ return UNCHANGED; } private static byte longZeroCheck(OPT_Instruction s) { - { + { OPT_Operand op = ZeroCheck.getValue(s); if (op.isLongConstant()) { long val = op.asLongConstant().value; @@ -435,57 +479,57 @@ return UNCHANGED; } private static byte checkcast(OPT_AbstractRegisterPool regpool, OPT_Instruction s) { - { - OPT_Operand ref = TypeCheck.getRef(s); - if (ref.isNullConstant()) { + OPT_Operand ref = TypeCheck.getRef(s); + if (ref.isNullConstant()) { + Empty.mutate(s, NOP); + return REDUCED; + } else if (ref.isConstant()) { + s.operator = CHECKCAST_NOTNULL; + return checkcastNotNull(s); + } else { + VM_TypeReference lhsType = TypeCheck.getType(s).getTypeRef(); + VM_TypeReference rhsType = ref.getType(); + byte ans = OPT_ClassLoaderProxy.includesType(lhsType, rhsType); + if (ans == OPT_Constants.YES) { Empty.mutate(s, NOP); return REDUCED; - } else if (ref.isStringConstant()) { - s.operator = CHECKCAST_NOTNULL; - return simplify(regpool, s); } else { - VM_TypeReference lhsType = TypeCheck.getType(s).getTypeRef(); - VM_TypeReference rhsType = ref.getType(); - byte ans = OPT_ClassLoaderProxy.includesType(lhsType, rhsType); - if (ans == OPT_Constants.YES) { - Empty.mutate(s, NOP); - return REDUCED; - } // NOTE: OPT_Constants.NO can't help us because (T)null always succeeds + return UNCHANGED; } } - return UNCHANGED; } private static byte checkcastNotNull(OPT_Instruction s) { - { - OPT_Operand ref = TypeCheck.getRef(s); - VM_TypeReference lhsType = TypeCheck.getType(s).getTypeRef(); - VM_TypeReference rhsType = ref.getType(); - byte ans = OPT_ClassLoaderProxy.includesType(lhsType, rhsType); - if (ans == OPT_Constants.YES) { - Empty.mutate(s, NOP); - return REDUCED; - } else if (ans == OPT_Constants.NO) { - VM_Type rType = rhsType.peekResolvedType(); - if (rType != null && rType.isClassType() && rType.asClass().isFinal()) { - // only final (or precise) rhs types can be optimized since rhsType may be conservative - Trap.mutate(s, TRAP, null, OPT_TrapCodeOperand.CheckCast()); - return TRAP_REDUCED; - } + OPT_Operand ref = TypeCheck.getRef(s); + VM_TypeReference lhsType = TypeCheck.getType(s).getTypeRef(); + VM_TypeReference rhsType = ref.getType(); + byte ans = OPT_ClassLoaderProxy.includesType(lhsType, rhsType); + if (ans == OPT_Constants.YES) { + Empty.mutate(s, NOP); + return REDUCED; + } else if (ans == OPT_Constants.NO) { + VM_Type rType = rhsType.peekResolvedType(); + if (rType != null && rType.isClassType() && rType.asClass().isFinal()) { + // only final (or precise) rhs types can be optimized since rhsType may be conservative + Trap.mutate(s, TRAP, null, OPT_TrapCodeOperand.CheckCast()); + return TRAP_REDUCED; + } else { + return UNCHANGED; } } - return UNCHANGED; + else { + return UNCHANGED; + } } private static byte instanceOf(OPT_AbstractRegisterPool regpool, OPT_Instruction s) { - { - OPT_Operand ref = InstanceOf.getRef(s); - if (ref.isNullConstant()) { - Move.mutate(s, INT_MOVE, InstanceOf.getClearResult(s), IC(0)); - return MOVE_FOLDED; - } else if (ref.isStringConstant()) { - s.operator = INSTANCEOF_NOTNULL; - return simplify(regpool, s); - } + OPT_Operand ref = InstanceOf.getRef(s); + if (ref.isNullConstant()) { + Move.mutate(s, INT_MOVE, InstanceOf.getClearResult(s), IC(0)); + return MOVE_FOLDED; + } else if (ref.isConstant()) { + s.operator = INSTANCEOF_NOTNULL; + return instanceOfNotNull(s); + } else { VM_TypeReference lhsType = InstanceOf.getType(s).getTypeRef(); VM_TypeReference rhsType = ref.getType(); byte ans = OPT_ClassLoaderProxy.includesType(lhsType, rhsType); @@ -497,12 +541,17 @@ Move.mutate(s, INT_MOVE, InstanceOf.getClearResult(s), IC(0)); return MOVE_FOLDED; } + else { + return UNCHANGED; + } } + else { + return UNCHANGED; + } } - return UNCHANGED; } private static byte instanceOfNotNull(OPT_Instruction s) { - { + { OPT_Operand ref = InstanceOf.getRef(s); VM_TypeReference lhsType = InstanceOf.getType(s).getTypeRef(); VM_TypeReference rhsType = ref.getType(); @@ -521,8 +570,113 @@ } return UNCHANGED; } + private static byte objarrayStoreCheck(OPT_Instruction s){ + OPT_Operand val = StoreCheck.getVal(s); + if (val.isNullConstant()) { + // Writing null into an array is trivially safe + Move.mutate(s, GUARD_MOVE, StoreCheck.getClearGuardResult(s), StoreCheck.getClearGuard(s)); + return MOVE_REDUCED; + } + else { + OPT_Operand ref = StoreCheck.getRef(s); + VM_TypeReference arrayTypeRef = ref.getType(); + VM_Type typeOfIMElem = arrayTypeRef.getInnermostElementType().peekResolvedType(); + if (typeOfIMElem != null) { + VM_Type typeOfVal = val.getType().peekResolvedType(); + if ((typeOfIMElem == typeOfVal) && + (typeOfIMElem.isPrimitiveType() || + typeOfIMElem.asClass().isFinal())) { + // Writing something of a final type to an array of that + // final type is safe + Move.mutate(s, GUARD_MOVE, StoreCheck.getClearGuardResult(s), + StoreCheck.getClearGuard(s)); + return MOVE_REDUCED; + } + } + if (ref.isConstant() && (arrayTypeRef == VM_TypeReference.JavaLangObjectArray)) { + // We know this to be an array of objects so any store must + // be safe + Move.mutate(s, GUARD_MOVE, StoreCheck.getClearGuardResult(s), + StoreCheck.getClearGuard(s)); + return MOVE_REDUCED; + } + if (val.isConstant() && ref.isConstant()) { + // writing a constant value into a constant array + byte ans = OPT_ClassLoaderProxy.includesType(arrayTypeRef.getArrayElementType(), val.getType()); + if (ans == OPT_Constants.YES) { + // all stores should succeed + Move.mutate(s, GUARD_MOVE, StoreCheck.getClearGuardResult(s), StoreCheck.getClearGuard(s)); + return MOVE_REDUCED; + } + else if (ans == OPT_Constants.NO) { + // all stores will fail + Trap.mutate(s, TRAP, StoreCheck.getClearGuardResult(s), OPT_TrapCodeOperand.StoreCheck()); + return TRAP_REDUCED; + } + } + return UNCHANGED; + } + } + private static byte objarrayStoreCheckNotNull(OPT_Instruction s){ + OPT_Operand val = StoreCheck.getVal(s); + OPT_Operand ref = StoreCheck.getRef(s); + VM_TypeReference arrayTypeRef = ref.getType(); + VM_Type typeOfIMElem = arrayTypeRef.getInnermostElementType().peekResolvedType(); + if (typeOfIMElem != null) { + VM_Type typeOfVal = val.getType().peekResolvedType(); + if ((typeOfIMElem == typeOfVal) && + (typeOfIMElem.isPrimitiveType() || + typeOfIMElem.asClass().isFinal())) { + // Writing something of a final type to an array of that + // final type is safe + Move.mutate(s, GUARD_MOVE, StoreCheck.getClearGuardResult(s), StoreCheck.getClearGuard(s)); + return MOVE_REDUCED; + } + } + if (ref.isConstant() && (arrayTypeRef == VM_TypeReference.JavaLangObjectArray)) { + // We know this to be an array of objects so any store must + // be safe + Move.mutate(s, GUARD_MOVE, StoreCheck.getClearGuardResult(s), + StoreCheck.getClearGuard(s)); + return MOVE_REDUCED; + } + if (val.isConstant() && ref.isConstant()) { + // writing a constant value into a constant array + byte ans = OPT_ClassLoaderProxy.includesType(arrayTypeRef.getArrayElementType(), val.getType()); + if (ans == OPT_Constants.YES) { + // all stores should succeed + Move.mutate(s, GUARD_MOVE, StoreCheck.getClearGuardResult(s), StoreCheck.getClearGuard(s)); + return MOVE_REDUCED; + } + else if (ans == OPT_Constants.NO) { + // all stores will fail + Trap.mutate(s, TRAP, StoreCheck.getClearGuardResult(s), OPT_TrapCodeOperand.StoreCheck()); + return TRAP_REDUCED; + } + } + return UNCHANGED; + } + private static byte mustImplementInterface(OPT_Instruction s) { + OPT_Operand ref = TypeCheck.getRef(s); + if (VM.VerifyAssertions) VM._assert(!ref.isNullConstant()); + VM_TypeReference lhsType = TypeCheck.getType(s).getTypeRef(); // the interface that must be implemented + VM_TypeReference rhsType = ref.getType(); // our type + byte ans = OPT_ClassLoaderProxy.includesType(lhsType, rhsType); + if (ans == OPT_Constants.YES) { + Empty.mutate(s, NOP); + return REDUCED; + } else if (ans == OPT_Constants.NO) { + VM_Type rType = rhsType.peekResolvedType(); + if (rType != null && rType.isClassType() && rType.asClass().isFinal()) { + // only final (or precise) rhs types can be optimized since rhsType may be conservative + Trap.mutate(s, TRAP, null, OPT_TrapCodeOperand.MustImplement()); + return TRAP_REDUCED; + } + } + return UNCHANGED; + } private static byte intCondMove(OPT_Instruction s) { - { + { OPT_Operand val1 = CondMove.getVal1(s); OPT_Operand val2 = CondMove.getVal2(s); int cond = CondMove.getCond(s).evaluate(val1, val2); @@ -580,7 +734,7 @@ return UNCHANGED; } private static byte longCondMove(OPT_Instruction s) { - { + { OPT_Operand val1 = CondMove.getVal1(s); OPT_Operand val2 = CondMove.getVal2(s); int cond = CondMove.getCond(s).evaluate(val1, val2); @@ -638,18 +792,18 @@ return UNCHANGED; } private static byte floatCondMove(OPT_Instruction s) { - { + { OPT_Operand val1 = CondMove.getVal1(s); OPT_Operand val2 = CondMove.getVal2(s); - int cond = CondMove.getCond(s).evaluate(val1, val2); - if (cond != OPT_ConditionOperand.UNKNOWN) { + int cond = CondMove.getCond(s).evaluate(val1, val2); + if (cond != OPT_ConditionOperand.UNKNOWN) { // BOTH CONSTANTS OR SIMILAR: FOLD OPT_Operand val = (cond == OPT_ConditionOperand.TRUE) ? CondMove.getClearTrueValue(s) : CondMove.getClearFalseValue(s); Move.mutate(s, FLOAT_MOVE, CondMove.getClearResult(s), val); return val.isConstant() ? MOVE_FOLDED : MOVE_REDUCED; - } + } if (val1.isConstant() && !val2.isConstant()) { // Canonicalize by switching operands and fliping code. OPT_Operand tmp = CondMove.getClearVal1(s); @@ -667,18 +821,18 @@ return UNCHANGED; } private static byte doubleCondMove(OPT_Instruction s) { - { + { OPT_Operand val1 = CondMove.getVal1(s); OPT_Operand val2 = CondMove.getVal2(s); - int cond = CondMove.getCond(s).evaluate(val1, val2); - if (cond != OPT_ConditionOperand.UNKNOWN) { + int cond = CondMove.getCond(s).evaluate(val1, val2); + if (cond != OPT_ConditionOperand.UNKNOWN) { // BOTH CONSTANTS OR SIMILAR: FOLD OPT_Operand val = (cond == OPT_ConditionOperand.TRUE) ? CondMove.getClearTrueValue(s) : CondMove.getClearFalseValue(s); Move.mutate(s, DOUBLE_MOVE, CondMove.getClearResult(s), val); return val.isConstant() ? MOVE_FOLDED : MOVE_REDUCED; - } + } if (val1.isConstant() && !val2.isConstant()) { // Canonicalize by switching operands and fliping code. OPT_Operand tmp = CondMove.getClearVal1(s); @@ -696,7 +850,7 @@ return UNCHANGED; } private static byte refCondMove(OPT_Instruction s) { - { + { OPT_Operand val1 = CondMove.getVal1(s); if (val1.isConstant()) { OPT_Operand val2 = CondMove.getVal2(s); @@ -727,7 +881,7 @@ return UNCHANGED; } private static byte guardCondMove(OPT_Instruction s) { - { + { OPT_Operand val1 = CondMove.getVal1(s); if (val1.isConstant()) { OPT_Operand val2 = CondMove.getVal2(s); @@ -758,7 +912,7 @@ return UNCHANGED; } private static byte booleanNot(OPT_Instruction s) { - if (CF_INT) { + if (CF_INT) { OPT_Operand op = Unary.getVal(s); if (op.isIntConstant()) { // CONSTANT: FOLD @@ -774,7 +928,7 @@ return UNCHANGED; } private static byte booleanCmpInt(OPT_Instruction s) { - if (CF_INT) { + if (CF_INT) { OPT_Operand op1 = BooleanCmp.getVal1(s); OPT_Operand op2 = BooleanCmp.getVal2(s); if (op1.isConstant()) { @@ -798,7 +952,7 @@ return UNCHANGED; } private static byte booleanCmpAddr(OPT_Instruction s) { - if (CF_ADDR) { + if (CF_ADDR) { OPT_Operand op1 = BooleanCmp.getVal1(s); OPT_Operand op2 = BooleanCmp.getVal2(s); if (op1.isConstant()) { @@ -822,7 +976,7 @@ return UNCHANGED; } private static byte intAdd(OPT_Instruction s) { - if (CF_INT) { + if (CF_INT) { canonicalizeCommutativeOperator(s); OPT_Operand op2 = Binary.getVal2(s); if (op2.isIntConstant()) { @@ -846,7 +1000,7 @@ return UNCHANGED; } private static byte intAnd(OPT_Instruction s) { - if (CF_INT) { + if (CF_INT) { canonicalizeCommutativeOperator(s); OPT_Operand op1 = Binary.getVal1(s); OPT_Operand op2 = Binary.getVal2(s); @@ -880,7 +1034,7 @@ return UNCHANGED; } private static byte intDiv(OPT_Instruction s) { - if (CF_INT) { + if (CF_INT) { OPT_Operand op1 = GuardedBinary.getVal1(s); OPT_Operand op2 = GuardedBinary.getVal2(s); if (op1.similar(op2)) { @@ -925,7 +1079,7 @@ return UNCHANGED; } private static byte intMul(OPT_AbstractRegisterPool regpool, OPT_Instruction s) { - if (CF_INT) { + if (CF_INT) { canonicalizeCommutativeOperator(s); OPT_Operand op2 = Binary.getVal2(s); if (op2.isIntConstant()) { @@ -951,7 +1105,7 @@ Move.mutate(s, INT_MOVE, Binary.getClearResult(s), Binary.getClearVal1(s)); return MOVE_REDUCED; - } + } // try to reduce x*c into shift and adds, but only if cost is cheap if (s.getPrev() != null) { // don't attempt to reduce if this instruction isn't @@ -1006,7 +1160,7 @@ return UNCHANGED; } private static byte intNeg(OPT_Instruction s) { - if (CF_INT) { + if (CF_INT) { OPT_Operand op = Unary.getVal(s); if (op.isIntConstant()) { // CONSTANT: FOLD @@ -1018,7 +1172,7 @@ return UNCHANGED; } private static byte intNot(OPT_Instruction s) { - if (CF_INT) { + if (CF_INT) { OPT_Operand op = Unary.getVal(s); if (op.isIntConstant()) { // CONSTANT: FOLD @@ -1030,7 +1184,7 @@ return UNCHANGED; } private static byte intOr(OPT_Instruction s) { - if (CF_INT) { + if (CF_INT) { canonicalizeCommutativeOperator(s); OPT_Operand op1 = Binary.getVal1(s); OPT_Operand op2 = Binary.getVal2(s); @@ -1065,7 +1219,7 @@ return UNCHANGED; } private static byte intRem(OPT_Instruction s) { - if (CF_INT) { + if (CF_INT) { OPT_Operand op1 = GuardedBinary.getVal1(s); OPT_Operand op2 = GuardedBinary.getVal2(s)... [truncated message content] |
From: <cap...@us...> - 2006-11-22 13:23:04
|
Revision: 11040 http://svn.sourceforge.net/jikesrvm/?rev=11040&view=rev Author: captain5050 Date: 2006-11-22 05:22:56 -0800 (Wed, 22 Nov 2006) Log Message: ----------- Make more fields final Modified Paths: -------------- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_BranchProfiles.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Callbacks.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_CompilerFramework.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_GlobalThreadQueue.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Lock.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Processor.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_ProcessorLock.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Proxy.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Scheduler.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Thread.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_Atom.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_ClassLoader.java rvmroot/trunk/rvm/src-generated/ia32-assembler/VM_Assembler.in rvmroot/trunk/rvm/src-generated/opt-scheduler/OPT_OperatorClass.template rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/VM_MachineCode.java rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/VM_Registers.java Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM.java 2006-11-22 12:08:32 UTC (rev 11039) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM.java 2006-11-22 13:22:56 UTC (rev 11040) @@ -206,15 +206,6 @@ runClassInitializer("java.lang.Runtime"); runClassInitializer("java.lang.System"); - runClassInitializer("java.lang.Void"); - runClassInitializer("java.lang.Boolean"); - runClassInitializer("java.lang.Byte"); - runClassInitializer("java.lang.Short"); - runClassInitializer("java.lang.Number"); - runClassInitializer("java.lang.Integer"); - runClassInitializer("java.lang.Long"); - runClassInitializer("java.lang.Float"); - runClassInitializer("java.lang.Double"); runClassInitializer("java.lang.Character"); runClassInitializer("java.util.WeakHashMap"); // Need for ThreadLocal Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_BranchProfiles.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_BranchProfiles.java 2006-11-22 12:08:32 UTC (rev 11039) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_BranchProfiles.java 2006-11-22 13:22:56 UTC (rev 11040) @@ -17,9 +17,9 @@ * @author Dave Grove */ public final class VM_BranchProfiles implements VM_BytecodeConstants { - private VM_NormalMethod method; - private int numCounters; - private VM_BranchProfile[] data; + private final VM_NormalMethod method; + private final int numCounters; + private final VM_BranchProfile[] data; /** * Find the BranchProfile for a given bytecode index in the BranchProfile array @@ -65,7 +65,7 @@ // least two edges, supposingly. Then we found that the lookupswitch // bytecode could have only one edge, so the number of branch profiles // is not necessarily less than half of the number of edges. - data = new VM_BranchProfile[cs.length]; + VM_BranchProfile data[] = new VM_BranchProfile[cs.length]; VM_BytecodeStream bcodes = m.getBytecodes(); int dataIdx = 0; int countIdx = 0; @@ -131,5 +131,6 @@ } data = newData; } + this.data = data; } } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Callbacks.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Callbacks.java 2006-11-22 12:08:32 UTC (rev 11039) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Callbacks.java 2006-11-22 13:22:56 UTC (rev 11040) @@ -140,7 +140,7 @@ * Class resolution callback list. */ private static CallbackList classResolvedCallbacks = null; - private static Object classResolvedLock = new Object(); + private static final Object classResolvedLock = new Object(); private static boolean classResolvedEnabled = true; /** @@ -200,7 +200,7 @@ * Class instantiation callback list. */ private static CallbackList classInstantiatedCallbacks = null; - private static Object classInstantiatedLock = new Object(); + private static final Object classInstantiatedLock = new Object(); private static boolean classInstantiatedEnabled = true; /** @@ -261,7 +261,7 @@ * Class initialization callback list. */ private static CallbackList classInitializedCallbacks = null; - private static Object classInitializedLock = new Object(); + private static final Object classInitializedLock = new Object(); private static boolean classInitializedEnabled = true; /** @@ -323,7 +323,7 @@ * Method override callback list. */ private static CallbackList methodOverrideCallbacks = null; - private static Object methodOverrideLock = new Object(); + private static final Object methodOverrideLock = new Object(); private static boolean methodOverrideEnabled = true; /** @@ -393,7 +393,7 @@ * Method compile callback list. */ private static CallbackList methodCompileCallbacks = null; - private static Object methodCompileLock = new Object(); + private static final Object methodCompileLock = new Object(); private static boolean methodCompileEnabled = true; /** @@ -459,7 +459,7 @@ * forName call callback list. */ private static CallbackList forNameCallbacks = null; - private static Object forNameLock = new Object(); + private static final Object forNameLock = new Object(); private static boolean forNameEnabled = true; /** @@ -520,7 +520,7 @@ * defineclass call callback list. */ private static CallbackList defineClassCallbacks = null; - private static Object defineClassLock = new Object(); + private static final Object defineClassLock = new Object(); private static boolean defineClassEnabled = true; /** @@ -582,7 +582,7 @@ * loadclass call callback list. */ private static CallbackList loadClassCallbacks = null; - private static Object loadClassLock = new Object(); + private static final Object loadClassLock = new Object(); private static boolean loadClassEnabled = true; /** @@ -643,7 +643,7 @@ * Boot image writing callback list. */ private static CallbackList bootImageCallbacks = null; - private static Object bootImageLock = new Object(); + private static final Object bootImageLock = new Object(); private static boolean bootImageEnabled = true; /** @@ -699,7 +699,7 @@ * VM startup callback list. */ private static CallbackList startupCallbacks = null; - private static Object startupLock = new Object(); + private static final Object startupLock = new Object(); private static boolean startupEnabled = true; /** @@ -817,7 +817,7 @@ * Application Start executing callback list. */ private static CallbackList appStartCallbacks = null; - private static Object appStartLock = new Object(); + private static final Object appStartLock = new Object(); /** * Register a callback for when the application starts executing @@ -871,7 +871,7 @@ * Application Execution Complete callback list. */ private static CallbackList appCompleteCallbacks = null; - private static Object appCompleteLock = new Object(); + private static final Object appCompleteLock = new Object(); /** * Register a callback for when the application completes executing Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_CompilerFramework.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_CompilerFramework.java 2006-11-22 12:08:32 UTC (rev 11039) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_CompilerFramework.java 2006-11-22 13:22:56 UTC (rev 11040) @@ -49,22 +49,17 @@ /** * The method being compiled */ - protected VM_NormalMethod method; + protected final VM_NormalMethod method; /** * The declaring class of the method being compiled */ - protected VM_Class klass; + protected final VM_Class klass; /** - * The VM_Assembler being used for this compilation - */ - protected VM_Assembler asm; - - /** * The bytecodes of the method being compiled */ - protected VM_BytecodeStream bcodes; + protected final VM_BytecodeStream bcodes; /** * Mapping from bytecodes to machine code offsets @@ -77,9 +72,14 @@ protected int biStart; /** + * The VM_Assembler being used for this compilation + */ + protected VM_Assembler asm; + + /** * The compiledMethod assigned to this compilation of method */ - protected VM_CompiledMethod compiledMethod; + protected final VM_CompiledMethod compiledMethod; /** * The height of the expression stack at the start of each bytecode. Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_GlobalThreadQueue.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_GlobalThreadQueue.java 2006-11-22 12:08:32 UTC (rev 11039) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_GlobalThreadQueue.java 2006-11-22 13:22:56 UTC (rev 11040) @@ -21,7 +21,7 @@ */ public final class VM_GlobalThreadQueue extends VM_ThreadQueue implements Uninterruptible { - private VM_ProcessorLock mutex; // TODO check that mutex is heald when manipulating this queue. + private final VM_ProcessorLock mutex; // TODO check that mutex is heald when manipulating this queue. private int length; public VM_GlobalThreadQueue(VM_ProcessorLock mutex) { Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Lock.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Lock.java 2006-11-22 12:08:32 UTC (rev 11039) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Lock.java 2006-11-22 13:22:56 UTC (rev 11040) @@ -248,11 +248,11 @@ /** The number of times the owning thread (if any) has acquired this lock. */ int recursionCount; /** A queue of threads contending for this lock (guarded by <code>mutex</code>). */ - VM_ThreadQueue entering; + final VM_ThreadQueue entering; /** A queue of (proxies for) threads awaiting notification on this object (guarded by <code>mutex</code>). */ - VM_ProxyWaitingQueue waiting; + final VM_ProxyWaitingQueue waiting; /** A spin lock to handle contention for the data structures of this lock. */ - VM_ProcessorLock mutex; + final VM_ProcessorLock mutex; /** * A heavy weight lock to handle extreme contention and wait/notify @@ -377,7 +377,7 @@ static final int MAX_LOCKS = LOCK_ALLOCATION_UNIT_SIZE * LOCK_ALLOCATION_UNIT_COUNT ; static final int INIT_LOCKS = 4096; - private static VM_ProcessorLock lockAllocationMutex; + private static final VM_ProcessorLock lockAllocationMutex = new VM_ProcessorLock(); private static int lockUnitsAllocated; private static VM_Lock globalFreeLock; private static int globalFreeLocks; @@ -386,7 +386,6 @@ * Sets up the data structures for holding heavy-weight locks. */ static void init() throws InterruptiblePragma { - lockAllocationMutex = new VM_ProcessorLock(); VM_Scheduler.locks = new VM_Lock[INIT_LOCKS+1]; // don't use slot 0 if (VM.VerifyAssertions) // check that each potential lock is addressable VM._assert((VM_Scheduler.locks.length-1<=VM_ThinLockConstants.TL_LOCK_ID_MASK.rshl(VM_ThinLockConstants.TL_LOCK_ID_SHIFT).toInt()) Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Processor.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Processor.java 2006-11-22 12:08:32 UTC (rev 11039) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Processor.java 2006-11-22 13:22:56 UTC (rev 11040) @@ -38,7 +38,7 @@ // pthreads that "enter" the VM via attachVM. // public static int numberAttachedProcessors = 0; - public static VM_Processor[] attachedProcessors = new VM_Processor[100]; + public static final VM_Processor[] attachedProcessors = new VM_Processor[100]; /** * Create data object to be associated with an o/s kernel thread Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_ProcessorLock.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_ProcessorLock.java 2006-11-22 12:08:32 UTC (rev 11039) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_ProcessorLock.java 2006-11-22 13:22:56 UTC (rev 11040) @@ -229,7 +229,7 @@ private static final int delayMultiplier = 10; private static final int delayBase = 64; private static int delayIndex; - private static int[] delayCount = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }; + private static final int[] delayCount = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }; /** * For MCS locking, indicates that another processor is changing the Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Proxy.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Proxy.java 2006-11-22 12:08:32 UTC (rev 11039) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Proxy.java 2006-11-22 13:22:56 UTC (rev 11040) @@ -29,11 +29,11 @@ */ final class VM_Proxy implements Uninterruptible { - VM_Thread patron; - VM_Proxy waitingNext; - VM_Proxy wakeupNext; - long wakeupCycle; - VM_ProcessorLock lock = new VM_ProcessorLock(); + VM_Thread patron; + VM_Proxy waitingNext; + VM_Proxy wakeupNext; + long wakeupCycle; + final VM_ProcessorLock lock = new VM_ProcessorLock(); // Create a proxy for a thread on a waiting queue // Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Scheduler.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Scheduler.java 2006-11-22 12:08:32 UTC (rev 11039) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Scheduler.java 2006-11-22 13:22:56 UTC (rev 11040) @@ -73,41 +73,49 @@ // Thread creation and deletion. // - public static VM_Thread[] threads; // list of threads that have been created (slot 0 always empty) + /** list of threads that have been created (slot 0 always empty) */ + public static final VM_Thread[] threads = new VM_Thread[MAX_THREADS]; //-#if RVM_WITH_HPM // Hack, don't to any GC of thread slots! // never forget about a thread for reporting. - public static VM_Thread[] hpm_threads; + public static final VM_Thread[] hpm_threads = new VM_Thread[MAX_THREADS]; //-#endif - static int threadAllocationIndex; // place to start searching threads[] for next free slot - public static int threadHighWatermark; // highest thread index allocated - static int numActiveThreads; // number of threads running or waiting to run - static int numDaemons; // number of "daemon" threads, in the java sense - static VM_ProcessorLock threadCreationMutex; // guard for serializing access to fields above - static VM_ProcessorQueue deadVPQueue; // queue for VPs waiting for callToNative function - static VM_ProcessorQueue availableProcessorQueue; // queue for VPs waiting for callToNative function + /** place to start searching threads[] for next free slot */ + static int threadAllocationIndex; + /** highest thread index allocated */ + public static int threadHighWatermark; + /** number of threads running or waiting to run */ + static int numActiveThreads; + /** number of "daemon" threads, in the java sense */ + static int numDaemons; + /** guard for serializing access to fields above */ + static final VM_ProcessorLock threadCreationMutex = new VM_ProcessorLock(); + /** queue for VPs waiting for callToNative function */ + static final VM_ProcessorQueue deadVPQueue = new VM_ProcessorQueue(); + /** queue for VPs waiting for callToNative function */ + static final VM_ProcessorQueue availableProcessorQueue = new VM_ProcessorQueue(); // Thread execution. // - static VM_ProxyWakeupQueue wakeupQueue; // threads waiting to wake up from a sleep() - static VM_ProcessorLock wakeupMutex; + /** threads waiting to wake up from a sleep() */ + static final VM_ProxyWakeupQueue wakeupQueue = new VM_ProxyWakeupQueue(); + static final VM_ProcessorLock wakeupMutex = new VM_ProcessorLock(); - static VM_ThreadQueue debuggerQueue; // thread waiting to service debugging requests - static VM_ProcessorLock debuggerMutex; + /** thread waiting to service debugging requests */ + static final VM_ThreadQueue debuggerQueue = new VM_ThreadQueue(); + static final VM_ProcessorLock debuggerMutex = new VM_ProcessorLock(); - public static VM_ThreadQueue collectorQueue; // collector threads waiting to be resumed - public static VM_ProcessorLock collectorMutex; + /** collector threads waiting to be resumed */ + public static final VM_ThreadQueue collectorQueue = new VM_ThreadQueue(); + public static final VM_ProcessorLock collectorMutex = new VM_ProcessorLock(); - public static VM_ThreadQueue finalizerQueue; // Finalizer thread waits here when idle - public static VM_ProcessorLock finalizerMutex; + /** Finalizer thread waits here when idle */ + public static final VM_ThreadQueue finalizerQueue = new VM_ThreadQueue(); + public static final VM_ProcessorLock finalizerMutex = new VM_ProcessorLock(); // Debugging output. - // - // DEPRECATED! use lockOutput() and unlock Output() instead - // - public static VM_ProcessorLock outputMutex; // guard for improving readability of trace output // Thick locks. // @@ -166,12 +174,6 @@ * Initialize boot image. */ static void init() throws InterruptiblePragma { - threadCreationMutex = new VM_ProcessorLock(); - outputMutex = new VM_ProcessorLock(); - threads = new VM_Thread[MAX_THREADS]; - //-#if RVM_WITH_HPM - hpm_threads = new VM_Thread[MAX_THREADS]; - //-#endif threadAllocationIndex = PRIMORDIAL_THREAD_INDEX; // Enable us to dump a Java Stack from the C trap handler to aid in debugging things that @@ -234,23 +236,6 @@ //-#endif } - // Create work queues. - // - wakeupQueue = new VM_ProxyWakeupQueue(); - wakeupMutex = new VM_ProcessorLock(); - - debuggerQueue = new VM_ThreadQueue(); - debuggerMutex = new VM_ProcessorLock(); - - collectorQueue = new VM_ThreadQueue(); - collectorMutex = new VM_ProcessorLock(); - - finalizerQueue = new VM_ThreadQueue(); - finalizerMutex = new VM_ProcessorLock(); - - deadVPQueue = new VM_ProcessorQueue(); - availableProcessorQueue = new VM_ProcessorQueue(); - VM_CollectorThread.boot(numProcessors); // Create one one idle thread per processor. Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Thread.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Thread.java 2006-11-22 12:08:32 UTC (rev 11039) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Thread.java 2006-11-22 13:22:56 UTC (rev 11040) @@ -80,7 +80,7 @@ // globally unique thread id counter. Increment ever time a thread is created. static private int global_hpm_tid = 1; // globally unique thread id counter. Increment ever time a thread is created. - static private Object global_hpm_tid_LOCK = new Object(); + static private final Object global_hpm_tid_LOCK = new Object(); // generate a globally unique thread id (only called from constructors) private final void assignGlobalTID() throws LogicallyUninterruptiblePragma { @@ -1682,7 +1682,7 @@ private static final int INT_BUFFER_SIZE = 20; /** A buffer for building string representations of <code>long</code>s */ - private static char [] intBuffer = new char[INT_BUFFER_SIZE]; + private static final char [] intBuffer = new char[INT_BUFFER_SIZE]; /** A lock for {@link #intBuffer} */ private static int intBufferLock = 0; @@ -1741,7 +1741,7 @@ //-----------------// /** Support for suspend and resume */ - VM_ProcessorLock suspendLock; + final VM_ProcessorLock suspendLock; boolean suspendPending; boolean suspended; @@ -1802,13 +1802,13 @@ /** * Place to save register state when this thread is not actually running. */ - public VM_Registers contextRegisters; + public final VM_Registers contextRegisters; /** * Place to save register state when C signal handler traps * an exception while this thread is running. */ - public VM_Registers hardwareExceptionRegisters; + public final VM_Registers hardwareExceptionRegisters; /** * Place to save/restore this thread's monitor state during Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_Atom.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_Atom.java 2006-11-22 12:08:32 UTC (rev 11039) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_Atom.java 2006-11-22 13:22:56 UTC (rev 11040) @@ -38,7 +38,7 @@ /** * Used to canonicalize VM_Atoms: Key => VM_Atom */ - private static VM_HashMap dictionary = new VM_HashMap(); + private static final VM_HashMap dictionary = new VM_HashMap(); /** * Dictionary of all VM_Atom instances. Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_ClassLoader.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_ClassLoader.java 2006-11-22 12:08:32 UTC (rev 11039) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_ClassLoader.java 2006-11-22 13:22:56 UTC (rev 11040) @@ -139,35 +139,57 @@ // Names of special methods. // - public static VM_Atom StandardClassInitializerMethodName; // "<clinit>" - public static VM_Atom StandardClassInitializerMethodDescriptor; // "()V" + /** "<clinit>" */ + public static final VM_Atom StandardClassInitializerMethodName = VM_Atom.findOrCreateAsciiAtom("<clinit>"); + /** "()V" */ + public static final VM_Atom StandardClassInitializerMethodDescriptor = VM_Atom.findOrCreateAsciiAtom("()V"); - public static VM_Atom StandardObjectInitializerMethodName; // "<init>" - public static VM_Atom StandardObjectInitializerMethodDescriptor; // "()V" + /** "<init>" */ + public static final VM_Atom StandardObjectInitializerMethodName = VM_Atom.findOrCreateAsciiAtom("<init>"); + /** "()V" */ + public static final VM_Atom StandardObjectInitializerMethodDescriptor = VM_Atom.findOrCreateAsciiAtom("()V"); + /** "this" */ + public static final VM_Atom StandardObjectInitializerHelperMethodName = VM_Atom.findOrCreateAsciiAtom("this"); - public static VM_Atom StandardObjectInitializerHelperMethodName; // "this" + /** "finalize" */ + public static final VM_Atom StandardObjectFinalizerMethodName = VM_Atom.findOrCreateAsciiAtom("finalize"); + /** "()V" */ + public static final VM_Atom StandardObjectFinalizerMethodDescriptor = VM_Atom.findOrCreateAsciiAtom("()V"); - public static VM_Atom StandardObjectFinalizerMethodName; // "finalize" - public static VM_Atom StandardObjectFinalizerMethodDescriptor; // "()V" - // Names of .class file attributes. // - static VM_Atom codeAttributeName; // "Code" - static VM_Atom constantValueAttributeName; // "ConstantValue" - static VM_Atom lineNumberTableAttributeName; // "LineNumberTable" - static VM_Atom exceptionsAttributeName; // "Exceptions" - static VM_Atom sourceFileAttributeName; // "SourceFile" - static VM_Atom localVariableTableAttributeName; // "LocalVariableTable" - static VM_Atom deprecatedAttributeName; // "Deprecated" - static VM_Atom innerClassesAttributeName; // "InnerClasses" - static VM_Atom syntheticAttributeName; // "Synthetic" - static VM_Atom enclosingMethodAttributeName; // "EnclosingMethod" - static VM_Atom signatureAttributeName; // "Signature" - static VM_Atom runtimeVisibleAnnotationsAttributeName; // "RuntimeVisibleAnnotations" - static VM_Atom runtimeInvisibleAnnotationsAttributeName; // "RuntimeInvisibleAnnotations" - static VM_Atom runtimeVisibleParameterAnnotationsAttributeName; // "RuntimeVisibleParameterAnnotations" - static VM_Atom runtimeInvisibleParameterAnnotationsAttributeName; // "RuntimeInvisibleParameterAnnotations" - static VM_Atom annotationDefaultAttributeName; // "AnnotationDefault" + /** "Code" */ + static final VM_Atom codeAttributeName = VM_Atom.findOrCreateAsciiAtom("Code"); + /** "ConstantValue" */ + static final VM_Atom constantValueAttributeName = VM_Atom.findOrCreateAsciiAtom("ConstantValue"); + /** "LineNumberTable" */ + static final VM_Atom lineNumberTableAttributeName = VM_Atom.findOrCreateAsciiAtom("LineNumberTable"); + /** "Exceptions" */ + static final VM_Atom exceptionsAttributeName = VM_Atom.findOrCreateAsciiAtom("Exceptions"); + /** "SourceFile" */ + static final VM_Atom sourceFileAttributeName = VM_Atom.findOrCreateAsciiAtom("SourceFile"); + /** "LocalVariableTable" */ + static final VM_Atom localVariableTableAttributeName = VM_Atom.findOrCreateAsciiAtom("LocalVariableTable"); + /** "Deprecated" */ + static final VM_Atom deprecatedAttributeName = VM_Atom.findOrCreateAsciiAtom("Deprecated"); + /** "InnerClasses" */ + static final VM_Atom innerClassesAttributeName = VM_Atom.findOrCreateAsciiAtom("InnerClasses"); + /** "Synthetic" */ + static final VM_Atom syntheticAttributeName = VM_Atom.findOrCreateAsciiAtom("Synthetic"); + /** "EnclosingMethod" */ + static final VM_Atom enclosingMethodAttributeName = VM_Atom.findOrCreateAsciiAtom("EnclosingMethod"); + /** "Signature" */ + static final VM_Atom signatureAttributeName = VM_Atom.findOrCreateAsciiAtom("Signature"); + /** "RuntimeVisibleAnnotations" */ + static final VM_Atom runtimeVisibleAnnotationsAttributeName = VM_Atom.findOrCreateAsciiAtom("RuntimeVisibleAnnotations"); + /** "RuntimeInvisibleAnnotations" */ + static final VM_Atom runtimeInvisibleAnnotationsAttributeName = VM_Atom.findOrCreateAsciiAtom("RuntimeInvisibleAnnotations"); + /** "RuntimeVisibleParameterAnnotations" */ + static final VM_Atom runtimeVisibleParameterAnnotationsAttributeName = VM_Atom.findOrCreateAsciiAtom("RuntimeVisibleParameterAnnotations"); + /** "RuntimeInvisibleParameterAnnotations" */ + static final VM_Atom runtimeInvisibleParameterAnnotationsAttributeName = VM_Atom.findOrCreateAsciiAtom("RuntimeInvisibleParameterAnnotations"); + /** "AnnotationDefault" */ + static final VM_Atom annotationDefaultAttributeName = VM_Atom.findOrCreateAsciiAtom("AnnotationDefault"); /** Initialize at boot time. */ @@ -183,35 +205,6 @@ // applicationRepositories = "."; // Carried over. VM_BootstrapClassLoader.boot(bootstrapClasspath); - - // create special method- and attribute- names - // - StandardClassInitializerMethodName = VM_Atom.findOrCreateAsciiAtom("<clinit>"); - StandardClassInitializerMethodDescriptor = VM_Atom.findOrCreateAsciiAtom("()V"); - - StandardObjectInitializerMethodName = VM_Atom.findOrCreateAsciiAtom("<init>"); - StandardObjectInitializerMethodDescriptor = VM_Atom.findOrCreateAsciiAtom("()V"); - - StandardObjectInitializerHelperMethodName = VM_Atom.findOrCreateAsciiAtom("this"); - - StandardObjectFinalizerMethodName = VM_Atom.findOrCreateAsciiAtom("finalize"); - StandardObjectFinalizerMethodDescriptor = VM_Atom.findOrCreateAsciiAtom("()V"); - - codeAttributeName = VM_Atom.findOrCreateAsciiAtom("Code"); - constantValueAttributeName = VM_Atom.findOrCreateAsciiAtom("ConstantValue"); - lineNumberTableAttributeName = VM_Atom.findOrCreateAsciiAtom("LineNumberTable"); - exceptionsAttributeName = VM_Atom.findOrCreateAsciiAtom("Exceptions"); - sourceFileAttributeName = VM_Atom.findOrCreateAsciiAtom("SourceFile"); - localVariableTableAttributeName = VM_Atom.findOrCreateAsciiAtom("LocalVariableTable"); - deprecatedAttributeName = VM_Atom.findOrCreateAsciiAtom("Deprecated"); - innerClassesAttributeName = VM_Atom.findOrCreateAsciiAtom("InnerClasses"); - syntheticAttributeName = VM_Atom.findOrCreateAsciiAtom("Synthetic"); - signatureAttributeName = VM_Atom.findOrCreateAsciiAtom("Signature"); - runtimeVisibleAnnotationsAttributeName = VM_Atom.findOrCreateAsciiAtom("RuntimeVisibleAnnotations"); - runtimeInvisibleAnnotationsAttributeName = VM_Atom.findOrCreateAsciiAtom("RuntimeInvisibleAnnotations"); - runtimeVisibleParameterAnnotationsAttributeName = VM_Atom.findOrCreateAsciiAtom("RuntimeVisibleParameterAnnotations"); - runtimeInvisibleParameterAnnotationsAttributeName = VM_Atom.findOrCreateAsciiAtom("RuntimeInvisibleParameterAnnotations"); - annotationDefaultAttributeName = VM_Atom.findOrCreateAsciiAtom("AnnotationDefault"); } Modified: rvmroot/trunk/rvm/src-generated/ia32-assembler/VM_Assembler.in =================================================================== --- rvmroot/trunk/rvm/src-generated/ia32-assembler/VM_Assembler.in 2006-11-22 12:08:32 UTC (rev 11039) +++ rvmroot/trunk/rvm/src-generated/ia32-assembler/VM_Assembler.in 2006-11-22 13:22:56 UTC (rev 11040) @@ -177,7 +177,7 @@ /** * The lister object is used to print generated machine code. */ - protected VM_Lister lister; + protected final VM_Lister lister; /** * The array holding the generated binary code. Modified: rvmroot/trunk/rvm/src-generated/opt-scheduler/OPT_OperatorClass.template =================================================================== --- rvmroot/trunk/rvm/src-generated/opt-scheduler/OPT_OperatorClass.template 2006-11-22 12:08:32 UTC (rev 11039) +++ rvmroot/trunk/rvm/src-generated/opt-scheduler/OPT_OperatorClass.template 2006-11-22 13:22:56 UTC (rev 11040) @@ -142,7 +142,7 @@ /** * Latencies to other classes */ - private ArrayList latencies; + private final ArrayList latencies; // Returns latency lookup in the hashtable for a given operator class. // For internal use only. @@ -277,7 +277,7 @@ /** * Resource Classes used by this Operator Class */ - ArrayList rclasses; + final ArrayList rclasses; /** * Resource Usage Masks Modified: rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/VM_MachineCode.java =================================================================== --- rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/VM_MachineCode.java 2006-11-22 12:08:32 UTC (rev 11039) +++ rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/VM_MachineCode.java 2006-11-22 13:22:56 UTC (rev 11040) @@ -13,7 +13,7 @@ * @author Julian Dolby */ public class VM_MachineCode { - private VM_CodeArray instructions; + private final VM_CodeArray instructions; private int[] bytecodeMap; public VM_MachineCode (VM_CodeArray i, int[] bm) { Modified: rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/VM_Registers.java =================================================================== --- rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/VM_Registers.java 2006-11-22 12:08:32 UTC (rev 11039) +++ rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/VM_Registers.java 2006-11-22 13:22:56 UTC (rev 11040) @@ -23,8 +23,8 @@ // The following are used both for thread context switching // and for software/hardware exception reporting/delivery. // - public WordArray gprs; // general purpose registers - public double fprs[]; // floating point registers + public final WordArray gprs; // general purpose registers + public final double fprs[]; // floating point registers public Address ip; // instruction address register public Address fp; // frame pointer This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cap...@us...> - 2006-11-22 15:15:35
|
Revision: 11041 http://svn.sourceforge.net/jikesrvm/?rev=11041&view=rev Author: captain5050 Date: 2006-11-22 07:15:31 -0800 (Wed, 22 Nov 2006) Log Message: ----------- Patch to allow compilation against Classpath generics Modified Paths: -------------- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_Field.java rvmroot/trunk/rvm/src/java/lang/VMSystem.java rvmroot/trunk/rvm/src/java/lang/reflect/Field.java Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_Field.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_Field.java 2006-11-22 13:22:56 UTC (rev 11040) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_Field.java 2006-11-22 15:15:31 UTC (rev 11041) @@ -166,6 +166,13 @@ return (modifiers & ACC_SYNTHETIC) != 0; } + /** + * Enum constant + */ + public boolean isEnumConstant() { + return (modifiers & ACC_ENUM) != 0; + } + /** * Get index of constant pool entry containing this * "static final constant" field's value. Modified: rvmroot/trunk/rvm/src/java/lang/VMSystem.java =================================================================== --- rvmroot/trunk/rvm/src/java/lang/VMSystem.java 2006-11-22 13:22:56 UTC (rev 11040) +++ rvmroot/trunk/rvm/src/java/lang/VMSystem.java 2006-11-22 15:15:31 UTC (rev 11041) @@ -15,6 +15,7 @@ import com.ibm.jikesrvm.VM_Statics; import com.ibm.jikesrvm.VM_SysCall; // for VM_SysCall.sysGetenv import com.ibm.jikesrvm.VM_Time; +import com.ibm.jikesrvm.VM_UnimplementedError; import com.ibm.jikesrvm.classloader.VM_Array; import com.ibm.jikesrvm.classloader.VM_Atom; @@ -22,6 +23,7 @@ import com.ibm.jikesrvm.classloader.VM_Field; import java.io.*; +import java.util.List; import org.vmmagic.unboxed.Offset; @@ -146,4 +148,7 @@ return new String(buf, 0, len); } + static List environ() { + throw new VM_UnimplementedError(); + } } Modified: rvmroot/trunk/rvm/src/java/lang/reflect/Field.java =================================================================== --- rvmroot/trunk/rvm/src/java/lang/reflect/Field.java 2006-11-22 13:22:56 UTC (rev 11040) +++ rvmroot/trunk/rvm/src/java/lang/reflect/Field.java 2006-11-22 15:15:31 UTC (rev 11041) @@ -151,6 +151,10 @@ return field.isSynthetic(); } + public boolean isEnumConstant() { + return field.isEnumConstant(); + } + public void set(Object object, Object value) throws IllegalAccessException, IllegalArgumentException { checkWriteAccess(object); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cap...@us...> - 2006-11-23 08:51:20
|
Revision: 11045 http://svn.sourceforge.net/jikesrvm/?rev=11045&view=rev Author: captain5050 Date: 2006-11-23 00:51:19 -0800 (Thu, 23 Nov 2006) Log Message: ----------- Athrow can throw a register or object constant operand. Modified Paths: -------------- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_BC2IR.java rvmroot/trunk/rvm/src-generated/opt-ir/InstructionFormatList.dat Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_BC2IR.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_BC2IR.java 2006-11-23 04:20:44 UTC (rev 11044) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_BC2IR.java 2006-11-23 08:51:19 UTC (rev 11045) @@ -2088,7 +2088,7 @@ appendInstruction(CacheOp.create(SET_CAUGHT_EXCEPTION, op0)); s = Goto.create(GOTO, definiteTarget.makeJumpTarget()); } else { - s = Athrow.create(ATHROW, (OPT_RegisterOperand)op0); + s = Athrow.create(ATHROW, op0); } } break; Modified: rvmroot/trunk/rvm/src-generated/opt-ir/InstructionFormatList.dat =================================================================== --- rvmroot/trunk/rvm/src-generated/opt-ir/InstructionFormatList.dat 2006-11-23 04:20:44 UTC (rev 11044) +++ rvmroot/trunk/rvm/src-generated/opt-ir/InstructionFormatList.dat 2006-11-23 08:51:19 UTC (rev 11045) @@ -67,7 +67,7 @@ # how do we verify that the operand is a ref? Athrow 0 0 1 -"U Value OPT_RegisterOperand" +"U Value OPT_Operand" # how do we verify that the operand is a ref? This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ste...@us...> - 2006-12-03 08:35:13
|
Revision: 11112 http://svn.sourceforge.net/jikesrvm/?rev=11112&view=rev Author: steveb-oss Date: 2006-12-03 00:35:11 -0800 (Sun, 03 Dec 2006) Log Message: ----------- got rid of all trivial 32/64 bit preprocesor flags in src Modified Paths: -------------- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/DebuggerThread.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_CompilerFramework.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Memory.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Statics.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Bits.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ConvertLIRtoMIR.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ExpressionFolding.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LinearScan.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Simplifier.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ValueGraph.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_BC2IR.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/osr/OSR_VariableElement.java rvmroot/trunk/rvm/src/gnu/classpath/JikesRVMSupport.java rvmroot/trunk/rvm/src/org/vmmagic/unboxed/Address.java rvmroot/trunk/rvm/src/org/vmmagic/unboxed/Extent.java rvmroot/trunk/rvm/src/org/vmmagic/unboxed/Offset.java rvmroot/trunk/rvm/src/org/vmmagic/unboxed/Word.java Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/DebuggerThread.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/DebuggerThread.java 2006-12-02 21:18:28 UTC (rev 11111) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/DebuggerThread.java 2006-12-03 08:35:11 UTC (rev 11112) @@ -110,11 +110,7 @@ case 'p': // print object if (tokens.length == 2) { - //-#if RVM_FOR_64_ADDR - Address addr = Address.fromLong(Long.parseLong(tokens[1], 16)); - //-#else - Address addr = Address.fromIntZeroExtend(Integer.parseInt(tokens[1], 16)); - //-#endif + Address addr = (VM.BuildFor64Addr) ? Address.fromLong(Long.parseLong(tokens[1], 16)) : Address.fromIntZeroExtend(Integer.parseInt(tokens[1], 16)); VM.sysWrite("Object at addr 0x"); VM.sysWriteHex(addr); VM.sysWrite(": "); Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM.java 2006-12-02 21:18:28 UTC (rev 11111) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM.java 2006-12-03 08:35:11 UTC (rev 11112) @@ -763,19 +763,17 @@ } public static void writeDec(Word value) throws NoInlinePragma /* don't waste code space inlining these --dave */ { - //-#if RVM_FOR_64_ADDR - write(value.toLong()); - //-#else - write(value.toInt()); - //-#endif + if (VM.BuildFor32Addr) + write(value.toInt()); + else + write(value.toLong()); } public static void writeHex(Word value) throws NoInlinePragma /* don't waste code space inlining these --dave */ { - //-#if RVM_FOR_64_ADDR - writeHex(value.toLong()); - //-#else - writeHex(value.toInt()); - //-#endif + if (VM.BuildFor32Addr) + writeHex(value.toInt()); + else + writeHex(value.toLong()); } public static void writeHex(Address value) throws NoInlinePragma /* don't waste code space inlining these --dave */ { Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_CompilerFramework.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_CompilerFramework.java 2006-12-02 21:18:28 UTC (rev 11111) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_CompilerFramework.java 2006-12-03 08:35:11 UTC (rev 11112) @@ -1854,24 +1854,22 @@ break; } case PSEUDO_LoadWordConst: { - //-#if RVM_FOR_32_ADDR - int value = bcodes.readIntConst(); + if (VM.BuildFor32Addr) { + int value = bcodes.readIntConst(); - if (shouldPrint) asm.noteBytecode(biStart, "pseudo_load_word " + Integer.toHexString(value)); - - Offset offset = Offset.fromIntSignExtend(VM_Statics.findOrCreateIntSizeLiteral(value)); - emit_ldc(offset, VM_Class.CP_INT); - //-#endif + if (shouldPrint) asm.noteBytecode(biStart, "pseudo_load_word " + Integer.toHexString(value)); - //-#if RVM_FOR_64_ADDR - long value = bcodes.readLongConst(); + Offset offset = Offset.fromIntSignExtend(VM_Statics.findOrCreateIntSizeLiteral(value)); + emit_ldc(offset, VM_Class.CP_INT); + } else { + long value = bcodes.readLongConst(); - if (shouldPrint) asm.noteBytecode(biStart, "pseudo_load_word " + Long.toHexString(value)); - - Offset offset = Offset.fromIntSignExtend(VM_Statics.findOrCreateLongSizeLiteral(value)); - emit_ldc2(offset, VM_Class.CP_LONG); - emit_l2i(); //dirty hack - //-#endif + if (shouldPrint) asm.noteBytecode(biStart, "pseudo_load_word " + Long.toHexString(value)); + + Offset offset = Offset.fromIntSignExtend(VM_Statics.findOrCreateLongSizeLiteral(value)); + emit_ldc2(offset, VM_Class.CP_LONG); + emit_l2i(); //dirty hack + } break; } case PSEUDO_LoadFloatConst: { Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Memory.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Memory.java 2006-12-02 21:18:28 UTC (rev 11111) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Memory.java 2006-12-03 08:35:11 UTC (rev 11112) @@ -66,21 +66,23 @@ Address srcPtr = VM_Magic.objectAsAddress(src).plus(srcPos+startDiff); Address dstPtr = VM_Magic.objectAsAddress(dst).plus(dstPos+startDiff); + if (VM.BuildFor64Addr) { + switch(startDiff) { + case 7: + VM_Magic.setByteAtOffset(VM_Magic.addressAsObject(dstPtr), Offset.fromIntSignExtend(-7), + VM_Magic.getByteAtOffset(VM_Magic.addressAsObject(srcPtr), Offset.fromIntSignExtend(-7))); + case 6: + VM_Magic.setByteAtOffset(VM_Magic.addressAsObject(dstPtr), Offset.fromIntSignExtend(-6), + VM_Magic.getByteAtOffset(VM_Magic.addressAsObject(srcPtr), Offset.fromIntSignExtend(-6))); + case 5: + VM_Magic.setByteAtOffset(VM_Magic.addressAsObject(dstPtr), Offset.fromIntSignExtend(-5), + VM_Magic.getByteAtOffset(VM_Magic.addressAsObject(srcPtr), Offset.fromIntSignExtend(-5))); + case 4: + VM_Magic.setByteAtOffset(VM_Magic.addressAsObject(dstPtr), Offset.fromIntSignExtend(-4), + VM_Magic.getByteAtOffset(VM_Magic.addressAsObject(srcPtr), Offset.fromIntSignExtend(-4))); + } + } switch(startDiff) { - //-#if RVM_FOR_64_ADDR - case 7: - VM_Magic.setByteAtOffset(VM_Magic.addressAsObject(dstPtr), Offset.fromIntSignExtend(-7), - VM_Magic.getByteAtOffset(VM_Magic.addressAsObject(srcPtr), Offset.fromIntSignExtend(-7))); - case 6: - VM_Magic.setByteAtOffset(VM_Magic.addressAsObject(dstPtr), Offset.fromIntSignExtend(-6), - VM_Magic.getByteAtOffset(VM_Magic.addressAsObject(srcPtr), Offset.fromIntSignExtend(-6))); - case 5: - VM_Magic.setByteAtOffset(VM_Magic.addressAsObject(dstPtr), Offset.fromIntSignExtend(-5), - VM_Magic.getByteAtOffset(VM_Magic.addressAsObject(srcPtr), Offset.fromIntSignExtend(-5))); - case 4: - VM_Magic.setByteAtOffset(VM_Magic.addressAsObject(dstPtr), Offset.fromIntSignExtend(-4), - VM_Magic.getByteAtOffset(VM_Magic.addressAsObject(srcPtr), Offset.fromIntSignExtend(-4))); - //-#endif case 3: VM_Magic.setByteAtOffset(VM_Magic.addressAsObject(dstPtr), Offset.fromIntSignExtend(-3), VM_Magic.getByteAtOffset(VM_Magic.addressAsObject(srcPtr), Offset.fromIntSignExtend(-3))); @@ -99,21 +101,23 @@ dstPtr = dstPtr.plus(BYTES_IN_ADDRESS); } + if (VM.BuildFor64Addr) { + switch(endDiff) { + case 7: + VM_Magic.setByteAtOffset(VM_Magic.addressAsObject(dstPtr), Offset.fromIntSignExtend(6), + VM_Magic.getByteAtOffset(VM_Magic.addressAsObject(srcPtr), Offset.fromIntSignExtend(6))); + case 6: + VM_Magic.setByteAtOffset(VM_Magic.addressAsObject(dstPtr), Offset.fromIntSignExtend(5), + VM_Magic.getByteAtOffset(VM_Magic.addressAsObject(srcPtr), Offset.fromIntSignExtend(5))); + case 5: + VM_Magic.setByteAtOffset(VM_Magic.addressAsObject(dstPtr), Offset.fromIntSignExtend(4), + VM_Magic.getByteAtOffset(VM_Magic.addressAsObject(srcPtr), Offset.fromIntSignExtend(4))); + case 4: + VM_Magic.setByteAtOffset(VM_Magic.addressAsObject(dstPtr), Offset.fromIntSignExtend(3), + VM_Magic.getByteAtOffset(VM_Magic.addressAsObject(srcPtr), Offset.fromIntSignExtend(3))); + } + } switch(endDiff) { - //-#if RVM_FOR_64_ADDR - case 7: - VM_Magic.setByteAtOffset(VM_Magic.addressAsObject(dstPtr), Offset.fromIntSignExtend(6), - VM_Magic.getByteAtOffset(VM_Magic.addressAsObject(srcPtr), Offset.fromIntSignExtend(6))); - case 6: - VM_Magic.setByteAtOffset(VM_Magic.addressAsObject(dstPtr), Offset.fromIntSignExtend(5), - VM_Magic.getByteAtOffset(VM_Magic.addressAsObject(srcPtr), Offset.fromIntSignExtend(5))); - case 5: - VM_Magic.setByteAtOffset(VM_Magic.addressAsObject(dstPtr), Offset.fromIntSignExtend(4), - VM_Magic.getByteAtOffset(VM_Magic.addressAsObject(srcPtr), Offset.fromIntSignExtend(4))); - case 4: - VM_Magic.setByteAtOffset(VM_Magic.addressAsObject(dstPtr), Offset.fromIntSignExtend(3), - VM_Magic.getByteAtOffset(VM_Magic.addressAsObject(srcPtr), Offset.fromIntSignExtend(3))); - //-#endif case 3: VM_Magic.setByteAtOffset(VM_Magic.addressAsObject(dstPtr), Offset.fromIntSignExtend(2), VM_Magic.getByteAtOffset(VM_Magic.addressAsObject(srcPtr), Offset.fromIntSignExtend(2))); @@ -168,15 +172,17 @@ Address srcPtr = VM_Magic.objectAsAddress(src).plus((srcPos<<LOG_BYTES_IN_SHORT)+startDiff); Address dstPtr = VM_Magic.objectAsAddress(dst).plus((dstPos<<LOG_BYTES_IN_SHORT)+startDiff); + if (VM.BuildFor64Addr) { + switch(startDiff) { + case 6: + VM_Magic.setCharAtOffset(VM_Magic.addressAsObject(dstPtr), Offset.fromIntSignExtend(-6), + VM_Magic.getCharAtOffset(VM_Magic.addressAsObject(srcPtr), Offset.fromIntSignExtend(-6))); + case 4: + VM_Magic.setCharAtOffset(VM_Magic.addressAsObject(dstPtr), Offset.fromIntSignExtend(-4), + VM_Magic.getCharAtOffset(VM_Magic.addressAsObject(srcPtr), Offset.fromIntSignExtend(-4))); + } + } switch(startDiff) { - //-#if RVM_FOR_64_ADDR - case 6: - VM_Magic.setCharAtOffset(VM_Magic.addressAsObject(dstPtr), Offset.fromIntSignExtend(-6), - VM_Magic.getCharAtOffset(VM_Magic.addressAsObject(srcPtr), Offset.fromIntSignExtend(-6))); - case 4: - VM_Magic.setCharAtOffset(VM_Magic.addressAsObject(dstPtr), Offset.fromIntSignExtend(-4), - VM_Magic.getCharAtOffset(VM_Magic.addressAsObject(srcPtr), Offset.fromIntSignExtend(-4))); - //-#endif case 2: VM_Magic.setCharAtOffset(VM_Magic.addressAsObject(dstPtr), Offset.fromIntSignExtend(-2), VM_Magic.getCharAtOffset(VM_Magic.addressAsObject(srcPtr), Offset.fromIntSignExtend(-2))); @@ -189,15 +195,17 @@ dstPtr = dstPtr.plus(BYTES_IN_ADDRESS); } + if (VM.BuildFor64Addr) { + switch(endDiff) { + case 6: + VM_Magic.setCharAtOffset(VM_Magic.addressAsObject(dstPtr), Offset.fromIntSignExtend(4), + VM_Magic.getCharAtOffset(VM_Magic.addressAsObject(srcPtr), Offset.fromIntSignExtend(4))); + case 4: + VM_Magic.setCharAtOffset(VM_Magic.addressAsObject(dstPtr), Offset.fromIntSignExtend(2), + VM_Magic.getCharAtOffset(VM_Magic.addressAsObject(srcPtr), Offset.fromIntSignExtend(2))); + } + } switch(endDiff) { - //-#if RVM_FOR_64_ADDR - case 6: - VM_Magic.setCharAtOffset(VM_Magic.addressAsObject(dstPtr), Offset.fromIntSignExtend(4), - VM_Magic.getCharAtOffset(VM_Magic.addressAsObject(srcPtr), Offset.fromIntSignExtend(4))); - case 4: - VM_Magic.setCharAtOffset(VM_Magic.addressAsObject(dstPtr), Offset.fromIntSignExtend(2), - VM_Magic.getCharAtOffset(VM_Magic.addressAsObject(srcPtr), Offset.fromIntSignExtend(2))); - //-#endif case 2: VM_Magic.setCharAtOffset(VM_Magic.addressAsObject(dstPtr), Offset.zero(), VM_Magic.getCharAtOffset(VM_Magic.addressAsObject(srcPtr), Offset.zero())); Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Statics.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Statics.java 2006-12-02 21:18:28 UTC (rev 11111) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Statics.java 2006-12-03 08:35:11 UTC (rev 11112) @@ -510,11 +510,10 @@ */ public static Object getSlotContentsAsObject(Offset offset) throws UninterruptiblePragma { if(VM.runningVM) { - //-#if RVM_FOR_64_ADDR - return VM_Magic.addressAsObject(Address.fromLong(getSlotContentsAsLong(offset))); - //-#else - return VM_Magic.addressAsObject(Address.fromIntSignExtend(getSlotContentsAsInt(offset))); - //-#endif + if (VM.BuildFor32Addr) + return VM_Magic.addressAsObject(Address.fromIntSignExtend(getSlotContentsAsInt(offset))); + else + return VM_Magic.addressAsObject(Address.fromLong(getSlotContentsAsLong(offset))); } else { return objectSlots[offsetAsSlot(offset)]; } @@ -574,11 +573,10 @@ if (VM.runningVM) { VM_Magic.setWordAtOffset(slots, offset.plus(middleOfTable << LOG_BYTES_IN_INT), word); } else { - //-#if RVM_FOR_64_ADDR - setSlotContents(offset, word.toLong()); - //-#else - setSlotContents(offset, word.toInt()); - //-#endif + if (VM.BuildFor32Addr) + setSlotContents(offset, word.toInt()); + else + setSlotContents(offset, word.toLong()); } } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Bits.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Bits.java 2006-12-02 21:18:28 UTC (rev 11111) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Bits.java 2006-12-03 08:35:11 UTC (rev 11112) @@ -11,6 +11,8 @@ import org.vmmagic.unboxed.*; +import com.ibm.jikesrvm.VM; + /** * OPT_Bits.java * @@ -111,22 +113,14 @@ * Does an offset literal val fit in bits bits? */ public static boolean fits (Offset val, int bits) { - //-#if RVM_FOR_64_ADDR - return fits(val.toLong(), bits); - //-#elif RVM_FOR_32_ADDR - return fits(val.toInt(), bits); - //-#endif + return (VM.BuildFor32Addr) ? fits(val.toInt(), bits) : fits(val.toLong(), bits); } /** * Does an address literal val fit in bits bits? */ public static boolean fits (Address val, int bits) { - //-#if RVM_FOR_64_ADDR - return fits(val.toLong(), bits); - //-#elif RVM_FOR_32_ADDR - return fits(val.toInt(), bits); - //-#endif + return (VM.BuildFor32Addr) ? fits(val.toInt(), bits) : fits(val.toLong(), bits); } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ConvertLIRtoMIR.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ConvertLIRtoMIR.java 2006-12-02 21:18:28 UTC (rev 11111) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ConvertLIRtoMIR.java 2006-12-03 08:35:11 UTC (rev 11112) @@ -142,9 +142,9 @@ } break; - //-#if RVM_FOR_32_ADDR case LONG_DIV_opcode: { + if (VM.VerifyAssertions) VM._assert(VM.BuildFor32Addr); OPT_Operand val1 = GuardedBinary.getClearVal1(s); OPT_Operand val2 = GuardedBinary.getClearVal2(s); if (VM.BuildForPowerPC) { @@ -164,6 +164,7 @@ case LONG_REM_opcode: { + if (VM.VerifyAssertions) VM._assert(VM.BuildFor32Addr); OPT_Operand val1 = GuardedBinary.getClearVal1(s); OPT_Operand val2 = GuardedBinary.getClearVal2(s); if (VM.BuildForPowerPC) { @@ -180,7 +181,6 @@ OPT_CallingConvention.expandSysCall(s, ir); } break; - //-#endif //-#if RVM_FOR_POWERPC case FLOAT_REM_opcode: case DOUBLE_REM_opcode: Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ExpressionFolding.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ExpressionFolding.java 2006-12-02 21:18:28 UTC (rev 11111) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ExpressionFolding.java 2006-12-03 08:35:11 UTC (rev 11112) @@ -153,10 +153,8 @@ return op.asAddressConstant().value; if (op instanceof OPT_IntConstantOperand) return Address.fromIntSignExtend(op.asIntConstant().value); - //-#if RVM_FOR_64_ADDR - if (op instanceof OPT_LongConstantOperand) + if (VM.BuildFor64Addr && op instanceof OPT_LongConstantOperand) return Address.fromLong(op.asLongConstant().value); - //-#endif throw new OPT_OptimizingCompilerException("Cannot getWordValue from this operand " + op); } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LinearScan.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LinearScan.java 2006-12-02 21:18:28 UTC (rev 11111) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LinearScan.java 2006-12-03 08:35:11 UTC (rev 11112) @@ -1880,12 +1880,10 @@ setInterval(reg, null); OPT_RegisterAllocatorState.setSpill(reg,0); // clear the 'long' type if it's persisted to here. -//-#if RVM_FOR_32_ADDR - if (reg.isLong()) { + if (VM.BuildFor32Addr && reg.isLong()) { reg.clearType(); reg.setInteger(); } -//-#endif } } @@ -2723,13 +2721,11 @@ OSR_Constants.ACONST, ((OPT_AddressConstantOperand)op).value.toWord() ); - //-#if RVM_FOR_64_ADDR - } else if (op.isLongConstant()) { + } else if (VM.BuildFor64Addr && op.isLongConstant()) { setTupleValue(tuple, OSR_Constants.LCONST, Word.fromLong(((OPT_LongConstantOperand)op).value) ); - //-#endif } else { throw new OPT_OptimizingCompilerException("OPT_LinearScan", "Unexpected operand type at ", op.toString()); Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Simplifier.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Simplifier.java 2006-12-02 21:18:28 UTC (rev 11111) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Simplifier.java 2006-12-03 08:35:11 UTC (rev 11112) @@ -2131,13 +2131,13 @@ Binary.getClearVal1(s)); return DefUseEffect.MOVE_REDUCED; } - //-#if RVM_FOR_64_ADDR - // x - c = x + -c - // prefer adds, since some architectures have addi but not subi - Binary.mutate(s, LONG_ADD, Binary.getClearResult(s), - Binary.getClearVal1(s), LC(-val2)); - return DefUseEffect.REDUCED; - //-#endif + if (VM.BuildFor64Addr) { + // x - c = x + -c + // prefer adds, since some architectures have addi but not subi + Binary.mutate(s, LONG_ADD, Binary.getClearResult(s), + Binary.getClearVal1(s), LC(-val2)); + return DefUseEffect.REDUCED; + } } } } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ValueGraph.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ValueGraph.java 2006-12-02 21:18:28 UTC (rev 11111) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ValueGraph.java 2006-12-03 08:35:11 UTC (rev 11112) @@ -623,12 +623,7 @@ private OPT_ValueGraphVertex findOrCreateVertex(OPT_ConstantOperand op) { Object name; if (op.isAddressConstant()) { - //-#if RVM_FOR_32_ADDR - name = new Integer(op.asAddressConstant().value.toInt()); - //-#endif - //-#if RVM_FOR_64_ADDR - name = new Long(op.asAddressConstant().value.toLong()); - //-#endif + name = (VM.BuildFor32Addr) ? new Integer(op.asAddressConstant().value.toInt()) : new Long(op.asAddressConstant().value.toLong()); } else if (op.isIntConstant()) { name = new Integer(op.asIntConstant().value); } else if (op.isFloatConstant()) { Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_BC2IR.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_BC2IR.java 2006-12-02 21:18:28 UTC (rev 11111) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_BC2IR.java 2006-12-03 08:35:11 UTC (rev 11112) @@ -2362,13 +2362,7 @@ break; } case PSEUDO_LoadWordConst: { - Address a; - //-#if RVM_FOR_32_ADDR - a = Address.fromIntSignExtend(bcodes.readIntConst()); - //-#endif - //-#if RVM_FOR_64_ADDR - a = Address.fromLong(bcodes.readLongConst()); - //-#endif + Address a = (VM.BuildFor32Addr) ? Address.fromIntSignExtend(bcodes.readIntConst()) : Address.fromLong(bcodes.readLongConst()); push(new OPT_AddressConstantOperand(a)); Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/osr/OSR_VariableElement.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/osr/OSR_VariableElement.java 2006-12-02 21:18:28 UTC (rev 11111) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/osr/OSR_VariableElement.java 2006-12-03 08:35:11 UTC (rev 11112) @@ -189,12 +189,7 @@ } Word getWord() { - //-#if RVM_FOR_32_ADDR - return Word.fromIntSignExtend((int)value); - //-#endif - //-#if RVM_FOR_64_ADDR - return Word.fromLong(value); - //-#endif + return (VM.BuildFor32Addr) ? Word.fromIntSignExtend((int)value) : Word.fromLong(value); } /* for numerical */ Modified: rvmroot/trunk/rvm/src/gnu/classpath/JikesRVMSupport.java =================================================================== --- rvmroot/trunk/rvm/src/gnu/classpath/JikesRVMSupport.java 2006-12-02 21:18:28 UTC (rev 11111) +++ rvmroot/trunk/rvm/src/gnu/classpath/JikesRVMSupport.java 2006-12-03 08:35:11 UTC (rev 11112) @@ -10,6 +10,8 @@ import org.vmmagic.unboxed.Address; +import com.ibm.jikesrvm.VM; + /** * Library support interface of Jikes RVM * @@ -17,18 +19,16 @@ */ public class JikesRVMSupport { public static Address getAddressFromPointer(Pointer pointer) { - //-#if RVM_FOR_32_ADDR - return Address.fromIntSignExtend(((Pointer32)pointer).data); - //-#elif RVM_FOR_64_ADDR - return Address.fromLong(((Pointer64)pointer).data); - //-#endif + if (VM.BuildFor32Addr) + return Address.fromIntSignExtend(((Pointer32)pointer).data); + else + return Address.fromLong(((Pointer64)pointer).data); } public static Pointer getPointerFromAddress(Address address) { - //-#if RVM_FOR_32_ADDR - return new Pointer32(address.toInt()); - //-#elif RVM_FOR_64_ADDR - return new Pointer64(address.toLong()); - //-#endif + if (VM.BuildFor32Addr) + return new Pointer32(address.toInt()); + else + return new Pointer64(address.toLong()); } } Modified: rvmroot/trunk/rvm/src/org/vmmagic/unboxed/Address.java =================================================================== --- rvmroot/trunk/rvm/src/org/vmmagic/unboxed/Address.java 2006-12-02 21:18:28 UTC (rev 11111) +++ rvmroot/trunk/rvm/src/org/vmmagic/unboxed/Address.java 2006-12-03 08:35:11 UTC (rev 11112) @@ -39,7 +39,7 @@ //-#if RVM_FOR_32_ADDR private int value; - //-#elif RVM_FOR_64_ADDR + //-#else private long value; //-#endif @@ -48,23 +48,28 @@ * Constructors */ - //-#if RVM_FOR_32_ADDR /** * Create an {@link Address} instance from an integer. */ Address(int address) { if (VM.VerifyAssertions && VM.runningVM) VM._assert(VM.NOT_REACHED); + //-#if RVM_FOR_32_ADDR value = address; - } - //-#elif RVM_FOR_64_ADDR - /** + //-#else + if (VM.VerifyAssertions) VM._assert(false); + //-#endif + } + /** * Create an {@link Address} instance from a long. */ Address(long address) { if (VM.VerifyAssertions && VM.runningVM) VM._assert(VM.NOT_REACHED); + //-#if RVM_FOR_32_ADDR + if (VM.VerifyAssertions) VM._assert(false); + //-#else value = address; + //-#endif } - //-#endif /**************************************************************************** @@ -147,15 +152,14 @@ public static Address fromIntZeroExtend(int address) throws UninterruptibleNoWarnPragma { if (VM.VerifyAssertions && VM.runningVM) VM._assert(VM.NOT_REACHED); - //-#if RVM_FOR_32_ADDR - return new Address(address); - //-#elif RVM_FOR_64_ADDR - long val = ((long)address) & 0x00000000ffffffffL; - return new Address(val); - //-#endif + if (VM.BuildFor32Addr) + return new Address(address); + else { + long val = ((long)address) & 0x00000000ffffffffL; + return new Address(val); + } } - //-#if RVM_FOR_64_ADDR /** * Fabricate an {@link Address} instance from a long. * @@ -165,11 +169,11 @@ */ public static Address fromLong(long address) throws UninterruptibleNoWarnPragma { + if (VM.VerifyAssertions) VM._assert(VM.BuildFor64Addr); if (VM.VerifyAssertions && VM.runningVM) VM._assert(VM.NOT_REACHED); return new Address(address); - } - //-#endif - + } + /** * Fabricate an {@link Address} instance from an integer * Modified: rvmroot/trunk/rvm/src/org/vmmagic/unboxed/Extent.java =================================================================== --- rvmroot/trunk/rvm/src/org/vmmagic/unboxed/Extent.java 2006-12-02 21:18:28 UTC (rev 11111) +++ rvmroot/trunk/rvm/src/org/vmmagic/unboxed/Extent.java 2006-12-03 08:35:11 UTC (rev 11112) @@ -30,23 +30,27 @@ //-#if RVM_FOR_32_ADDR private int value; - //-#elif RVM_FOR_64_ADDR + //-#else private long value; //-#endif - //-#if RVM_FOR_32_ADDR Extent(int offset) { if (VM.VerifyAssertions && VM.runningVM) VM._assert(VM.NOT_REACHED); // call site should have been hijacked by magic in compiler + //-#if RVM_FOR_32_ADDR value = offset; + //-#else + if (VM.VerifyAssertions) VM._assert(false); + //-#endif } - //-#elif RVM_FOR_64_ADDR Extent(long offset) { if (VM.VerifyAssertions && VM.runningVM) VM._assert(VM.NOT_REACHED); // call site should have been hijacked by magic in compiler + //-#if RVM_FOR_32_ADDR + if (VM.VerifyAssertions) VM._assert(false); + //-#else value = offset; + //-#endif } - //-#endif - public boolean equals(Object o) { if (VM.VerifyAssertions && VM.runningVM) VM._assert(VM.NOT_REACHED); return (o instanceof Extent) && ((Extent) o).value == value; @@ -67,20 +71,19 @@ public static Extent fromIntZeroExtend(int address) throws UninterruptibleNoWarnPragma { if (VM.VerifyAssertions && VM.runningVM) VM._assert(VM.NOT_REACHED); - //-#if RVM_FOR_32_ADDR - return new Extent(address); - //-#elif RVM_FOR_64_ADDR - long val = ((long)address) & 0x00000000ffffffffL; - return new Extent(val); - //-#endif + if (VM.BuildFor32Addr) + return new Extent(address); + else { + long val = ((long)address) & 0x00000000ffffffffL; + return new Extent(val); + } } - //-#if RVM_FOR_64_ADDR public static Extent fromLong (long offset) throws UninterruptibleNoWarnPragma { + if (VM.VerifyAssertions) VM._assert(VM.BuildFor64Addr); if (VM.VerifyAssertions && VM.runningVM) VM._assert(VM.NOT_REACHED); return new Extent(offset); } - //-#endif public static Extent zero () throws UninterruptibleNoWarnPragma { if (VM.VerifyAssertions && VM.runningVM) VM._assert(VM.NOT_REACHED); Modified: rvmroot/trunk/rvm/src/org/vmmagic/unboxed/Offset.java =================================================================== --- rvmroot/trunk/rvm/src/org/vmmagic/unboxed/Offset.java 2006-12-02 21:18:28 UTC (rev 11111) +++ rvmroot/trunk/rvm/src/org/vmmagic/unboxed/Offset.java 2006-12-03 08:35:11 UTC (rev 11112) @@ -32,21 +32,27 @@ //-#if RVM_FOR_32_ADDR private int value; - //-#elif RVM_FOR_64_ADDR + //-#else private long value; //-#endif - //-#if RVM_FOR_32_ADDR Offset(int offset) { if (VM.VerifyAssertions && VM.runningVM) VM._assert(VM.NOT_REACHED); + //-#if RVM_FOR_32_ADDR value = offset; + //-#else + if (VM.VerifyAssertions) VM._assert(false); + //-#endif } - //-#elif RVM_FOR_64_ADDR + Offset(long offset) { if (VM.VerifyAssertions && VM.runningVM) VM._assert(VM.NOT_REACHED); + //-#if RVM_FOR_32_ADDR + if (VM.VerifyAssertions) VM._assert(false); + //-#else value = offset; + //-#endif } - //-#endif public boolean equals(Object o) { if (VM.VerifyAssertions && VM.runningVM) VM._assert(VM.NOT_REACHED); @@ -68,20 +74,19 @@ public static Offset fromIntZeroExtend(int address) throws UninterruptibleNoWarnPragma { if (VM.VerifyAssertions && VM.runningVM) VM._assert(VM.NOT_REACHED); - //-#if RVM_FOR_32_ADDR - return new Offset(address); - //-#elif RVM_FOR_64_ADDR - long val = ((long)address) & 0x00000000ffffffffL; - return new Offset(val); - //-#endif + if (VM.BuildFor32Addr) + return new Offset(address); + else { + long val = ((long)address) & 0x00000000ffffffffL; + return new Offset(val); + } } - //-#if RVM_FOR_64_ADDR public static Offset fromLong(long offset) throws UninterruptibleNoWarnPragma { + if (VM.VerifyAssertions) VM._assert(VM.BuildFor64Addr); if (VM.VerifyAssertions && VM.runningVM) VM._assert(VM.NOT_REACHED); return new Offset(offset); } - //-#endif public static Offset zero() throws UninterruptibleNoWarnPragma { if (VM.VerifyAssertions && VM.runningVM) VM._assert(VM.NOT_REACHED); Modified: rvmroot/trunk/rvm/src/org/vmmagic/unboxed/Word.java =================================================================== --- rvmroot/trunk/rvm/src/org/vmmagic/unboxed/Word.java 2006-12-02 21:18:28 UTC (rev 11111) +++ rvmroot/trunk/rvm/src/org/vmmagic/unboxed/Word.java 2006-12-03 08:35:11 UTC (rev 11112) @@ -33,19 +33,24 @@ //-#if RVM_FOR_32_ADDR private int value; - //-#elif RVM_FOR_64_ADDR + //-#else private long value; //-#endif - //-#if RVM_FOR_32_ADDR - Word (int val) { - value = val; - } - //-#elif RVM_FOR_64_ADDR + Word (int val) { + //-#if RVM_FOR_32_ADDR + value = val; + //-#else + if (VM.VerifyAssertions) VM._assert(false); + //-#endif + } Word (long val) { + //-#if RVM_FOR_32_ADDR + if (VM.VerifyAssertions) VM._assert(false); + //-#else value = val; + //-#endif } - //-#endif public boolean equals(Object o) { if (VM.VerifyAssertions && VM.runningVM) VM._assert(VM.NOT_REACHED); @@ -67,20 +72,19 @@ public static Word fromIntZeroExtend(int val) throws UninterruptibleNoWarnPragma { if (VM.VerifyAssertions && VM.runningVM) VM._assert(VM.NOT_REACHED); - //-#if RVM_FOR_32_ADDR - return new Word(val); - //-#elif RVM_FOR_64_ADDR - long ans = ((long)val) & 0x00000000ffffffffL; - return new Word(ans); - //-#endif + if (VM.BuildFor32Addr) + return new Word(val); + else { + long ans = ((long)val) & 0x00000000ffffffffL; + return new Word(ans); + } } - //-#if RVM_FOR_64_ADDR public static Word fromLong(long val) throws UninterruptibleNoWarnPragma { + if (VM.VerifyAssertions) VM._assert(VM.BuildFor64Addr); if (VM.VerifyAssertions && VM.runningVM) VM._assert(VM.NOT_REACHED); return new Word(val); } - //-#endif public static Word zero() throws UninterruptibleNoWarnPragma { if (VM.VerifyAssertions && VM.runningVM) VM._assert(VM.NOT_REACHED); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ste...@us...> - 2006-12-07 03:32:52
|
Revision: 11133 http://svn.sourceforge.net/jikesrvm/?rev=11133&view=rev Author: steveb-oss Date: 2006-12-06 19:32:49 -0800 (Wed, 06 Dec 2006) Log Message: ----------- Last pile of 'trivial' preprocessor removal. Note: this includes some OS specific stuff which I was unable to regression test Modified Paths: -------------- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/MainThread.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_BaselineCompiler.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_CommandLineArgs.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Configuration.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_JavaHeaderConstants.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Memory.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_MiscHeader.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_MiscHeaderConstants.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_OptimizingBootImageCompiler.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Processor.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Runtime.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_RuntimeCompiler.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Scheduler.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/MM_Constants.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/MM_Interface.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Bits.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_GenericStackManager.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_OptimizationPlanner.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/VM_OptCompiledMethod.java rvmroot/trunk/rvm/src/gnu/java/lang/JikesRVMSupport.java rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/VM_Assembler.java Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/MainThread.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/MainThread.java 2006-12-07 00:31:55 UTC (rev 11132) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/MainThread.java 2006-12-07 03:32:49 UTC (rev 11133) @@ -10,6 +10,7 @@ package com.ibm.jikesrvm; import com.ibm.jikesrvm.classloader.*; +import com.ibm.jikesrvm.memorymanagers.mminterface.MM_Interface; import java.lang.instrument.Instrumentation; import java.lang.reflect.Method; @@ -17,9 +18,6 @@ import java.util.jar.Manifest; import java.util.jar.JarFile; -//-#if RVM_WITH_GCSPY -import com.ibm.jikesrvm.memorymanagers.mminterface.MM_Interface; -//-#endif /** * Thread in which user's "main" program runs. @@ -139,10 +137,8 @@ public void run () { if (dbg) VM.sysWriteln("MainThread.run() starting "); - //-#if RVM_WITH_GCSPY - // start the GCSpy interpreter server - MM_Interface.startGCspyServer(); - //-#endif + if (MM_Interface.WITH_GCSPY) // start the GCSpy interpreter server + MM_Interface.startGCspyServer(); // Set up application class loader ClassLoader cl = VM_ClassLoader.getApplicationClassLoader(); Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM.java 2006-12-07 00:31:55 UTC (rev 11132) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM.java 2006-12-07 03:32:49 UTC (rev 11133) @@ -262,9 +262,8 @@ runClassInitializer("java.util.zip.InflaterHuffmanTree"); runClassInitializer("gnu.java.locale.Calendar"); runClassInitializer("java.util.Date"); - //-#if RVM_WITH_ALL_CLASSES - runClassInitializer("java.util.jar.Attributes$Name"); - //-#endif + if (VM.BuildWithAllClasses) + runClassInitializer("java.util.jar.Attributes$Name"); if (verboseBoot >= 1) VM.sysWriteln("Booting VM_Lock"); VM_Lock.boot(); @@ -300,11 +299,7 @@ System.loadLibrary("javaio"); runClassInitializer("java.lang.Math"); runClassInitializer("gnu.java.nio.VMChannel"); - //-#if RVM_WITH_CLASSPATH_0_92 runClassInitializer("gnu.java.nio.channels.FileChannelImpl"); - //-#else - runClassInitializer("gnu.java.nio.FileChannelImpl"); - //-#endif runClassInitializer("java.io.FileDescriptor"); runClassInitializer("java.util.jar.JarFile"); @@ -391,7 +386,7 @@ //-#if RVM_WITH_ADAPTIVE_SYSTEM VM_CompilerAdvice.postBoot(); //-#endif - + // Schedule "main" thread for execution. if (verboseBoot >= 2) VM.sysWriteln("Creating main thread"); // Create main thread. Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_BaselineCompiler.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_BaselineCompiler.java 2006-12-07 00:31:55 UTC (rev 11132) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_BaselineCompiler.java 2006-12-07 03:32:49 UTC (rev 11133) @@ -91,13 +91,11 @@ if (options.hasMETHOD_TO_PRINT() && options.fuzzyMatchMETHOD_TO_PRINT("???")) { VM.sysWrite("??? is not a sensible string to specify for method name"); } - //-#if !RVM_WITH_ADAPTIVE_SYSTEM - if (options.PRELOAD_CLASS != null) { + if (!VM.BuildForAdaptiveSystem && options.PRELOAD_CLASS != null) { VM.sysWrite("Option preload_class should only be used when the optimizing compiler is the runtime"); VM.sysWrite(" compiler or in an adaptive system\n"); VM.sysExit(VM.EXIT_STATUS_BOGUS_COMMAND_LINE_ARG); } - //-#endif fullyBootedVM = true; } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_CommandLineArgs.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_CommandLineArgs.java 2006-12-07 00:31:55 UTC (rev 11132) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_CommandLineArgs.java 2006-12-07 03:32:49 UTC (rev 11133) @@ -539,13 +539,13 @@ // (both irc and recomp compilers) // ---------------------------------------------------- case OPT_HELP_ARG: - //-#if RVM_WITH_ADAPTIVE_SYSTEM - VM_RuntimeCompiler.processOptCommandLineArg("-X:opt:","help"); - //-#else - VM.sysWriteln("vm: You are not using a system that includes the optimizing compiler."); - VM.sysWriteln(" Illegal command line argument prefix '-X:opt'"); - VM.sysExit(VM.EXIT_STATUS_BOGUS_COMMAND_LINE_ARG); - //-#endif + if (VM.BuildForAdaptiveSystem) + VM_RuntimeCompiler.processOptCommandLineArg("-X:opt:","help"); + else { + VM.sysWriteln("vm: You are not using a system that includes the optimizing compiler."); + VM.sysWriteln(" Illegal command line argument prefix '-X:opt'"); + VM.sysExit(VM.EXIT_STATUS_BOGUS_COMMAND_LINE_ARG); + } break; case OPT_ARG: // "-X:opt:arg"; pass 'arg' as an option //-#if RVM_WITH_ADAPTIVE_SYSTEM Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Configuration.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Configuration.java 2006-12-07 00:31:55 UTC (rev 11132) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Configuration.java 2006-12-07 03:32:49 UTC (rev 11133) @@ -95,7 +95,16 @@ //-#else false; //-#endif + + + public static final boolean BuildWithAllClasses = + //-#if RVM_WITH_ALL_CLASSES + true; + //-#else + false; + //-#endif + /** * Can a dereference of a null pointer result in an access * to 'low' memory addresses that must be explicitly guarded because the @@ -238,5 +247,11 @@ false; //-#endif + public final static boolean defaultToSingleVirtualProcessor = + //-#if RVM_FOR_SINGLE_VIRTUAL_PROCESSOR + true; + //-#else + false; + //-#endif } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_JavaHeaderConstants.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_JavaHeaderConstants.java 2006-12-07 00:31:55 UTC (rev 11132) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_JavaHeaderConstants.java 2006-12-07 03:32:49 UTC (rev 11133) @@ -57,12 +57,7 @@ * In a copying collector, this forces us to add a word * to copied objects that have had their hashcode taken. */ - static final boolean ADDRESS_BASED_HASHING = - //-#if RVM_WITH_GCTRACE - false; - //-#else - true; - //-#endif + static final boolean ADDRESS_BASED_HASHING = true && !MM_Constants.GENERATE_GC_TRACE; /** How many bits in the header are available for the GC and MISC headers? */ static final int NUM_AVAILABLE_BITS = ADDRESS_BASED_HASHING ? 8 : 2; Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Memory.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Memory.java 2006-12-07 00:31:55 UTC (rev 11132) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Memory.java 2006-12-07 03:32:49 UTC (rev 11133) @@ -467,7 +467,6 @@ //////////////////////// // constants for protection and mapping calls - //-#if RVM_FOR_OSX public static final int PROT_NONE = 0; public static final int PROT_READ = 1; public static final int PROT_WRITE = 2; @@ -476,48 +475,13 @@ public static final int MAP_FILE = 0; public static final int MAP_SHARED = 1; public static final int MAP_PRIVATE = 2; - public static final int MAP_FIXED = 0x0010; - public static final int MAP_ANONYMOUS = 0x1000; + public static final int MAP_FIXED = (VM.BuildForLinux) ? 16 : (VM.BuildForOsx) ? 16 : 256; + public static final int MAP_ANONYMOUS = (VM.BuildForLinux) ? 32 : (VM.BuildForOsx) ? 0x1000 : 16; - public static final int MS_ASYNC = 1; - public static final int MS_INVALIDATE = 2; - public static final int MS_SYNC = 0; - //-#endif - //-#if RVM_FOR_LINUX - public static final int PROT_NONE = 0; - public static final int PROT_READ = 1; - public static final int PROT_WRITE = 2; - public static final int PROT_EXEC = 4; + public static final int MS_ASYNC = (VM.BuildForLinux) ? 1 : (VM.BuildForOsx) ? 1 : 16; + public static final int MS_INVALIDATE = (VM.BuildForLinux) ? 2 : (VM.BuildForOsx) ? 2 : 32; + public static final int MS_SYNC = (VM.BuildForLinux) ? 4 : (VM.BuildForOsx) ? 0 : 64; - public static final int MAP_FILE = 0; - public static final int MAP_SHARED = 1; - public static final int MAP_PRIVATE = 2; - public static final int MAP_FIXED = 16; - public static final int MAP_ANONYMOUS = 32; - - public static final int MS_ASYNC = 1; - public static final int MS_INVALIDATE = 2; - public static final int MS_SYNC = 4; - //-#endif - //-#if RVM_FOR_AIX - public static final int PROT_NONE = 0; - public static final int PROT_READ = 1; - public static final int PROT_WRITE = 2; - public static final int PROT_EXEC = 4; - - public static final int MAP_FILE = 0; - public static final int MAP_SHARED = 1; - public static final int MAP_PRIVATE = 2; - public static final int MAP_FIXED = 256; - public static final int MAP_ANONYMOUS = 16; - - public static final int MS_ASYNC = 16; - public static final int MS_INVALIDATE = 32; - public static final int MS_SYNC = 64; - //-#endif - - - public static boolean isPageMultiple(int val) { int pagesizeMask = getPagesize() - 1; return ((val & pagesizeMask) == 0); @@ -685,49 +649,25 @@ return VM_SysCall.sysMAdvise(address, size, advice) == 0; } - - //-#if RVM_FOR_AIX - public static final int SHMGET_IPC_CREAT = 1 * 512; // 0001000 Creates the data structure if it does not already exist. - public static final int SHMGET_IPC_EXCL = 2 * 512; // 0002000 Causes the shmget subroutine to be unsuccessful - // if the IPC_CREAT flag is also set, and the data structure already exists. - public static final int SHMGET_IRUSR = 4 * 64; // 0000400 self can read - public static final int SHMGET_IWUSR = 2 * 64; // 0000200 self can write - public static final int SHMGET_IRGRP = 4 * 8; // 0000040 group can read - public static final int SHMGET_IWGRP = 2 * 8; // 0000020 group can write - public static final int SHMGET_IROTH = 4; // 0000004 others can read - public static final int SHMGET_IWOTH = 2; // 0000002 others can write - - public static final int SHMAT_MAP = 4 * 512; // 004000 Maps a file onto the address space instead of a shared memory segment. - // The SharedMemoryID parameter must specify an open file descriptor. - public static final int SHMAT_LBA = 268435456; // 0x10000000 Specifies the low boundary address multiple of a segment. - public static final int SHMAT_RDONLY = 1 * 4096; // 010000 Specifies read-only mode instead of the default read-write mode. - public static final int SHMAT_RND = 2 * 4096; // 020000 Rounds the address given by the SharedMemoryAddress parameter - // to the next lower segment boundary, if necessary. - public static final int SHMCTL_IPC_RMID = 0; // Removes the shared memory identifier specified by the shmid. - // There are other SHMCTL that are not included for now. - //-#endif - - //-#if RVM_FOR_LINUX || RVM_FOR_OSX public static final int SHMGET_IPC_CREAT = 1 * 512; // 01000 Create key if key does not exist public static final int SHMGET_IPC_EXCL = 2 * 512; // 02000 Fail if key exists public static final int SHMGET_IPC_NOWAIT = 4 * 512; // 04000 Return error on wait - public static final int SHMGET_IRUSR = 4 * 64; // 0000400 self can read - public static final int SHMGET_IWUSR = 2 * 64; // 0000200 self can write - public static final int SHMGET_IRGRP = 4 * 8; // 0000040 group can read - public static final int SHMGET_IWGRP = 2 * 8; // 0000020 group can write - public static final int SHMGET_IROTH = 4; // 0000004 others can read - public static final int SHMGET_IWOTH = 2; // 0000002 others can write + public static final int SHMGET_IRUSR = 4 * 64; // 0000400 self can read + public static final int SHMGET_IWUSR = 2 * 64; // 0000200 self can write + public static final int SHMGET_IRGRP = 4 * 8; // 0000040 group can read + public static final int SHMGET_IWGRP = 2 * 8; // 0000020 group can write + public static final int SHMGET_IROTH = 4; // 0000004 others can read + public static final int SHMGET_IWOTH = 2; // 0000002 others can write - public static final int SHMAT_RDONLY = 1 * 4096; // 010000 Specifies read-only mode instead of the default read-write mode. - public static final int SHMAT_RND = 2 * 4096; // 020000 Rounds the address given by the SharedMemoryAddress parameter - public static final int SHMAT_REMAP = 4 * 4096; // 040000 take-over region on attach - // public static final int SHMAT_MAP - can't find this in linux's shm.h + public static final int SHMAT_RDONLY = 1 * 4096; // 010000 Specifies read-only mode instead of the default read-write mode. + public static final int SHMAT_RND = 2 * 4096; // 020000 Rounds the address given by the SharedMemoryAddress parameter + public static final int SHMAT_REMAP = 4 * 4096; // 040000 take-over region on attach + public static final int SHMAT_MAP = (VM.BuildForAix) ? 4 * 512 : -1; // can't find this in linux's shm.h + public static final int SHMAT_LBA = (VM.BuildForAix) ? 268435456 : -1; // 0x10000000 Specifies the low boundary address multiple of a segment. - public static final int SHMCTL_IPC_RMID = 0; // Removes the shared memory identifier specified by the shmid. - + public static final int SHMCTL_IPC_RMID = 0; // Removes the shared memory identifier specified by the shmid. // There are other SHMCTL that are not included for now. - //-#endif /** Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_MiscHeader.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_MiscHeader.java 2006-12-07 00:31:55 UTC (rev 11132) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_MiscHeader.java 2006-12-07 03:32:49 UTC (rev 11133) @@ -9,7 +9,7 @@ //$Id$ package com.ibm.jikesrvm; -import com.ibm.jikesrvm.memorymanagers.mminterface.MM_Interface; +import com.ibm.jikesrvm.memorymanagers.mminterface.MM_Constants; import org.vmmagic.pragma.*; import org.vmmagic.unboxed.*; @@ -81,7 +81,7 @@ boolean isScalar) throws UninterruptiblePragma { /* Only perform initialization when it is required */ - if (MM_Interface.GENERATE_GC_TRACE) { + if (MM_Constants.GENERATE_GC_TRACE) { Address ref = VM_Magic.objectAsAddress(obj); ref.store(oid, OBJECT_OID_OFFSET); ref.store(time, OBJECT_DEATH_OFFSET); @@ -102,7 +102,7 @@ Object[] tib, int size, boolean isScalar) throws LogicallyUninterruptiblePragma { /* Only perform initialization when it is required */ - if (MM_Interface.GENERATE_GC_TRACE) { + if (MM_Constants.GENERATE_GC_TRACE) { bootImage.setAddressWord(ref.plus(OBJECT_OID_OFFSET), oid, false); bootImage.setAddressWord(ref.plus(OBJECT_DEATH_OFFSET), time, false); bootImage.setAddressWord(ref.plus(OBJECT_LINK_OFFSET), prevAddress, false); @@ -113,47 +113,47 @@ } public static void updateDeathTime(Object object) { - if (VM.VerifyAssertions) VM._assert(MM_Interface.GENERATE_GC_TRACE); - if (MM_Interface.GENERATE_GC_TRACE) + if (VM.VerifyAssertions) VM._assert(MM_Constants.GENERATE_GC_TRACE); + if (MM_Constants.GENERATE_GC_TRACE) VM_Magic.objectAsAddress(object).store(time, OBJECT_DEATH_OFFSET); } public static void setDeathTime(Object object, Word time_) { - if (VM.VerifyAssertions) VM._assert(MM_Interface.GENERATE_GC_TRACE); - if (MM_Interface.GENERATE_GC_TRACE) + if (VM.VerifyAssertions) VM._assert(MM_Constants.GENERATE_GC_TRACE); + if (MM_Constants.GENERATE_GC_TRACE) VM_Magic.objectAsAddress(object).store(time_, OBJECT_DEATH_OFFSET); } public static void setLink(Object object, ObjectReference link) { - if (VM.VerifyAssertions) VM._assert(MM_Interface.GENERATE_GC_TRACE); - if (MM_Interface.GENERATE_GC_TRACE) + if (VM.VerifyAssertions) VM._assert(MM_Constants.GENERATE_GC_TRACE); + if (MM_Constants.GENERATE_GC_TRACE) VM_Magic.objectAsAddress(object).store(link, OBJECT_LINK_OFFSET); } public static void updateTime(Word time_) { - if (VM.VerifyAssertions) VM._assert(MM_Interface.GENERATE_GC_TRACE); + if (VM.VerifyAssertions) VM._assert(MM_Constants.GENERATE_GC_TRACE); time = time_; } public static Word getOID(Object object) { - if (VM.VerifyAssertions) VM._assert(MM_Interface.GENERATE_GC_TRACE); - if (MM_Interface.GENERATE_GC_TRACE) + if (VM.VerifyAssertions) VM._assert(MM_Constants.GENERATE_GC_TRACE); + if (MM_Constants.GENERATE_GC_TRACE) return VM_Magic.objectAsAddress(object).plus(OBJECT_OID_OFFSET).loadWord(); else return Word.zero(); } public static Word getDeathTime(Object object) { - if (VM.VerifyAssertions) VM._assert(MM_Interface.GENERATE_GC_TRACE); - if (MM_Interface.GENERATE_GC_TRACE) + if (VM.VerifyAssertions) VM._assert(MM_Constants.GENERATE_GC_TRACE); + if (MM_Constants.GENERATE_GC_TRACE) return VM_Magic.objectAsAddress(object).plus(OBJECT_DEATH_OFFSET).loadWord(); else return Word.zero(); } public static ObjectReference getLink(Object ref) { - if (VM.VerifyAssertions) VM._assert(MM_Interface.GENERATE_GC_TRACE); - if (MM_Interface.GENERATE_GC_TRACE) + if (VM.VerifyAssertions) VM._assert(MM_Constants.GENERATE_GC_TRACE); + if (MM_Constants.GENERATE_GC_TRACE) return ObjectReference.fromObject(VM_Magic.getObjectAtOffset(ref, OBJECT_LINK_OFFSET)); else @@ -161,24 +161,24 @@ } public static Address getBootImageLink() { - if (VM.VerifyAssertions) VM._assert(MM_Interface.GENERATE_GC_TRACE); - if (MM_Interface.GENERATE_GC_TRACE) + if (VM.VerifyAssertions) VM._assert(MM_Constants.GENERATE_GC_TRACE); + if (MM_Constants.GENERATE_GC_TRACE) return prevAddress.toAddress(); else return Address.zero(); } public static Word getOID() { - if (VM.VerifyAssertions) VM._assert(MM_Interface.GENERATE_GC_TRACE); - if (MM_Interface.GENERATE_GC_TRACE) + if (VM.VerifyAssertions) VM._assert(MM_Constants.GENERATE_GC_TRACE); + if (MM_Constants.GENERATE_GC_TRACE) return oid; else return Word.zero(); } public static void setOID(Word oid_) { - if (VM.VerifyAssertions) VM._assert(MM_Interface.GENERATE_GC_TRACE); - if (MM_Interface.GENERATE_GC_TRACE) + if (VM.VerifyAssertions) VM._assert(MM_Constants.GENERATE_GC_TRACE); + if (MM_Constants.GENERATE_GC_TRACE) oid = oid_; } @@ -194,7 +194,7 @@ */ public static void dumpHeader(Object ref) { // by default nothing to do, unless the misc header is required - if (MM_Interface.GENERATE_GC_TRACE) { + if (MM_Constants.GENERATE_GC_TRACE) { VM.sysWrite(" OID=", getOID(VM_Magic.objectAsAddress(ref))); VM.sysWrite(" LINK=", getLink(ref)); VM.sysWrite(" DEATH=", getDeathTime(ref)); Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_MiscHeaderConstants.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_MiscHeaderConstants.java 2006-12-07 00:31:55 UTC (rev 11132) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_MiscHeaderConstants.java 2006-12-07 03:32:49 UTC (rev 11133) @@ -9,7 +9,7 @@ //$Id$ package com.ibm.jikesrvm; -import com.ibm.jikesrvm.memorymanagers.mminterface.MM_Interface; +import com.ibm.jikesrvm.memorymanagers.mminterface.MM_Constants; /** * Defines other header words not used for @@ -31,7 +31,7 @@ */ /* amount by which tracing causes headers to grow */ - static final int GC_TRACING_HEADER_WORDS = (MM_Interface.GENERATE_GC_TRACE ? 3 : 0); + static final int GC_TRACING_HEADER_WORDS = (MM_Constants.GENERATE_GC_TRACE ? 3 : 0); static final int GC_TRACING_HEADER_BYTES = GC_TRACING_HEADER_WORDS<<LOG_BYTES_IN_ADDRESS; /** Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_OptimizingBootImageCompiler.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_OptimizingBootImageCompiler.java 2006-12-07 00:31:55 UTC (rev 11132) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_OptimizingBootImageCompiler.java 2006-12-07 03:32:49 UTC (rev 11133) @@ -139,14 +139,12 @@ private VM_CompiledMethod baselineCompile(VM_NormalMethod method) { VM_Callbacks.notifyMethodCompile(method, VM_CompiledMethod.BASELINE); VM_CompiledMethod cm = VM_BaselineCompiler.compile(method); - //-#if RVM_WITH_ADAPTIVE_SYSTEM // Must estimate compilation time by using offline ratios. // It is tempting to time via System.currentTimeMillis() // but 1 millisecond granularity isn't good enough because the // the baseline compiler is just too fast. double compileTime = method.getBytecodeLength() / com.ibm.jikesrvm.adaptive.VM_CompilerDNA.getBaselineCompilationRate(); cm.setCompilationTime(compileTime); - //-#endif return cm; } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Processor.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Processor.java 2006-12-07 00:31:55 UTC (rev 11132) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Processor.java 2006-12-07 03:32:49 UTC (rev 11133) @@ -48,7 +48,7 @@ // (so lintel compiler can us JTOC for scratch) if (VM.runningVM) this.jtoc = VM_Magic.getJTOC(); //-#endif - + this.id = id; this.transferMutex = new VM_ProcessorLock(); this.transferQueue = new VM_GlobalThreadQueue(this.transferMutex); @@ -145,16 +145,18 @@ yieldToGCRequested = true; } - //-#if RVM_FOR_POWERPC /** * Request the thread executing on the processor to take the next executed yieldpoint * and issue memory synchronization instructions */ public void requestPostCodePatchSync() { + //-#if RVM_FOR_POWERPC takeYieldpoint = 1; codePatchSyncRequested = true; + //-#else + if (VM.VerifyAssertions) VM._assert(VM.NOT_REACHED); + //-#endif } - //-#endif /** * Get processor that's being used to run the current java thread. Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Runtime.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Runtime.java 2006-12-07 00:31:55 UTC (rev 11132) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Runtime.java 2006-12-07 03:32:49 UTC (rev 11133) @@ -985,7 +985,6 @@ } } - //-#if RVM_WITH_MACH_O_ABI /** * The current frame is expected to be one of the JNI functions * called from C, @@ -994,26 +993,24 @@ * references. */ public static Address unwindNativeStackFrameForGC(Address currfp) throws UninterruptiblePragma { - // Unlike on AIX, there are two glue frames. The frame the - // VM_JNICompiler refers to as "glue frame 1" will contain saved - // volatile GPRs, so we must return that frame pointer and let a - // JNIGCMapIterator have a chance to examine it. - Address ip, callee_fp; - Address fp = VM_Magic.getCallerFramePointer(currfp); + if (VM.BuildForMachOABI) { + // Unlike on AIX, there are two glue frames. The frame the + // VM_JNICompiler refers to as "glue frame 1" will contain saved + // volatile GPRs, so we must return that frame pointer and let a + // JNIGCMapIterator have a chance to examine it. + Address ip, callee_fp; + Address fp = VM_Magic.getCallerFramePointer(currfp); - do { - callee_fp = fp; - ip = VM_Magic.getReturnAddress(fp); - fp = VM_Magic.getCallerFramePointer(fp); - } while (!MM_Interface.addressInVM(ip) && fp.NE(STACKFRAME_SENTINEL_FP)); + do { + callee_fp = fp; + ip = VM_Magic.getReturnAddress(fp); + fp = VM_Magic.getCallerFramePointer(fp); + } while (!MM_Interface.addressInVM(ip) && fp.NE(STACKFRAME_SENTINEL_FP)); - return callee_fp; + return callee_fp; + } else + return unwindNativeStackFrame(currfp); } - //-#else - public static Address unwindNativeStackFrameForGC(Address currfp) throws UninterruptiblePragma { - return unwindNativeStackFrame(currfp); - } - //-#endif /** * Unwind stack frame for an <invisible method>. Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_RuntimeCompiler.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_RuntimeCompiler.java 2006-12-07 00:31:55 UTC (rev 11132) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_RuntimeCompiler.java 2006-12-07 03:32:49 UTC (rev 11133) @@ -565,6 +565,8 @@ } } } + //-#else + public static void processOptCommandLineArg(String prefix, String arg) {} //-#endif /** Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Scheduler.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Scheduler.java 2006-12-07 00:31:55 UTC (rev 11132) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Scheduler.java 2006-12-07 03:32:49 UTC (rev 11133) @@ -830,16 +830,14 @@ // fields for synchronizing code patching //////////////////////////////////////////////// - //-#if RVM_FOR_POWERPC /** * how may processors to be synchronized for code patching, the last * one (0) will notify the blocked thread. */ - public static int toSyncProcessors; + public static int toSyncProcessors; // Used only if RVM_FOR_POWERPC is true /** * synchronize object */ - public static Object syncObj = null; - //-#endif + public static Object syncObj = null; // Used only if RVM_FOR_POWERPC is true } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/MM_Constants.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/MM_Constants.java 2006-12-07 00:31:55 UTC (rev 11132) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/MM_Constants.java 2006-12-07 03:32:49 UTC (rev 11133) @@ -26,5 +26,6 @@ public static final boolean NEEDS_LINEAR_SCAN = Selected.Constraints.get().needsLinearScan(); public static final int GC_HEADER_BITS = Selected.Constraints.get().gcHeaderBits(); public static final int GC_HEADER_BYTES = Selected.Constraints.get().gcHeaderWords() << LOG_BYTES_IN_WORD; + public static final boolean GENERATE_GC_TRACE = Selected.Constraints.get().generateGCTrace(); } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/MM_Interface.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/MM_Interface.java 2006-12-07 00:31:55 UTC (rev 11132) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/MM_Interface.java 2006-12-07 03:32:49 UTC (rev 11133) @@ -94,6 +94,12 @@ = Selected.Constraints.get().movesObjects(); /** + * <code>true</code> if the memory manager needs GCspy functionality + */ + public static final boolean WITH_GCSPY + = Selected.Constraints.get().withGCspy(); + + /** * <code>true</code> if the memory manager moves type information * blocks (TIBs). */ @@ -105,13 +111,6 @@ */ private static final boolean CHECK_MEMORY_IS_ZEROED = false; - /** - * <code>true</code> if the memory manager will generate a garbage - * collection trace of the run. - */ - public static final boolean GENERATE_GC_TRACE - = Selected.Constraints.get().generateGCTrace(); - /** Used by mmtypes for arrays */ private static final int [] zeroLengthIntArray = new int [0]; Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Bits.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Bits.java 2006-12-07 00:31:55 UTC (rev 11132) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Bits.java 2006-12-07 03:32:49 UTC (rev 11133) @@ -23,7 +23,6 @@ */ public class OPT_Bits { - //-#if RVM_FOR_POWERPC /** * Return the lower 16 bits to * be used in a PPC immediate field @@ -56,7 +55,6 @@ public static int PPCMaskUpper16(Offset value) { return PPCMaskUpper16(value.toInt()); } - //-#endif /** * Return the lower 8 bits (as an int) of an int Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_GenericStackManager.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_GenericStackManager.java 2006-12-07 00:31:55 UTC (rev 11132) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_GenericStackManager.java 2006-12-07 03:32:49 UTC (rev 11133) @@ -1341,13 +1341,11 @@ firstBB.hasOneOut() && firstBB.pointsOut(ir.cfg.exit()); boolean removeYieldpoints = isSingleBlock && ! preventYieldPointRemoval; - //-#if RVM_WITH_ADAPTIVE_SYSTEM // In adaptive systems if we require a frame, we don't remove // any yield poits - if (frameRequired) { + if (VM.BuildForAdaptiveSystem && frameRequired) { removeYieldpoints = false; } - //-#endif if (removeYieldpoints) { for (OPT_Instruction s = ir.firstInstructionInCodeOrder(); Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_OptimizationPlanner.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_OptimizationPlanner.java 2006-12-07 00:31:55 UTC (rev 11132) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_OptimizationPlanner.java 2006-12-07 03:32:49 UTC (rev 11133) @@ -234,15 +234,15 @@ addComponent(p, new OPT_LocalCSE(true)); // Flow-insensitive field analysis addComponent(p, new OPT_FieldAnalysis()); - //-#if RVM_WITH_ADAPTIVE_SYSTEM - // Insert counter on each method prologue - // Insert yieldpoint counters - addComponent(p,new OPT_InsertYieldpointCounters()); - // Insert counter on each HIR instruction - addComponent(p,new OPT_InsertInstructionCounters()); - // Insert method invocation counters - addComponent(p,new OPT_InsertMethodInvocationCounter()); - //-#endif + if (VM.BuildForAdaptiveSystem) { + // Insert counter on each method prologue + // Insert yieldpoint counters + addComponent(p,new OPT_InsertYieldpointCounters()); + // Insert counter on each HIR instruction + addComponent(p,new OPT_InsertInstructionCounters()); + // Insert method invocation counters + addComponent(p,new OPT_InsertMethodInvocationCounter()); + } } /** @@ -453,13 +453,13 @@ // Perform peephole branch optimizations addComponent(p, new OPT_BranchOptimizations(1, false, true)); - //-#if RVM_WITH_ADAPTIVE_SYSTEM - // Arnold & Ryder instrumentation sampling framework - addComponent(p, new OPT_InstrumentationSamplingFramework()); + if (VM.BuildForAdaptiveSystem) { + // Arnold & Ryder instrumentation sampling framework + addComponent(p, new OPT_InstrumentationSamplingFramework()); - // Convert high level place holder instructions into actual instrumenation - addComponent(p, new OPT_LowerInstrumentation()); - //-#endif + // Convert high level place holder instructions into actual instrumenation + addComponent(p, new OPT_LowerInstrumentation()); + } } // Helper functions for constructing the masterPlan. Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/VM_OptCompiledMethod.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/VM_OptCompiledMethod.java 2006-12-07 00:31:55 UTC (rev 11132) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/VM_OptCompiledMethod.java 2006-12-07 03:32:49 UTC (rev 11133) @@ -347,41 +347,47 @@ * Return the number of non-volatile GPRs used by this method. */ public int getNumberOfNonvolatileGPRs() { - //-#if RVM_FOR_POWERPC - return VM_RegisterConstants.NUM_GPRS - getFirstNonVolatileGPR(); - //-#elif RVM_FOR_IA32 - return VM_RegisterConstants.NUM_NONVOLATILE_GPRS - getFirstNonVolatileGPR(); - //-#endif + if (VM.BuildForPowerPC) + return VM_RegisterConstants.NUM_GPRS - getFirstNonVolatileGPR(); + else if (VM.BuildForIA32) + return VM_RegisterConstants.NUM_NONVOLATILE_GPRS - getFirstNonVolatileGPR(); + else if (VM.VerifyAssertions) + VM._assert(VM.NOT_REACHED); + return -1; } /** * Return the number of non-volatile FPRs used by this method. */ public int getNumberOfNonvolatileFPRs() { - //-#if RVM_FOR_POWERPC - return VM_RegisterConstants.NUM_FPRS - getFirstNonVolatileFPR(); - //-#elif RVM_FOR_IA32 - return VM_RegisterConstants.NUM_NONVOLATILE_FPRS - getFirstNonVolatileFPR(); - //-#endif + if (VM.BuildForPowerPC) + return VM_RegisterConstants.NUM_FPRS - getFirstNonVolatileFPR(); + else if (VM.BuildForIA32) + return VM_RegisterConstants.NUM_NONVOLATILE_FPRS - getFirstNonVolatileFPR(); + else if (VM.VerifyAssertions) + VM._assert(VM.NOT_REACHED); + return -1; } /** * Set the number of non-volatile GPRs used by this method. */ public void setNumberOfNonvolatileGPRs(short n) { - //-#if RVM_FOR_POWERPC - setFirstNonVolatileGPR(VM_RegisterConstants.NUM_GPRS - n); - //-#elif RVM_FOR_IA32 - setFirstNonVolatileGPR(VM_RegisterConstants.NUM_NONVOLATILE_GPRS - n); - //-#endif + if (VM.BuildForPowerPC) + setFirstNonVolatileGPR(VM_RegisterConstants.NUM_GPRS - n); + else if (VM.BuildForIA32) + setFirstNonVolatileGPR(VM_RegisterConstants.NUM_NONVOLATILE_GPRS - n); + else if (VM.VerifyAssertions) + VM._assert(VM.NOT_REACHED); } /** * Set the number of non-volatile FPRs used by this method. */ public void setNumberOfNonvolatileFPRs(short n) { - //-#if RVM_FOR_POWERPC - setFirstNonVolatileFPR(VM_RegisterConstants.NUM_FPRS - n); - //-#elif RVM_FOR_IA32 - setFirstNonVolatileFPR(VM_RegisterConstants.NUM_NONVOLATILE_FPRS - n); - //-#endif + if (VM.BuildForPowerPC) + setFirstNonVolatileFPR(VM_RegisterConstants.NUM_FPRS - n); + else if (VM.BuildForIA32) + setFirstNonVolatileFPR(VM_RegisterConstants.NUM_NONVOLATILE_FPRS - n); + else if (VM.VerifyAssertions) + VM._assert(VM.NOT_REACHED); } /** @@ -444,13 +450,12 @@ int newTarget = InlineGuard.getTarget(s).target.getmcOffset(); // A patch map is the offset of the last byte of the patch point // and the new branch immediate to lay down if the code is ever patched. - //-#if RVM_FOR_IA32 + if (VM.BuildForIA32) { patchMap[idx++] = patchPoint-1; patchMap[idx++] = newTarget - patchPoint; - //-#endif + } else if (VM.BuildForPowerPC) { // otherwise, it must be RVM_FOR_POWERPC - //-#if RVM_FOR_POWERPC /* since currently we use only one NOP scheme, the offset * is adjusted for one word */ @@ -458,7 +463,8 @@ (patchPoint >> VM_RegisterConstants.LG_INSTRUCTION_WIDTH) -1; patchMap[idx++] = (newTarget - patchPoint + (1<<VM_RegisterConstants.LG_INSTRUCTION_WIDTH)); - //-#endif + } else if (VM.VerifyAssertions) + VM._assert(VM.NOT_REACHED); } } } @@ -471,16 +477,15 @@ if (patchMap != null) { for (int idx=0; idx<patchMap.length; idx += 2) { VM_CodeArray code = cm.codeArrayForOffset(Offset.fromIntZeroExtend(patchMap[idx])); - //-#if RVM_FOR_IA32 - VM_Assembler.patchCode(code, patchMap[idx], patchMap[idx+1]); - //-#endif - // - //-#if RVM_FOR_POWERPC - OPT_Assembler.patchCode(code, patchMap[idx], patchMap[idx+1]); - //-#endif + if (VM.BuildForIA32) + VM_Assembler.patchCode(code, patchMap[idx], patchMap[idx+1]); + else if (VM.BuildForPowerPC) + OPT_Assembler.patchCode(code, patchMap[idx], patchMap[idx+1]); + else if (VM.VerifyAssertions) + VM._assert(VM.NOT_REACHED); } - //-#if RVM_FOR_POWERPC + if (VM.BuildForPowerPC) { /* we need synchronization on PPC to handle the weak memory model. * before the class loading finish, other processor should get * synchronized. @@ -522,7 +527,7 @@ if (DEBUG_CODE_PATCH) { VM.sysWrite("all processors get synchronized!\n"); } - //-#endif + } } } Modified: rvmroot/trunk/rvm/src/gnu/java/lang/JikesRVMSupport.java =================================================================== --- rvmroot/trunk/rvm/src/gnu/java/lang/JikesRVMSupport.java 2006-12-07 00:31:55 UTC (rev 11132) +++ rvmroot/trunk/rvm/src/gnu/java/lang/JikesRVMSupport.java 2006-12-07 03:32:49 UTC (rev 11133) @@ -22,7 +22,6 @@ */ public final class JikesRVMSupport { public static Instrumentation createInstrumentation() { - //-#if RVM_WITH_CLASSPATH_0_92 try { // Horrific backdoor to workaround the private (not package) // constructor for InstrumentationImpl found in classpath 0.92 @@ -60,8 +59,5 @@ e.printStackTrace(); return null; } - //-#else - return new InstrumentationImpl(); - //-#endif } } Modified: rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/VM_Assembler.java =================================================================== --- rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/VM_Assembler.java 2006-12-07 00:31:55 UTC (rev 11132) +++ rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/VM_Assembler.java 2006-12-07 03:32:49 UTC (rev 11133) @@ -2774,5 +2774,11 @@ } return s; } - + + /************************************************************************ + * Stub/s added for IA32 compatability + */ + public static void patchCode(VM_CodeArray code, int indexa, int indexb) { + if (VM.VerifyAssertions) VM._assert(VM.NOT_REACHED); + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ste...@us...> - 2006-12-07 04:17:25
|
Revision: 11134 http://svn.sourceforge.net/jikesrvm/?rev=11134&view=rev Author: steveb-oss Date: 2006-12-06 20:17:23 -0800 (Wed, 06 Dec 2006) Log Message: ----------- Move all GC-specific constants into MM_Constants for consistency and to avoid cyclic class loader dependencies Modified Paths: -------------- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/MainThread.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_JavaHeader.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Thread.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_Array.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_Field.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/DebugUtil.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/MM_Constants.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/MM_Interface.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ConvertToLowLevelIR.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ExpandRuntimeServices.java rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/VM_Compiler.java rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/VM_Compiler.java rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/quick/VM_QuickCompiler.java Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/MainThread.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/MainThread.java 2006-12-07 03:32:49 UTC (rev 11133) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/MainThread.java 2006-12-07 04:17:23 UTC (rev 11134) @@ -10,6 +10,7 @@ package com.ibm.jikesrvm; import com.ibm.jikesrvm.classloader.*; +import com.ibm.jikesrvm.memorymanagers.mminterface.MM_Constants; import com.ibm.jikesrvm.memorymanagers.mminterface.MM_Interface; import java.lang.instrument.Instrumentation; @@ -137,7 +138,7 @@ public void run () { if (dbg) VM.sysWriteln("MainThread.run() starting "); - if (MM_Interface.WITH_GCSPY) // start the GCSpy interpreter server + if (MM_Constants.WITH_GCSPY) // start the GCSpy interpreter server MM_Interface.startGCspyServer(); // Set up application class loader Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_JavaHeader.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_JavaHeader.java 2006-12-07 03:32:49 UTC (rev 11133) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_JavaHeader.java 2006-12-07 04:17:23 UTC (rev 11134) @@ -11,7 +11,6 @@ import com.ibm.jikesrvm.classloader.*; import com.ibm.jikesrvm.memorymanagers.mminterface.MM_Constants; -import com.ibm.jikesrvm.memorymanagers.mminterface.MM_Interface; import org.vmmagic.pragma.*; import org.vmmagic.unboxed.*; @@ -206,7 +205,7 @@ */ public static int bytesUsed(Object obj, VM_Class type) { int size = type.getInstanceSize(); - if (MM_Interface.MOVES_OBJECTS) { + if (MM_Constants.MOVES_OBJECTS) { if (ADDRESS_BASED_HASHING) { Word hashState = VM_Magic.getWordAtOffset(obj, STATUS_OFFSET).and(HASH_STATE_MASK); if (hashState.EQ(HASH_STATE_HASHED_AND_MOVED)) { @@ -236,7 +235,7 @@ */ public static int bytesUsed(Object obj, VM_Array type, int numElements) { int size = type.getInstanceSize(numElements); - if (MM_Interface.MOVES_OBJECTS) { + if (MM_Constants.MOVES_OBJECTS) { if (ADDRESS_BASED_HASHING) { Word hashState = VM_Magic.getWordAtOffset(obj, STATUS_OFFSET).and(HASH_STATE_MASK); if (hashState.EQ(HASH_STATE_HASHED_AND_MOVED)) { @@ -253,7 +252,7 @@ */ public static Address objectStartRef(ObjectReference obj) throws InlinePragma { - if (MM_Interface.MOVES_OBJECTS) { + if (MM_Constants.MOVES_OBJECTS) { if (ADDRESS_BASED_HASHING && !DYNAMIC_HASH_OFFSET) { Word hashState = obj.toAddress().loadWord(STATUS_OFFSET).and(HASH_STATE_MASK); if (hashState.EQ(HASH_STATE_HASHED_AND_MOVED)) { @@ -487,7 +486,7 @@ */ public static int getObjectHashCode(Object o) { if (ADDRESS_BASED_HASHING) { - if (MM_Interface.MOVES_OBJECTS) { + if (MM_Constants.MOVES_OBJECTS) { Word hashState = VM_Magic.getWordAtOffset(o, STATUS_OFFSET).and(HASH_STATE_MASK); if (hashState.EQ(HASH_STATE_HASHED)) { // HASHED, NOT MOVED Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Thread.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Thread.java 2006-12-07 03:32:49 UTC (rev 11133) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Thread.java 2006-12-07 04:17:23 UTC (rev 11134) @@ -10,6 +10,7 @@ //$Id$ package com.ibm.jikesrvm; +import com.ibm.jikesrvm.memorymanagers.mminterface.MM_Constants; import com.ibm.jikesrvm.memorymanagers.mminterface.MM_Interface; // Used for Javadoc: import com.ibm.jikesrvm.memorymanagers.mminterface.VM_CollectorThread; @@ -1335,7 +1336,7 @@ if (threadSlot > VM_Scheduler.threadHighWatermark) { VM_Scheduler.threadHighWatermark = threadSlot; } - if (MM_Interface.NEEDS_WRITE_BARRIER) + if (MM_Constants.NEEDS_WRITE_BARRIER) MM_Interface.arrayStoreWriteBarrier(VM_Scheduler.threads, threadSlot, this); VM_Magic.setObjectAtOffset(VM_Scheduler.threads, @@ -1366,7 +1367,7 @@ * barrier. Generational collectors may not care about a null * store, but a reference counting collector sure does. */ - if (MM_Interface.NEEDS_WRITE_BARRIER) + if (MM_Constants.NEEDS_WRITE_BARRIER) MM_Interface.arrayStoreWriteBarrier(VM_Scheduler.threads, threadSlot, null); VM_Magic.setObjectAtOffset(VM_Scheduler.threads, Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_Array.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_Array.java 2006-12-07 03:32:49 UTC (rev 11133) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_Array.java 2006-12-07 04:17:23 UTC (rev 11134) @@ -11,6 +11,7 @@ import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.memorymanagers.mminterface.MM_Interface; +import com.ibm.jikesrvm.memorymanagers.mminterface.MM_Constants; import org.vmmagic.pragma.*; import org.vmmagic.unboxed.Offset; @@ -860,7 +861,7 @@ int bytes = len << LOG_BYTES_IN_ADDRESS; if ((src != dst) || loToHi) { - if (!MM_Interface.NEEDS_WRITE_BARRIER || + if (!MM_Constants.NEEDS_WRITE_BARRIER || !MM_Interface.arrayCopyWriteBarrier(src, srcOffset, dst, dstOffset, bytes)) { VM_Memory.alignedWordCopy(VM_Magic.objectAsAddress(dst).plus(dstOffset), @@ -881,7 +882,7 @@ // perform the copy while (len-- != 0) { Object value = VM_Magic.getObjectAtOffset(src, srcOffset); - if (MM_Interface.NEEDS_WRITE_BARRIER) + if (MM_Constants.NEEDS_WRITE_BARRIER) MM_Interface.arrayStoreWriteBarrier(dst, dstOffset.toInt()>>LOG_BYTES_IN_ADDRESS, value); else VM_Magic.setObjectAtOffset(dst, dstOffset, value); Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_Field.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_Field.java 2006-12-07 03:32:49 UTC (rev 11133) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_Field.java 2006-12-07 04:17:23 UTC (rev 11134) @@ -13,6 +13,7 @@ import org.vmmagic.pragma.*; import java.io.DataInputStream; import java.io.IOException; +import com.ibm.jikesrvm.memorymanagers.mminterface.MM_Constants; import com.ibm.jikesrvm.memorymanagers.mminterface.MM_Interface; /** @@ -282,12 +283,12 @@ */ public final void setObjectValueUnchecked(Object obj, Object ref) { if (isStatic()) { - if (MM_Interface.NEEDS_PUTSTATIC_WRITE_BARRIER) + if (MM_Constants.NEEDS_PUTSTATIC_WRITE_BARRIER) MM_Interface.putstaticWriteBarrier(getOffset(), ref); else VM_Statics.setSlotContents(getOffset(), ref); } else { - if (MM_Interface.NEEDS_WRITE_BARRIER) + if (MM_Constants.NEEDS_WRITE_BARRIER) MM_Interface.putfieldWriteBarrier(obj, getOffset(), ref, getId()); else VM_Magic.setObjectAtOffset(obj, getOffset(), ref); Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/DebugUtil.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/DebugUtil.java 2006-12-07 03:32:49 UTC (rev 11133) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/DebugUtil.java 2006-12-07 04:17:23 UTC (rev 11134) @@ -103,7 +103,7 @@ Space.printVMMap(); return false; } - if (MM_Interface.MOVES_OBJECTS) { + if (MM_Constants.MOVES_OBJECTS) { /* TODO: Work out how to check if forwarded if (Plan.isForwardedOrBeingForwarded(ref)) { Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/MM_Constants.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/MM_Constants.java 2006-12-07 03:32:49 UTC (rev 11133) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/MM_Constants.java 2006-12-07 04:17:23 UTC (rev 11134) @@ -16,16 +16,31 @@ /** * This class merely exposes the MMTk constants into the Jikes RVM * package space so that they can be accessed by the VM in an - * MM-neutral way. + * MM-neutral way. It is separate from MM_Interface to break + * cyclic class-loading dependencies. * * @author Steve Blackburn * @version $Revision$ * @date $Date$ */ public class MM_Constants implements VM_SizeConstants { + /** True if the selected plan needs support for linearly scanning the heap */ public static final boolean NEEDS_LINEAR_SCAN = Selected.Constraints.get().needsLinearScan(); + /** Number of bits in the GC header required by the selected plan */ public static final int GC_HEADER_BITS = Selected.Constraints.get().gcHeaderBits(); - public static final int GC_HEADER_BYTES = Selected.Constraints.get().gcHeaderWords() << LOG_BYTES_IN_WORD; + /** Number of additional bytes required in the header by the selected plan */ + public static final int GC_HEADER_BYTES = Selected.Constraints.get().gcHeaderWords() << LOG_BYTES_IN_WORD; + /** True if the selected plan requires write barriers on putfield, arraystore or modifycheck */ + public static final boolean NEEDS_WRITE_BARRIER = Selected.Constraints.get().needsWriteBarrier(); + /** True if the selected plan requires write barriers on putstatic */ + public static final boolean NEEDS_PUTSTATIC_WRITE_BARRIER = Selected.Constraints.get().needsStaticWriteBarrier(); + /** True if the selected plan needs support for generating a GC trace */ public static final boolean GENERATE_GC_TRACE = Selected.Constraints.get().generateGCTrace(); + /** True if the selected plan may move objects */ + public static final boolean MOVES_OBJECTS = Selected.Constraints.get().movesObjects(); + /** True of the selected plan needs GCspy functionality */ + public static final boolean WITH_GCSPY = Selected.Constraints.get().withGCspy(); + /** True if the selected plan moves tib objects */ + public static final boolean MOVES_TIBS = false; } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/MM_Interface.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/MM_Interface.java 2006-12-07 03:32:49 UTC (rev 11133) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/MM_Interface.java 2006-12-07 04:17:23 UTC (rev 11134) @@ -66,45 +66,6 @@ * Class variables */ - /** - * <code>true</code> if a write barrier is required. Specifically, - * if the memory manger requires that the virtual machine calls - * putfieldWriteBarrier, arrayStoreWriteBarrier or modifyCheck when - * the corresponding writes are done. - * AJG: Is this correct? - */ - public static final boolean NEEDS_WRITE_BARRIER - = Selected.Constraints.get().needsWriteBarrier(); - - /** - * <code>true</code> if a write barrier for putstatic operations is - * required. Specifically, if the memory manger requires that the - * virtual machine calls putstaticWriteBarrier, when a putstatic - * operation is needed. - * AJG: Is this correct? - */ - public static final boolean NEEDS_PUTSTATIC_WRITE_BARRIER - = Selected.Constraints.get().needsStaticWriteBarrier(); - - /** - * <code>true</code> if the memory manager moves objects. For - * example, a copying collector will move objects. - */ - public static final boolean MOVES_OBJECTS - = Selected.Constraints.get().movesObjects(); - - /** - * <code>true</code> if the memory manager needs GCspy functionality - */ - public static final boolean WITH_GCSPY - = Selected.Constraints.get().withGCspy(); - - /** - * <code>true</code> if the memory manager moves type information - * blocks (TIBs). - */ - public static final boolean MOVES_TIBS = false; - /** * <code>true</code> if checking of allocated memory to ensure it is * zeroed is desired. Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ConvertToLowLevelIR.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ConvertToLowLevelIR.java 2006-12-07 03:32:49 UTC (rev 11133) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ConvertToLowLevelIR.java 2006-12-07 04:17:23 UTC (rev 11134) @@ -12,7 +12,7 @@ import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.classloader.*; import com.ibm.jikesrvm.opt.ir.*; -import com.ibm.jikesrvm.memorymanagers.mminterface.MM_Interface; +import com.ibm.jikesrvm.memorymanagers.mminterface.MM_Constants; import static com.ibm.jikesrvm.opt.ir.OPT_Operators.*; import static com.ibm.jikesrvm.opt.OPT_Constants.*; import static com.ibm.jikesrvm.VM_Constants.*; @@ -1125,7 +1125,7 @@ static OPT_Operand getTIB (OPT_Instruction s, OPT_IR ir, OPT_TypeOperand type) { VM_Type t = type.getVMType(); - if (VM.BuildForIA32 && !MM_Interface.MOVES_TIBS && + if (VM.BuildForIA32 && !MM_Constants.MOVES_TIBS && VM.runningVM && t != null && t.isResolved()) { Address addr = VM_Magic.objectAsAddress(t.getTypeInformationBlock()); return new OPT_AddressConstantOperand(addr); Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ExpandRuntimeServices.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ExpandRuntimeServices.java 2006-12-07 03:32:49 UTC (rev 11133) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ExpandRuntimeServices.java 2006-12-07 04:17:23 UTC (rev 11134) @@ -12,6 +12,7 @@ import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.classloader.*; import com.ibm.jikesrvm.opt.ir.*; +import com.ibm.jikesrvm.memorymanagers.mminterface.MM_Constants; import com.ibm.jikesrvm.memorymanagers.mminterface.MM_Interface; import static com.ibm.jikesrvm.opt.ir.OPT_Operators.*; import static com.ibm.jikesrvm.opt.OPT_Constants.*; @@ -265,7 +266,7 @@ break; case REF_ASTORE_opcode: { - if (MM_Interface.NEEDS_WRITE_BARRIER) { + if (MM_Constants.NEEDS_WRITE_BARRIER) { VM_Method target = VM_Entrypoints.arrayStoreWriteBarrierMethod; OPT_Instruction wb = Call.create3(CALL, null, OPT_IRTools.AC(target.getOffset()), @@ -284,7 +285,7 @@ break; case PUTFIELD_opcode: { - if (MM_Interface.NEEDS_WRITE_BARRIER) { + if (MM_Constants.NEEDS_WRITE_BARRIER) { OPT_LocationOperand loc = PutField.getLocation(inst); VM_FieldReference field = loc.getFieldRef(); if (!field.getFieldContentsType().isPrimitiveType()) { Modified: rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/VM_Compiler.java =================================================================== --- rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/VM_Compiler.java 2006-12-07 03:32:49 UTC (rev 11133) +++ rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/VM_Compiler.java 2006-12-07 04:17:23 UTC (rev 11134) @@ -10,6 +10,7 @@ package com.ibm.jikesrvm; import com.ibm.jikesrvm.classloader.*; +import com.ibm.jikesrvm.memorymanagers.mminterface.MM_Constants; import com.ibm.jikesrvm.memorymanagers.mminterface.MM_Interface; import com.ibm.jikesrvm.jni.VM_JNICompiler; @@ -468,7 +469,7 @@ asm.emitMOV_Reg_RegDisp(T0, SP, ONE_SLOT); // T0 is array index asm.emitMOV_Reg_RegDisp(S0, SP, TWO_SLOTS); // S0 is the array ref genBoundsCheck(asm, T0, S0); // T0 is index, S0 is address of array - if (MM_Interface.NEEDS_WRITE_BARRIER) + if (MM_Constants.NEEDS_WRITE_BARRIER) VM_Barriers.compileArrayStoreBarrier(asm); else { asm.emitMOV_Reg_RegDisp(T1, SP, NO_SLOT); // T1 is the object value @@ -1894,7 +1895,7 @@ */ protected final void emit_unresolved_putfield(VM_FieldReference fieldRef) { emitDynamicLinkingSequence(T0, fieldRef, true); - if (MM_Interface.NEEDS_WRITE_BARRIER && !fieldRef.getFieldContentsType().isPrimitiveType()) { + if (MM_Constants.NEEDS_WRITE_BARRIER && !fieldRef.getFieldContentsType().isPrimitiveType()) { VM_Barriers.compilePutfieldBarrier(asm, T0, fieldRef.getId()); emitDynamicLinkingSequence(T0, fieldRef, false); asm.emitADD_Reg_Imm(SP, WORDSIZE*2); // complete popping the value and reference @@ -1926,7 +1927,7 @@ protected final void emit_resolved_putfield(VM_FieldReference fieldRef) { Offset fieldOffset = fieldRef.peekResolvedField().getOffset(); VM_Barriers.compileModifyCheck(asm, 4); - if (MM_Interface.NEEDS_WRITE_BARRIER && !fieldRef.getFieldContentsType().isPrimitiveType()) { + if (MM_Constants.NEEDS_WRITE_BARRIER && !fieldRef.getFieldContentsType().isPrimitiveType()) { VM_Barriers.compilePutfieldBarrierImm(asm, fieldOffset, fieldRef.getId()); asm.emitADD_Reg_Imm(SP, WORDSIZE*2); // complete popping the value and reference } else { Modified: rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/VM_Compiler.java =================================================================== --- rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/VM_Compiler.java 2006-12-07 03:32:49 UTC (rev 11133) +++ rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/VM_Compiler.java 2006-12-07 04:17:23 UTC (rev 11134) @@ -9,6 +9,7 @@ //$Id$ package com.ibm.jikesrvm; +import com.ibm.jikesrvm.memorymanagers.mminterface.MM_Constants; import com.ibm.jikesrvm.memorymanagers.mminterface.MM_Interface; import com.ibm.jikesrvm.classloader.*; import com.ibm.jikesrvm.jni.*; @@ -889,7 +890,7 @@ asm.emitBCCTRL(); // checkstore(arrayref, value) popAddr(T2); // T2 is value to store genBoundsCheck(); - if (MM_Interface.NEEDS_WRITE_BARRIER) { + if (MM_Constants.NEEDS_WRITE_BARRIER) { VM_Barriers.compileArrayStoreBarrier(this); } else { asm.emitSLWI (T1, T1, LOG_BYTES_IN_ADDRESS); // convert index to offset @@ -2392,7 +2393,7 @@ */ protected final void emit_unresolved_putfield(VM_FieldReference fieldRef) { emitDynamicLinkingSequence(T1, fieldRef, true); - if (MM_Interface.NEEDS_WRITE_BARRIER && !fieldRef.getFieldContentsType().isPrimitiveType()) { + if (MM_Constants.NEEDS_WRITE_BARRIER && !fieldRef.getFieldContentsType().isPrimitiveType()) { VM_Barriers.compilePutfieldBarrier(this, fieldRef.getId()); // NOTE: offset is in T1 from emitDynamicLinkingSequence emitDynamicLinkingSequence(T1, fieldRef, false); discardSlots(2); @@ -2427,7 +2428,7 @@ */ protected final void emit_resolved_putfield(VM_FieldReference fieldRef) { Offset fieldOffset = fieldRef.peekResolvedField().getOffset(); - if (MM_Interface.NEEDS_WRITE_BARRIER && !fieldRef.getFieldContentsType().isPrimitiveType()) { + if (MM_Constants.NEEDS_WRITE_BARRIER && !fieldRef.getFieldContentsType().isPrimitiveType()) { VM_Barriers.compilePutfieldBarrierImm(this, fieldOffset, fieldRef.getId()); } if (fieldRef.getSize() == BYTES_IN_INT) { // field is one word Modified: rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/quick/VM_QuickCompiler.java =================================================================== --- rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/quick/VM_QuickCompiler.java 2006-12-07 03:32:49 UTC (rev 11133) +++ rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/quick/VM_QuickCompiler.java 2006-12-07 04:17:23 UTC (rev 11134) @@ -10,6 +10,7 @@ package com.ibm.jikesrvm.quick; import com.ibm.jikesrvm.*; +import com.ibm.jikesrvm.memorymanagers.mminterface.MM_Constants; import com.ibm.jikesrvm.memorymanagers.mminterface.MM_Interface; import com.ibm.jikesrvm.jni.VM_JNICompiler; import com.ibm.jikesrvm.classloader.*; @@ -5451,7 +5452,7 @@ // sri0 -- value // sri1 -- index // sri2 -- array - if (MM_Interface.NEEDS_WRITE_BARRIER) { + if (MM_Constants.NEEDS_WRITE_BARRIER) { VM_QuickBarriers.compileArrayStoreBarrier(asm, sri2, sri1, sri0,S1); } else { int offsetRegister = astoreSetup(LOG_BYTES_IN_ADDRESS, sri1, sri2, S0); @@ -7542,7 +7543,7 @@ assignRegisters(2, VOID_TYPE); - if (MM_Interface.NEEDS_WRITE_BARRIER && + if (MM_Constants.NEEDS_WRITE_BARRIER && !fieldRef.getFieldContentsType().isPrimitiveType()) { VM_QuickBarriers.compilePutfieldBarrier(asm, offsetReg, sri1, sri0, fieldRef.getId(), S1); @@ -7583,7 +7584,7 @@ // sri1 -- object Offset fieldOffset = fieldRef.peekResolvedField().getOffset(); - if (MM_Interface.NEEDS_WRITE_BARRIER && + if (MM_Constants.NEEDS_WRITE_BARRIER && !fieldRef.getFieldContentsType().isPrimitiveType()) { VM_QuickBarriers.compilePutfieldBarrierImm(asm, fieldOffset, sri1, sri0, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dgr...@us...> - 2006-12-14 14:25:14
|
Revision: 11184 http://svn.sourceforge.net/jikesrvm/?rev=11184&view=rev Author: dgrove-oss Date: 2006-12-14 06:25:10 -0800 (Thu, 14 Dec 2006) Log Message: ----------- WIP in eliminating RVM_WITH_OSR preprocessor directive by evaluating it to 'true' in the opt compiler Modified Paths: -------------- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_AOSLogging.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_AnalyticModel.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_CompilationThread.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_Controller.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_ControllerMemory.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_ControllerThread.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Compiler.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Constants.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ConvertMIRtoMC.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ConvertToLowLevelIR.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_DefaultInlineOracle.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ExpandRuntimeServices.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_GenericRegisterRestrictions.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_GenericStackManager.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_InlineDecision.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LinearScan.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LiveAnalysis.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_MinimalBURS.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_NormalBURS.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_OptimizationPlanner.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SimpleEscape.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/VM_OptCompiledMethod.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/VM_OptSaveVolatile.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_BC2IR.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_BasicBlock.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_GenerationContext.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_IR.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_InlineSequence.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_Inliner.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_MIRInfo.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_MethodOperand.java rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/OPT_BURS_Helpers.java rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/OPT_FinalMIRExpansion.java rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/OPT_StackManager.java rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/opt/OPT_BURS_Helpers.java rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/opt/OPT_FinalMIRExpansion.java rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/opt/OPT_StackManager.java Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_AOSLogging.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_AOSLogging.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_AOSLogging.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -765,7 +765,6 @@ // OSR-related code //////////////////////////////////////////////////////////////// - //-#if RVM_WITH_OSR /** * This method logs the successful completion of an adaptively * selected recompilation @@ -838,7 +837,6 @@ } } } - //-#endif public static void debug(String s) { if (VM_Controller.options.LOGGING_LEVEL >= 2) { synchronized(log) { @@ -847,7 +845,6 @@ } } - //-#if RVM_WITH_OSR public static void onstackreplacementStarted(OPT_CompilationPlan plan) { synchronized(log) { log.println(getTime() +" OSR starts " + @@ -868,5 +865,4 @@ "( at level " + plan.options.getOptLevel() +" ) " + plan.method); } } - //-#endif } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_AnalyticModel.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_AnalyticModel.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_AnalyticModel.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -99,11 +99,9 @@ VM_ControllerPlan plan = VM_ControllerMemory.findMatchingPlan(cmpMethod); - //-#if RVM_WITH_OSR - // for a outdated hot method from baseline, we consider OSR, and execute plan - // in the routine, no more action here + // for a outdated hot method from baseline, we consider OSR, + // and execute plan in the routine, no more action here if (considerOSRRecompilation(cmpMethod, hme, plan)) return null; - //-#endif if (!considerForRecompilation(hme, plan)) return null; @@ -171,7 +169,6 @@ return plan; } - //-#if RVM_WITH_OSR /* check if a compiled method is outdated, then decide if it needs OSR from BASE to OPT */ boolean considerOSRRecompilation(VM_CompiledMethod cmpMethod, @@ -262,7 +259,6 @@ return null; } } - //-#endif /** * This function defines how the analytic model handles a Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_CompilationThread.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_CompilationThread.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_CompilationThread.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -11,9 +11,7 @@ import com.ibm.jikesrvm.VM; import com.ibm.jikesrvm.VM_Thread; -//-#if RVM_WITH_OSR import com.ibm.jikesrvm.adaptive.OSR_OnStackReplacementPlan; -//-#endif /** * This class is a separate thread whose job is to monitor a (priority) @@ -52,15 +50,11 @@ // Repeat... while (true) { Object plan = VM_Controller.compilationQueue.deleteMin(); - //-#if RVM_WITH_OSR if (plan instanceof VM_ControllerPlan) { ((VM_ControllerPlan)plan).doRecompile(); } else if (plan instanceof OSR_OnStackReplacementPlan) { ((OSR_OnStackReplacementPlan)plan).execute(); } - //-#else - ((VM_ControllerPlan)plan).doRecompile(); - //-#endif } } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_Controller.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_Controller.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_Controller.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -74,12 +74,10 @@ */ public static VM_CompilationThread compilationThread = null; - //-#if RVM_WITH_OSR /** * Thread collecting osr request and pass it to controllerThread */ public static OSR_OrganizerThread osrOrganizer = null; - //-#endif /** * Threads that will organize profile data as directed by the controller Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_ControllerMemory.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_ControllerMemory.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_ControllerMemory.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -238,7 +238,6 @@ return false; } - //-#if RVM_WITH_OSR /** * Return true iff there is a plan to transition from Base to Opt for a * given CMID. @@ -254,7 +253,6 @@ if (m == null) return false; return planWithStatus(m,VM_ControllerPlan.OSR_BASE_2_OPT); } - //-#endif /** * Return true if there is a completed plan with the given opt level for Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_ControllerThread.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_ControllerThread.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_ControllerThread.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -90,10 +90,8 @@ } else if (VM_Controller.options.counters()) { VM_InvocationCounts.init(); } - //-#if RVM_WITH_OSR VM_Controller.osrOrganizer = new OSR_OrganizerThread(); VM_Controller.osrOrganizer.start(); - //-#endif createCompilationThread(); // We're running an AOS bootimage with a non-adaptive primary strategy. // We already set up any requested profiling infrastructure, so nothing @@ -251,13 +249,11 @@ } } - //-#if RVM_WITH_OSR if ((!VM_Controller.options.ENABLE_REPLAY_COMPILE) &&(!VM_Controller.options.ENABLE_PRECOMPILE)) { VM_Controller.osrOrganizer = new OSR_OrganizerThread(); VM_Controller.osrOrganizer.start(); } - //-#endif } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Compiler.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Compiler.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Compiler.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -91,11 +91,9 @@ * callback when application is about to start. */ public void notifyStartup() { - //-#if RVM_WITH_OSR if (VM.TraceOnStackReplacement) { VM.sysWriteln("OPT_Compiler got notified of app ready to begin"); } - //-#endif setAppStarted(); } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Constants.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Constants.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_Constants.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -32,9 +32,7 @@ final int EXTANT_ANALYSIS_BCI = -12; final int PROLOGUE_BLOCK_BCI = -13; final int EPILOGUE_BLOCK_BCI = -14; - //-#if RVM_WITH_OSR final int OSR_PROLOGUE = -15; - //-#endif final int SYNTH_LOOP_VERSIONING_BCI = -16; // The following are used as trinary return values in OptCompiler code Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ConvertMIRtoMC.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ConvertMIRtoMC.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ConvertMIRtoMC.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -105,12 +105,9 @@ ir.compiledMethod.createFinalExceptionTable(ir); // 3b: Create the primary machine code map ir.compiledMethod.createFinalMCMap(ir, codeLength); - - //-#if RVM_WITH_OSR + // 3c: Create OSR maps ir.compiledMethod.createFinalOSRMap(ir); - //-#endif - - // 3c: Create code patching maps + // 3d: Create code patching maps if (ir.options.guardWithCodePatch()) { ir.compiledMethod.createCodePatchMaps(ir); } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ConvertToLowLevelIR.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ConvertToLowLevelIR.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ConvertToLowLevelIR.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -694,14 +694,13 @@ } } - //-#if RVM_WITH_OSR + // Used mainly (only?) by OSR if (methOp.hasDesignatedTarget()) { Call.setAddress(v, InsertLoadOffsetJTOC(v, ir, REF_LOAD, VM_TypeReference.CodeArray, methOp.jtocOffset)); return v; } - //-#endif if (methOp.isStatic()) { if (VM.VerifyAssertions) VM._assert(Call.hasAddress(v)); Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_DefaultInlineOracle.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_DefaultInlineOracle.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_DefaultInlineOracle.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -315,14 +315,12 @@ OPT_InlineDecision d = OPT_InlineDecision.guardedYES(target, chooseGuard(caller, target, staticCallee, state, true), "Guarded inline of single static target"); - //-#if RVM_WITH_OSR if (opts.OSR_GUARDED_INLINING && OPT_Compiler.getAppStarted() && VM_Controller.options.ENABLE_RECOMPILATION) { // note that we will OSR the failed case. d.setOSRTestFailed(); } - //-#endif if (verbose) VM.sysWriteln("\tDecide: "+d); return d; } else { Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ExpandRuntimeServices.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ExpandRuntimeServices.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_ExpandRuntimeServices.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -342,10 +342,8 @@ boolean savedExceptionOption = ir.options.NO_CALLEE_EXCEPTIONS; ir.options.INLINE = true; ir.options.NO_CALLEE_EXCEPTIONS = noCalleeExceptions; - //-#if RVM_WITH_OSR boolean savedOsrGI = ir.options.OSR_GUARDED_INLINING; ir.options.OSR_GUARDED_INLINING=false; - //-#endif try { OPT_InlineDecision inlDec = OPT_InlineDecision.YES(Call.getMethod(inst).getTarget(), @@ -354,9 +352,7 @@ } finally { ir.options.INLINE = savedInliningOption; ir.options.NO_CALLEE_EXCEPTIONS = savedExceptionOption; - //-#if RVM_WITH_OSR ir.options.OSR_GUARDED_INLINING = savedOsrGI; - //-#endif } didSomething = true; } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_GenericRegisterRestrictions.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_GenericRegisterRestrictions.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_GenericRegisterRestrictions.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -132,7 +132,6 @@ } } - //-#if RVM_WITH_OSR // Before OSR points, we need to save all FPRs, // On OptExecStateExtractor, all GPRs have to be recovered, // but not FPRS. @@ -147,7 +146,6 @@ } } } - //-#endif } // 3. architecture-specific restrictions Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_GenericStackManager.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_GenericStackManager.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_GenericStackManager.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -1075,19 +1075,14 @@ // replace the register in the target instruction. replaceRegisterWithScratch(s,r,scratch.scratch); } else { - //-#if RVM_WITH_OSR if (s.operator != YIELDPOINT_OSR) { - //-#endif - - //-#if RVM_FOR_IA32 - // No need to use a scratch register here. - replaceOperandWithSpillLocation(s,op.asRegister()); - //-#else - VM._assert(NOT_REACHED); - //-#endif - //-#if RVM_WITH_OSR + if (VM.BuildForIA32) { + // No need to use a scratch register here. + replaceOperandWithSpillLocation(s,op.asRegister()); + } else { + if (VM.VerifyAssertions) VM._assert(NOT_REACHED); + } } - //-#endif } } } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_InlineDecision.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_InlineDecision.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_InlineDecision.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -132,11 +132,9 @@ /** * Should the test-failed block be replaced with an OSR point? */ - //-#if RVM_WITH_OSR private boolean testFailedOSR = false; public void setOSRTestFailed() { testFailedOSR = true; } public boolean OSRTestFailed() { return testFailedOSR; } - //-#endif /** * Symbolic constant coding internal state. @@ -199,10 +197,8 @@ s = "DECIDE_YES"; else if (code == GUARDED_YES) s = "GUARDED_YES"; - //-#if RVM_WITH_OSR if (testFailedOSR) s += "(OSR off-branch)"; - //-#endif s += ":" + rationale; if (targets != null) { for (int i = 0; i < targets.length; i++) { Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LinearScan.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LinearScan.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LinearScan.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -14,9 +14,7 @@ import com.ibm.jikesrvm.opt.ir.*; import java.util.*; import org.vmmagic.unboxed.*; -//-#if RVM_WITH_OSR import com.ibm.jikesrvm.osr.*; -//-#endif import java.lang.reflect.Constructor; /** @@ -39,9 +37,7 @@ new OPT_OptimizationPlanAtomicElement(new UpdateGCMaps1()), new OPT_OptimizationPlanAtomicElement(new SpillCode()), new OPT_OptimizationPlanAtomicElement(new UpdateGCMaps2()), - //-#if RVM_WITH_OSR - new OPT_OptimizationPlanAtomicElement(new UpdateOSRMaps()), - //-#endif + new OPT_OptimizationPlanAtomicElement(new UpdateOSRMaps()), }); } @@ -2622,7 +2618,6 @@ } } - //-#if RVM_WITH_OSR /** * Update GC maps after register allocation but before inserting spill * code. @@ -2804,5 +2799,4 @@ tuple.value = value; } // end of setTupleValue } // end of inner class - //-#endif RVM_WITH_OSR } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LiveAnalysis.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LiveAnalysis.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_LiveAnalysis.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -14,10 +14,8 @@ import com.ibm.jikesrvm.opt.ir.*; import static com.ibm.jikesrvm.opt.ir.OPT_Operators.*; import java.lang.reflect.Constructor; -//-#if RVM_WITH_OSR import com.ibm.jikesrvm.osr.*; import static com.ibm.jikesrvm.osr.OSR_Constants.*; -//-#endif import java.util.Stack; import java.util.Enumeration; @@ -76,9 +74,7 @@ */ private OPT_GCIRMap map; - //-#if RVM_WITH_OSR private OSR_VariableMap osrMap; - //-#endif /** * For each register, the set of live interval elements describing the @@ -196,9 +192,7 @@ // map, which is called VM_OptReferenceMap. map = new OPT_GCIRMap(); - //-#if RVM_WITH_OSR osrMap = new OSR_VariableMap(); - //-#endif } // allocate the "currentSet" which is used to cache the current results @@ -267,9 +261,7 @@ // This will be null if createGCMaps is false if (createGCMaps) { ir.MIRInfo.gcIRMap = map; - //-#if RVM_WITH_OSR ir.MIRInfo.osrVarMap = osrMap; - //-#endif } // inform the IR that handler liveness is now available @@ -822,19 +814,16 @@ // "in the middle", i.e., during the execution, after the y has been // fetched, but before the x has been defined. - //-#if RVM_WITH_OSR - // Above observation is not true for an OSR instruction. The current - // design of the OSR instruction requires the compiler build a GC map - // for variables used by the instruction. - // Otherwise, the compiler generates an empty gc map for the instruction. - // This results run away references if GC happens when a thread is being OSRed. - // - // TODO: better design of yieldpoint_osr instruction. - // -- Feng July 15, 2003 - if (createGCMaps && !OsrPoint.conforms(inst) && inst.isGCPoint()) { - //-#else - if (createGCMaps && inst.isGCPoint()) { - //-#endif + // Above observation is not true for an OSR instruction. The current + // design of the OSR instruction requires the compiler build a GC map + // for variables used by the instruction. + // Otherwise, the compiler generates an empty gc map for the + // instruction. This results run away references if GC happens + // when a thread is being OSRed. + // + // TODO: better design of yieldpoint_osr instruction. + // -- Feng July 15, 2003 + if (createGCMaps && !OsrPoint.conforms(inst) && inst.isGCPoint()) { // make deep copy (and translate to regList) because we reuse // local above. // NOTE: this translation does some screening, see OPT_GCIRMap.java @@ -868,18 +857,15 @@ } // if operand is a Register } // uses - //-#if RVM_WITH_OSR if (createGCMaps && OsrPoint.conforms(inst)) { - - // delayed gc map generation for Osr instruction, - // see comments before processing uses -- Feng, July 15, 2003 - OPT_LinkedList regList = map.createDU(local); + // delayed gc map generation for Osr instruction, + // see comments before processing uses -- Feng, July 15, 2003 + OPT_LinkedList regList = map.createDU(local); blockStack.push(new MapElement(inst, regList)); - // collect osr info using live set + // collect osr info using live set collectOsrInfo(inst, local); } - //-#endif } // end instruction loop // The register allocator prefers that any registers that are live @@ -1214,7 +1200,6 @@ private OPT_LinkedList list; } - //-#if RVM_WITH_OSR /* collect osr info according to live information */ private void collectOsrInfo(OPT_Instruction inst, OPT_LiveSet lives) { // create an entry to the OSRIRMap, order: callee => caller @@ -1297,7 +1282,6 @@ // put the method variables for this OSR in the osrMap, encoding later. osrMap.insertFirst(inst, mvarList); } - //-#endif RVM_WITH_OSR } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_MinimalBURS.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_MinimalBURS.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_MinimalBURS.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -92,10 +92,8 @@ child = AddressConstant; } else if (op instanceof OPT_BranchOperand && s.isCall()) { child = BranchTarget; - //-#if RVM_WITH_OSR } else if (op instanceof OPT_InlinedOsrTypeInfoOperand && s.isYieldPoint()) { child = NullTreeNode; - //-#endif } else { continue; } @@ -121,9 +119,7 @@ switch (s.getOpcode()) { case CALL_opcode: case SYSCALL_opcode: - //-#if RVM_WITH_OSR case YIELDPOINT_OSR_opcode: - //-#endif if (cur.child2 == null) cur.child2 = NullTreeNode; // fall through Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_NormalBURS.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_NormalBURS.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_NormalBURS.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -110,10 +110,8 @@ child = AddressConstant; } else if (op instanceof OPT_BranchOperand && instr.isCall()) { child = BranchTarget; - //-#if RVM_WITH_OSR } else if (op instanceof OPT_InlinedOsrTypeInfoOperand && instr.isYieldPoint()) { child = NullTreeNode; - //-#endif } else { continue; } @@ -139,9 +137,7 @@ switch (instr.getOpcode()) { case CALL_opcode: case SYSCALL_opcode: - //-#if RVM_WITH_OSR case YIELDPOINT_OSR_opcode: - //-#endif if (cur_parent.child2 == null) cur_parent.child2 = NullTreeNode; // fall through Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_OptimizationPlanner.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_OptimizationPlanner.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_OptimizationPlanner.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -12,9 +12,7 @@ import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.opt.ir.*; import java.util.ArrayList; -//-#if RVM_WITH_OSR import com.ibm.jikesrvm.osr.*; -//-#endif /** * This class specifies the order in which OPT_CompilerPhases are @@ -151,10 +149,8 @@ // Generate HIR from bytecodes new OPT_ConvertBCtoHIR(), - //-#if RVM_WITH_OSR new OSR_AdjustBCIndexes(), new OSR_OsrPointConstructor(), - //-#endif // Always do initial wave of peephole branch optimizations new OPT_BranchOptimizations(0, true, false), Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SimpleEscape.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SimpleEscape.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SimpleEscape.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -376,11 +376,9 @@ // we don't currently analyze these instructions, // so conservatively assume everything escapes // TODO: add more smarts -//-#if RVM_WITH_OSR case YIELDPOINT_OSR_opcode: // on stack replacement really a part of the current method, but // we do not know exactly, so be conservative -//-#endif return true; default: throw new OPT_OptimizingCompilerException("OPT_SimpleEscape: Unexpected " @@ -517,9 +515,7 @@ //-#if RVM_FOR_IA32 case GET_JTOC_opcode: case GET_CURRENT_PROCESSOR_opcode: //-#endif -//-#if RVM_WITH_OSR case YIELDPOINT_OSR_opcode: -//-#endif // we don't currently analyze these instructions, // so conservatively assume everything escapes // TODO: add more smarts Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/VM_OptCompiledMethod.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/VM_OptCompiledMethod.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/VM_OptCompiledMethod.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -13,9 +13,7 @@ import com.ibm.jikesrvm.*; import com.ibm.jikesrvm.classloader.*; import com.ibm.jikesrvm.opt.ir.*; -//-#if RVM_WITH_OSR import com.ibm.jikesrvm.osr.*; -//-#endif import static com.ibm.jikesrvm.opt.ir.OPT_Operators.*; import org.vmmagic.pragma.*; import org.vmmagic.unboxed.Offset; @@ -218,7 +216,6 @@ private static final VM_OptExceptionDeliverer exceptionDeliverer = new VM_OptExceptionDeliverer(); -//-#if RVM_WITH_OSR private OSR_EncodedOSRMap _osrMap; public void createFinalOSRMap(OPT_IR ir) throws InterruptiblePragma { @@ -228,7 +225,6 @@ public OSR_EncodedOSRMap getOSRMap() { return this._osrMap; } -//-#endif ////////////////////////////////////// // Information the opt compiler needs to persistently associate Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/VM_OptSaveVolatile.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/VM_OptSaveVolatile.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/VM_OptSaveVolatile.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -84,13 +84,14 @@ // VM_Thread.yieldpoint(VM_Thread.NATIVE_EPILOGUE); } - //-#if RVM_WITH_OSR + /** + * OSR invalidation being initiated. + */ public static void OPT_yieldpointFromOsrOpt() throws UninterruptiblePragma { VM_Processor.getCurrentProcessor().yieldToOSRRequested = true; VM_Thread.yieldpoint(VM_Thread.OSROPT); } - //-#endif /** * Wrapper to save/restore volatile registers when a class needs to be Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_BC2IR.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_BC2IR.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_BC2IR.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -15,11 +15,9 @@ import java.util.Enumeration; import java.util.HashSet; import java.util.NoSuchElementException; -//-#if RVM_WITH_OSR import com.ibm.jikesrvm.osr.*; import com.ibm.jikesrvm.adaptive.*; import java.util.ArrayList; -//-#endif import org.vmmagic.pragma.*; import org.vmmagic.unboxed.*; @@ -64,10 +62,8 @@ public final class OPT_BC2IR implements OPT_IRGenOptions, OPT_Operators, VM_BytecodeConstants, - OPT_Constants -//-#if RVM_WITH_OSR - , OSR_Constants -//-#endif + OPT_Constants, + OSR_Constants { /** * Dummy slot. @@ -121,14 +117,15 @@ */ private int instrIndex; - //-#if RVM_WITH_OSR + // OSR field private boolean osrGuardedInline = false; - /* adjustment of bcIndex of instructions because of + /* + * OSR field: TODO rework this mechanism! + * adjustment of bcIndex of instructions because of * specialized bytecode. */ private int bciAdjustment; - //-#endif /** * Last instruction generated (for ELIM_COPY_LOCALS) @@ -221,17 +218,14 @@ } - //-#if RVM_WITH_OSR if (context.method.isForOsrSpecialization()) bcodes = context.method.getOsrSynthesizedBytecodes(); else - //-#endif bcodes = context.method.getBytecodes(); // initialize the local state from context.arguments _localState = new OPT_Operand[context.method.getLocalWords()]; - //-#if RVM_WITH_OSR if (context.method.isForOsrSpecialization()) { this.bciAdjustment = context.method.getOsrPrologueLength(); } else { @@ -241,10 +235,9 @@ this.osrGuardedInline = VM.runningVM && context.options.OSR_GUARDED_INLINING && !context.method.isForOsrSpecialization() && - OPT_Compiler.getAppStarted() && - (VM_Controller.options != null) && - VM_Controller.options.ENABLE_RECOMPILATION; - //-#endif + OPT_Compiler.getAppStarted() && + (VM_Controller.options != null) && + VM_Controller.options.ENABLE_RECOMPILATION; } private void finish(OPT_GenerationContext context) { @@ -355,9 +348,7 @@ } OPT_Instruction s = null; - //-#if RVM_WITH_OSR lastOsrBarrier = null; - //-#endif switch (code) { case JBC_nop: @@ -1341,11 +1332,7 @@ bcodes.skipTableSwitchOffsets(number); // Set branch probabilities -//-#if RVM_WITH_OSR VM_SwitchBranchProfile sp = gc.getSwitchProfile(instrIndex-bciAdjustment); -//-#else - VM_SwitchBranchProfile sp = gc.getSwitchProfile(instrIndex); -//-#endif if (sp == null) { float approxProb = 1.0f/(float)(number+1); // number targets + default TableSwitch.setDefaultBranchProfile(s, new OPT_BranchProfileOperand(approxProb)); @@ -1394,11 +1381,7 @@ bcodes.skipLookupSwitchPairs(numpairs); // Set branch probabilities -//-#if RVM_WITH_OSR VM_SwitchBranchProfile sp = gc.getSwitchProfile(instrIndex-bciAdjustment); -//-#else - VM_SwitchBranchProfile sp = gc.getSwitchProfile(instrIndex); -//-#endif if (sp == null) { float approxProb = 1.0f/(float)(numpairs+1); // num targets + default LookupSwitch.setDefaultBranchProfile(s, new OPT_BranchProfileOperand(approxProb)); @@ -1645,14 +1628,12 @@ if (generated) break; // all done. } - //-#if RVM_WITH_OSR /* just create an osr barrier right before _callHelper * changes the states of locals and stacks. */ if (this.osrGuardedInline) { lastOsrBarrier = _createOsrBarrier(); } - //-#endif if (ref.isMiranda()) { // An invokevirtual that is really an invokeinterface. @@ -1775,13 +1756,11 @@ VM_MethodReference ref = bcodes.getMethodReference(); VM_Method target = ref.resolveInvokeSpecial(); - //-#if RVM_WITH_OSR /* just create an osr barrier right before _callHelper * changes the states of locals and stacks. */ if (this.osrGuardedInline) lastOsrBarrier = _createOsrBarrier(); - //-#endif s = _callHelper(ref, OPT_MethodOperand.SPECIAL(ref, target)); @@ -1831,13 +1810,11 @@ boolean unresolved = ref.needsDynamicLink(bcodes.getMethod()); VM_Method target = ref.peekResolvedMethod(); - //-#if RVM_WITH_OSR /* just create an osr barrier right before _callHelper * changes the states of locals and stacks. */ if (this.osrGuardedInline) lastOsrBarrier = _createOsrBarrier(); - //-#endif s = _callHelper(ref, OPT_MethodOperand.STATIC(ref, target)); @@ -1868,13 +1845,11 @@ VM_Method resolvedMethod = null; resolvedMethod = ref.peekInterfaceMethod(); - //-#if RVM_WITH_OSR /* just create an osr barrier right before _callHelper * changes the states of locals and stacks. */ if (this.osrGuardedInline) lastOsrBarrier = _createOsrBarrier(); - //-#endif s = _callHelper(ref, OPT_MethodOperand.INTERFACE(ref, resolvedMethod)); OPT_Operand receiver = Call.getParam(s, 0); @@ -2335,7 +2310,6 @@ s = _jsrHelper(bcodes.getWideBranchOffset()); break; - //-#if RVM_WITH_OSR case JBC_impdep1: { int pseudo_opcode = bcodes.nextPseudoInstruction(); switch (pseudo_opcode) { @@ -2487,7 +2461,6 @@ } break; } - //-#endif default: OPT_OptimizingCompilerException.UNREACHABLE(); @@ -2528,9 +2501,8 @@ } } - //-#if RVM_WITH_OSR + // OSR: TODO: What are these doing here??? int param1, param2; - //-#endif private OPT_Instruction _unaryHelper(OPT_Operator operator, OPT_Operand val, @@ -3747,11 +3719,7 @@ return IfCmp.create(INT_IFCMP, guard, op0, new OPT_IntConstantOperand(0), cond, generateTarget(offset), -//-#if RVM_WITH_OSR - gc.getConditionalBranchProfileOperand(instrIndex-bciAdjustment, offset<0)); -//-#else - gc.getConditionalBranchProfileOperand(instrIndex, offset<0)); -//-#endif + gc.getConditionalBranchProfileOperand(instrIndex-bciAdjustment, offset<0)); } OPT_RegisterOperand val = (OPT_RegisterOperand)op0; OPT_BranchOperand branch = null; @@ -3831,11 +3799,7 @@ return IfCmp.create(INT_IFCMP, guard, val, new OPT_IntConstantOperand(0), cond, branch, -//-#if RVM_WITH_OSR gc.getConditionalBranchProfileOperand(instrIndex-bciAdjustment, offset<0)); -//-#else - gc.getConditionalBranchProfileOperand(instrIndex, offset<0)); -//-#endif } case INSTANCEOF_NOTNULL_opcode: { @@ -3905,11 +3869,7 @@ return IfCmp.create(INT_IFCMP, guard, val, new OPT_IntConstantOperand(0), cond, branch, -//-#if RVM_WITH_OSR gc.getConditionalBranchProfileOperand(instrIndex-bciAdjustment, offset<0)); -//-#else - gc.getConditionalBranchProfileOperand(instrIndex, offset<0)); -//-#endif } case DOUBLE_CMPG_opcode:case DOUBLE_CMPL_opcode: case FLOAT_CMPG_opcode:case FLOAT_CMPL_opcode:case LONG_CMP_opcode: @@ -3957,11 +3917,7 @@ OPT_RegisterOperand guard = gc.temps.makeTempValidation(); return IfCmp.create(operator, guard, val1, val2, cond, branch, -//-#if RVM_WITH_OSR gc.getConditionalBranchProfileOperand(instrIndex-bciAdjustment, offset<0)); -//-#else - gc.getConditionalBranchProfileOperand(instrIndex, offset<0)); -//-#endif } default: // Fall through and Insert INT_IFCMP @@ -3973,11 +3929,7 @@ return IfCmp.create(INT_IFCMP, guard, val, new OPT_IntConstantOperand(0), cond, branch, -//-#if RVM_WITH_OSR gc.getConditionalBranchProfileOperand(instrIndex-bciAdjustment, offset<0)); -//-#else - gc.getConditionalBranchProfileOperand(instrIndex, offset<0)); -//-#endif } // helper function for if_icmp?? bytecodes @@ -4015,11 +3967,7 @@ OPT_RegisterOperand guard = gc.temps.makeTempValidation(); return IfCmp.create(INT_IFCMP, guard, op0, op1, cond, generateTarget(offset), -//-#if RVM_WITH_OSR gc.getConditionalBranchProfileOperand(instrIndex-bciAdjustment, offset<0)); -//-#else - gc.getConditionalBranchProfileOperand(instrIndex, offset<0)); -//-#endif } // helper function for ifnull/ifnonnull bytecodes @@ -4097,11 +4045,7 @@ guard = gc.temps.makeTempValidation(); return IfCmp.create(REF_IFCMP, guard, ref, new OPT_NullConstantOperand(), cond, branch, -//-#if RVM_WITH_OSR gc.getConditionalBranchProfileOperand(instrIndex-bciAdjustment, offset<0)); -//-#else - gc.getConditionalBranchProfileOperand(instrIndex, offset<0)); -//-#endif } // helper function for if_acmp?? bytecodes @@ -4134,11 +4078,7 @@ OPT_RegisterOperand guard = gc.temps.makeTempValidation(); return IfCmp.create(REF_IFCMP, guard, op0, op1, cond, generateTarget(offset), -//-#if RVM_WITH_OSR gc.getConditionalBranchProfileOperand(instrIndex-bciAdjustment, offset<0)); -//-#else - gc.getConditionalBranchProfileOperand(instrIndex, offset<0)); -//-#endif } //// REPLACE LOCALS ON STACK. @@ -4358,14 +4298,12 @@ return d; } - //-#if RVM_WITH_OSR /* osr barrier needs type information of locals and stacks, * it has to be created before a _callHelper. * only when the call site is going to be inlined, the instruction * is inserted before the call site. */ private OPT_Instruction lastOsrBarrier = null; - //-#endif /** * Attempt to inline a method. This may fail. @@ -4380,7 +4318,6 @@ return false; } - //-#if RVM_WITH_OSR // Insert OsrBarrier point before the callsite which is going to be // inlined, attach the OsrBarrier instruction to callsite's scratch // object, then the callee can find this barrier @@ -4390,7 +4327,6 @@ if (VM.VerifyAssertions) VM._assert(lastOsrBarrier != null); callSite.scratchObject = lastOsrBarrier; } - //-#endif // Execute the inline decision. // NOTE: It is tempting to wrap the call to OPT_Inliner.execute in @@ -4488,7 +4424,6 @@ return true; } - //-#if RVM_WITH_OSR /* create an OSR Barrier instruction at the current position. */ private OPT_Instruction _createOsrBarrier() { @@ -4693,7 +4628,6 @@ inst.scratchObject = barrier; return inst; } - //-#endif RVM_WITH_OSR //// LOCAL STATE. @@ -5974,11 +5908,9 @@ return stack[top - depth - 1]; } - //-#if RVM_WITH_OSR OPT_Operand peekAt(int pos) { return stack[pos]; } - //-#endif void pop2() { pop(); Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_BasicBlock.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_BasicBlock.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_BasicBlock.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -842,7 +842,6 @@ } - //-#if RVM_WITH_OSR public final boolean hasNonReturningOsr() { if (isEmpty()) return false; OPT_Instruction s = lastRealInstruction(); @@ -851,7 +850,6 @@ else return false; } - //-#endif /** * If there is a fallthrough FCFG successor of this node @@ -867,10 +865,7 @@ if (hasAthrowInst()) return null; if (hasTrap()) return null; if (hasNonReturningCall()) return null; - - //-#if RVM_WITH_OSR if (hasNonReturningOsr()) return null; - //-#endif return nextBasicBlockInCodeOrder(); } @@ -1206,16 +1201,13 @@ // Check special cases that require edge to exit if (hasReturn()) { insertOut(ir.cfg.exit()); - } else if (hasAthrowInst() || - hasNonReturningCall()) { - if (mayThrowUncaughtException()) + } else if (hasAthrowInst() || hasNonReturningCall()) { + if (mayThrowUncaughtException()) { insertOut(ir.cfg.exit()); - } - //-#if RVM_WITH_OSR - else if (hasNonReturningOsr()) { + } + } else if (hasNonReturningOsr()) { insertOut(ir.cfg.exit()); } - //-#endif } /** Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_GenerationContext.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_GenerationContext.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_GenerationContext.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -281,16 +281,9 @@ child.inlinePlan = parent.inlinePlan; // Now inherit state based on callSite - //-#if RVM_WITH_OSR child.inlineSequence = new OPT_InlineSequence(child.method, callSite.position, callSite); - //-#else - child.inlineSequence = new OPT_InlineSequence(child.method, - callSite.position, - callSite.bcIndex); - //-#endif - child.enclosingHandlers = ebag; child.arguments = new OPT_Operand[Call.getNumberOfParams(callSite)]; for (int i=0; i< child.arguments.length; i++) { @@ -625,15 +618,13 @@ // When working with the class writer do not expand static // synchronization headers as there is no easy way to get at // class object -//-#if RVM_WITH_OSR - // if this is a specialized method, no monitor enter at the beginging - // since it's the second time reenter - if (method.isForOsrSpecialization()) { - // do nothing - } else -//-#endif - if (method.isSynchronized() && !options.MONITOR_NOP - && !options.INVOKEE_THREAD_LOCAL) { + + // OSR: if this is a specialized method, no monitor enter at the beginging + // since it's the second time reenter + if (method.isForOsrSpecialization()) { + // do nothing + } else if (method.isSynchronized() && !options.MONITOR_NOP + && !options.INVOKEE_THREAD_LOCAL) { OPT_Operand lockObject = getLockObject(PROLOGUE_BCI, prologue); OPT_Instruction s = MonitorOp.create(MONITORENTER, lockObject, new OPT_TrueGuardOperand()); Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_IR.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_IR.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_IR.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -1302,9 +1302,7 @@ operand.isStackLocation() || operand.isMemory() || (operand instanceof OPT_TrapCodeOperand) || - //-#if RVM_WITH_OSR (operand instanceof OPT_InlinedOsrTypeInfoOperand) || - //-#endif //-#if RVM_FOR_IA32 (operand instanceof OPT_IA32ConditionOperand) || (operand instanceof OPT_BURSManagedFPROperand) Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_InlineSequence.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_InlineSequence.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_InlineSequence.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -37,12 +37,10 @@ */ public int bcIndex; - //-#if RVM_WITH_OSR /** * We need more detailed information of call site than bcIndex. */ OPT_Instruction callSite; - //-#endif /** * @return contents of {@link #method} @@ -94,7 +92,6 @@ this.bcIndex = bcIndex; } - //-#if RVM_WITH_OSR /** * Constructs a new inline sequence operand. * @@ -114,7 +111,6 @@ public OPT_Instruction getCallSite() { return this.callSite; } - //-#endif /** * Returns the string representation of this inline sequence. Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_Inliner.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_Inliner.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_Inliner.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -186,7 +186,6 @@ testFailed.appendInstruction(counterInst); } - //-#if RVM_WITH_OSR if (inlDec.OSRTestFailed()) { // note where we're storing the osr barrier instruction OPT_Instruction lastOsrBarrier = (OPT_Instruction)callSite.scratchObject; @@ -194,13 +193,9 @@ s.position = callSite.position; s.bcIndex = callSite.bcIndex; testFailed.appendInstruction(s); -// testFailed.appendInstruction(call); } else { testFailed.appendInstruction(call); } - //-#else - testFailed.appendInstruction(call); - //-#endif testFailed.insertOut(container.epilogue); container.cfg.linkInCodeOrder(testFailed, container.epilogue); // This is ugly....since we didn't call BC2IR to generate the Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_MIRInfo.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_MIRInfo.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_MIRInfo.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -11,9 +11,7 @@ import com.ibm.jikesrvm.opt.*; import com.ibm.jikesrvm.VM_CodeArray; -//-#if RVM_WITH_OSR import com.ibm.jikesrvm.osr.*; -//-#endif /** * Wrapper class around IR info that is valid on the MIR @@ -39,9 +37,7 @@ */ public OPT_GCIRMap gcIRMap; - //-#if RVM_WITH_OSR public OSR_VariableMap osrVarMap; - //-#endif /** * The frame size of the current method */ @@ -71,9 +67,11 @@ */ public OPT_BasicBlock backedgeYieldpointBlock = null; -//-#if RVM_WITH_OSR + /** + * A basic block holding the call to yieldpointFromOsrOpt for an + * OSR invalidation. + */ public OPT_BasicBlock osrYieldpointBlock = null; -//-#endif /** * Information needed for linear scan. Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_MethodOperand.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_MethodOperand.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/ir/OPT_MethodOperand.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -69,10 +69,8 @@ */ protected byte type = -1; - //-#if RVM_WITH_OSR private boolean designatedOffset = false; public Offset jtocOffset; - //-#endif /** * @param ref VM_MemberReference of method to call @@ -94,7 +92,6 @@ } } - //-#if RVM_WITH_OSR /** * Returns a method operand representing a compiled method with designated * JTOC offset. (used by OPT_ConvertToLowLevelIR) @@ -114,7 +111,6 @@ public boolean hasDesignatedTarget() { return this.designatedOffset; } - //-#endif /** * create a method operand for an INVOKE_SPECIAL bytecode Modified: rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/OPT_BURS_Helpers.java =================================================================== --- rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/OPT_BURS_Helpers.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/OPT_BURS_Helpers.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -1907,7 +1907,6 @@ * expand long type variables to two intergers */ void OSR(OPT_BURS burs, OPT_Instruction s) { -//-#if RVM_WITH_OSR if (VM.VerifyAssertions) VM._assert(OsrPoint.conforms(s)); // 1. how many params @@ -1989,6 +1988,5 @@ VM.sysWriteln(" position "+s.bcIndex+"@"+s.position.method); } */ - //-#endif } } Modified: rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/OPT_FinalMIRExpansion.java =================================================================== --- rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/OPT_FinalMIRExpansion.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/OPT_FinalMIRExpansion.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -249,12 +249,10 @@ OPT_IA32ConditionOperand.GT()); break; - //-#if RVM_WITH_OSR case YIELDPOINT_OSR_opcode: // must yield, does not check threadSwitch request expandUnconditionalYieldpoint(p, ir, VM_Entrypoints.optThreadSwitchFromOsrOptMethod); break; - //-#endif } } @@ -394,7 +392,6 @@ OPT_BranchProfileOperand.never())); } - //-#if RVM_WITH_OSR /* generate yieldpoint without checking threadSwith request */ private static void expandUnconditionalYieldpoint(OPT_Instruction s, @@ -430,5 +427,4 @@ // make a jump to yield block thisBlock.appendInstruction(MIR_Branch.create(IA32_JMP, yieldpoint.makeJumpTarget())); } - //-#endif } Modified: rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/OPT_StackManager.java =================================================================== --- rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/OPT_StackManager.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src-ia32/com/ibm/jikesrvm/opt/OPT_StackManager.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -654,10 +654,8 @@ // FMOV instruction. if (r.isFloatingPoint() && s.operator==IA32_FMOV) return false; - //-#if RVM_WITH_OSR // never need a scratch register for a YIELDPOINT_OSR if (s.operator == YIELDPOINT_OSR) return false; - //-#endif // Some MOVEs never need scratch registers if (isScratchFreeMove(s)) return false; Modified: rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/opt/OPT_BURS_Helpers.java =================================================================== --- rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/opt/OPT_BURS_Helpers.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/opt/OPT_BURS_Helpers.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -2221,7 +2221,6 @@ /* special case handling OSR instructions */ void OSR(OPT_BURS burs, OPT_Instruction s) { -//-#if RVM_WITH_OSR if (VM.VerifyAssertions) VM._assert(OsrPoint.conforms(s)); // 1. how many params @@ -2274,6 +2273,5 @@ } if (VM.VerifyAssertions) VM._assert(pidx == (numparam+numlong)); -//-#endif } } Modified: rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/opt/OPT_FinalMIRExpansion.java =================================================================== --- rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/opt/OPT_FinalMIRExpansion.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/opt/OPT_FinalMIRExpansion.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -213,7 +213,6 @@ conditionalBranchCount++; } break; - //-#if RVM_WITH_OSR case YIELDPOINT_OSR_opcode: { // unconditionally branch to yield point. @@ -228,7 +227,6 @@ } instructionCount++; break; - //-#endif default: if (p.operator().isConditionalBranch()) @@ -284,15 +282,12 @@ return ir.MIRInfo.epilogueYieldpointBlock; else meth = VM_Entrypoints.optThreadSwitchFromEpilogueMethod; - } - //-#if RVM_WITH_OSR - else if (whereFrom == VM_Thread.OSROPT) { + } else if (whereFrom == VM_Thread.OSROPT) { if (ir.MIRInfo.osrYieldpointBlock != null) return ir.MIRInfo.osrYieldpointBlock; else meth = VM_Entrypoints.optThreadSwitchFromOsrOptMethod; } - //-#endif // Not found. create new basic block holding the requested yieldpoint // method @@ -319,10 +314,8 @@ ir.MIRInfo.backedgeYieldpointBlock = result; else if (whereFrom == VM_Thread.EPILOGUE) ir.MIRInfo.epilogueYieldpointBlock = result; - //-#if RVM_WITH_OSR else if (whereFrom == VM_Thread.OSROPT) ir.MIRInfo.osrYieldpointBlock = result; - //-#endif return result; } Modified: rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/opt/OPT_StackManager.java =================================================================== --- rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/opt/OPT_StackManager.java 2006-12-14 07:22:22 UTC (rev 11183) +++ rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/opt/OPT_StackManager.java 2006-12-14 14:25:10 UTC (rev 11184) @@ -821,9 +821,7 @@ * r is in a scratch register is s (as opposed to a memory operand) */ boolean needScratch(OPT_Register r, OPT_Instruction s) { - //-#if RVM_WITH_OSR if (s.operator == YIELDPOINT_OSR) return false; - //-#endif // PowerPC does not support memory operands. return true; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ste...@us...> - 2006-12-20 22:58:46
|
Revision: 11238 http://svn.sourceforge.net/jikesrvm/?rev=11238&view=rev Author: steveb-oss Date: 2006-12-20 14:58:45 -0800 (Wed, 20 Dec 2006) Log Message: ----------- moved last of preprocessor dependent files into src-generated Modified Paths: -------------- rvmroot/trunk/rvm/src-generated/vm-configuration/Makefile Added Paths: ----------- rvmroot/trunk/rvm/src-generated/vm-configuration/Selected.java Removed Paths: ------------- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/Selected.java Deleted: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/Selected.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/Selected.java 2006-12-20 19:04:29 UTC (rev 11237) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/Selected.java 2006-12-20 22:58:45 UTC (rev 11238) @@ -1,49 +0,0 @@ -package com.ibm.jikesrvm.memorymanagers.mminterface; - -import com.ibm.jikesrvm.VM_Processor; - -import org.vmmagic.pragma.*; - -public class Selected { - @Uninterruptible - public static final class Plan extends -//-#value RVM_WITH_MMTK_PLAN - { - private static final Plan plan = new Plan(); - - @Inline - public static Plan get() { return plan; } - } - - @Uninterruptible - public static final class Constraints extends -//-#value RVM_WITH_MMTK_PLANCONSTRAINTS - { - private static final Constraints constraints = new Constraints(); - - @Inline - public static Constraints get() { return constraints; } - } - - @Uninterruptible - public static class Collector extends -//-#value RVM_WITH_MMTK_COLLECTORCONTEXT - { - private VM_Processor processor; - public Collector(VM_Processor parent) { processor = parent; } - @Inline - public final VM_Processor getProcessor() { return processor; } - @Inline - public static final Collector get() { return VM_Processor.getCurrentProcessor().collectorContext; } - } - - @Uninterruptible - public static class Mutator extends -//-#value RVM_WITH_MMTK_MUTATORCONTEXT - { - @Inline - public final VM_Processor getProcessor() { return (VM_Processor) this; } - @Inline - public static final Mutator get() { return VM_Processor.getCurrentProcessor(); } - } -} Modified: rvmroot/trunk/rvm/src-generated/vm-configuration/Makefile =================================================================== --- rvmroot/trunk/rvm/src-generated/vm-configuration/Makefile 2006-12-20 19:04:29 UTC (rev 11237) +++ rvmroot/trunk/rvm/src-generated/vm-configuration/Makefile 2006-12-20 22:58:45 UTC (rev 11238) @@ -12,7 +12,7 @@ include $(RVM_BUILD)/Make.rules.host -default: $(GEN_FILES_DIR)/com/ibm/jikesrvm/VM_Configuration.java $(GEN_FILES_DIR)/com/ibm/jikesrvm/VM_HeapLayoutConstants.java +default: $(GEN_FILES_DIR)/com/ibm/jikesrvm/VM_Configuration.java $(GEN_FILES_DIR)/com/ibm/jikesrvm/VM_HeapLayoutConstants.java $(GEN_FILES_DIR)/com/ibm/jikesrvm/memorymanagers/mminterface/Selected.java $(GEN_FILES_DIR)/com/ibm/jikesrvm/VM_Configuration.java: VM_Configuration.java cp $< $@ @@ -20,5 +20,9 @@ $(GEN_FILES_DIR)/com/ibm/jikesrvm/VM_HeapLayoutConstants.java: VM_HeapLayoutConstants.java cp $< $@ +$(GEN_FILES_DIR)/com/ibm/jikesrvm/memorymanagers/mminterface/Selected.java: Selected.java + mkdir -p $(GEN_FILES_DIR)/com/ibm/jikesrvm/memorymanagers/mminterface + cp $< $@ + clean: - rm -f $(GEN_FILES_DIR)/com/ibm/jikesrvm/VM_Configuration.java + rm -f $(GEN_FILES_DIR)/com/ibm/jikesrvm/VM_Configuration.java $(GEN_FILES_DIR)/com/ibm/jikesrvm/VM_HeapLayoutConstants.java $(GEN_FILES_DIR)/com/ibm/jikesrvm/memorymanagers/mminterface/Selected.java \ No newline at end of file Copied: rvmroot/trunk/rvm/src-generated/vm-configuration/Selected.java (from rev 11237, rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/Selected.java) =================================================================== --- rvmroot/trunk/rvm/src-generated/vm-configuration/Selected.java (rev 0) +++ rvmroot/trunk/rvm/src-generated/vm-configuration/Selected.java 2006-12-20 22:58:45 UTC (rev 11238) @@ -0,0 +1,49 @@ +package com.ibm.jikesrvm.memorymanagers.mminterface; + +import com.ibm.jikesrvm.VM_Processor; + +import org.vmmagic.pragma.*; + +public class Selected { + @Uninterruptible + public static final class Plan extends +//-#value RVM_WITH_MMTK_PLAN + { + private static final Plan plan = new Plan(); + + @Inline + public static Plan get() { return plan; } + } + + @Uninterruptible + public static final class Constraints extends +//-#value RVM_WITH_MMTK_PLANCONSTRAINTS + { + private static final Constraints constraints = new Constraints(); + + @Inline + public static Constraints get() { return constraints; } + } + + @Uninterruptible + public static class Collector extends +//-#value RVM_WITH_MMTK_COLLECTORCONTEXT + { + private VM_Processor processor; + public Collector(VM_Processor parent) { processor = parent; } + @Inline + public final VM_Processor getProcessor() { return processor; } + @Inline + public static final Collector get() { return VM_Processor.getCurrentProcessor().collectorContext; } + } + + @Uninterruptible + public static class Mutator extends +//-#value RVM_WITH_MMTK_MUTATORCONTEXT + { + @Inline + public final VM_Processor getProcessor() { return (VM_Processor) this; } + @Inline + public static final Mutator get() { return VM_Processor.getCurrentProcessor(); } + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rg...@us...> - 2007-01-02 07:07:25
|
Revision: 11256 http://svn.sourceforge.net/jikesrvm/?rev=11256&view=rev Author: rgarner Date: 2007-01-01 23:07:22 -0800 (Mon, 01 Jan 2007) Log Message: ----------- Eliminate compile-time warnings Modified Paths: -------------- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Runtime.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_AnnotatedElement.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/MM_Interface.java rvmroot/trunk/rvm/src/gnu/classpath/VMStackWalker.java rvmroot/trunk/rvm/src/java/lang/Class.java rvmroot/trunk/rvm/src/java/lang/JikesRVMSupport.java rvmroot/trunk/rvm/src/java/lang/Object.java rvmroot/trunk/rvm/src/java/lang/Thread.java rvmroot/trunk/rvm/src/java/lang/VMClassLoader.java rvmroot/trunk/rvm/src/java/lang/VMString.java rvmroot/trunk/rvm/src/java/lang/VMSystem.java rvmroot/trunk/rvm/src/java/lang/reflect/Method.java Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Runtime.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Runtime.java 2007-01-02 06:26:06 UTC (rev 11255) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Runtime.java 2007-01-02 07:07:22 UTC (rev 11256) @@ -306,7 +306,7 @@ * (ready for initializer to be run on it) * See also: bytecode 0xbb ("new") */ - public static Object resolvedNewScalar(VM_Class cls) { + public static <T> T resolvedNewScalar(VM_Class cls) { int allocator = MM_Interface.pickAllocator(cls); int site = MM_Interface.getAllocationSite(false); @@ -334,7 +334,7 @@ * (ready for initializer to be run on it) * See also: bytecode 0xbb ("new") */ - public static Object resolvedNewScalar(int size, + public static <T> T resolvedNewScalar(int size, Object[] tib, boolean hasFinalizer, int allocator, @@ -353,7 +353,7 @@ } // Allocate the object and initialize its header - Object newObj = MM_Interface.allocateScalar(size, tib, allocator, align, offset, site); + T newObj = MM_Interface.allocateScalar(size, tib, allocator, align, offset, site); // Deal with finalization if (hasFinalizer) MM_Interface.addFinalizer(newObj); Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_AnnotatedElement.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_AnnotatedElement.java 2007-01-02 06:26:06 UTC (rev 11255) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_AnnotatedElement.java 2007-01-02 07:07:22 UTC (rev 11256) @@ -147,19 +147,19 @@ /** * Get the annotation implementing the specified class or null */ - public Annotation getAnnotation(Class annotationClass) { + public <T extends Annotation> T getAnnotation(Class<T> annotationClass) { VM_TypeReference annotationTypeRef = VM_TypeReference.findOrCreate(annotationClass); if (runtimeVisibleAnnotations != null) { for(int i=0; i < runtimeVisibleAnnotations.length; i++) { if(runtimeVisibleAnnotations[i].annotationType() == annotationTypeRef) { - return runtimeVisibleAnnotations[i].getValue(); + return (T)runtimeVisibleAnnotations[i].getValue(); } } } if (retainRuntimeInvisibleAnnotations && (runtimeInvisibleAnnotations != null)) { for(int i=0; i < runtimeInvisibleAnnotations.length; i++) { if(runtimeInvisibleAnnotations[i].annotationType() == annotationTypeRef) { - return runtimeInvisibleAnnotations[i].getValue(); + return (T)runtimeInvisibleAnnotations[i].getValue(); } } } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/MM_Interface.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/MM_Interface.java 2007-01-02 06:26:06 UTC (rev 11255) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/MM_Interface.java 2007-01-02 07:07:22 UTC (rev 11256) @@ -515,13 +515,13 @@ */ @Inline @Uninterruptible - public static Object allocateScalar(int size, Object [] tib, int allocator, + public static <T> T allocateScalar(int size, Object [] tib, int allocator, int align, int offset, int site) { Selected.Mutator mutator = Selected.Mutator.get(); allocator = mutator.checkAllocator(VM_Memory.alignUp(size, MIN_ALIGNMENT), align, allocator); Address region = allocateSpace(mutator, size, align, offset, allocator, site); - Object result = VM_ObjectModel.initializeScalar(region, tib, size); + T result = (T)VM_ObjectModel.initializeScalar(region, tib, size); mutator.postAlloc(ObjectReference.fromObject(result), ObjectReference.fromObject(tib), size, allocator); return result; Modified: rvmroot/trunk/rvm/src/gnu/classpath/VMStackWalker.java =================================================================== --- rvmroot/trunk/rvm/src/gnu/classpath/VMStackWalker.java 2007-01-02 06:26:06 UTC (rev 11255) +++ rvmroot/trunk/rvm/src/gnu/classpath/VMStackWalker.java 2007-01-02 07:07:22 UTC (rev 11256) @@ -44,7 +44,7 @@ */ public static ClassLoader firstNonNullClassLoader() { - Class[] stack = getClassContext(); + Class<?>[] stack = getClassContext(); for (int i = 0; i < stack.length; i++) { ClassLoader loader = stack[i].getClassLoader(); @@ -71,7 +71,7 @@ * @return an array of the declaring classes of each stack frame * </blockquote> */ - public static Class[] getClassContext() { + public static Class<?>[] getClassContext() { VM_StackBrowser b = new VM_StackBrowser(); int frames = 0; VM.disableGC(); @@ -113,7 +113,7 @@ } VM.enableGC(); - Class[] classes = new Class[ frames ]; + Class<?>[] classes = new Class[ frames ]; for(int j = 0; j < iclasses.length; j++) { classes[j] = iclasses[j].getClassForType(); } @@ -135,11 +135,11 @@ * version of this method. * </blockquote> */ - public static Class getCallingClass() { + public static Class<?> getCallingClass() { return getCallingClass(1); // Skip this method (getCallingClass()) } - public static Class getCallingClass(int skip) { + public static Class<?> getCallingClass(int skip) { VM_StackBrowser b = new VM_StackBrowser(); VM.disableGC(); @@ -175,7 +175,7 @@ * </blockquote> */ public static ClassLoader getCallingClassLoader() { - Class caller = getCallingClass(1); // skip getCallingClassLoader + Class<?> caller = getCallingClass(1); // skip getCallingClassLoader if (caller == null) return null; return caller.getClassLoader(); Modified: rvmroot/trunk/rvm/src/java/lang/Class.java =================================================================== --- rvmroot/trunk/rvm/src/java/lang/Class.java 2007-01-02 06:26:06 UTC (rev 11255) +++ rvmroot/trunk/rvm/src/java/lang/Class.java 2007-01-02 07:07:22 UTC (rev 11256) @@ -83,12 +83,12 @@ return true; // TODO: assertion status support isn't yet present } - public static Class forName(String typeName) throws ClassNotFoundException { + public static Class<?> forName(String typeName) throws ClassNotFoundException { ClassLoader parentCL = VM_Class.getClassLoaderFromStackFrame(1); return forNameInternal(typeName, true, parentCL); } - public static Class forName(String className, + public static Class<?> forName(String className, boolean initialize, ClassLoader classLoader) throws ClassNotFoundException, @@ -114,14 +114,14 @@ return forNameInternal(className, initialize, classLoader); } - public Class[] getClasses() + public Class<?>[] getClasses() throws SecurityException { checkMemberAccess(Member.PUBLIC); if (!type.isClassType()) return new Class[0]; - ArrayList<Class> publicClasses = new ArrayList<Class>(); - for (Class c = this; c != null; c = c.getSuperclass()) { + ArrayList<Class<?>> publicClasses = new ArrayList<Class<?>>(); + for (Class<?> c = this; c != null; c = c.getSuperclass()) { c.checkMemberAccess(Member.PUBLIC); VM_TypeReference[] declaredClasses = c.type.asClass().getDeclaredClasses(); @@ -136,7 +136,7 @@ } } } - Class result[] = new Class[publicClasses.size()]; + Class<?> result[] = new Class[publicClasses.size()]; result = publicClasses.toArray(result); return result; } @@ -153,13 +153,13 @@ return cl == VM_BootstrapClassLoader.getBootstrapClassLoader() ? null : cl; } - public Class getComponentType() { + public Class<?> getComponentType() { return type.isArrayType() ? type.asArray().getElementType().getClassForType() : null; } - public Constructor<T> getConstructor(Class parameterTypes[]) + public Constructor<T> getConstructor(Class<?> parameterTypes[]) throws NoSuchMethodException, SecurityException { checkMemberAccess(Member.PUBLIC); @@ -177,7 +177,7 @@ throw new NoSuchMethodException("<init> " + parameterTypes ); } - public Constructor[] getConstructors() + public Constructor<?>[] getConstructors() throws SecurityException { checkMemberAccess(Member.PUBLIC); @@ -194,7 +194,7 @@ return coll.constructorArray(); } - public Class[] getDeclaredClasses() + public Class<?>[] getDeclaredClasses() throws SecurityException { checkMemberAccess(Member.DECLARED); @@ -219,7 +219,7 @@ } // Now build actual result array. - Class[] result = new Class[count]; + Class<?>[] result = new Class[count]; count = 0; for (int i = 0; i < length; ++i) { if (declaredClasses[i] != null) { @@ -230,7 +230,7 @@ return result; } - public Constructor<T> getDeclaredConstructor(Class parameterTypes[]) + public Constructor<T> getDeclaredConstructor(Class<?> parameterTypes[]) throws NoSuchMethodException, SecurityException { checkMemberAccess(Member.DECLARED); @@ -247,12 +247,12 @@ throw new NoSuchMethodException("<init> " + parameterTypes ); } - public Constructor[] getDeclaredConstructors() throws SecurityException { + public Constructor<?>[] getDeclaredConstructors() throws SecurityException { checkMemberAccess(Member.DECLARED); if (!type.isClassType()) return new Constructor[0]; VM_Method methods[] = type.asClass().getConstructorMethods(); - Constructor[] ans = new Constructor[methods.length]; + Constructor<?>[] ans = new Constructor[methods.length]; for (int i = 0; i<methods.length; i++) { ans[i] = JikesRVMSupport.createConstructor(methods[i]); } @@ -290,7 +290,7 @@ return ans; } - public Method getDeclaredMethod(String name, Class parameterTypes[]) + public Method getDeclaredMethod(String name, Class<?> parameterTypes[]) throws NoSuchMethodException, SecurityException { checkMemberAccess(Member.DECLARED); @@ -346,7 +346,7 @@ return coll.methodArray(); } - public Class getDeclaringClass() { + public Class<?> getDeclaringClass() { if (!type.isClassType()) return null; VM_TypeReference dc = type.asClass().getDeclaringClass(); if (dc == null) return null; @@ -391,14 +391,14 @@ return coll.fieldArray(); } - public Class[] getInterfaces () { + public Class<?>[] getInterfaces () { if (type.isArrayType()) { // arrays implement JavaLangSerializable & JavaLangCloneable return new Class[] { VM_Type.JavaLangCloneableType.getClassForType(), VM_Type.JavaIoSerializableType.getClassForType() }; } else if (type.isClassType()) { VM_Class[] interfaces = type.asClass().getDeclaredInterfaces(); - Class[] jinterfaces = new Class[interfaces.length]; + Class<?>[] jinterfaces = new Class[interfaces.length]; for (int i = 0; i != interfaces.length; i++) jinterfaces[i] = interfaces[i].getClassForType(); return jinterfaces; @@ -407,7 +407,7 @@ } } - public Method getMethod(String name, Class parameterTypes[]) throws NoSuchMethodException, SecurityException { + public Method getMethod(String name, Class<?> parameterTypes[]) throws NoSuchMethodException, SecurityException { checkMemberAccess(Member.PUBLIC); if (!type.isClassType()) throw new NoSuchMethodException(name + parameterTypes); @@ -546,7 +546,7 @@ } } - public Class getSuperclass () { + public Class<?> getSuperclass () { if (type.isArrayType()) { return VM_Type.JavaLangObjectType.getClassForType(); } else if (type.isClassType()) { @@ -563,7 +563,7 @@ return type.isArrayType(); } - public boolean isAssignableFrom(Class cls) { + public boolean isAssignableFrom(Class<?> cls) { return type == cls.type || VM_Runtime.isAssignableWith(type, cls.type); } @@ -632,7 +632,7 @@ } // Allocate an uninitialized instance; - T obj = (T)VM_Runtime.resolvedNewScalar(cls); + T obj = VM_Runtime.resolvedNewScalar(cls); // Run the default constructor on the it. VM_Reflection.invoke(defaultConstructor, obj, null); @@ -658,8 +658,8 @@ /** * Create a java.lang.Class corresponding to a given VM_Type */ - static Class create(VM_Type type) { - Class c = new Class(); + static <T> Class<T> create(VM_Type type) { + Class<T> c = new Class<T>(); c.type = type; return c; } @@ -668,7 +668,7 @@ this.signers = signers; } - private static Class forNameInternal(String className, + private static Class<?> forNameInternal(String className, boolean initialize, ClassLoader classLoader) throws ClassNotFoundException, @@ -796,7 +796,7 @@ /** * Compare parameter lists for agreement. */ - private boolean parametersMatch(VM_TypeReference[] lhs, Class[] rhs) { + private boolean parametersMatch(VM_TypeReference[] lhs, Class<?>[] rhs) { if (rhs == null) return lhs.length == 0; if (lhs.length != rhs.length) return false; @@ -836,8 +836,8 @@ return ans; } - Constructor[] constructorArray() { - Constructor[] ans = new Constructor[n]; + Constructor<?>[] constructorArray() { + Constructor<?>[] ans = new Constructor[n]; System.arraycopy(coll, 0, ans, 0, n); return ans; } @@ -880,11 +880,13 @@ return type.getAnnotations(); } - public Annotation getAnnotation(Class annotationClass) { + //@Override + public <U extends Annotation> U getAnnotation(Class<U> annotationClass) { return type.getAnnotation(annotationClass); } - public boolean isAnnotationPresent(Class annotationClass) { + //@Override + public boolean isAnnotationPresent(Class<? extends Annotation> annotationClass) { return type.isAnnotationPresent(annotationClass); } @@ -937,7 +939,7 @@ } } - public TypeVariable<Class<T>>[] getTypeParameters() { + public TypeVariable<?>[] getTypeParameters() { if (!type.isClassType()) { return new TypeVariable[0]; } @@ -980,7 +982,7 @@ return getName(); } - public Class getEnclosingClass() { + public Class<?> getEnclosingClass() { if (type.isClassType()) { VM_TypeReference enclosingClass = type.asClass().getEnclosingClass(); if(enclosingClass != null) { @@ -995,7 +997,7 @@ } } - public Constructor getEnclosingConstructor() { + public Constructor<? super T> getEnclosingConstructor() { throw new VM_UnimplementedError(); } Modified: rvmroot/trunk/rvm/src/java/lang/JikesRVMSupport.java =================================================================== --- rvmroot/trunk/rvm/src/java/lang/JikesRVMSupport.java 2007-01-02 06:26:06 UTC (rev 11255) +++ rvmroot/trunk/rvm/src/java/lang/JikesRVMSupport.java 2007-01-02 07:07:22 UTC (rev 11256) @@ -30,29 +30,29 @@ VMClassLoader.setInstrumenter(instrumenter); } - public static Class[] getAllLoadedClasses() { + public static Class<?>[] getAllLoadedClasses() { return VMClassLoader.getAllLoadedClasses(); } - public static Class[] getInitiatedClasses(ClassLoader classLoader) { + public static Class<?>[] getInitiatedClasses(ClassLoader classLoader) { return VMClassLoader.getInitiatedClasses(classLoader); } - public static Class createClass(VM_Type type) { + public static Class<?> createClass(VM_Type type) { return Class.create(type); } - public static Class createClass(VM_Type type, ProtectionDomain pd) { - Class c = Class.create(type); + public static Class<?> createClass(VM_Type type, ProtectionDomain pd) { + Class<?> c = Class.create(type); setClassProtectionDomain(c, pd); return c; } - public static VM_Type getTypeForClass(Class c) { + public static VM_Type getTypeForClass(Class<?> c) { return c.type; } - public static void setClassProtectionDomain(Class c, ProtectionDomain pd) { + public static void setClassProtectionDomain(Class<?> c, ProtectionDomain pd) { c.pd = pd; } Modified: rvmroot/trunk/rvm/src/java/lang/Object.java =================================================================== --- rvmroot/trunk/rvm/src/java/lang/Object.java 2007-01-02 06:26:06 UTC (rev 11255) +++ rvmroot/trunk/rvm/src/java/lang/Object.java 2007-01-02 07:07:22 UTC (rev 11256) @@ -37,7 +37,7 @@ protected void finalize () throws Throwable { } - public final Class getClass() { + public final Class<?> getClass() { return VM_ObjectModel.getObjectType(this).getClassForType(); } Modified: rvmroot/trunk/rvm/src/java/lang/Thread.java =================================================================== --- rvmroot/trunk/rvm/src/java/lang/Thread.java 2007-01-02 06:26:06 UTC (rev 11255) +++ rvmroot/trunk/rvm/src/java/lang/Thread.java 2007-01-02 07:07:22 UTC (rev 11256) @@ -10,6 +10,9 @@ */ package java.lang; +import java.util.Map; +import java.util.WeakHashMap; + import com.ibm.jikesrvm.VM; // for VM.sysWrite() import com.ibm.jikesrvm.VM_ObjectModel; import com.ibm.jikesrvm.VM_Thread; @@ -45,7 +48,7 @@ private volatile boolean isInterrupted; - java.util.WeakHashMap locals = new java.util.WeakHashMap(); + WeakHashMap<Object,Object> locals = new WeakHashMap<Object,Object>(); // Special constructor to create thread that has no parent. // Only for use by MainThread() constructor. @@ -434,7 +437,7 @@ return VM_ObjectModel.holdsLock(obj, VM_Thread.getCurrentThread()); } - static java.util.Map getThreadLocals() { + static Map<?,?> getThreadLocals() { return currentThread().locals; } Modified: rvmroot/trunk/rvm/src/java/lang/VMClassLoader.java =================================================================== --- rvmroot/trunk/rvm/src/java/lang/VMClassLoader.java 2007-01-02 06:26:06 UTC (rev 11255) +++ rvmroot/trunk/rvm/src/java/lang/VMClassLoader.java 2007-01-02 07:07:22 UTC (rev 11256) @@ -48,55 +48,55 @@ final class VMClassLoader { /** - * A map of maps. The first map is indexed by the classloader. The - * map this finds then maps String class names to classes - */ + * A map of maps. The first map is indexed by the classloader. The + * map this finds then maps String class names to classes + */ private static final VM_HashMap loadedClasses = new VM_HashMap(); /** packages loaded by the bootstrap class loader */ private static final VM_HashMap definedPackages = new VM_HashMap(); private static final VM_HashMap bootjars = new VM_HashMap(); - + static { String[] packages = getBootPackages(); - + if( packages != null) + { + String specName = + SystemProperties.getProperty("java.specification.name"); + String vendor = + SystemProperties.getProperty("java.specification.vendor"); + String version = + SystemProperties.getProperty("java.specification.version"); + + Package p; + + for(int i = 0; i < packages.length; i++) { - String specName = - SystemProperties.getProperty("java.specification.name"); - String vendor = - SystemProperties.getProperty("java.specification.vendor"); - String version = - SystemProperties.getProperty("java.specification.version"); - - Package p; - - for(int i = 0; i < packages.length; i++) - { - p = new Package(packages[i], - specName, - vendor, - version, - "GNU Classpath", - "GNU", - Configuration.CLASSPATH_VERSION, - null, - null); + p = new Package(packages[i], + specName, + vendor, + version, + "GNU Classpath", + "GNU", + Configuration.CLASSPATH_VERSION, + null, + null); - definedPackages.put(packages[i], p); - } + definedPackages.put(packages[i], p); } + } } - - static final Class defineClass(ClassLoader cl, String name, - byte[] data, int offset, int len, - ProtectionDomain pd) - throws ClassFormatError - { + + static final Class<?> defineClass(ClassLoader cl, String name, + byte[] data, int offset, int len, + ProtectionDomain pd) + throws ClassFormatError + { VM_Type vmType = VM_ClassLoader.defineClassInternal(name, data, offset, len, cl); - Class ans = vmType.getClassForType(); + Class<?> ans = vmType.getClassForType(); JikesRVMSupport.setClassProtectionDomain(ans, pd); VM_HashMap mapForCL = (VM_HashMap)loadedClasses.get(cl); if (mapForCL == null) { @@ -105,87 +105,87 @@ } mapForCL.put(name, ans); return ans; - } + } - static final void resolveClass(Class c) { + static final void resolveClass(Class<?> c) { VM_Type cls = JikesRVMSupport.getTypeForClass(c); cls.resolve(); cls.instantiate(); cls.initialize(); } - static final Class loadClass(String name, boolean resolve) - throws ClassNotFoundException + static final Class<?> loadClass(String name, boolean resolve) + throws ClassNotFoundException { return VM_BootstrapClassLoader.getBootstrapClassLoader().loadClass(name, resolve); } static URL getResource(String name) { - Enumeration e = getResources(name); + Enumeration<URL> e = getResources(name); if (e.hasMoreElements()) return (URL)e.nextElement(); return null; } - - static Enumeration getResources(String name) + + static Enumeration<URL> getResources(String name) { StringTokenizer st = new StringTokenizer( - SystemProperties.getProperty("java.boot.class.path", "."), - File.pathSeparator); - Vector v = new Vector(); + SystemProperties.getProperty("java.boot.class.path", "."), + File.pathSeparator); + Vector<URL> v = new Vector<URL>(); while (st.hasMoreTokens()) + { + File file = new File(st.nextToken()); + if (file.isDirectory()) { - File file = new File(st.nextToken()); - if (file.isDirectory()) - { - try - { - File f = new File(file, name); - if (!f.exists()) continue; - v.add(new URL("file://" + f.getAbsolutePath())); - } - catch (MalformedURLException e) - { - throw new Error(e); - } - } - else if (file.isFile()) - { - ZipFile zip; + try + { + File f = new File(file, name); + if (!f.exists()) continue; + v.add(new URL("file://" + f.getAbsolutePath())); + } + catch (MalformedURLException e) + { + throw new Error(e); + } + } + else if (file.isFile()) + { + ZipFile zip; + synchronized(bootjars) + { + zip = (ZipFile) bootjars.get(file.getName()); + } + if(zip == null) + { + try + { + zip = new ZipFile(file); synchronized(bootjars) - { - zip = (ZipFile) bootjars.get(file.getName()); - } - if(zip == null) - { - try - { - zip = new ZipFile(file); - synchronized(bootjars) - { - bootjars.put(file.getName(), zip); - } - } - catch (IOException e) - { - continue; - } - } - String zname = name.startsWith("/") ? name.substring(1) : name; - if (zip.getEntry(zname) == null) - continue; - try - { - v.add(new URL("jar:file://" - + file.getAbsolutePath() + "!/" + zname)); - } - catch (MalformedURLException e) - { - throw new Error(e); - } - } + { + bootjars.put(file.getName(), zip); + } + } + catch (IOException e) + { + continue; + } + } + String zname = name.startsWith("/") ? name.substring(1) : name; + if (zip.getEntry(zname) == null) + continue; + try + { + v.add(new URL("jar:file://" + + file.getAbsolutePath() + "!/" + zname)); + } + catch (MalformedURLException e) + { + throw new Error(e); + } } + } return v.elements(); } @@ -193,7 +193,7 @@ URL indexList = getResource("META-INF/INDEX.LIST"); if (indexList != null) { try { - Set packageSet = new HashSet(); + Set<String> packageSet = new HashSet<String>(); String line; int lineToSkip = 3; BufferedReader reader = new BufferedReader(new InputStreamReader(indexList.openStream())); @@ -222,10 +222,12 @@ static Package getPackage(String name) { return (Package)definedPackages.get(name); } - + static Package[] getPackages() { Package[] packages = new Package[definedPackages.size()]; - Iterator it = definedPackages.valueIterator(); + + @SuppressWarnings("unchecked") // Until VM_HashMap gets genericised + Iterator<Package> it = definedPackages.valueIterator(); int idx = 0; while (it.hasNext()) { packages[idx++] = (Package)it.next(); @@ -233,7 +235,7 @@ return packages; } - static final Class getPrimitiveClass(char type) { + static final Class<?> getPrimitiveClass(char type) { VM_Type t; switch (type) { case 'Z': @@ -273,11 +275,13 @@ return true; } - static final Map packageAssertionStatus() { + @SuppressWarnings({"unchecked","unused"}) // TODO should this method be deleted ? + private static final Map packageAssertionStatus() { return new HashMap(); } - static final Map classAssertionStatus() { + @SuppressWarnings({"unchecked","unused"}) // TODO should this method be deleted ? + private static final Map classAssertionStatus() { return new HashMap(); } @@ -285,34 +289,37 @@ return VM_ClassLoader.getApplicationClassLoader(); } - static Class[] getAllLoadedClasses() { - Vector classList = new Vector(); - Iterator classLoaderMaps = loadedClasses.valueIterator(); + static Class<?>[] getAllLoadedClasses() { + Vector<Class<?>> classList = new Vector<Class<?>>(); + @SuppressWarnings("unchecked") // Until VM_HashMap gets genericised + Iterator<VM_HashMap> classLoaderMaps = loadedClasses.valueIterator(); while (classLoaderMaps.hasNext()) { VM_HashMap classes = (VM_HashMap)classLoaderMaps.next(); - Iterator classIterator = classes.valueIterator(); + @SuppressWarnings("unchecked") // Until VM_HashMap gets genericised + Iterator<Class<?>> classIterator = classes.valueIterator(); while (classIterator.hasNext()) classList.add(classIterator.next()); } - Class[] result = new Class[classList.size()]; + Class<?>[] result = new Class[classList.size()]; return (Class[])classList.toArray(result); } - static Class[] getInitiatedClasses(ClassLoader classLoader) { + static Class<?>[] getInitiatedClasses(ClassLoader classLoader) { VM_HashMap mapForCL = (VM_HashMap)loadedClasses.get(classLoader); if (mapForCL == null) return new Class[]{}; - Vector classList = new Vector(); - Iterator classIterator = mapForCL.valueIterator(); + Vector<Class<?>> classList = new Vector<Class<?>>(); + @SuppressWarnings("unchecked") // Until VM_HashMap gets genericised + Iterator<Class<?>> classIterator = mapForCL.valueIterator(); while (classIterator.hasNext()) classList.add(classIterator.next()); - Class[] result = new Class[classList.size()]; + Class<?>[] result = new Class[classList.size()]; return (Class[])classList.toArray(result); } - static Class findLoadedClass(ClassLoader cl, String name) { + static Class<?> findLoadedClass(ClassLoader cl, String name) { VM_HashMap mapForCL = (VM_HashMap)loadedClasses.get(cl); if (mapForCL == null) return null; - return (Class)mapForCL.get(name); + return (Class<?>)mapForCL.get(name); } private static Instrumentation instrumenter = null; @@ -321,16 +328,16 @@ instrumenter = theInstrumenter; } - static final Class defineClassWithTransformers(ClassLoader loader, String name, byte[] data, - int offset, int len, ProtectionDomain pd) { - + static final Class<?> defineClassWithTransformers(ClassLoader loader, String name, byte[] data, + int offset, int len, ProtectionDomain pd) { + if (instrumenter != null) { byte[] modifiedData = new byte[len]; System.arraycopy(data, offset, modifiedData, 0, len); String jvmName = name.replace('.', '/'); modifiedData = ((InstrumentationImpl)instrumenter).callTransformers(loader, jvmName, null, pd, modifiedData); - + return defineClass(loader, name, modifiedData, 0, modifiedData.length, pd); } else { return defineClass(loader, name, data, offset, len, pd); Modified: rvmroot/trunk/rvm/src/java/lang/VMString.java =================================================================== --- rvmroot/trunk/rvm/src/java/lang/VMString.java 2007-01-02 06:26:06 UTC (rev 11255) +++ rvmroot/trunk/rvm/src/java/lang/VMString.java 2007-01-02 07:07:22 UTC (rev 11256) @@ -22,7 +22,8 @@ * @author Ian Rogers */ final class VMString { - private static final WeakHashMap internedStrings = new WeakHashMap(); + private static final WeakHashMap<String,WeakReference> internedStrings = + new WeakHashMap<String,WeakReference>(); /** * Intern the argument string. @@ -32,7 +33,7 @@ static String intern(String str) { if (VM.VerifyAssertions) VM._assert(VM.runningVM); synchronized (internedStrings) { - WeakReference ref = (WeakReference)internedStrings.get(str); + WeakReference ref = internedStrings.get(str); if (ref != null) { String s = (String)ref.get(); if (s != null) { Modified: rvmroot/trunk/rvm/src/java/lang/VMSystem.java =================================================================== --- rvmroot/trunk/rvm/src/java/lang/VMSystem.java 2007-01-02 06:26:06 UTC (rev 11255) +++ rvmroot/trunk/rvm/src/java/lang/VMSystem.java 2007-01-02 07:07:22 UTC (rev 11256) @@ -148,7 +148,7 @@ return new String(buf, 0, len); } - static List environ() { + static List<?> environ() { throw new VM_UnimplementedError(); } } Modified: rvmroot/trunk/rvm/src/java/lang/reflect/Method.java =================================================================== --- rvmroot/trunk/rvm/src/java/lang/reflect/Method.java 2007-01-02 06:26:06 UTC (rev 11255) +++ rvmroot/trunk/rvm/src/java/lang/reflect/Method.java 2007-01-02 07:07:22 UTC (rev 11256) @@ -54,11 +54,11 @@ } } - public Class getDeclaringClass() { + public Class<?> getDeclaringClass() { return method.getDeclaringClass().getClassForType(); } - public Class[] getExceptionTypes() { + public Class<?>[] getExceptionTypes() { VM_TypeReference[] exceptionTypes = method.getExceptionTypes(); if (exceptionTypes == null) { return new Class[0]; @@ -75,7 +75,7 @@ return method.getName().toString(); } - public Class[] getParameterTypes() { + public Class<?>[] getParameterTypes() { return JikesRVMSupport.typesToClasses(method.getParameterTypes()); } @@ -83,7 +83,7 @@ return method.isSynthetic(); } - public Class getReturnType() { + public Class<?> getReturnType() { return method.getReturnType().resolve().getClassForType(); } @@ -159,7 +159,7 @@ sb.append(ClassHelper.getUserName(getReturnType())).append(' '); sb.append(getDeclaringClass().getName()).append('.'); sb.append(getName()).append('('); - Class[] c = getParameterTypes(); + Class<?>[] c = getParameterTypes(); if (c.length > 0) { sb.append(ClassHelper.getUserName(c[0])); @@ -183,13 +183,13 @@ return method.getDeclaredAnnotations(); } - public Annotation getAnnotation(Class annotationClass) { + public <T extends Annotation> T getAnnotation(Class<T> annotationClass) { return method.getAnnotation(annotationClass); } // Generics support - public TypeVariable[] getTypeParameters() { + public TypeVariable<?>[] getTypeParameters() { VM_Atom sig = method.getSignature(); if (sig == null) return new TypeVariable[0]; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rg...@us...> - 2007-01-02 08:22:26
|
Revision: 11257 http://svn.sourceforge.net/jikesrvm/?rev=11257&view=rev Author: rgarner Date: 2007-01-02 00:22:24 -0800 (Tue, 02 Jan 2007) Log Message: ----------- Get rid of compile-time warnings Modified Paths: -------------- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_FileSystem.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Thread.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_AnnotatedElement.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_Annotation.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_Type.java rvmroot/trunk/rvm/src/java/lang/reflect/Constructor.java rvmroot/trunk/rvm/src/java/lang/reflect/Field.java Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_FileSystem.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_FileSystem.java 2007-01-02 07:07:22 UTC (rev 11256) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_FileSystem.java 2007-01-02 08:22:24 UTC (rev 11257) @@ -82,6 +82,24 @@ private static boolean[] standardFdIsNonblocking = new boolean[3]; /** + * Convert a <code>String</code> filename to a byte array. Use the + * deprecated String method because passing it through a character + * set converter is too heavyweight. + * + * RJG - at least I think so: should try switching to the I18N aware + * version sometime + * + * @param fileName File name + * @param asciiName Byte-array representation + */ + @SuppressWarnings("deprecation") + private static byte[] stringToBytes(String fileName) { + byte[] asciiName = new byte[fileName.length()+1]; // +1 for \0 terminator + fileName.getBytes(0, fileName.length(), asciiName, 0); + return asciiName; + } + + /** * Get file status. * @param fileName file name * @param kind kind of info desired (one of STAT_XXX, above) @@ -92,8 +110,7 @@ public static int stat(String fileName, int kind) { // convert file name from unicode to filesystem character set // (assume file name is ascii, for now) - byte[] asciiName = new byte[fileName.length() + 1]; //+1 for null terminator - fileName.getBytes(0, fileName.length(), asciiName, 0); + byte[] asciiName = stringToBytes(fileName); int rc = VM_SysCall.sysStat(asciiName, kind); if (VM.TraceFileSystem) VM.sysWrite("VM_FileSystem.stat: name=" + fileName + " kind=" + kind + " rc=" + rc + "\n"); return rc; @@ -108,8 +125,7 @@ public static int access(String fileName, int kind) { // convert file name from unicode to filesystem character set // (assume file name is ascii, for now) - byte[] asciiName = new byte[fileName.length() + 1]; //+1 for null terminator - fileName.getBytes(0, fileName.length(), asciiName, 0); + byte[] asciiName = stringToBytes(fileName); int rc = VM_SysCall.sysAccess(asciiName, kind); @@ -121,8 +137,7 @@ * Set the modification time on given file. */ public static boolean setLastModified(String fileName, long time) { - byte[] asciiName = new byte[fileName.length() + 1]; - fileName.getBytes(0, fileName.length(), asciiName, 0); + byte[] asciiName = stringToBytes(fileName); // convert milliseconds to seconds int rc = VM_SysCall.sysUtime(asciiName, (int) (time / 1000)); @@ -138,8 +153,7 @@ public static int open(String fileName, int how) { // convert file name from unicode to filesystem character set // (assume file name is ascii, for now) - byte[] asciiName = new byte[fileName.length() + 1]; //+1 for null terminator - fileName.getBytes(0, fileName.length(), asciiName, 0); + byte[] asciiName = stringToBytes(fileName); int fd = VM_SysCall.sysOpen(asciiName, how); if (VM.TraceFileSystem) VM.sysWrite("VM_FileSystem.open: name=" + fileName + " mode=" + how + " fd=" + fd + "\n"); return fd; @@ -480,8 +494,7 @@ // convert directory name from unicode to filesystem character set // (assume directory name is ascii, for now) // - byte[] asciiName = new byte[dirName.length() + 1]; // +1 for null terminator - dirName.getBytes(0, dirName.length(), asciiName, 0); + byte[] asciiName = stringToBytes(dirName); // fill buffer with list of null terminated names, resizing as needed to fit // (List will be in filesystem character set, assume that this is the @@ -534,8 +547,7 @@ // convert file name from unicode to filesystem character set // (assume file name is ascii, for now) // - byte[] asciiName = new byte[fileName.length() + 1]; //+1 for null terminator - fileName.getBytes(0, fileName.length(), asciiName, 0); + byte[] asciiName = stringToBytes(fileName); int rc = VM_SysCall.sysDelete(asciiName); if (rc == 0) return true; else return false; @@ -551,11 +563,9 @@ // convert file name from unicode to filesystem character set // (assume file name is ascii, for now) // - byte[] fromCharStar = new byte[ fromName.length() + 1]; - fromName.getBytes(0, fromName.length(), fromCharStar, 0); + byte[] fromCharStar = stringToBytes(fromName); - byte[] toCharStar = new byte[ toName.length() + 1]; - toName.getBytes(0, toName.length(), toCharStar, 0); + byte[] toCharStar = stringToBytes(toName); int rc = VM_SysCall.sysRename(fromCharStar, toCharStar); @@ -573,8 +583,7 @@ // convert file name from unicode to filesystem character set // (assume file name is ascii, for now) // - byte[] asciiName = new byte[fileName.length() + 1]; //+1 for null terminator - fileName.getBytes(0, fileName.length(), asciiName, 0); + byte[] asciiName = stringToBytes(fileName); int rc = VM_SysCall.sysMkDir(asciiName); return (rc == 0); } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Thread.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Thread.java 2007-01-02 07:07:22 UTC (rev 11256) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Thread.java 2007-01-02 08:22:24 UTC (rev 11257) @@ -11,12 +11,10 @@ import com.ibm.jikesrvm.memorymanagers.mminterface.MM_Constants; import com.ibm.jikesrvm.memorymanagers.mminterface.MM_Interface; -// Used for Javadoc: -import com.ibm.jikesrvm.memorymanagers.mminterface.VM_CollectorThread; +import com.ibm.jikesrvm.memorymanagers.mminterface.VM_CollectorThread; // Used for Javadoc import com.ibm.jikesrvm.jni.VM_JNIEnvironment; -import org.mmtk.utility.Log; import com.ibm.jikesrvm.mm.mmtk.Barriers; import org.vmmagic.pragma.*; @@ -616,6 +614,7 @@ * Begin execution of current thread by calling its "run" method. */ @Interruptible + @SuppressWarnings("unused") // Called by back-door methods. private static void startoff () { VM_Thread currentThread = getCurrentThread(); if (trace) VM.sysWriteln("VM_Thread.startoff(): about to call ", @@ -1294,7 +1293,9 @@ /** Pre-allocate the dump buffer, since dump() might get called inside GC. */ private static char[] dumpBuffer = new char[MAX_DUMP_LEN]; + @SuppressWarnings("unused") // Actually used by indirect means private static int dumpBufferLock = 0; + /** Reset at boot time. */ private static Offset dumpBufferLockOffset = Offset.max(); Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_AnnotatedElement.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_AnnotatedElement.java 2007-01-02 07:07:22 UTC (rev 11256) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_AnnotatedElement.java 2007-01-02 08:22:24 UTC (rev 11257) @@ -151,16 +151,20 @@ VM_TypeReference annotationTypeRef = VM_TypeReference.findOrCreate(annotationClass); if (runtimeVisibleAnnotations != null) { for(int i=0; i < runtimeVisibleAnnotations.length; i++) { - if(runtimeVisibleAnnotations[i].annotationType() == annotationTypeRef) { - return (T)runtimeVisibleAnnotations[i].getValue(); - } + if(runtimeVisibleAnnotations[i].annotationType() == annotationTypeRef) { + @SuppressWarnings("unchecked") // If T extends Annotation, surely an Annotation is a T ??? + T result = (T)runtimeVisibleAnnotations[i].getValue(); + return result; + } } } if (retainRuntimeInvisibleAnnotations && (runtimeInvisibleAnnotations != null)) { for(int i=0; i < runtimeInvisibleAnnotations.length; i++) { - if(runtimeInvisibleAnnotations[i].annotationType() == annotationTypeRef) { - return (T)runtimeInvisibleAnnotations[i].getValue(); - } + if(runtimeInvisibleAnnotations[i].annotationType() == annotationTypeRef) { + @SuppressWarnings("unchecked") // If T extends Annotation, surely an Annotation is a T ??? + T result = (T)runtimeInvisibleAnnotations[i].getValue(); + return result; + } } } return null; @@ -169,7 +173,7 @@ * Is there an annotation of this type implemented on this annotated * element? */ - public boolean isAnnotationPresent(Class annotationClass) { + public boolean isAnnotationPresent(Class<? extends Annotation> annotationClass) { VM_TypeReference annotationTypeRef = VM_TypeReference.findOrCreate(annotationClass); if (runtimeVisibleAnnotations != null) { for(int i=0; i < runtimeVisibleAnnotations.length; i++) { Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_Annotation.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_Annotation.java 2007-01-02 07:07:22 UTC (rev 11256) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_Annotation.java 2007-01-02 08:22:24 UTC (rev 11257) @@ -16,7 +16,6 @@ import java.io.IOException; import org.vmmagic.unboxed.Offset; import java.lang.annotation.Annotation; -import java.lang.JikesRVMSupport; import java.util.Arrays; /** @@ -240,11 +239,15 @@ case 'e': { int typeNameIndex = input.readUnsignedShort(); + @SuppressWarnings("unchecked") Class enumType = VM_TypeReference.findOrCreate(classLoader, VM_Class.getUtf(constantPool, typeNameIndex) ).resolve().getClassForType(); int constNameIndex = input.readUnsignedShort(); - value = Enum.valueOf(enumType, VM_Class.getUtf(constantPool, constNameIndex).toString()); + + @SuppressWarnings("unchecked") // Yes, we're breaking type safety here. + Enum tmp = Enum.valueOf(enumType, VM_Class.getUtf(constantPool, constNameIndex).toString()); + value = tmp; break; } case 'c': @@ -381,7 +384,7 @@ * * @return Class object of interface annotation object implements */ - public Class annotationType() { + public Class<? extends Annotation> annotationType() { return vmAnnotation.annotationType().resolve().getClassForType(); } /** @@ -415,7 +418,7 @@ * A class to decode and hold the name and its associated value for * an annotation member */ - private static final class AnnotationMember implements Comparable { + private static final class AnnotationMember implements Comparable<AnnotationMember> { /** * Name of element */ @@ -509,8 +512,7 @@ /** * Ordering for sorted annotation members */ - public int compareTo(Object o) { - AnnotationMember am = (AnnotationMember)o; + public int compareTo(AnnotationMember am) { if(am.name != this.name) { return am.name.toString().compareTo(this.name.toString()); } else { @@ -518,7 +520,9 @@ return Arrays.hashCode((Object[])value) - Arrays.hashCode((Object[])am.value); } else { - return ((Comparable)value).compareTo(am.value); + @SuppressWarnings("unchecked") // True generic programming, we can't type check it in Java + Comparable<Object> cValue = (Comparable)value; + return cValue.compareTo(am.value); } } } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_Type.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_Type.java 2007-01-02 07:07:22 UTC (rev 11256) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_Type.java 2007-01-02 08:22:24 UTC (rev 11257) @@ -280,7 +280,7 @@ * Instance of java.lang.Class corresponding to this type. * This is commonly used for reflection. */ - public final Class getClassForType() { + public final <T> Class<T> getClassForType() { // Resolve the class so that we don't need to resolve it // in reflection code if (!isResolved()) { Modified: rvmroot/trunk/rvm/src/java/lang/reflect/Constructor.java =================================================================== --- rvmroot/trunk/rvm/src/java/lang/reflect/Constructor.java 2007-01-02 07:07:22 UTC (rev 11256) +++ rvmroot/trunk/rvm/src/java/lang/reflect/Constructor.java 2007-01-02 08:22:24 UTC (rev 11257) @@ -46,17 +46,17 @@ public boolean equals(Object other) { if (other instanceof Constructor) { - return constructor == ((Constructor)other).constructor; + return constructor == ((Constructor<?>)other).constructor; } else { return false; } } - public Class getDeclaringClass() { + public Class<T> getDeclaringClass() { return constructor.getDeclaringClass().getClassForType(); } - public Class[] getExceptionTypes() { + public Class<?>[] getExceptionTypes() { VM_TypeReference[] exceptionTypes = constructor.getExceptionTypes(); if (exceptionTypes == null) { return new Class[0]; @@ -73,7 +73,7 @@ return getDeclaringClass().getName(); } - public Class[] getParameterTypes() { + public Class<?>[] getParameterTypes() { return JikesRVMSupport.typesToClasses(constructor.getParameterTypes()); } @@ -142,7 +142,7 @@ StringBuilder sb = new StringBuilder(128); Modifier.toString(getModifiers(), sb).append(' '); sb.append(getDeclaringClass().getName()).append('('); - Class[] c = getParameterTypes(); + Class<?>[] c = getParameterTypes(); if (c.length > 0) { sb.append(ClassHelper.getUserName(c[0])); @@ -162,7 +162,7 @@ // Generics support - public TypeVariable[] getTypeParameters() { + public TypeVariable<?>[] getTypeParameters() { VM_Atom sig = constructor.getSignature(); if (sig == null) return new TypeVariable[0]; @@ -209,7 +209,7 @@ return sb.toString(); } - static void addTypeParameters(StringBuilder sb, TypeVariable[] typeArgs) { + static void addTypeParameters(StringBuilder sb, TypeVariable<?>[] typeArgs) { if (typeArgs.length == 0) return; sb.append('<'); Modified: rvmroot/trunk/rvm/src/java/lang/reflect/Field.java =================================================================== --- rvmroot/trunk/rvm/src/java/lang/reflect/Field.java 2007-01-02 07:07:22 UTC (rev 11256) +++ rvmroot/trunk/rvm/src/java/lang/reflect/Field.java 2007-01-02 08:22:24 UTC (rev 11257) @@ -100,7 +100,7 @@ return getCharInternal(object); } - public Class getDeclaringClass() { + public Class<?> getDeclaringClass() { return field.getDeclaringClass().getClassForType(); } @@ -137,7 +137,7 @@ return getShortInternal(object); } - public Class getType() { + public Class<?> getType() { return field.getType().resolve().getClassForType(); } @@ -535,7 +535,7 @@ return field.getDeclaredAnnotations(); } - public Annotation getAnnotation(Class annotationClass) { + public <T extends Annotation> T getAnnotation(Class<T> annotationClass) { return field.getAnnotation(annotationClass); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rg...@us...> - 2007-01-02 10:39:08
|
Revision: 11258 http://svn.sourceforge.net/jikesrvm/?rev=11258&view=rev Author: rgarner Date: 2007-01-02 02:39:07 -0800 (Tue, 02 Jan 2007) Log Message: ----------- Restore javac compatibility Modified Paths: -------------- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Runtime.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/MM_Interface.java rvmroot/trunk/rvm/src/java/lang/Class.java Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Runtime.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Runtime.java 2007-01-02 08:22:24 UTC (rev 11257) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Runtime.java 2007-01-02 10:39:07 UTC (rev 11258) @@ -306,7 +306,7 @@ * (ready for initializer to be run on it) * See also: bytecode 0xbb ("new") */ - public static <T> T resolvedNewScalar(VM_Class cls) { + public static Object resolvedNewScalar(VM_Class cls) { int allocator = MM_Interface.pickAllocator(cls); int site = MM_Interface.getAllocationSite(false); @@ -334,7 +334,7 @@ * (ready for initializer to be run on it) * See also: bytecode 0xbb ("new") */ - public static <T> T resolvedNewScalar(int size, + public static Object resolvedNewScalar(int size, Object[] tib, boolean hasFinalizer, int allocator, @@ -353,7 +353,7 @@ } // Allocate the object and initialize its header - T newObj = MM_Interface.allocateScalar(size, tib, allocator, align, offset, site); + Object newObj = MM_Interface.allocateScalar(size, tib, allocator, align, offset, site); // Deal with finalization if (hasFinalizer) MM_Interface.addFinalizer(newObj); Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/MM_Interface.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/MM_Interface.java 2007-01-02 08:22:24 UTC (rev 11257) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/memorymanagers/mminterface/MM_Interface.java 2007-01-02 10:39:07 UTC (rev 11258) @@ -16,12 +16,10 @@ import com.ibm.jikesrvm.VM_CodeArray; import com.ibm.jikesrvm.VM_CompiledMethod; import com.ibm.jikesrvm.VM_HeapLayoutConstants; -import com.ibm.jikesrvm.VM_DynamicLibrary; import com.ibm.jikesrvm.VM_JavaHeader; import com.ibm.jikesrvm.VM_Magic; import com.ibm.jikesrvm.VM_Memory; import com.ibm.jikesrvm.VM_ObjectModel; -import com.ibm.jikesrvm.VM_Processor; import com.ibm.jikesrvm.classloader.VM_Type; import com.ibm.jikesrvm.classloader.VM_Array; import com.ibm.jikesrvm.classloader.VM_Class; @@ -515,13 +513,13 @@ */ @Inline @Uninterruptible - public static <T> T allocateScalar(int size, Object [] tib, int allocator, + public static Object allocateScalar(int size, Object [] tib, int allocator, int align, int offset, int site) { Selected.Mutator mutator = Selected.Mutator.get(); allocator = mutator.checkAllocator(VM_Memory.alignUp(size, MIN_ALIGNMENT), align, allocator); Address region = allocateSpace(mutator, size, align, offset, allocator, site); - T result = (T)VM_ObjectModel.initializeScalar(region, tib, size); + Object result = VM_ObjectModel.initializeScalar(region, tib, size); mutator.postAlloc(ObjectReference.fromObject(result), ObjectReference.fromObject(tib), size, allocator); return result; Modified: rvmroot/trunk/rvm/src/java/lang/Class.java =================================================================== --- rvmroot/trunk/rvm/src/java/lang/Class.java 2007-01-02 08:22:24 UTC (rev 11257) +++ rvmroot/trunk/rvm/src/java/lang/Class.java 2007-01-02 10:39:07 UTC (rev 11258) @@ -632,7 +632,8 @@ } // Allocate an uninitialized instance; - T obj = VM_Runtime.resolvedNewScalar(cls); + @SuppressWarnings("unchecked") // yes, we're giving an anonymous object a type. + T obj = (T)VM_Runtime.resolvedNewScalar(cls); // Run the default constructor on the it. VM_Reflection.invoke(defaultConstructor, obj, null); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ste...@us...> - 2007-01-04 12:31:49
|
Revision: 11262 http://svn.sourceforge.net/jikesrvm/?rev=11262&view=rev Author: steveb-oss Date: 2007-01-04 04:31:46 -0800 (Thu, 04 Jan 2007) Log Message: ----------- This is a work-around for a problem due to the complicated relationship between VM_ForwardReference and VM_Assembler, and their inner classes under PPC. It seems that the refactoring in revision 11260 exposed an underlying bug. See bug tracker for more information Revision Links: -------------- http://svn.sourceforge.net/jikesrvm/?rev=11260&view=rev Modified Paths: -------------- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_ForwardReference.java rvmroot/trunk/rvm/src-generated/ia32-assembler/VM_Assembler.in rvmroot/trunk/rvm/src-generated/ia32-assembler-opt/Makefile rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/VM_Assembler.java Added Paths: ----------- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_AbstractAssembler.java rvmroot/trunk/rvm/src-generated/ia32-assembler-opt/VM_AbstractAssembler.fake rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/VM_AssemblerShortBranch.java Added: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_AbstractAssembler.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_AbstractAssembler.java (rev 0) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_AbstractAssembler.java 2007-01-04 12:31:46 UTC (rev 11262) @@ -0,0 +1,25 @@ +/* + * This file is part of Jikes RVM (http://jikesrvm.sourceforge.net). + * The Jikes RVM project is distributed under the Common Public License (CPL). + * A copy of the license is included in the distribution, and is also + * available at http://www.opensource.org/licenses/cpl1.0.php + * + * (C) Copyright IBM Corp. 2007 + * + * $Id: VM_Assembler.java 11260 2007-01-02 23:25:20Z steveb-oss $ + * + * This class has been created to work around a bug whereby the system seems to have gotten + * confused by the relationship between: + * + * VM_ForwardReference -> VM_ForwardReference.ShortBranch -> VM_Assembler.ShortBranch, and VM_Assembler + * + * This problem does not exist under IA32 since there is no need for VM_Assembler.ShortBranch + */ +package com.ibm.jikesrvm; + +public abstract class VM_AbstractAssembler { + abstract void patchShortBranch(int sourceMachinecodeIndex); + abstract void patchUnconditionalBranch(int sourceMachinecodeIndex); + abstract void patchConditionalBranch(int sourceMachinecodeIndex); + abstract void patchSwitchCase(int sourceMachinecodeIndex); +} Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_ForwardReference.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_ForwardReference.java 2007-01-04 02:11:45 UTC (rev 11261) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_ForwardReference.java 2007-01-04 12:31:46 UTC (rev 11262) @@ -9,8 +9,6 @@ // $Id$ package com.ibm.jikesrvm; -import com.ibm.jikesrvm.ArchitectureSpecific.VM_Assembler; - /** * * A forward reference has a machine-code-index source and optionally @@ -61,7 +59,7 @@ // rewrite source to reference current machine code (in asm's machineCodes) // - public abstract void resolve (VM_Assembler asm); + public abstract void resolve (VM_AbstractAssembler asm); // add a new reference r to a priority queue q // return the updated queue @@ -106,7 +104,7 @@ super(source, btarget); } - public void resolve (VM_Assembler asm) { + public void resolve (VM_AbstractAssembler asm) { asm.patchUnconditionalBranch(sourceMachinecodeIndex); } @@ -118,7 +116,7 @@ super(source, btarget); } - public void resolve (VM_Assembler asm) { + public void resolve (VM_AbstractAssembler asm) { asm.patchConditionalBranch(sourceMachinecodeIndex); } @@ -134,7 +132,7 @@ super(source, btarget); } - public void resolve (VM_Assembler asm) { + public void resolve (VM_AbstractAssembler asm) { asm.patchShortBranch(sourceMachinecodeIndex); } @@ -146,7 +144,7 @@ super(source, btarget); } - public void resolve (VM_Assembler asm) { + public void resolve (VM_AbstractAssembler asm) { asm.patchSwitchCase(sourceMachinecodeIndex); } Modified: rvmroot/trunk/rvm/src-generated/ia32-assembler/VM_Assembler.in =================================================================== --- rvmroot/trunk/rvm/src-generated/ia32-assembler/VM_Assembler.in 2007-01-04 02:11:45 UTC (rev 11261) +++ rvmroot/trunk/rvm/src-generated/ia32-assembler/VM_Assembler.in 2007-01-04 12:31:46 UTC (rev 11262) @@ -177,7 +177,7 @@ * @author Julian Dolby * @author Bowen Alpern */ -public abstract class VM_Assembler implements VM_RegisterConstants, VM_AssemblerConstants { +public abstract class VM_Assembler extends VM_AbstractAssembler implements VM_RegisterConstants, VM_AssemblerConstants { /** * The lister object is used to print generated machine code. Modified: rvmroot/trunk/rvm/src-generated/ia32-assembler-opt/Makefile =================================================================== --- rvmroot/trunk/rvm/src-generated/ia32-assembler-opt/Makefile 2007-01-04 02:11:45 UTC (rev 11261) +++ rvmroot/trunk/rvm/src-generated/ia32-assembler-opt/Makefile 2007-01-04 12:31:46 UTC (rev 11262) @@ -28,7 +28,7 @@ VM_ASM_JAVA=$(SCRATCH_DIR)/com/ibm/jikesrvm/VM_Assembler.java VM_ASM_CLASS=$(SCRATCH_DIR)/com/ibm/jikesrvm/VM_Assembler.class -FAKES = ArchitectureSpecific.fake VM_CodeArray.fake VM_Lister.fake VM.fake VM_Magic.fake VM_MachineCode.fake VM_Compiler.fake +FAKES = ArchitectureSpecific.fake VM_CodeArray.fake VM_Lister.fake VM.fake VM_Magic.fake VM_MachineCode.fake VM_Compiler.fake VM_AbstractAssembler.fake FAKE_JAVA = $(patsubst %.fake,%.java,$(FAKES)) NoInline.java Offset.java Word.java FAKE_SRC = $(patsubst %.fake,$(SCRATCH_DIR)/com/ibm/jikesrvm/%.java,$(FAKES)) \ $(SCRATCH_DIR)/org/vmmagic/pragma/NoInline.java \ Added: rvmroot/trunk/rvm/src-generated/ia32-assembler-opt/VM_AbstractAssembler.fake =================================================================== --- rvmroot/trunk/rvm/src-generated/ia32-assembler-opt/VM_AbstractAssembler.fake (rev 0) +++ rvmroot/trunk/rvm/src-generated/ia32-assembler-opt/VM_AbstractAssembler.fake 2007-01-04 12:31:46 UTC (rev 11262) @@ -0,0 +1,19 @@ +/* + * This file is part of Jikes RVM (http://jikesrvm.sourceforge.net). + * The Jikes RVM project is distributed under the Common Public License (CPL). + * A copy of the license is included in the distribution, and is also + * available at http://www.opensource.org/licenses/cpl1.0.php + * + * (C) Copyright IBM Corp. 2003 + */ +//$Id: VM_Compiler.fake 11260 2007-01-02 23:25:20Z steveb-oss $ +package com.ibm.jikesrvm; +/** + * @author Dave Grove + */ +public abstract class VM_AbstractAssembler { + abstract void patchShortBranch(int sourceMachinecodeIndex); + abstract void patchUnconditionalBranch(int sourceMachinecodeIndex); + abstract void patchConditionalBranch(int sourceMachinecodeIndex); + abstract void patchSwitchCase(int sourceMachinecodeIndex); +} Modified: rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/VM_Assembler.java =================================================================== --- rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/VM_Assembler.java 2007-01-04 02:11:45 UTC (rev 11261) +++ rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/VM_Assembler.java 2007-01-04 12:31:46 UTC (rev 11262) @@ -39,16 +39,16 @@ * @author Derek Lieber * @modified Dave Grove * @modified Kris Venstermans - * @modified Daniel Frampton + * @modified Daniel Frampton */ -public abstract class VM_Assembler implements VM_BaselineConstants, +public abstract class VM_Assembler extends VM_AbstractAssembler implements VM_BaselineConstants, VM_AssemblerConstants { private VM_MachineCode mc; private int mIP; // current machine code instruction private boolean shouldPrint; - private VM_Compiler compiler; // VM_Baseline compiler instance for this assembler. May be null. + VM_Compiler compiler; // VM_Baseline compiler instance for this assembler. May be null. public VM_Assembler (int length) { this(length, false); @@ -328,7 +328,7 @@ public final VM_ForwardReference emitForwardB() { VM_ForwardReference fr; if (compiler != null) { - fr = new ShortBranch(mIP, compiler.spTopOffset); + fr = new VM_AssemblerShortBranch(mIP, compiler.spTopOffset); } else { fr = new VM_ForwardReference.ShortBranch(mIP); } @@ -367,7 +367,7 @@ public final VM_ForwardReference emitForwardBL() { VM_ForwardReference fr; if (compiler != null) { - fr = new ShortBranch(mIP, compiler.spTopOffset); + fr = new VM_AssemblerShortBranch(mIP, compiler.spTopOffset); } else { fr = new VM_ForwardReference.ShortBranch(mIP); } @@ -428,7 +428,7 @@ public final VM_ForwardReference emitForwardBC(int cc) { VM_ForwardReference fr; if (compiler != null) { - fr = new ShortBranch(mIP, compiler.spTopOffset); + fr = new VM_AssemblerShortBranch(mIP, compiler.spTopOffset); } else { fr = new VM_ForwardReference.ShortBranch(mIP); } @@ -2274,21 +2274,6 @@ fr3.resolve((ArchitectureSpecific.VM_Assembler) this); } - private static class ShortBranch extends VM_ForwardReference.ShortBranch { - final int spTopOffset; - - ShortBranch (int source, int sp) { - super(source); - spTopOffset = sp; - } - public void resolve (VM_Assembler asm) { - super.resolve((ArchitectureSpecific.VM_Assembler) asm); - if (asm.compiler != null) { - asm.compiler.spTopOffset = spTopOffset; - } - } - } - public static int getTargetOffset(int instr) { int opcode = (instr >>> 26) & 0x3F; int extendedOpcode; Added: rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/VM_AssemblerShortBranch.java =================================================================== --- rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/VM_AssemblerShortBranch.java (rev 0) +++ rvmroot/trunk/rvm/src-ppc/com/ibm/jikesrvm/VM_AssemblerShortBranch.java 2007-01-04 12:31:46 UTC (rev 11262) @@ -0,0 +1,34 @@ +/* + * This file is part of Jikes RVM (http://jikesrvm.sourceforge.net). + * The Jikes RVM project is distributed under the Common Public License (CPL). + * A copy of the license is included in the distribution, and is also + * available at http://www.opensource.org/licenses/cpl1.0.php + * + * (C) Copyright IBM Corp. 2007 + * + * $Id: VM_Assembler.java 11260 2007-01-02 23:25:20Z steveb-oss $ + * + * This class was formerly a private static inner class of VM_Assembler, but has + * been pulled out to work around a bug whereby the system seems to have gotten + * confused by the relationship between: + * + * VM_ForwardReference -> VM_ForwardReference.ShortBranch -> VM_Assembler.ShortBranch, and VM_Assembler + * + * This problem does not exist under IA32 since there is no need for VM_Assembler.ShortBranch + */ +package com.ibm.jikesrvm; + +class VM_AssemblerShortBranch extends VM_ForwardReference.ShortBranch { + final int spTopOffset; + + VM_AssemblerShortBranch (int source, int sp) { + super(source); + spTopOffset = sp; + } + public void resolve (VM_AbstractAssembler asm) { + super.resolve(asm); + if (((VM_Assembler) asm).compiler != null) { + ((VM_Assembler) asm).compiler.spTopOffset = spTopOffset; + } + } + } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rg...@us...> - 2007-01-09 08:31:22
|
Revision: 11275 http://svn.sourceforge.net/jikesrvm/?rev=11275&view=rev Author: rgarner Date: 2007-01-09 00:31:20 -0800 (Tue, 09 Jan 2007) Log Message: ----------- Remove compile-time warnings Modified Paths: -------------- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_BootstrapClassLoader.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/jni/VM_JNIFunctions.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/jni/VM_JNIGlobalRefTable.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/osr/OSR_EncodedOSRMap.java rvmroot/trunk/rvm/src/java/io/VMObjectStreamClass.java rvmroot/trunk/rvm/src/java/lang/Class.java rvmroot/trunk/rvm/src/java/lang/VMSecurityManager.java rvmroot/trunk/rvm/src/java/lang/VMString.java rvmroot/trunk/rvm/src/java/lang/ref/Reference.java rvmroot/trunk/rvm/src/java/lang/reflect/JikesRVMSupport.java rvmroot/trunk/rvm/src/java/lang/reflect/VMArray.java rvmroot/trunk/rvm/src-generated/opt-scheduler/OPT_OperatorClass.template Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_BootstrapClassLoader.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_BootstrapClassLoader.java 2007-01-08 11:27:20 UTC (rev 11274) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_BootstrapClassLoader.java 2007-01-09 08:31:20 UTC (rev 11275) @@ -78,7 +78,8 @@ * * bootstrapClassLoader.definedPackages = new HashMap(); */ - VM_Entrypoints.classLoaderDefinedPackages.setObjectValueUnchecked(bootstrapClassLoader, new java.util.HashMap()); + VM_Entrypoints.classLoaderDefinedPackages.setObjectValueUnchecked(bootstrapClassLoader, + new java.util.HashMap<String,Package>()); } catch (Exception e) { VM.sysFail("Failed to setup bootstrap class loader"); } @@ -138,7 +139,7 @@ className = className.substring(1, className.length()-2); } VM_Type loadedType = (VM_Type)loaded.get(className); - Class loadedClass; + Class<?> loadedClass; if (loadedType == null) { loadedClass = findClass(className); } else { @@ -180,7 +181,7 @@ InputStream is = getResourceAsStream(className.replace('.','/') + ".class"); if (is == null) throw new ClassNotFoundException(className); DataInputStream dataInputStream = new DataInputStream(is); - Class cls = null; + Class<?> cls = null; try { VM_Type type = VM_ClassLoader.defineClassInternal(className, dataInputStream, this); loaded.put(className, type); Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/jni/VM_JNIFunctions.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/jni/VM_JNIFunctions.java 2007-01-08 11:27:20 UTC (rev 11274) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/jni/VM_JNIFunctions.java 2007-01-09 08:31:20 UTC (rev 11275) @@ -160,7 +160,7 @@ classString = VM_JNIHelpers.createStringFromC(classNameAddress); if (traceJNI) VM.sysWriteln(classString); ClassLoader cl = VM_Class.getClassLoaderFromStackFrame(1); - Class matchedClass = Class.forName(classString.replace('/', '.'), true, cl); + Class<?> matchedClass = Class.forName(classString.replace('/', '.'), true, cl); return env.pushJNIRef(matchedClass); } catch (ClassNotFoundException e) { if (traceJNI) e.printStackTrace(System.err); @@ -184,8 +184,8 @@ if (traceJNI) VM.sysWrite("JNI called: GetSuperclass \n"); try { - Class cls = (Class) env.getJNIRef(classJREF); - Class supercls = cls.getSuperclass(); + Class<?> cls = (Class<?>) env.getJNIRef(classJREF); + Class<?> supercls = cls.getSuperclass(); return supercls == null ? 0 : env.pushJNIRef(supercls); } catch (Throwable unexpected) { if (traceJNI) unexpected.printStackTrace(System.err); @@ -207,8 +207,8 @@ if (traceJNI) VM.sysWrite("JNI called: IsAssignableFrom \n"); try { - Class<?> cls1 = (Class) env.getJNIRef(firstClassJREF); - Class<?> cls2 = (Class) env.getJNIRef(secondClassJREF); + Class<?> cls1 = (Class<?>) env.getJNIRef(firstClassJREF); + Class<?> cls2 = (Class<?>) env.getJNIRef(secondClassJREF); if (cls1==null || cls2==null) return false; return cls2.isAssignableFrom(cls1); @@ -252,11 +252,11 @@ if (traceJNI) VM.sysWrite("JNI called: ThrowNew \n"); try { - Class<?> cls = (Class) env.getJNIRef(throwableClassJREF); + Class<?> cls = (Class<?>) env.getJNIRef(throwableClassJREF); // find the constructor that has a string as a parameter - Class[] argClasses = new Class[1]; + Class<?>[] argClasses = new Class[1]; argClasses[0] = VM_Type.JavaLangStringType.getClassForType(); - Constructor constMethod = cls.getConstructor(argClasses); + Constructor<?> constMethod = cls.getConstructor(argClasses); // prepare the parameter list for reflective invocation Object[] argObjs = new Object[1]; argObjs[0] = VM_JNIHelpers.createStringFromC(exceptionNameAddress); @@ -424,7 +424,7 @@ if (traceJNI) VM.sysWrite("JNI called: AllocObject \n"); try { - Class javaCls = (Class) env.getJNIRef(classJREF); + Class<?> javaCls = (Class<?>) env.getJNIRef(classJREF); VM_Type type = java.lang.JikesRVMSupport.getTypeForClass(javaCls); if (type.isArrayType() || type.isPrimitiveType()) { env.recordException(new InstantiationException()); @@ -459,7 +459,7 @@ if (traceJNI) VM.sysWrite("JNI called: NewObject \n"); try { - Class cls = (Class) env.getJNIRef(classJREF); + Class<?> cls = (Class<?>) env.getJNIRef(classJREF); VM_Class vmcls = java.lang.JikesRVMSupport.getTypeForClass(cls).asClass(); if (vmcls.isAbstract() || vmcls.isInterface()) { @@ -493,7 +493,7 @@ if (traceJNI) VM.sysWrite("JNI called: NewObjectV \n"); try { - Class cls = (Class) env.getJNIRef(classJREF); + Class<?> cls = (Class<?>) env.getJNIRef(classJREF); VM_Class vmcls = java.lang.JikesRVMSupport.getTypeForClass(cls).asClass(); if (vmcls.isAbstract() || vmcls.isInterface()) { env.recordException(new InstantiationException()); @@ -527,7 +527,7 @@ if (traceJNI) VM.sysWrite("JNI called: NewObjectA \n"); try { - Class cls = (Class) env.getJNIRef(classJREF); + Class<?> cls = (Class<?>) env.getJNIRef(classJREF); VM_Class vmcls = java.lang.JikesRVMSupport.getTypeForClass(cls).asClass(); if (vmcls.isAbstract() || vmcls.isInterface()) { @@ -577,7 +577,7 @@ if (traceJNI) VM.sysWrite("JNI called: IsInstanceOf \n"); try { - Class cls = (Class) env.getJNIRef(classJREF); + Class<?> cls = (Class<?>) env.getJNIRef(classJREF); Object obj = (Object) env.getJNIRef(objJREF); if (obj == null) return 0; // null instanceof T is always false VM_Type RHStype = VM_ObjectModel.getObjectType(obj); @@ -613,7 +613,7 @@ VM_Atom sigName = VM_Atom.findOrCreateAsciiAtom(sigString); // get the target class - Class jcls = (Class) env.getJNIRef(classJREF); + Class<?> jcls = (Class<?>) env.getJNIRef(classJREF); VM_Type type = java.lang.JikesRVMSupport.getTypeForClass(jcls); if (!type.isClassType()) { env.recordException(new NoSuchMethodError()); @@ -2171,7 +2171,7 @@ if (traceJNI) VM.sysWrite("JNI called: GetFieldID \n"); try { - Class cls = (Class) env.getJNIRef(classJREF); + Class<?> cls = (Class<?>) env.getJNIRef(classJREF); String fieldString = VM_JNIHelpers.createStringFromC(fieldNameAddress); VM_Atom fieldName = VM_Atom.findOrCreateAsciiAtom(fieldString); @@ -2595,7 +2595,7 @@ VM_Atom sigName = VM_Atom.findOrCreateAsciiAtom(sigString); // get the target class - Class jcls = (Class) env.getJNIRef(classJREF); + Class<?> jcls = (Class<?>) env.getJNIRef(classJREF); VM_Type type = java.lang.JikesRVMSupport.getTypeForClass(jcls); if (!type.isClassType()) { env.recordException(new NoSuchMethodError()); @@ -3321,7 +3321,7 @@ if (traceJNI) VM.sysWrite("JNI called: GetStaticFieldID \n"); try { - Class cls = (Class) env.getJNIRef(classJREF); + Class<?> cls = (Class<?>) env.getJNIRef(classJREF); String fieldString = VM_JNIHelpers.createStringFromC(fieldNameAddress); VM_Atom fieldName = VM_Atom.findOrCreateAsciiAtom(fieldString); @@ -3942,7 +3942,7 @@ try { Object initElement = env.getJNIRef(initElementJREF); - Class cls = (Class) env.getJNIRef(classJREF); + Class<?> cls = (Class<?>) env.getJNIRef(classJREF); if(cls == null) throw new NullPointerException(); @@ -5265,7 +5265,7 @@ try { // get the target class - Class jcls = (Class) env.getJNIRef(classJREF); + Class<?> jcls = (Class<?>) env.getJNIRef(classJREF); VM_Type type = java.lang.JikesRVMSupport.getTypeForClass(jcls); if (!type.isClassType()) { env.recordException(new NoSuchMethodError()); @@ -5326,7 +5326,7 @@ try { // get the target class - Class jcls = (Class) env.getJNIRef(classJREF); + Class<?> jcls = (Class<?>) env.getJNIRef(classJREF); VM_Type type = java.lang.JikesRVMSupport.getTypeForClass(jcls); if (!type.isClassType()) { env.recordException(new NoClassDefFoundError()); @@ -5417,7 +5417,7 @@ VM_Method meth; if (methodObj instanceof Constructor) meth = - java.lang.reflect.JikesRVMSupport.getMethodOf((Constructor) methodObj); + java.lang.reflect.JikesRVMSupport.getMethodOf((Constructor<?>) methodObj); else meth = java.lang.reflect.JikesRVMSupport.getMethodOf((Method) methodObj); Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/jni/VM_JNIGlobalRefTable.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/jni/VM_JNIGlobalRefTable.java 2007-01-08 11:27:20 UTC (rev 11274) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/jni/VM_JNIGlobalRefTable.java 2007-01-09 08:31:20 UTC (rev 11275) @@ -46,7 +46,7 @@ static final int STRONG_REF_BIT = 1 << 30; static int newWeakRef(Object referent) { - int gref = newGlobalRef(new WeakReference(referent)); + int gref = newGlobalRef(new WeakReference<Object>(referent)); return gref & ~STRONG_REF_BIT; } @@ -69,7 +69,8 @@ static Object weakRef(int index) { if (VM.VerifyAssertions) VM._assert( isWeakRef(index)); - WeakReference ref = (WeakReference) refs[ - (index | STRONG_REF_BIT)]; + @SuppressWarnings("unchecked") // yes, we're being bad. + WeakReference<Object> ref = (WeakReference<Object>) refs[ - (index | STRONG_REF_BIT)]; return ref.get(); } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/osr/OSR_EncodedOSRMap.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/osr/OSR_EncodedOSRMap.java 2007-01-08 11:27:20 UTC (rev 11274) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/osr/OSR_EncodedOSRMap.java 2007-01-09 08:31:20 UTC (rev 11275) @@ -97,7 +97,7 @@ * we can not trust the osrlist is in the increasing order of * machine code offset. Sort it first. */ - private void translateMap(LinkedList osrlist) { + private void translateMap(LinkedList<OSR_VariableMapElement> osrlist) { /* sort the list, use the mc offset of the index instruction * as the key. @@ -106,7 +106,7 @@ OSR_VariableMapElement[] osrarray = new OSR_VariableMapElement[n]; for (int i=0; i<n; i++) { - osrarray[i] = (OSR_VariableMapElement)osrlist.get(i); + osrarray[i] = osrlist.get(i); } /* ideally, the osrList should be in sorted order by MC offset, @@ -136,7 +136,7 @@ setIEIndex(i, iei); // get osr map - LinkedList mVarList = elm.mvars; + LinkedList<OSR_MethodVariables> mVarList = elm.mvars; int osrMapIndex = generateOsrMaps(mVarList); // use this offset, and adjust on extractState @@ -204,15 +204,14 @@ * * The MSB of mpc indicates if the next is a valid pair */ - private int generateOsrMaps(LinkedList mVarList) { + private int generateOsrMaps(LinkedList<OSR_MethodVariables> mVarList) { int regmap = (mVarList.size() > 0)? NEXT_BIT:0; int mapIndex = addIntToOsrMap(regmap); // from inner to outer for (int i=0, m=mVarList.size(); i<m; i++) { - OSR_MethodVariables mVar = - (OSR_MethodVariables)mVarList.get(i); + OSR_MethodVariables mVar = mVarList.get(i); _generateMapForOneMethodVariable(mapIndex, mVar, (i==(m-1))); } @@ -229,7 +228,7 @@ int mid = lastMid ? mVar.methId : (mVar.methId | NEXT_BIT); addIntToOsrMap(mid); - LinkedList tupleList = mVar.tupleList; + LinkedList<OSR_LocalRegPair> tupleList = mVar.tupleList; int m = tupleList.size(); // Is this method has variables? @@ -238,8 +237,7 @@ // append each element for (int j=0; j<m; j++) { - OSR_LocalRegPair tuple = - (OSR_LocalRegPair)tupleList.get(j); + OSR_LocalRegPair tuple = tupleList.get(j); boolean isLast = (j == m-1); Modified: rvmroot/trunk/rvm/src/java/io/VMObjectStreamClass.java =================================================================== --- rvmroot/trunk/rvm/src/java/io/VMObjectStreamClass.java 2007-01-08 11:27:20 UTC (rev 11274) +++ rvmroot/trunk/rvm/src/java/io/VMObjectStreamClass.java 2007-01-09 08:31:20 UTC (rev 11275) @@ -21,7 +21,7 @@ */ final class VMObjectStreamClass { - static boolean hasClassInitializer (Class cls) { + static boolean hasClassInitializer (Class<?> cls) { VM_Type t = java.lang.JikesRVMSupport.getTypeForClass(cls); if (t.isClassType()) { return t.asClass().getClassInitializerMethod() != null; Modified: rvmroot/trunk/rvm/src/java/lang/Class.java =================================================================== --- rvmroot/trunk/rvm/src/java/lang/Class.java 2007-01-08 11:27:20 UTC (rev 11274) +++ rvmroot/trunk/rvm/src/java/lang/Class.java 2007-01-09 08:31:20 UTC (rev 11275) @@ -159,7 +159,7 @@ : null; } - public Constructor<T> getConstructor(Class<?> parameterTypes[]) + public Constructor<?> getConstructor(Class<?> parameterTypes[]) throws NoSuchMethodException, SecurityException { checkMemberAccess(Member.PUBLIC); @@ -230,7 +230,7 @@ return result; } - public Constructor<T> getDeclaredConstructor(Class<?> parameterTypes[]) + public Constructor<?> getDeclaredConstructor(Class<?> parameterTypes[]) throws NoSuchMethodException, SecurityException { checkMemberAccess(Member.DECLARED); Modified: rvmroot/trunk/rvm/src/java/lang/VMSecurityManager.java =================================================================== --- rvmroot/trunk/rvm/src/java/lang/VMSecurityManager.java 2007-01-08 11:27:20 UTC (rev 11274) +++ rvmroot/trunk/rvm/src/java/lang/VMSecurityManager.java 2007-01-09 08:31:20 UTC (rev 11275) @@ -26,7 +26,7 @@ */ final class VMSecurityManager { - static Class[] getClassContext() { + static Class<?>[] getClassContext() { VM_StackBrowser b = new VM_StackBrowser(); int frames = 0; VM.disableGC(); @@ -57,7 +57,7 @@ } VM.enableGC(); - Class[] classes = new Class[ frames ]; + Class<?>[] classes = new Class[ frames ]; for(int j = 0; j < iclasses.length; j++) { classes[j] = iclasses[j].getClassForType(); } Modified: rvmroot/trunk/rvm/src/java/lang/VMString.java =================================================================== --- rvmroot/trunk/rvm/src/java/lang/VMString.java 2007-01-08 11:27:20 UTC (rev 11274) +++ rvmroot/trunk/rvm/src/java/lang/VMString.java 2007-01-09 08:31:20 UTC (rev 11275) @@ -22,8 +22,8 @@ * @author Ian Rogers */ final class VMString { - private static final WeakHashMap<String,WeakReference> internedStrings = - new WeakHashMap<String,WeakReference>(); + private static final WeakHashMap<String,WeakReference<String>> internedStrings = + new WeakHashMap<String,WeakReference<String>>(); /** * Intern the argument string. @@ -33,9 +33,9 @@ static String intern(String str) { if (VM.VerifyAssertions) VM._assert(VM.runningVM); synchronized (internedStrings) { - WeakReference ref = internedStrings.get(str); + WeakReference<String> ref = internedStrings.get(str); if (ref != null) { - String s = (String)ref.get(); + String s = ref.get(); if (s != null) { return s; } Modified: rvmroot/trunk/rvm/src/java/lang/ref/Reference.java =================================================================== --- rvmroot/trunk/rvm/src/java/lang/ref/Reference.java 2007-01-08 11:27:20 UTC (rev 11274) +++ rvmroot/trunk/rvm/src/java/lang/ref/Reference.java 2007-01-09 08:31:20 UTC (rev 11275) @@ -45,7 +45,7 @@ * @see java.lang.ref.ReferenceQueue * */ - Reference nextOnQueue; + Reference<?> nextOnQueue; /** Modified: rvmroot/trunk/rvm/src/java/lang/reflect/JikesRVMSupport.java =================================================================== --- rvmroot/trunk/rvm/src/java/lang/reflect/JikesRVMSupport.java 2007-01-08 11:27:20 UTC (rev 11274) +++ rvmroot/trunk/rvm/src/java/lang/reflect/JikesRVMSupport.java 2007-01-09 08:31:20 UTC (rev 11275) @@ -23,8 +23,8 @@ /** * Convert from "vm" type system to "jdk" type system. */ - static Class[] typesToClasses(VM_TypeReference[] types) { - Class[] classes = new Class[types.length]; + static Class<?>[] typesToClasses(VM_TypeReference[] types) { + Class<?>[] classes = new Class[types.length]; for (int i = 0; i < types.length; i++) { classes[i] = types[i].resolve().getClassForType(); } @@ -84,8 +84,9 @@ return new Method(m); } - public static <T> Constructor<T> createConstructor(VM_Method m) { - return new Constructor<T>(m); + @SuppressWarnings("unchecked") // Can't type-check this without <T> type<T>, which breaks javac + public static Constructor<?> createConstructor(VM_Method m) { + return new Constructor(m); } public static VM_Field getFieldOf(Field f) { @@ -96,7 +97,7 @@ return f.method; } - public static VM_Method getMethodOf(Constructor f) { + public static VM_Method getMethodOf(Constructor<?> f) { return f.constructor; } Modified: rvmroot/trunk/rvm/src/java/lang/reflect/VMArray.java =================================================================== --- rvmroot/trunk/rvm/src/java/lang/reflect/VMArray.java 2007-01-08 11:27:20 UTC (rev 11274) +++ rvmroot/trunk/rvm/src/java/lang/reflect/VMArray.java 2007-01-09 08:31:20 UTC (rev 11275) @@ -28,7 +28,7 @@ * @throws NegativeArraySizeException if dim is negative * @throws OutOfMemoryError if memory allocation fails */ - static Object createObjectArray(Class cls, int length) + static Object createObjectArray(Class<?> cls, int length) throws OutOfMemoryError, NegativeArraySizeException { if(cls == null) throw new NullPointerException(); Modified: rvmroot/trunk/rvm/src-generated/opt-scheduler/OPT_OperatorClass.template =================================================================== --- rvmroot/trunk/rvm/src-generated/opt-scheduler/OPT_OperatorClass.template 2007-01-08 11:27:20 UTC (rev 11274) +++ rvmroot/trunk/rvm/src-generated/opt-scheduler/OPT_OperatorClass.template 2007-01-09 08:31:20 UTC (rev 11275) @@ -152,14 +152,14 @@ if (latsize > opclass.id) latObj = latencies.get(opclass.id); // walk through backwards, since any_insn (most general) is first - ArrayList opcrc = opclass.rclasses; + ArrayList<OPT_OperatorClass> opcrc = opclass.rclasses; for (int i = opcrc.size(); latObj == null && i > 0; i--) { - OPT_OperatorClass rc = (OPT_OperatorClass) opcrc.get(i - 1); + OPT_OperatorClass rc = opcrc.get(i - 1); if (latsize > rc.id) latObj = latencies.get(rc.id); } for (int i = rclasses.size(); latObj == null && i > 0; i--) { - OPT_OperatorClass rc = (OPT_OperatorClass) rclasses.get(i - 1); + OPT_OperatorClass rc = rclasses.get(i - 1); latObj = rc.latObj(opclass); } @@ -277,7 +277,7 @@ /** * Resource Classes used by this Operator Class */ - final ArrayList rclasses; + final ArrayList<OPT_OperatorClass> rclasses; /** * Resource Usage Masks @@ -287,8 +287,8 @@ // For internal use only. private OPT_OperatorClass(int _id) { id = _id; - rclasses = new ArrayList(); - latencies = new ArrayList(); + rclasses = new ArrayList<OPT_OperatorClass>(); + latencies = new ArrayList<Integer>(); } // For internal use only. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rg...@us...> - 2007-01-09 08:50:14
|
Revision: 11276 http://svn.sourceforge.net/jikesrvm/?rev=11276&view=rev Author: rgarner Date: 2007-01-09 00:50:12 -0800 (Tue, 09 Jan 2007) Log Message: ----------- Make VM_HashMap a generic type Modified Paths: -------------- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_DynamicLibrary.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Statics.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_ControllerMemory.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_Atom.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_BootstrapClassLoader.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_InterfaceMethodSignature.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_MemberReference.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_TypeReference.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_FieldDatabase.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_InterfaceHierarchy.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_InvalidationDatabase.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SpecializationDatabase.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SummaryDatabase.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/util/VM_HashMap.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/util/VM_HashSet.java rvmroot/trunk/rvm/src/java/lang/VMClassLoader.java Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_DynamicLibrary.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_DynamicLibrary.java 2007-01-09 08:31:20 UTC (rev 11275) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_DynamicLibrary.java 2007-01-09 08:50:12 UTC (rev 11276) @@ -11,7 +11,6 @@ import com.ibm.jikesrvm.ArchitectureSpecific.VM_StackframeLayoutConstants; import com.ibm.jikesrvm.util.*; -import java.util.Iterator; import org.vmmagic.unboxed.*; /** @@ -26,7 +25,8 @@ /** * Currently loaded dynamic libraries. */ - private static final VM_HashMap dynamicLibraries = new VM_HashMap(); + private static final VM_HashMap<String,VM_DynamicLibrary> dynamicLibraries = + new VM_HashMap<String,VM_DynamicLibrary>(); /** * Add symbol for the boot image runner to find symbols within it. @@ -168,7 +168,7 @@ * @return 0 on failure, 1 on success */ public static synchronized int load(String libname) { - VM_DynamicLibrary dl = (VM_DynamicLibrary)dynamicLibraries.get(libname); + VM_DynamicLibrary dl = dynamicLibraries.get(libname); if (dl != null) return 1; // success: already loaded if (VM_FileSystem.stat(libname, VM_FileSystem.STAT_EXISTS) == 1) { @@ -184,8 +184,7 @@ * @return the address of the symbol of Address.zero() if it cannot be resolved */ public static synchronized Address resolveSymbol(String symbol) { - for (Iterator i = dynamicLibraries.valueIterator(); i.hasNext();) { - VM_DynamicLibrary lib = (VM_DynamicLibrary)i.next(); + for (VM_DynamicLibrary lib : dynamicLibraries.values()) { Address symbolAddress = lib.getSymbol(symbol); if (!symbolAddress.isZero()) { return symbolAddress; Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Statics.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Statics.java 2007-01-09 08:31:20 UTC (rev 11275) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_Statics.java 2007-01-09 08:50:12 UTC (rev 11276) @@ -109,24 +109,28 @@ * Mapping from int like literals (ints and floats) to the jtoc slot * that contains them. */ - private static final VM_HashMap intSizeLiterals = new VM_HashMap(); + private static final VM_HashMap<Integer,Integer> intSizeLiterals = + new VM_HashMap<Integer,Integer>(); /** * Mapping from long like literals (longs and doubles) to the jtoc * slot that contains them. */ - private static final VM_HashMap longSizeLiterals = new VM_HashMap(); + private static final VM_HashMap<Long,Integer> longSizeLiterals = + new VM_HashMap<Long,Integer>(); /** * Mapping from object literals to the jtoc slot that contains them. */ - private static final VM_HashMap objectLiterals = new VM_HashMap(); + private static final VM_HashMap<Object,Integer> objectLiterals = + new VM_HashMap<Object,Integer>(); /** * A special mapping from VM_Atom objects to the jtoc slot of String * objects that represent the same value. */ - private static final VM_HashMap stringLiterals = new VM_HashMap(); + private static final VM_HashMap<VM_Atom,Integer> stringLiterals = + new VM_HashMap<VM_Atom,Integer>(); /** * Conversion from JTOC slot index to JTOC offset. @@ -166,18 +170,16 @@ * @return the offset in the JTOC of the literal */ public static final int findOrCreateIntSizeLiteral(int literal) { - Integer literalAsInt = Integer.valueOf(literal); Integer offsetAsInt; synchronized(intSizeLiterals) { - offsetAsInt = (Integer)intSizeLiterals.get(literalAsInt); + offsetAsInt = intSizeLiterals.get(literal); } if (offsetAsInt != null) { return offsetAsInt.intValue(); } else { Offset newOff = allocateNumericSlot(BYTES_IN_INT); - Integer newOffAsInt = Integer.valueOf(newOff.toInt()); synchronized(intSizeLiterals) { - intSizeLiterals.put(literalAsInt, newOffAsInt); + intSizeLiterals.put(literal, newOff.toInt()); } setSlotContents(newOff, literal); return newOff.toInt(); @@ -191,18 +193,16 @@ * @return the offset in the JTOC of the literal */ public static final int findOrCreateLongSizeLiteral(long literal) { - Long literalAsLong = Long.valueOf(literal); Integer offsetAsInt; synchronized(longSizeLiterals) { - offsetAsInt = (Integer)longSizeLiterals.get(literalAsLong); + offsetAsInt = longSizeLiterals.get(literal); } if (offsetAsInt != null) { return offsetAsInt.intValue(); } else { Offset newOff = allocateNumericSlot(BYTES_IN_LONG); - Integer newOffAsInt = Integer.valueOf(newOff.toInt()); synchronized(longSizeLiterals) { - longSizeLiterals.put(literalAsLong, newOffAsInt); + longSizeLiterals.put(literal, newOff.toInt()); } setSlotContents(newOff, literal); return newOff.toInt(); @@ -220,7 +220,7 @@ public static int findOrCreateStringLiteral(VM_Atom literal) throws java.io.UTFDataFormatException { Integer offAsInt; synchronized (stringLiterals){ - offAsInt = (Integer)stringLiterals.get(literal); + offAsInt = stringLiterals.get(literal); } if (offAsInt != null) { return offAsInt.intValue(); @@ -230,11 +230,10 @@ stringValue = stringValue.intern(); } Offset newOff = allocateReferenceSlot(); - Integer newOffAsInt = Integer.valueOf(newOff.toInt()); synchronized(stringLiterals) { - stringLiterals.put(literal, newOffAsInt); + stringLiterals.put(literal, newOff.toInt()); synchronized(objectLiterals) { - objectLiterals.put(stringValue, newOffAsInt); + objectLiterals.put(stringValue, newOff.toInt()); setSlotContents(newOff, stringValue); } } @@ -250,7 +249,7 @@ public static String findStringLiteral(String literal) { Integer offAsInt; synchronized(objectLiterals) { - offAsInt = (Integer)objectLiterals.get(literal); + offAsInt = objectLiterals.get(literal); } if (offAsInt != null) { Offset off = Offset.fromIntSignExtend(offAsInt.intValue()); @@ -269,15 +268,14 @@ VM_TypeReference.getTypeRef(typeReferenceID).resolve().getClassForType(); Integer offAsInt; synchronized(objectLiterals) { - offAsInt = (Integer)objectLiterals.get(literalAsClass); + offAsInt = objectLiterals.get(literalAsClass); } if (offAsInt != null) { return offAsInt.intValue(); } else { Offset newOff = allocateReferenceSlot(); - Integer newOffAsInt = Integer.valueOf(newOff.toInt()); synchronized(objectLiterals) { - objectLiterals.put(literalAsClass, newOffAsInt); + objectLiterals.put(literalAsClass, newOff.toInt()); setSlotContents(newOff, literalAsClass); } return newOff.toInt(); @@ -293,15 +291,14 @@ public static int findOrCreateObjectLiteral(Object literal) { Integer offAsInt; synchronized (objectLiterals){ - offAsInt = (Integer)objectLiterals.get(literal); + offAsInt = objectLiterals.get(literal); } if (offAsInt != null) { return offAsInt.intValue(); } else { Offset newOff = allocateReferenceSlot(); - Integer newOffAsInt = Integer.valueOf(newOff.toInt()); synchronized(objectLiterals) { - objectLiterals.put(literal, newOffAsInt); + objectLiterals.put(literal, newOff.toInt()); } setSlotContents(newOff, literal); return newOff.toInt(); @@ -316,7 +313,7 @@ public static int findObjectLiteral(Object literal) { Integer offAsInt; synchronized (objectLiterals){ - offAsInt = (Integer)objectLiterals.get(literal); + offAsInt = objectLiterals.get(literal); } if (offAsInt != null) { return offAsInt.intValue(); @@ -422,10 +419,9 @@ return false; } else { int ival = getSlotContentsAsInt(slotAsOffset(slot)); - Integer ivalAsInt = Integer.valueOf(ival); Integer offsetAsInt; synchronized(intSizeLiterals) { - offsetAsInt = (Integer)intSizeLiterals.get(ivalAsInt); + offsetAsInt = intSizeLiterals.get(ival); } if (offsetAsInt == null) { return false; @@ -445,10 +441,9 @@ return false; } else { long lval = getSlotContentsAsLong(slotAsOffset(slot)); - Long lvalAsLong = Long.valueOf(lval); Integer offsetAsInt; synchronized(longSizeLiterals) { - offsetAsInt = (Integer)longSizeLiterals.get(lvalAsLong); + offsetAsInt = longSizeLiterals.get(lval); } if (offsetAsInt == null) { return false; Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_ControllerMemory.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_ControllerMemory.java 2007-01-09 08:31:20 UTC (rev 11275) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_ControllerMemory.java 2007-01-09 08:50:12 UTC (rev 11276) @@ -20,7 +20,6 @@ import java.io.PrintStream; import java.util.LinkedList; -import java.util.Iterator; import java.util.ListIterator; @@ -38,7 +37,8 @@ * This is a hashtable of controller plans indexed by VM_Method. * Each method can have a list of such plans associated with. */ - private static final VM_HashMap table = new VM_HashMap(); + private static final VM_HashMap<VM_Method,LinkedList<VM_ControllerPlan>> table = + new VM_HashMap<VM_Method,LinkedList<VM_ControllerPlan>>(); /** * Number of times controller is awoken and did nothing. @@ -135,9 +135,8 @@ * @return the list of controller plans for this method if one exists, * otherwise, null */ - @SuppressWarnings("unchecked") // until VM_HashMap becomes generic private static synchronized LinkedList<VM_ControllerPlan> findPlan(VM_Method method) { - return (LinkedList<VM_ControllerPlan>)table.get(method); + return table.get(method); } /** @@ -326,8 +325,7 @@ int totalRecompsAtLevel2 = 0; // traverse table and give a summary of all actions that have occurred - for (Iterator it = table.keyIterator(); it.hasNext();) { - VM_Method meth = (VM_Method) it.next(); + for (VM_Method meth : table.keys()) { LinkedList planList = (LinkedList) table.get(meth); int bitPattern = 0; Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_Atom.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_Atom.java 2007-01-09 08:31:20 UTC (rev 11275) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_Atom.java 2007-01-09 08:50:12 UTC (rev 11276) @@ -38,7 +38,8 @@ /** * Used to canonicalize VM_Atoms: Key => VM_Atom */ - private static final VM_HashMap dictionary = new VM_HashMap(); + private static final VM_HashMap<Key,VM_Atom> dictionary = + new VM_HashMap<Key,VM_Atom>(); /** * Dictionary of all VM_Atom instances. @@ -150,7 +151,7 @@ * one. And they all feed through here. */ private static synchronized VM_Atom findOrCreate(byte[] bytes, boolean create) { Key key = new Key(bytes); - VM_Atom val = (VM_Atom)dictionary.get(key); + VM_Atom val = dictionary.get(key); if (val != null || !create) return val; val = new VM_Atom(key, nextId++); if (val.id == atoms.length) { Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_BootstrapClassLoader.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_BootstrapClassLoader.java 2007-01-09 08:31:20 UTC (rev 11275) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_BootstrapClassLoader.java 2007-01-09 08:50:12 UTC (rev 11276) @@ -31,7 +31,8 @@ */ public final class VM_BootstrapClassLoader extends java.lang.ClassLoader { - private final VM_HashMap loaded = new VM_HashMap(); // Map Strings to VM_Types. + private final VM_HashMap<String,VM_Type> loaded = + new VM_HashMap<String,VM_Type>(); private final static boolean DBG = false; Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_InterfaceMethodSignature.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_InterfaceMethodSignature.java 2007-01-09 08:31:20 UTC (rev 11275) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_InterfaceMethodSignature.java 2007-01-09 08:50:12 UTC (rev 11276) @@ -26,7 +26,8 @@ /** * Used to canonicalize VM_InterfaceMethodSignatures */ - private static VM_HashMap dictionary = new VM_HashMap(); + private static VM_HashSet<VM_InterfaceMethodSignature> dictionary = + new VM_HashSet<VM_InterfaceMethodSignature>(); /** * Used to assign ids. Don't use id 0 to allow clients to use id 0 as a 'null'. @@ -62,10 +63,10 @@ public static synchronized VM_InterfaceMethodSignature findOrCreate(VM_MemberReference ref) { VM_InterfaceMethodSignature key = new VM_InterfaceMethodSignature(ref.getName(), ref.getDescriptor()); - VM_InterfaceMethodSignature val = (VM_InterfaceMethodSignature)dictionary.get(key); + VM_InterfaceMethodSignature val = dictionary.get(key); if (val != null) return val; key.id = nextId++; - dictionary.put(key, key); + dictionary.add(key); return key; } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_MemberReference.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_MemberReference.java 2007-01-09 08:31:20 UTC (rev 11275) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_MemberReference.java 2007-01-09 08:50:12 UTC (rev 11276) @@ -10,7 +10,7 @@ package com.ibm.jikesrvm.classloader; import com.ibm.jikesrvm.VM; -import com.ibm.jikesrvm.util.VM_HashMap; +import com.ibm.jikesrvm.util.VM_HashSet; import org.vmmagic.pragma.*; import java.util.NoSuchElementException; import java.util.StringTokenizer; @@ -37,7 +37,7 @@ /** * Used to canonicalize memberReferences */ - private static VM_HashMap dictionary = new VM_HashMap(); + private static VM_HashSet<VM_MemberReference> dictionary = new VM_HashSet<VM_MemberReference>(); /** * Dictionary of all VM_MemberReference instances. @@ -86,7 +86,7 @@ } else { key = new VM_FieldReference(tRef, mn, md); } - VM_MemberReference val = (VM_MemberReference)dictionary.get(key); + VM_MemberReference val = dictionary.get(key); if (val != null) return val; key.id = nextId++; VM_TableBasedDynamicLinker.ensureCapacity(key.id); @@ -96,7 +96,7 @@ members = tmp; } members[key.id] = key; - dictionary.put(key, key); + dictionary.add(key); return key; } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_TypeReference.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_TypeReference.java 2007-01-09 08:31:20 UTC (rev 11275) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/classloader/VM_TypeReference.java 2007-01-09 08:50:12 UTC (rev 11276) @@ -11,7 +11,7 @@ import com.ibm.jikesrvm.VM; import org.vmmagic.pragma.*; -import com.ibm.jikesrvm.util.VM_HashMap; +import com.ibm.jikesrvm.util.VM_HashSet; import static com.ibm.jikesrvm.VM_SizeConstants.*; /** * A class to represent the reference in a class file to some @@ -60,7 +60,7 @@ /** * Used to canonicalize TypeReferences */ - private static final VM_HashMap dictionary = new VM_HashMap(); + private static final VM_HashSet<VM_TypeReference> dictionary = new VM_HashSet<VM_TypeReference>(); /** * Dictionary of all VM_TypeReference instances. @@ -263,7 +263,7 @@ types = tmp; } types[val.id] = val; - dictionary.put(key, val); + dictionary.add(val); } return val; } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_FieldDatabase.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_FieldDatabase.java 2007-01-09 08:31:20 UTC (rev 11275) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_FieldDatabase.java 2007-01-09 08:50:12 UTC (rev 11276) @@ -19,7 +19,7 @@ * * @author Stephen Fink */ -final class OPT_FieldDatabase extends VM_HashMap { +final class OPT_FieldDatabase extends VM_HashMap<VM_Field,OPT_FieldDatabase.FieldDatabaseEntry> { final static private boolean DEBUG = false; OPT_FieldDatabase() { } @@ -49,20 +49,19 @@ // a data structure holding information about a field final class FieldDatabaseEntry { - private VM_HashMap summaries; // VM_Method -> FieldWriterInfo + private VM_HashMap<VM_Method,FieldWriterInfo> summaries; boolean cachedAllAnalyzed; // have we already determined all methods are analyzed? VM_TypeReference cachedConcreteType; // cache a copy of the concrete type already determined for this field FieldWriterInfo findMethodInfo(VM_Method m) { - return (FieldWriterInfo)summaries.get(m); + return summaries.get(m); } // are all methods that may write this field analyzed already? boolean allMethodsAreAnalyzed() { if (cachedAllAnalyzed) return true; - for (java.util.Iterator i = summaries.valueIterator(); i.hasNext(); ) { - FieldWriterInfo info = (FieldWriterInfo)i.next(); + for (FieldWriterInfo info : summaries.values()) { if (!info.isAnalyzed()) return false; } cachedAllAnalyzed = true; @@ -74,8 +73,7 @@ VM_TypeReference getConcreteType() { if (cachedConcreteType != null) return cachedConcreteType; VM_TypeReference result = null; - for (java.util.Iterator i = summaries.valueIterator(); i.hasNext(); ) { - FieldWriterInfo info = (FieldWriterInfo)i.next(); + for (FieldWriterInfo info : summaries.values()) { if (!info.isAnalyzed()) return null; if (info.isBottom()) return null; VM_TypeReference t = info.concreteType; @@ -97,7 +95,7 @@ if (VM.VerifyAssertions) VM._assert(f.isPrivate()); VM_Class klass = f.getDeclaringClass(); - summaries = new VM_HashMap(1); + summaries = new VM_HashMap<VM_Method,FieldWriterInfo>(1); // walk thru each method of the declaring class. // If a method m may write to f, then create a FieldWriterInfo for m Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_InterfaceHierarchy.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_InterfaceHierarchy.java 2007-01-09 08:31:20 UTC (rev 11275) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_InterfaceHierarchy.java 2007-01-09 08:50:12 UTC (rev 11276) @@ -24,7 +24,8 @@ * a mapping from VM_Class (an interface) to a set of classes that * claim to implement this interface. */ - private static VM_HashMap interfaceMapping = new VM_HashMap(); + private static VM_HashMap<VM_Class,VM_HashSet<VM_Class>> interfaceMapping = + new VM_HashMap<VM_Class,VM_HashSet<VM_Class>>(); /** * Notify this dictionary that a new class has been initialized. @@ -53,7 +54,7 @@ * set if none found. */ private static synchronized VM_HashSet<VM_Class> findOrCreateSet(VM_Class I) { - VM_HashSet<VM_Class> set = (VM_HashSet<VM_Class>)interfaceMapping.get(I); + VM_HashSet<VM_Class> set = interfaceMapping.get(I); if (set == null) { set = new VM_HashSet<VM_Class>(3); interfaceMapping.put(I,set); Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_InvalidationDatabase.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_InvalidationDatabase.java 2007-01-09 08:31:20 UTC (rev 11275) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_InvalidationDatabase.java 2007-01-09 08:50:12 UTC (rev 11276) @@ -113,7 +113,7 @@ * Delete a NoSubclassDependency. No effect if the dependency doesn't exist.. */ public void removeNoSubclassDependency (VM_Class source, int dependent_cmid) { - MethodSet s = (MethodSet)noSubclassHash.get(source); + MethodSet s = noSubclassHash.get(source); if (s != null) { s.remove(dependent_cmid); } @@ -130,20 +130,22 @@ * A mapping from VM_Method to MethodSet: holds the set of methods which * depend on a particular method being "final" */ - private VM_HashMap nonOverriddenHash = new VM_HashMap(); + private VM_HashMap<VM_Method,MethodSet> nonOverriddenHash = + new VM_HashMap<VM_Method,MethodSet>(); /** * A mapping from VM_Class to MethodSet: holds the set of methods which * depend on a particular class being "final" */ - private VM_HashMap noSubclassHash = new VM_HashMap(); + private VM_HashMap<VM_Class,MethodSet> noSubclassHash = + new VM_HashMap<VM_Class,MethodSet>(); /** * Look up the MethodSet corresponding to a given key in the database. * If none found, create one. */ - private MethodSet findOrCreateMethodSet (VM_HashMap hash, Object key) { - MethodSet result = (MethodSet)hash.get(key); + private <T> MethodSet findOrCreateMethodSet (VM_HashMap<T,MethodSet> hash, T key) { + MethodSet result = hash.get(key); if (result == null) { result = new MethodSet(key); hash.put(key, result); Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SpecializationDatabase.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SpecializationDatabase.java 2007-01-09 08:31:20 UTC (rev 11275) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SpecializationDatabase.java 2007-01-09 08:50:12 UTC (rev 11276) @@ -101,14 +101,15 @@ s.add(spMethod); deferredMethods.add(spMethod); } - private static VM_HashMap specialVersionsHash = new VM_HashMap(); + private static VM_HashMap<VM_Method,MethodSet> specialVersionsHash = + new VM_HashMap<VM_Method,MethodSet>(); /** * Look up the MethodSet corresponding to a given key in the database * If none found, create one. */ - private static MethodSet findOrCreateMethodSet(VM_HashMap hash, Object key) { - MethodSet result = (MethodSet)hash.get(key); + private static <T> MethodSet findOrCreateMethodSet(VM_HashMap<T,MethodSet> hash, T key) { + MethodSet result = hash.get(key); if (result == null) { result = new MethodSet(key); hash.put(key, result); Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SummaryDatabase.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SummaryDatabase.java 2007-01-09 08:31:20 UTC (rev 11275) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/opt/OPT_SummaryDatabase.java 2007-01-09 08:50:12 UTC (rev 11276) @@ -32,15 +32,15 @@ */ public static void init () {} - /** - * Lookup a given class in the database. - * - * @return OPT_ClassSummary instance representing class. - * null if not found - */ - public static synchronized OPT_ClassSummary findClassSummary (VM_Class c) { - return (OPT_ClassSummary)hash.get(c); - } +// /** +// * Lookup a given class in the database. +// * +// * @return OPT_ClassSummary instance representing class. +// * null if not found +// */ +// public static synchronized OPT_ClassSummary findClassSummary (VM_Class c) { +// return (OPT_ClassSummary)hash.get(c); +// } /** * Lookup a given method in the database @@ -48,7 +48,7 @@ * @return OPT_MethodSummary instance representing method */ public static synchronized OPT_MethodSummary findMethodSummary (VM_Method m) { - return (OPT_MethodSummary)hash.get(m); + return hash.get(m); } public static synchronized OPT_MethodSummary findOrCreateMethodSummary (VM_Method m) { @@ -61,7 +61,8 @@ } /** Implementation */ - private static final VM_HashMap hash = new VM_HashMap(); + private static final VM_HashMap<VM_Method,OPT_MethodSummary> hash = + new VM_HashMap<VM_Method,OPT_MethodSummary>(); } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/util/VM_HashMap.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/util/VM_HashMap.java 2007-01-09 08:31:20 UTC (rev 11275) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/util/VM_HashMap.java 2007-01-09 08:50:12 UTC (rev 11276) @@ -9,7 +9,6 @@ //$Id$ package com.ibm.jikesrvm.util; -import java.util.HashMap; import java.util.Iterator; import java.util.NoSuchElementException; @@ -17,95 +16,78 @@ * Stripped down implementation of HashMap data structure for use * by core parts of the JikesRVM runtime. * - * While developing; have a bogus impl by forwarding to java.util.HashMap - * This won't actually fix anything, but enables me to see how widely used this - * data structure is going to need to be and what API I have to support on it. - * * TODO: This should be a final class; rewrite subclasses to let us do that. - * TODO: make this a generic class * * @author Dave Grove + * @author Robin Garner */ -public class VM_HashMap { - private static final boolean STAGING = false; +public class VM_HashMap<K,V> { private static final int DEFAULT_SIZE = 7; private static final float LOAD = 3; /* bias to save space by default */ - /* if STAGING */ - private final HashMap<Object,Object> map; - /* if !STAGING */ - private Bucket[] buckets; + private Bucket<K,V>[] buckets; private int numElems = 0; public VM_HashMap() { this(DEFAULT_SIZE); } - + @SuppressWarnings("unchecked") // the java generic array problem + private Bucket<K,V>[] newBucketArray(int size) { + return new Bucket[size]; + } + public VM_HashMap(int size) { - if (STAGING) { - map = new HashMap<Object,Object>(size); - } else { - map = null; - buckets = new Bucket[size]; - } + buckets = newBucketArray(size); } public final int size() { return numElems; } - public final Object get(Object key) { - if (STAGING) { - return map.get(key); + public final V get(K key) { + int bucketIdx = bucketIndex(key, buckets.length); + Bucket<K,V> cur = buckets[bucketIdx]; + while (cur != null && !cur.key.equals(key)) { + cur = cur.next; + } + if (cur == null) { + return null; } else { - int bucketIdx = bucketIndex(key, buckets.length); - Bucket cur = buckets[bucketIdx]; - while (cur != null && !cur.key.equals(key)) { - cur = cur.next; - } - if (cur == null) { - return null; - } else { - return cur.value; - } + return cur.value; } } - public final Object put(Object key, Object value) { - if (STAGING) { - return map.put(key, value); - } else { - if (numElems > (buckets.length * LOAD)) { - growMap(); - } + public final V put(K key, V value) { + if (numElems > (buckets.length * LOAD)) { + growMap(); + } - int bucketIdx = bucketIndex(key, buckets.length); - Bucket cur = buckets[bucketIdx]; - while (cur != null && !cur.key.equals(key)) { - cur = cur.next; - } - if (cur != null) { - // replacing existing <key,value> pair - Object tmp = cur.value; - cur.value = value; - return tmp; - } else { - Bucket newBucket = new Bucket(key, value); - newBucket.next = buckets[bucketIdx]; - buckets[bucketIdx] = newBucket; - numElems++; - return null; - } + int bucketIdx = bucketIndex(key, buckets.length); + Bucket<K,V> cur = buckets[bucketIdx]; + while (cur != null && !cur.key.equals(key)) { + cur = cur.next; } + if (cur != null) { + // replacing existing <key,value> pair + V tmp = cur.value; + cur.value = value; + return tmp; + } else { + Bucket<K,V> newBucket = new Bucket<K,V>(key, value); + newBucket.next = buckets[bucketIdx]; + buckets[bucketIdx] = newBucket; + numElems++; + return null; + } } private final void growMap() { - Bucket[] newBuckets = new Bucket[buckets.length*2+1]; + Bucket<K,V>[] newBuckets = newBucketArray(buckets.length*2+1); for (int i=0; i<buckets.length; i++) { - Bucket cur = buckets[i]; + Bucket<K,V> cur = buckets[i]; while (cur != null) { - Bucket next = cur.next; + Bucket<K,V> next = cur.next; int newIdx = bucketIndex(cur.key, newBuckets.length); cur.next = newBuckets[newIdx]; newBuckets[newIdx] = cur; @@ -115,49 +97,37 @@ buckets = newBuckets; } - public final Object remove(Object key) { - if (STAGING) { - return map.remove(key); - } else { - int bucketIdx = bucketIndex(key, buckets.length); - Bucket cur = buckets[bucketIdx]; - Bucket prev = null; - while (cur != null && !cur.key.equals(key)) { - prev = cur; - cur = cur.next; - } - if (cur != null) { - if (prev == null) { - // removing first bucket in chain. - buckets[bucketIdx] = cur.next; - } else { - prev.next = cur.next; - } - numElems--; - return cur.value; + public final V remove(K key) { + int bucketIdx = bucketIndex(key, buckets.length); + Bucket<K,V> cur = buckets[bucketIdx]; + Bucket<K,V> prev = null; + while (cur != null && !cur.key.equals(key)) { + prev = cur; + cur = cur.next; + } + if (cur != null) { + if (prev == null) { + // removing first bucket in chain. + buckets[bucketIdx] = cur.next; } else { - return null; + prev.next = cur.next; } + numElems--; + return cur.value; + } else { + return null; } } - public final Iterator valueIterator() { - if (STAGING) { - return map.values().iterator(); - } else { - return new MapIterator(false); - } + public final Iterator<V> valueIterator() { + return new ValueIterator(); } - public final Iterator keyIterator() { - if (STAGING) { - return map.keySet().iterator(); - } else { - return new MapIterator(true); - } + public final Iterator<K> keyIterator() { + return new KeyIterator(); } - private final int bucketIndex(Object key, int divisor) { + private final int bucketIndex(K key, int divisor) { if (key == null) { return 0; } else { @@ -165,29 +135,27 @@ } } - private static final class Bucket { - final Object key; - Object value; - Bucket next; + private static final class Bucket<K,V> { + final K key; + V value; + Bucket<K,V> next; - Bucket(Object k, Object v) { + Bucket(K k, V v) { key = k; value = v; } } - private final class MapIterator implements Iterator { - private final boolean key; + /** + * Iterator types for key and value + */ + private class BucketIterator { private int bucketIndex = 0; - private Bucket next = null; - private Bucket last = null; + private Bucket<K,V> next = null; + private Bucket<K,V> last = null; private int numVisited = 0; - MapIterator(boolean k) { - key = k; - } - - public Object next() { + public Bucket<K,V> nextBucket() { if (!hasNext()) { throw new NoSuchElementException(); } @@ -195,10 +163,10 @@ while (next == null) { next = buckets[bucketIndex++]; } - Bucket ans = next; + Bucket<K,V> ans = next; next = ans.next; numVisited++; - return key ? ans.key : ans.value; + return ans; } public boolean hasNext() { @@ -213,4 +181,45 @@ last = null; } } + + private final class KeyIterator extends BucketIterator implements Iterator<K> { + public K next() { + Bucket<K,V> cur = nextBucket(); + return cur.key; + } + } + + private final class ValueIterator extends BucketIterator implements Iterator<V> { + public V next() { + Bucket<K,V> cur = nextBucket(); + return cur.value; + } + } + + /** + * These two methods allow VM_HashMaps to be used in the Java 5 for loop. + */ + + /** + * @return a java.lang.Iterable for the values in the hash map + */ + public final Iterable<V> values() { + return new Iterable<V>() { + public Iterator<V> iterator() { + return VM_HashMap.this.valueIterator(); + } + }; + } + + /** + * + * @return a java.lang.Iterable for the values in the hash map + */ + public final Iterable<K> keys() { + return new Iterable<K>() { + public Iterator<K> iterator() { + return VM_HashMap.this.keyIterator(); + } + }; + } } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/util/VM_HashSet.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/util/VM_HashSet.java 2007-01-09 08:31:20 UTC (rev 11275) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/util/VM_HashSet.java 2007-01-09 08:50:12 UTC (rev 11276) @@ -60,6 +60,21 @@ } } + public T get(T key) { + int bucketIdx = bucketIndex(key, buckets.length); + Bucket<T> cur = buckets[bucketIdx]; + while (cur != null && !cur.key.equals(key)) { + cur = cur.next; + } + if (cur == null) + return null; + else + return cur.key; + } + + public boolean contains(T key) { + return get(key) != null; + } public void addAll(VM_HashSet<T> c) { for (T t : c) { Modified: rvmroot/trunk/rvm/src/java/lang/VMClassLoader.java =================================================================== --- rvmroot/trunk/rvm/src/java/lang/VMClassLoader.java 2007-01-09 08:31:20 UTC (rev 11275) +++ rvmroot/trunk/rvm/src/java/lang/VMClassLoader.java 2007-01-09 08:50:12 UTC (rev 11276) @@ -51,12 +51,15 @@ * A map of maps. The first map is indexed by the classloader. The * map this finds then maps String class names to classes */ - private static final VM_HashMap loadedClasses = new VM_HashMap(); + private static final VM_HashMap<ClassLoader,VM_HashMap<String,Class<?>>> loadedClasses = + new VM_HashMap<ClassLoader,VM_HashMap<String,Class<?>>>(); /** packages loaded by the bootstrap class loader */ - private static final VM_HashMap definedPackages = new VM_HashMap(); + private static final VM_HashMap<String,Package> definedPackages = + new VM_HashMap<String,Package>(); - private static final VM_HashMap bootjars = new VM_HashMap(); + private static final VM_HashMap<String,ZipFile> bootjars = + new VM_HashMap<String,ZipFile>(); static { @@ -98,9 +101,9 @@ VM_Type vmType = VM_ClassLoader.defineClassInternal(name, data, offset, len, cl); Class<?> ans = vmType.getClassForType(); JikesRVMSupport.setClassProtectionDomain(ans, pd); - VM_HashMap mapForCL = (VM_HashMap)loadedClasses.get(cl); + VM_HashMap<String,Class<?>> mapForCL = loadedClasses.get(cl); if (mapForCL == null) { - mapForCL = new VM_HashMap(); + mapForCL = new VM_HashMap<String,Class<?>>(); loadedClasses.put(cl, mapForCL); } mapForCL.put(name, ans); @@ -220,13 +223,12 @@ static Package getPackage(String name) { - return (Package)definedPackages.get(name); + return definedPackages.get(name); } static Package[] getPackages() { Package[] packages = new Package[definedPackages.size()]; - @SuppressWarnings("unchecked") // Until VM_HashMap gets genericised Iterator<Package> it = definedPackages.valueIterator(); int idx = 0; while (it.hasNext()) { @@ -291,33 +293,27 @@ static Class<?>[] getAllLoadedClasses() { Vector<Class<?>> classList = new Vector<Class<?>>(); - @SuppressWarnings("unchecked") // Until VM_HashMap gets genericised - Iterator<VM_HashMap> classLoaderMaps = loadedClasses.valueIterator(); - while (classLoaderMaps.hasNext()) { - VM_HashMap classes = (VM_HashMap)classLoaderMaps.next(); - @SuppressWarnings("unchecked") // Until VM_HashMap gets genericised - Iterator<Class<?>> classIterator = classes.valueIterator(); - while (classIterator.hasNext()) - classList.add(classIterator.next()); + for (VM_HashMap<String,Class<?>> classes : loadedClasses.values()) { + for (Class<?> cl : classes.values()) { + classList.add(cl); + } } Class<?>[] result = new Class[classList.size()]; return (Class[])classList.toArray(result); } static Class<?>[] getInitiatedClasses(ClassLoader classLoader) { - VM_HashMap mapForCL = (VM_HashMap)loadedClasses.get(classLoader); + VM_HashMap<String,Class<?>> mapForCL = loadedClasses.get(classLoader); if (mapForCL == null) return new Class[]{}; Vector<Class<?>> classList = new Vector<Class<?>>(); - @SuppressWarnings("unchecked") // Until VM_HashMap gets genericised - Iterator<Class<?>> classIterator = mapForCL.valueIterator(); - while (classIterator.hasNext()) - classList.add(classIterator.next()); + for (Class<?> cl : mapForCL.values()) + classList.add(cl); Class<?>[] result = new Class[classList.size()]; return (Class[])classList.toArray(result); } static Class<?> findLoadedClass(ClassLoader cl, String name) { - VM_HashMap mapForCL = (VM_HashMap)loadedClasses.get(cl); + VM_HashMap<String,Class<?>> mapForCL = loadedClasses.get(cl); if (mapForCL == null) return null; return (Class<?>)mapForCL.get(name); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dgr...@us...> - 2007-01-16 13:37:52
|
Revision: 11291 http://svn.sourceforge.net/jikesrvm/?rev=11291&view=rev Author: dgrove-oss Date: 2007-01-16 05:37:50 -0800 (Tue, 16 Jan 2007) Log Message: ----------- patch 1629296 Remove VM_Configuration.dedicatedESI A few leftover fragments from an early attempt to structure the code to allow us to optionally use a segment register instead of ESI to hold the pointer to the current VM_Processor. If we ever decide to make another attempt at this, we'll want to start fresh. Modified Paths: -------------- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/ia32/opt/ir/OPT_GenerateMachineSpecificMagic.java rvmroot/trunk/rvm/src-generated/vm-configuration/VM_Configuration.java Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/ia32/opt/ir/OPT_GenerateMachineSpecificMagic.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/ia32/opt/ir/OPT_GenerateMachineSpecificMagic.java 2007-01-16 07:04:30 UTC (rev 11290) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/ia32/opt/ir/OPT_GenerateMachineSpecificMagic.java 2007-01-16 13:37:50 UTC (rev 11291) @@ -81,13 +81,7 @@ gc.allocFrame = true; OPT_RegisterOperand val = gc.temps.makeTemp(VM_TypeReference.Address); VM_Field f = VM_Entrypoints.framePointerField; - OPT_RegisterOperand pr = null; - if (VM.dedicatedESI) { - pr = new OPT_RegisterOperand(phys.getESI(), VM_TypeReference.Int); - } else { - pr = gc.temps.makeTemp(VM_TypeReference.VM_Processor); - bc2ir.appendInstruction(Nullary.create(GET_CURRENT_PROCESSOR,pr)); - } + OPT_RegisterOperand pr = new OPT_RegisterOperand(phys.getESI(), VM_TypeReference.Int); bc2ir.appendInstruction(GetField.create(GETFIELD, val, pr.copy(), new OPT_AddressConstantOperand(f.getOffset()), new OPT_LocationOperand(f), Modified: rvmroot/trunk/rvm/src-generated/vm-configuration/VM_Configuration.java =================================================================== --- rvmroot/trunk/rvm/src-generated/vm-configuration/VM_Configuration.java 2007-01-16 07:04:30 UTC (rev 11290) +++ rvmroot/trunk/rvm/src-generated/vm-configuration/VM_Configuration.java 2007-01-16 13:37:50 UTC (rev 11291) @@ -252,13 +252,6 @@ public final static boolean ForceFrequentGC = false; //-#endif - //-#if RVM_FOR_IA32 - /** - * Is ESI dedicated to always hold the processor register? - */ - public final static boolean dedicatedESI = true; - //-#endif - /** Do we have the facilities to intercept blocking system calls? */ public final static boolean withoutInterceptBlockingSystemCalls = //-#if RVM_WITHOUT_INTERCEPT_BLOCKING_SYSTEM_CALLS This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pet...@us...> - 2007-01-20 23:59:55
|
Revision: 11328 http://svn.sourceforge.net/jikesrvm/?rev=11328&view=rev Author: peter_donald Date: 2007-01-20 15:59:53 -0800 (Sat, 20 Jan 2007) Log Message: ----------- VM_Configuration.LogAOSEvents is set to true in all the configurations in source control. It was present as historically it was thought that logging of AOS Events may be a source of overhead but the current thoughts is that the logging is a relatively insignificant overhead. Hence the configuration option and corresponding define (RVM_WITHOUT_AOS_LOG) have been removed. Modified Paths: -------------- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_RuntimeCompiler.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/OSR_OnStackReplacementPlan.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_AccumulatingMethodSampleOrganizer.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_AnalyticModel.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_CompilationThread.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_CompilerDNA.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_Controller.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_ControllerMemory.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_ControllerPlan.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_ControllerThread.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_DynamicCallGraphOrganizer.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_HotMethodRecompilationEvent.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_MethodCountData.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_MethodSampleOrganizer.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_PreCompile.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_RecompilationStrategy.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_RuntimeMeasurements.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/ia32/osr/OSR_CodeInstaller.java rvmroot/trunk/rvm/src/com/ibm/jikesrvm/ppc/osr/OSR_CodeInstaller.java rvmroot/trunk/rvm/src-generated/vm-configuration/VM_Configuration.java Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_RuntimeCompiler.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_RuntimeCompiler.java 2007-01-20 09:09:10 UTC (rev 11327) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM_RuntimeCompiler.java 2007-01-20 23:59:53 UTC (rev 11328) @@ -119,7 +119,7 @@ compiledMethod.numberOfInstructions(), compiledMethod.getCompilationTime()); - if (VM.BuildForAdaptiveSystem && VM.LogAOSEvents) { + if (VM.BuildForAdaptiveSystem) { if (VM_AOSLogging.booted()) { VM_AOSLogging.recordUpdatedCompilationRates(compiler, method, @@ -662,9 +662,7 @@ VM_CompilerAdviceAttribute.getCompilerAdviceInfo(method); if (attr.getCompiler() != VM_CompiledMethod.OPT) { cm=fallback(method); - if (VM.LogAOSEvents) { - VM_AOSLogging.recordCompileTime(cm, 0.0); - } + VM_AOSLogging.recordCompileTime(cm, 0.0); return cm; } int newCMID = -2; @@ -677,15 +675,13 @@ // we don't have to use: if (VM_Controller.options.sampling()) compPlan = VM_Controller.recompilationStrategy.createCompilationPlan(method, attr.getOptLevel(), null); } - if (VM.LogAOSEvents) VM_AOSLogging.recompilationStarted(compPlan); + VM_AOSLogging.recompilationStarted(compPlan); newCMID = recompileWithOpt(compPlan); cm = newCMID == -1 ? null : VM_CompiledMethods.getCompiledMethod(newCMID); - if (VM.LogAOSEvents) { - if (newCMID == -1) { - VM_AOSLogging.recompilationAborted(compPlan); - } else if (newCMID > 0) { - VM_AOSLogging.recompilationCompleted(compPlan); - } + if (newCMID == -1) { + VM_AOSLogging.recompilationAborted(compPlan); + } else if (newCMID > 0) { + VM_AOSLogging.recompilationCompleted(compPlan); } if (cm == null) { // if recompilation is aborted cm = baselineCompile(method); @@ -714,9 +710,7 @@ && VM_Controller.enabled) { VM_AOSGenerator.baseCompilationCompleted(cm); } - if (VM.LogAOSEvents) { - VM_AOSLogging.recordCompileTime(cm, 0.0); - } + VM_AOSLogging.recordCompileTime(cm, 0.0); return cm; } else { return baselineCompile(method); Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/OSR_OnStackReplacementPlan.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/OSR_OnStackReplacementPlan.java 2007-01-20 09:09:10 UTC (rev 11327) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/OSR_OnStackReplacementPlan.java 2007-01-20 23:59:53 UTC (rev 11328) @@ -78,9 +78,7 @@ // 3. install the code // 4. reschedule the thread to new code. - if (VM.LogAOSEvents) { - VM_AOSLogging.logOsrEvent("OSR compiling "+compPlan.method); - } + VM_AOSLogging.logOsrEvent("OSR compiling "+compPlan.method); VM_Thread cpThread = VM_Thread.getCurrentThread(); @@ -129,15 +127,13 @@ if (newCM == null) { setStatus(VM_ControllerPlan.ABORTED_COMPILATION_ERROR); - if (VM.LogAOSEvents) - VM_AOSLogging.logOsrEvent("OSR compilation failed!"); + VM_AOSLogging.logOsrEvent("OSR compilation failed!"); } else { setStatus(VM_ControllerPlan.COMPLETED); // now let OSR_CodeInstaller generate a code stub, // and OSR_PostThreadSwitch will install the stub to run. OSR_CodeInstaller.install(state, newCM); - if (VM.LogAOSEvents) - VM_AOSLogging.logOsrEvent("OSR compilation succeded! " + compPlan.method); + VM_AOSLogging.logOsrEvent("OSR compilation succeded! " + compPlan.method); } } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_AccumulatingMethodSampleOrganizer.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_AccumulatingMethodSampleOrganizer.java 2007-01-20 09:09:10 UTC (rev 11327) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_AccumulatingMethodSampleOrganizer.java 2007-01-20 23:59:53 UTC (rev 11328) @@ -55,7 +55,7 @@ * Method that is called when the sampling threshold is reached */ void thresholdReached() { - if (VM.LogAOSEvents) VM_AOSLogging.organizerThresholdReached(); + VM_AOSLogging.organizerThresholdReached(); int numSamples = ((VM_MethodListener)listener).getNumSamples(); int[] samples = ((VM_MethodListener)listener).getSamples(); data.update(samples, numSamples); Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_AnalyticModel.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_AnalyticModel.java 2007-01-20 09:09:10 UTC (rev 11327) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_AnalyticModel.java 2007-01-20 23:59:53 UTC (rev 11328) @@ -119,12 +119,10 @@ double bestActionTime = futureTimeForMethod; double bestCost = 0.0; - if (VM.LogAOSEvents) { - VM_AOSLogging.recordControllerEstimateCostDoNothing + VM_AOSLogging.recordControllerEstimateCostDoNothing (cmpMethod.getMethod(), VM_CompilerDNA.getOptLevel(prevCompiler), bestActionTime); - } // Get a vector of optimization choices to consider VM_RecompilationChoice[] recompilationChoices = @@ -142,13 +140,11 @@ double curActionTime = cost + futureExecutionTime; - if (VM.LogAOSEvents) { - VM_AOSLogging.recordControllerEstimateCostOpt - (cmpMethod.getMethod(), - choice.toString(), - cost, - curActionTime); - } + VM_AOSLogging.recordControllerEstimateCostOpt + (cmpMethod.getMethod(), + choice.toString(), + cost, + curActionTime); if (curActionTime < bestActionTime) { bestActionTime = curActionTime; @@ -183,7 +179,7 @@ outdatedBaseline = VM_ControllerMemory.planWithStatus(cmpMethod.getMethod(), VM_ControllerPlan.COMPLETED) && cmpMethod.getCompilerType() == VM_CompiledMethod.BASELINE; - if (VM.LogAOSEvents && outdatedBaseline) + if (outdatedBaseline) VM_AOSLogging.debug("outdated Baseline " + cmpMethod.getMethod() + "(" + cmpMethod.getId() + ")"); } @@ -195,7 +191,7 @@ // associated with the cmid. hme.getCompiledMethod().setSamplesReset(); VM_Controller.methodSamples.reset(hme.getCMID()); - if (VM.LogAOSEvents) VM_AOSLogging.debug(" Resetting method samples " + hme); + VM_AOSLogging.debug(" Resetting method samples " + hme); return true; } else { plan = chooseOSRRecompilation(hme); @@ -224,12 +220,12 @@ private VM_ControllerPlan chooseOSRRecompilation(VM_HotMethodEvent hme) { if (!VM_Controller.options.OSR_PROMOTION) return null; - if (VM.LogAOSEvents) VM_AOSLogging.debug(" Consider OSR for " + hme); + VM_AOSLogging.debug(" Consider OSR for " + hme); VM_ControllerPlan prev = VM_ControllerMemory.findLatestPlan(hme.getMethod()); if (prev.getStatus() == VM_ControllerPlan.OSR_BASE_2_OPT) { - if (VM.LogAOSEvents) VM_AOSLogging.debug(" Already have an OSR promotion plan for this method"); + VM_AOSLogging.debug(" Already have an OSR promotion plan for this method"); return null; } @@ -239,10 +235,8 @@ double futureTimeOptimized = futureTimeForMethod / speedup; - if (VM.LogAOSEvents) VM_AOSLogging.debug(" Estimated future time for method " + hme + " is " + - futureTimeForMethod); - if (VM.LogAOSEvents) VM_AOSLogging.debug(" Estimated future time optimized " + hme + " is " + - (futureTimeOptimized+millis)); + VM_AOSLogging.debug(" Estimated future time for method " + hme + " is " + futureTimeForMethod); + VM_AOSLogging.debug(" Estimated future time optimized " + hme + " is " + (futureTimeOptimized+millis)); if (futureTimeForMethod > futureTimeOptimized + millis) { VM_AOSLogging.recordOSRRecompilationDecision(prev); @@ -285,18 +279,16 @@ double futureTimeForMethod = futureTimeForMethod(event); double futureTimeForFDOMethod = prevCompileTime + (futureTimeForMethod/event.getBoostFactor()); - - if (VM.LogAOSEvents) { - int prevOptLevel = VM_CompilerDNA.getOptLevel(prevCompiler); - VM_AOSLogging.recordControllerEstimateCostDoNothing(cmpMethod.getMethod(), - prevOptLevel, - futureTimeForMethod); - VM_AOSLogging.recordControllerEstimateCostOpt(cmpMethod.getMethod(), - "O"+prevOptLevel+"AI", - prevCompileTime, - futureTimeForFDOMethod); - } + int prevOptLevel = VM_CompilerDNA.getOptLevel(prevCompiler); + VM_AOSLogging.recordControllerEstimateCostDoNothing(cmpMethod.getMethod(), + prevOptLevel, + futureTimeForMethod); + VM_AOSLogging.recordControllerEstimateCostOpt(cmpMethod.getMethod(), + "O"+prevOptLevel+"AI", + prevCompileTime, + futureTimeForFDOMethod); + if (futureTimeForFDOMethod < futureTimeForMethod) { // Profitable to recompile with FDO, so do it. int optLevel = VM_CompilerDNA.getOptLevel(prevCompiler); Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_CompilationThread.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_CompilationThread.java 2007-01-20 09:09:10 UTC (rev 11327) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_CompilationThread.java 2007-01-20 23:59:53 UTC (rev 11328) @@ -44,7 +44,7 @@ * them. */ public void run() { - if (VM.LogAOSEvents) VM_AOSLogging.compilationThreadStarted(); + VM_AOSLogging.compilationThreadStarted(); // Make a blocking call to deleteMin to get a plan and then execute it. // Repeat... Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_CompilerDNA.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_CompilerDNA.java 2007-01-20 09:09:10 UTC (rev 11327) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_CompilerDNA.java 2007-01-20 23:59:53 UTC (rev 11328) @@ -166,14 +166,12 @@ benefitRatio = new double[numCompilers][numCompilers]; compileTimeRatio = new double[numCompilers][numCompilers]; - if (VM.LogAOSEvents) { - for (int i=0; i < compilationRates.length; i++) { - VM_AOSLogging.reportCompilationRate(i, compilationRates[i]); - } - for (int i=0; i < speedupRates.length; i++) { - VM_AOSLogging.reportSpeedupRate(i, speedupRates[i]); - } + for (int i=0; i < compilationRates.length; i++) { + VM_AOSLogging.reportCompilationRate(i, compilationRates[i]); } + for (int i=0; i < speedupRates.length; i++) { + VM_AOSLogging.reportSpeedupRate(i, speedupRates[i]); + } // fill in the upper triangular matrices for (int prevCompiler = 0; @@ -193,16 +191,13 @@ // we invert the division. compileTimeRatio[prevCompiler][nextCompiler] = compilationRates[prevCompiler] / compilationRates[nextCompiler]; - if (VM.LogAOSEvents) { - VM_AOSLogging.reportBenefitRatio( - prevCompiler, nextCompiler, - benefitRatio[prevCompiler][nextCompiler]); + VM_AOSLogging.reportBenefitRatio( + prevCompiler, nextCompiler, + benefitRatio[prevCompiler][nextCompiler]); - VM_AOSLogging.reportCompileTimeRatio( - prevCompiler, nextCompiler, - compileTimeRatio[prevCompiler][nextCompiler]); - } - + VM_AOSLogging.reportCompileTimeRatio( + prevCompiler, nextCompiler, + compileTimeRatio[prevCompiler][nextCompiler]); } } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_Controller.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_Controller.java 2007-01-20 09:09:10 UTC (rev 11327) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_Controller.java 2007-01-20 23:59:53 UTC (rev 11328) @@ -189,10 +189,8 @@ * @param app the application name */ public void notifyAppStart(String app) { - if (VM.LogAOSEvents) { - VM_AOSLogging.appStart(app); - VM_AOSLogging.recordRecompAndThreadStats(); - } + VM_AOSLogging.appStart(app); + VM_AOSLogging.recordRecompAndThreadStats(); } /** @@ -200,10 +198,8 @@ * @param app the application name */ public void notifyAppComplete(String app) { - if (VM.LogAOSEvents) { - VM_AOSLogging.appComplete(app); - VM_AOSLogging.recordRecompAndThreadStats(); - } + VM_AOSLogging.appComplete(app); + VM_AOSLogging.recordRecompAndThreadStats(); } /** @@ -212,10 +208,8 @@ * @param run the run number, i.e. what iteration of the app we have started */ public void notifyAppRunStart(String app, int run) { - if (VM.LogAOSEvents) { - VM_AOSLogging.appRunStart(app, run); - VM_AOSLogging.recordRecompAndThreadStats(); - } + VM_AOSLogging.appRunStart(app, run); + VM_AOSLogging.recordRecompAndThreadStats(); } /** @@ -224,10 +218,8 @@ * @param run the run number, i.e. what iteration of the app we have completed */ public void notifyAppRunComplete(String app, int run) { - if (VM.LogAOSEvents) { - VM_AOSLogging.appRunComplete(app, run); - VM_AOSLogging.recordRecompAndThreadStats(); - } + VM_AOSLogging.appRunComplete(app, run); + VM_AOSLogging.recordRecompAndThreadStats(); } /** @@ -235,9 +227,7 @@ * loaded methods. This can be expensive! */ public void notifyRecompileAll() { - if (VM.LogAOSEvents) { - VM_AOSLogging.recompilingAllDynamicallyLoadedMethods(); - } + VM_AOSLogging.recompilingAllDynamicallyLoadedMethods(); VM_RecompilationManager.recompileAllDynamicallyLoadedMethods(false); } @@ -308,7 +298,7 @@ VM.sysWriteln("\tNumber of method samples taken ",(int)methodSamples.getTotalNumberOfSamples()); } - if (VM.LogAOSEvents) VM_AOSLogging.systemExiting(); + VM_AOSLogging.systemExiting(); } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_ControllerMemory.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_ControllerMemory.java 2007-01-20 09:09:10 UTC (rev 11327) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_ControllerMemory.java 2007-01-20 23:59:53 UTC (rev 11328) @@ -90,18 +90,16 @@ */ static synchronized void insert(VM_ControllerPlan plan) { - if (VM.LogAOSEvents) { - numMethodsScheduledForRecomp++; - int optLevel = plan.getCompPlan().options.getOptLevel(); - switch (optLevel) { - case 0: numOpt0++; break; - case 1: numOpt1++; break; - case 2: numOpt2++; break; - case 3: numOpt3++; break; - case 4: numOpt4++; break; - default: - if (VM.VerifyAssertions) VM._assert(NOT_REACHED, "Unknown Opt Level"); - } + numMethodsScheduledForRecomp++; + int optLevel = plan.getCompPlan().options.getOptLevel(); + switch (optLevel) { + case 0: numOpt0++; break; + case 1: numOpt1++; break; + case 2: numOpt2++; break; + case 3: numOpt3++; break; + case 4: numOpt4++; break; + default: + if (VM.VerifyAssertions) VM._assert(NOT_REACHED, "Unknown Opt Level"); } // first check to see if there is a plan list for this method Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_ControllerPlan.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_ControllerPlan.java 2007-01-20 09:09:10 UTC (rev 11327) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_ControllerPlan.java 2007-01-20 23:59:53 UTC (rev 11328) @@ -152,7 +152,7 @@ if (VM_Controller.options.BACKGROUND_RECOMPILATION || getCompPlan().getMethod().getDeclaringClass().isInBootImage()) { VM_Controller.compilationQueue.insert(getPriority(), this); - if (VM.LogAOSEvents) VM_AOSLogging.recompilationScheduled(getCompPlan(), getPriority()); + VM_AOSLogging.recompilationScheduled(getCompPlan(), getPriority()); return true; } else { getCompPlan().getMethod().replaceCompiledMethod(null); @@ -173,7 +173,7 @@ OPT_CompilationPlan cp = getCompPlan(); setTimeInitiated(VM_Controller.controllerClock); - if (VM.LogAOSEvents) VM_AOSLogging.recompilationStarted(cp); + VM_AOSLogging.recompilationStarted(cp); if (cp.options.PRINT_METHOD) { VM.sysWrite("-oc:O"+cp.options.getOptLevel()+" \n"); @@ -206,13 +206,11 @@ setCMID(newCMID); setTimeCompleted(VM_Controller.controllerClock); VM_CompiledMethod cm = newCMID == -1 ? null : VM_CompiledMethods.getCompiledMethod(newCMID); - if (VM.LogAOSEvents) { - if (newCMID == -1) { - VM_AOSLogging.recompilationAborted(cp); - } else { - VM_AOSLogging.recompilationCompleted(cp); - VM_AOSLogging.recordCompileTime(cm, getExpectedCompilationTime()); - } + if (newCMID == -1) { + VM_AOSLogging.recompilationAborted(cp); + } else { + VM_AOSLogging.recompilationCompleted(cp); + VM_AOSLogging.recordCompileTime(cm, getExpectedCompilationTime()); } if (VM_Controller.options.ENABLE_ADVICE_GENERATION && (newCMID != -1)) { VM_AOSGenerator.reCompilationWithOpt(cp); Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_ControllerThread.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_ControllerThread.java 2007-01-20 09:09:10 UTC (rev 11327) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_ControllerThread.java 2007-01-20 23:59:53 UTC (rev 11328) @@ -61,10 +61,10 @@ VM_Controller.controllerThread = this; // Bring up the logging system - if (VM.LogAOSEvents) VM_AOSLogging.boot(); + VM_AOSLogging.boot(); if (VM_Controller.options.ENABLE_ADVICE_GENERATION) VM_AOSGenerator.boot(); - if (VM.LogAOSEvents) VM_AOSLogging.controllerStarted(); + VM_AOSLogging.controllerStarted(); // Create measurement entities that are NOT related to // adaptive recompilation @@ -181,7 +181,7 @@ * VM_Controller.controllerInputQueue */ public void doneWaiting() { - if (VM.LogAOSEvents) VM_ControllerMemory.incrementNumAwoken(); + VM_ControllerMemory.incrementNumAwoken(); } @@ -258,7 +258,7 @@ * Final report */ public static void report() { - if (VM.LogAOSEvents) VM_AOSLogging.controllerCompleted(); + VM_AOSLogging.controllerCompleted(); } } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_DynamicCallGraphOrganizer.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_DynamicCallGraphOrganizer.java 2007-01-20 09:09:10 UTC (rev 11327) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_DynamicCallGraphOrganizer.java 2007-01-20 23:59:53 UTC (rev 11328) @@ -81,7 +81,7 @@ * Initialization: set up data structures and sampling objects. */ public void initialize() { - if (VM.LogAOSEvents) VM_AOSLogging.DCGOrganizerThreadStarted(); + VM_AOSLogging.DCGOrganizerThreadStarted(); if (VM_Controller.options.cgCBS()) { numberOfBufferTriples = VM_Controller.options.DCG_SAMPLE_SIZE * VM.CBSCallSamplesPerTick; Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_HotMethodRecompilationEvent.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_HotMethodRecompilationEvent.java 2007-01-20 09:09:10 UTC (rev 11327) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_HotMethodRecompilationEvent.java 2007-01-20 23:59:53 UTC (rev 11328) @@ -52,7 +52,7 @@ VM_ControllerPlan plan = VM_Controller.recompilationStrategy.considerHotMethod(getCompiledMethod(), this); - if (VM.LogAOSEvents) VM_ControllerMemory.incrementNumMethodsConsidered(); + VM_ControllerMemory.incrementNumMethodsConsidered(); // If plan is still null we decided not to recompile. if (plan != null) { Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_MethodCountData.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_MethodCountData.java 2007-01-20 09:09:10 UTC (rev 11327) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_MethodCountData.java 2007-01-20 23:59:53 UTC (rev 11328) @@ -306,7 +306,7 @@ VM_HotMethodRecompilationEvent event = new VM_HotMethodRecompilationEvent(cm, ns); VM_Controller.controllerInputQueue.insert(ns, event); - if (VM.LogAOSEvents) VM_AOSLogging.controllerNotifiedForHotness(cm, ns); + VM_AOSLogging.controllerNotifiedForHotness(cm, ns); } // Since I was hot enough, also consider my children. Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_MethodSampleOrganizer.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_MethodSampleOrganizer.java 2007-01-20 09:09:10 UTC (rev 11327) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_MethodSampleOrganizer.java 2007-01-20 23:59:53 UTC (rev 11328) @@ -47,8 +47,7 @@ * Initialization: set up data structures and sampling objects. */ public void initialize() { - if (VM.LogAOSEvents) - VM_AOSLogging.methodSampleOrganizerThreadStarted(filterOptLevel); + VM_AOSLogging.methodSampleOrganizerThreadStarted(filterOptLevel); int numSamples = VM_Controller.options.METHOD_SAMPLE_SIZE * VM_Scheduler.numProcessors; if (VM_Controller.options.mlCBS()) { @@ -71,7 +70,7 @@ * Method that is called when the sampling threshold is reached */ void thresholdReached() { - if (VM.LogAOSEvents) VM_AOSLogging.organizerThresholdReached(); + VM_AOSLogging.organizerThresholdReached(); int numSamples = ((VM_MethodListener)listener).getNumSamples(); int[] samples = ((VM_MethodListener)listener).getSamples(); @@ -114,7 +113,7 @@ VM_HotMethodRecompilationEvent event = new VM_HotMethodRecompilationEvent(cm, ns); VM_Controller.controllerInputQueue.insert(ns, event); - if (VM.LogAOSEvents) VM_AOSLogging.controllerNotifiedForHotness(cm, ns); + VM_AOSLogging.controllerNotifiedForHotness(cm, ns); } } } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_PreCompile.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_PreCompile.java 2007-01-20 09:09:10 UTC (rev 11327) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_PreCompile.java 2007-01-20 23:59:53 UTC (rev 11328) @@ -92,15 +92,15 @@ if (VM_Controller.options.counters()) { // for invocation counter, we only use one optimization level compPlan = VM_InvocationCounts.createCompilationPlan((VM_NormalMethod)method); - if (VM.LogAOSEvents) VM_AOSLogging.recompilationStarted(compPlan); + VM_AOSLogging.recompilationStarted(compPlan); VM_RuntimeCompiler.recompileWithOpt(compPlan); - if (VM.LogAOSEvents) VM_AOSLogging.recompilationCompleted(compPlan); + VM_AOSLogging.recompilationCompleted(compPlan); } else if (VM_Controller.options.sampling()) { // Create our set of standard optimization plans. compPlan = VM_Controller.recompilationStrategy.createCompilationPlan((VM_NormalMethod)method, value.getOptLevel(), null); - if (VM.LogAOSEvents) VM_AOSLogging.recompilationStarted(compPlan); + VM_AOSLogging.recompilationStarted(compPlan); VM_RuntimeCompiler.recompileWithOpt(compPlan); - if (VM.LogAOSEvents) VM_AOSLogging.recompilationCompleted(compPlan); + VM_AOSLogging.recompilationCompleted(compPlan); } else { VM.sysWriteln("Compiler advice file is not followed "); ((VM_NormalMethod)method).compile(); @@ -109,13 +109,6 @@ } } } - if (VM.LogAOSEvents) VM_AOSLogging.compileAllMethodsCompleted(); - + VM_AOSLogging.compileAllMethodsCompleted(); } - - } - - - - Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_RecompilationStrategy.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_RecompilationStrategy.java 2007-01-20 09:09:10 UTC (rev 11327) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_RecompilationStrategy.java 2007-01-20 23:59:53 UTC (rev 11328) @@ -161,7 +161,7 @@ } private void transferSamplesToNewPlan(VM_HotMethodEvent hme) { - if (VM.LogAOSEvents) VM_AOSLogging.oldVersionStillHot(hme); + VM_AOSLogging.oldVersionStillHot(hme); double oldNumSamples = VM_Controller.methodSamples.getData(hme.getCMID()); VM_ControllerPlan activePlan = VM_ControllerMemory.findLatestPlan(hme.getMethod()); if (activePlan == null) return; // shouldn't happen. Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_RuntimeMeasurements.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_RuntimeMeasurements.java 2007-01-20 09:09:10 UTC (rev 11327) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/adaptive/VM_RuntimeMeasurements.java 2007-01-20 23:59:53 UTC (rev 11328) @@ -340,7 +340,7 @@ */ static void decayDecayableObjects() { decayEventCounter++; - if (VM.LogAOSEvents) VM_AOSLogging.decayingCounters(); + VM_AOSLogging.decayingCounters(); for (VM_Decayable obj : decayObjects) { obj.decay(); @@ -386,15 +386,13 @@ */ static void report() { reportReportableObjects(); - - if (VM.LogAOSEvents) { - VM_AOSLogging.decayStatistics(decayEventCounter); - for (int i = 0, n = VM_Scheduler.threads.length; i < n; i++) { - VM_Thread t = VM_Scheduler.threads[i]; - if (t != null) { - VM_AOSLogging.threadExiting(t); - } + VM_AOSLogging.decayStatistics(decayEventCounter); + + for (int i = 0, n = VM_Scheduler.threads.length; i < n; i++) { + VM_Thread t = VM_Scheduler.threads[i]; + if (t != null) { + VM_AOSLogging.threadExiting(t); } } } @@ -415,7 +413,7 @@ * Called from VM_Thread.terminate. */ public static void monitorThreadExit() { - if (VM.LogAOSEvents) VM_AOSLogging.threadExiting(VM_Thread.getCurrentThread()); + VM_AOSLogging.threadExiting(VM_Thread.getCurrentThread()); } /** Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/ia32/osr/OSR_CodeInstaller.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/ia32/osr/OSR_CodeInstaller.java 2007-01-20 09:09:10 UTC (rev 11327) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/ia32/osr/OSR_CodeInstaller.java 2007-01-20 23:59:53 UTC (rev 11328) @@ -151,9 +151,7 @@ VM_Memory.sync(bridgeaddr, thread.bridgeInstructions.length() << LG_INSTRUCTION_WIDTH); - if (VM.LogAOSEvents) { - VM_AOSLogging.logOsrEvent("OSR code installation succeeded"); - } + VM_AOSLogging.logOsrEvent("OSR code installation succeeded"); return true; } Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/ppc/osr/OSR_CodeInstaller.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/ppc/osr/OSR_CodeInstaller.java 2007-01-20 09:09:10 UTC (rev 11327) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/ppc/osr/OSR_CodeInstaller.java 2007-01-20 23:59:53 UTC (rev 11328) @@ -127,9 +127,7 @@ VM_Memory.sync(bridgeaddr, thread.bridgeInstructions.length() << LG_INSTRUCTION_WIDTH); - if (VM.LogAOSEvents) { - VM_AOSLogging.logOsrEvent("OSR code installation succeeded"); - } + VM_AOSLogging.logOsrEvent("OSR code installation succeeded"); return true; } Modified: rvmroot/trunk/rvm/src-generated/vm-configuration/VM_Configuration.java =================================================================== --- rvmroot/trunk/rvm/src-generated/vm-configuration/VM_Configuration.java 2007-01-20 09:09:10 UTC (rev 11327) +++ rvmroot/trunk/rvm/src-generated/vm-configuration/VM_Configuration.java 2007-01-20 23:59:53 UTC (rev 11328) @@ -227,14 +227,6 @@ false; //-#endif - /** Adaptive compilation. */ - public static final boolean LogAOSEvents = - //-#if RVM_WITHOUT_AOS_LOG - false; - //-#else - true; - //-#endif - /** The following configuration objects are final when disabled, but non-final when enabled. */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <dgr...@us...> - 2007-02-22 16:23:12
|
Revision: 11513 http://svn.sourceforge.net/jikesrvm/?rev=11513&view=rev Author: dgrove-oss Date: 2007-02-22 08:23:07 -0800 (Thu, 22 Feb 2007) Log Message: ----------- Remove BURS rules and supporting functions in instruction selection that optimize 387 floating point operations by trying to schedule expression trees so that operations can be accumulated into FP0. This doesn't fix 1644460 by itself, but is a step towards fixing it. I expect some performance regression on mtrt as a result of taking out this optimization. Modified Paths: -------------- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/ia32/opt/OPT_BURS_Helpers.java rvmroot/trunk/rvm/src-generated/opt-burs/ia32/IA32.rules Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/ia32/opt/OPT_BURS_Helpers.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/ia32/opt/OPT_BURS_Helpers.java 2007-02-22 10:58:07 UTC (rev 11512) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/ia32/opt/OPT_BURS_Helpers.java 2007-02-22 16:23:07 UTC (rev 11513) @@ -1211,64 +1211,6 @@ EMIT(MIR_Move.create(IA32_FMOV, result, D(getFPR(0)))); } /** - * Expansion of FP_ADD_ACC, FP_MUL_ACC, - * FP_SUB_ACC, and FP_DIV_ACC. - * Moves first value into fp0, - * accumulates second value into fp0 using op. - * - * @param s the instruction to expand - * @param op the floating point op to use - * @param val1 the first operand - * @param val2 the second operand - */ - protected final void FP_MOV_OP(OPT_Instruction s, - OPT_Operator op, - OPT_Operand val1, - OPT_Operand val2) { - EMIT(MIR_Move.create(IA32_FMOV, D(getFPR(0)), val1)); - EMIT(MIR_BinaryAcc.mutate(s, op, D(getFPR(0)), val2)); - } - /** - * Expansion of FP_ADD_ACC, FP_MUL_ACC, - * FP_SUB_ACC, and FP_DIV_ACC. - * apply op to val1 and val2 - * move val1 to result using movop - * - * @param s the instruction to expand - * @param op the floating point op to use - * @param movop the move op to use - * @param result the result operand - * @param val1 the first operand - * @param val2 the second operand - */ - protected final void FP_OP_MOV(OPT_Instruction s, - OPT_Operator op, - OPT_Operator movop, - OPT_Operand result, - OPT_Operand val1, - OPT_Operand val2) { - EMIT(MIR_BinaryAcc.mutate(s, op, val1, val2)); - EMIT(MIR_Move.create(movop, result, val1.copy())); - } - /** - * Expansion of FP_ADD_ACC, FP_MUL_ACC, - * FP_SUB_ACC, and FP_DIV_ACC. - * apply op to val1 and val2. - * NOTE: either val1 or val2 must be either FPR0 or ST(0)! - * - * @param s the instruction to expand - * @param op the floating point op to use - * @param val1 the first operand - * @param val2 the second operand - */ - protected final void FP_OP(OPT_Instruction s, - OPT_Operator op, - OPT_Operand val1, - OPT_Operand val2) { - EMIT(MIR_BinaryAcc.mutate(s, op, val1, val2)); - } - - /** * Expansion of FP_REM * * @param s the instruction to expand @@ -1282,17 +1224,6 @@ EMIT(MIR_Move.create(IA32_FMOV, D(getFPR(0)), val1)); EMIT(MIR_BinaryAcc.mutate(s,IA32_FPREM, D(getFPR(0)), D(getFPR(1)))); } - /** - * Expansion of FP_REM - * - * @param s the instruction to expand - * @param val the operand to divide with fp0 to get a remainder - */ - protected final void FP_REM(OPT_Instruction s, - OPT_Operand val) { - EMIT(MIR_Move.create(IA32_FMOV, D(getFPR(1)), val)); - EMIT(MIR_BinaryAcc.mutate(s,IA32_FPREM, D(getFPR(0)), D(getFPR(1)))); - } /** * Expansion for [DF]CMP[GL] Modified: rvmroot/trunk/rvm/src-generated/opt-burs/ia32/IA32.rules =================================================================== --- rvmroot/trunk/rvm/src-generated/opt-burs/ia32/IA32.rules 2007-02-22 10:58:07 UTC (rev 11512) +++ rvmroot/trunk/rvm/src-generated/opt-burs/ia32/IA32.rules 2007-02-22 16:23:07 UTC (rev 11513) @@ -351,16 +351,6 @@ EMIT_INSTRUCTION EMIT(MIR_Move.mutate(P(p), IA32_FMOV, Binary.getResult(P(p)), MO_MC(P(p)))); -fp0: MATERIALIZE_FP_CONSTANT(riv) -30 -EMIT_INSTRUCTION -EMIT(MIR_Move.mutate(P(p), IA32_FMOV, D(getFPR(0)), MO_MC(P(p)))); - -pfp0: MATERIALIZE_FP_CONSTANT(riv) -20 -EMIT_INSTRUCTION -EMIT(MIR_Move.mutate(P(p), IA32_FLD, myFP0(), MO_MC(P(p)))); - # Use FLD1/FLDZ to avoid loading from the JTOC r: MATERIALIZE_FP_CONSTANT(riv) isFPC_ONE(P(p), 26) @@ -368,34 +358,12 @@ EMIT(MIR_Nullary.create(IA32_FLD1, myFP0())); \ EMIT(MIR_Move.mutate(P(p), IA32_FSTP, Binary.getResult(P(p)), myFP0())); -fp0: MATERIALIZE_FP_CONSTANT(riv) -isFPC_ONE(P(p), 26) -EMIT_INSTRUCTION -EMIT(MIR_Nullary.create(IA32_FLD1, myFP0())); \ -EMIT(MIR_Move.mutate(P(p), IA32_FSTP, D(getFPR(0)), myFP0())); - -pfp0: MATERIALIZE_FP_CONSTANT(riv) -isFPC_ONE(P(p), 11) -EMIT_INSTRUCTION -EMIT(MIR_Nullary.mutate(P(p), IA32_FLD1, myFP0())); - r: MATERIALIZE_FP_CONSTANT(riv) isFPC_ZERO(P(p), 26) EMIT_INSTRUCTION EMIT(MIR_Nullary.create(IA32_FLDZ, myFP0())); \ EMIT(MIR_Move.mutate(P(p), IA32_FSTP, Binary.getResult(P(p)), myFP0())); -fp0: MATERIALIZE_FP_CONSTANT(riv) -isFPC_ZERO(P(p), 26) -EMIT_INSTRUCTION -EMIT(MIR_Nullary.create(IA32_FLDZ, myFP0())); \ -EMIT(MIR_Move.mutate(P(p), IA32_FSTP, D(getFPR(0)), myFP0())); - -pfp0: MATERIALIZE_FP_CONSTANT(riv) -isFPC_ZERO(P(p), 11) -EMIT_INSTRUCTION -EMIT(MIR_Nullary.mutate(P(p), IA32_FLDZ, myFP0())); - # Use FLD1/FLDZ to avoid loading from the JTOC r: MATERIALIZE_FP_CONSTANT(GET_JTOC(r)) isFPC_ONE(P(p), 26) @@ -403,34 +371,12 @@ EMIT(MIR_Nullary.create(IA32_FLD1, myFP0())); \ EMIT(MIR_Move.mutate(P(p), IA32_FSTP, Binary.getResult(P(p)), myFP0())); -fp0: MATERIALIZE_FP_CONSTANT(GET_JTOC(r)) -isFPC_ONE(P(p), 26) -EMIT_INSTRUCTION -EMIT(MIR_Nullary.create(IA32_FLD1, myFP0())); \ -EMIT(MIR_Move.mutate(P(p), IA32_FSTP, D(getFPR(0)), myFP0())); - -pfp0: MATERIALIZE_FP_CONSTANT(GET_JTOC(r)) -isFPC_ONE(P(p), 11) -EMIT_INSTRUCTION -EMIT(MIR_Nullary.mutate(P(p), IA32_FLD1, myFP0())); - r: MATERIALIZE_FP_CONSTANT(GET_JTOC(r)) isFPC_ZERO(P(p), 26) EMIT_INSTRUCTION EMIT(MIR_Nullary.create(IA32_FLDZ, myFP0())); \ EMIT(MIR_Move.mutate(P(p), IA32_FSTP, Binary.getResult(P(p)), myFP0())); -fp0: MATERIALIZE_FP_CONSTANT(GET_JTOC(r)) -isFPC_ZERO(P(p), 26) -EMIT_INSTRUCTION -EMIT(MIR_Nullary.create(IA32_FLDZ, myFP0())); \ -EMIT(MIR_Move.mutate(P(p), IA32_FSTP, D(getFPR(0)), myFP0())); - -pfp0: MATERIALIZE_FP_CONSTANT(GET_JTOC(r)) -isFPC_ZERO(P(p), 11) -EMIT_INSTRUCTION -EMIT(MIR_Nullary.mutate(P(p), IA32_FLDZ, myFP0())); - ################################## # A few operators are passed through unchanged ################################## @@ -993,21 +939,6 @@ ##### # FCMP_CMOV ##### -# Optimize for one operand already on the FP stack -r: FCMP_CMOV(fp0, OTHER_OPERAND(r, any)) -30 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -EMIT(CPOS(P(p), MIR_Compare.create(IA32_FCOMI, F(getFPR(0)), CondMove.getVal2(P(p))))); \ -CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)).translateUNSIGNED(), \ - CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p))); - -r: FCMP_CMOV(pfp0, OTHER_OPERAND(r, any)) -35 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -EMIT(CPOS(P(p), MIR_Compare.create(IA32_FCOMIP, myFP0(), CondMove.getVal2(P(p))))); \ -CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)).translateUNSIGNED(), \ - CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p))); - r: FCMP_CMOV(r, OTHER_OPERAND(r, any)) p.child1.isREGISTERNode()?60:43 EMIT_INSTRUCTION @@ -1016,27 +947,9 @@ CMOV_MOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)).translateUNSIGNED(), \ CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p))); -# Can't optimize cases: FCMP_CMOV(r, OTHER_OPERAND(fp0/pfp0, any)) or -# for child2 being a register as flip operands may produce an invalid -# FP comparison ##### # FCMP_FCMOV ##### -# Optimize for one operand already on the FP stack -r: FCMP_FCMOV(fp0, OTHER_OPERAND(r, any)) -30 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -EMIT(CPOS(P(p), MIR_Compare.create(IA32_FCOMI, F(getFPR(0)), CondMove.getVal2(P(p))))); \ -CMOV_FMOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)).translateUNSIGNED(), \ - CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p))); - -r: FCMP_FCMOV(pfp0, OTHER_OPERAND(r, any)) -35 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -EMIT(CPOS(P(p), MIR_Compare.create(IA32_FCOMIP, myFP0(), CondMove.getVal2(P(p))))); \ -CMOV_FMOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)).translateUNSIGNED(), \ - CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p))); - r: FCMP_FCMOV(r, OTHER_OPERAND(r, any)) p.child1.isREGISTERNode()?60:43 EMIT_INSTRUCTION @@ -1045,9 +958,6 @@ CMOV_FMOV(P(p), CondMove.getResult(P(p)), CondMove.getCond(P(p)).translateUNSIGNED(), \ CondMove.getTrueValue(P(p)), CondMove.getFalseValue(P(p))); -# Can't optimize cases: FCMP_CMOV(r, OTHER_OPERAND(fp0/pfp0, any)) or -# for child2 being a register as flip operands may produce an invalid -# FP comparison ##### # LCMP_CMOV ##### @@ -1454,82 +1364,6 @@ ##### # FP_ADD (handles both float and double; both are 80 bit anyways...) ##### -fp0: FP_ADD(r, r) -p.child1.isREGISTERNode()?43:26 -EMIT_INSTRUCTION -FP_MOV_OP(P(p), IA32_FADD, Binary.getVal1(P(p)), Binary.getVal2(P(p))); - -fp0: FP_ADD(r, r) -p.child2.isREGISTERNode()?43:26 -EMIT_INSTRUCTION -FP_MOV_OP(P(p), IA32_FADD, Binary.getVal2(P(p)), Binary.getVal1(P(p))); - -fp0: FP_ADD(r, fpload) -p.child1.isREGISTERNode()?45:28 -EMIT_INSTRUCTION -FP_MOV_OP(P(p), IA32_FADD, Binary.getVal1(P(p)), consumeMO()); - -fp0: FP_ADD(fpload, r) -p.child2.isREGISTERNode()?45:28 -EMIT_INSTRUCTION -FP_MOV_OP(P(p), IA32_FADD, Binary.getVal2(P(p)), consumeMO()); - -fp0: FP_ADD(pfp0, r) -p.child2.isREGISTERNode()?48:31 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_MOV_OP(P(p), IA32_FADDP, Binary.getVal2(P(p)), myFP0()); - -fp0: FP_ADD(r, pfp0) -p.child1.isREGISTERNode()?48:31 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_MOV_OP(P(p), IA32_FADDP, Binary.getVal1(P(p)), myFP0()); - -fp0: FP_ADD(fp0, r) -13 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_OP(P(p), IA32_FADD, D(getFPR(0)), Binary.getVal2(P(p))); - -fp0: FP_ADD(r, fp0) -13 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_OP(P(p), IA32_FADD, D(getFPR(0)), Binary.getVal1(P(p))); - -fp0: FP_ADD(fp0, fpload) -15 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_OP(P(p), IA32_FADD, D(getFPR(0)), consumeMO()); - -fp0: FP_ADD(fpload, fp0) -15 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_OP(P(p), IA32_FADD, D(getFPR(0)), consumeMO()); - -pfp0: FP_ADD(r, r) -31 -EMIT_INSTRUCTION -EMIT(MIR_Move.create(IA32_FLD, myFP0(), Binary.getVal1(P(p)))); \ -FP_OP(P(p), IA32_FADD, myFP0(), Binary.getVal2(P(p))); - -pfp0: FP_ADD(pfp0, r) -13 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_OP(P(p), IA32_FADD, myFP0(), Binary.getVal2(P(p))); - -pfp0: FP_ADD(r, pfp0) -13 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_OP(P(p), IA32_FADD, myFP0(), Binary.getVal1(P(p))); - -pfp0: FP_ADD(pfp0, fpload) -15 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_OP(P(p), IA32_FADD, myFP0(), consumeMO()); - -pfp0: FP_ADD(fpload, pfp0) -15 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_OP(P(p), IA32_FADD, myFP0(), consumeMO()); - r: FP_ADD(r, r) p.child1.isREGISTERNode()?56:39 EMIT_INSTRUCTION @@ -1550,125 +1384,9 @@ EMIT_INSTRUCTION FP_MOV_OP_MOV(P(p), IA32_FADD, Binary.getResult(P(p)), Binary.getVal2(P(p)), consumeMO()); -r: FP_ADD(r, fp0) -26 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_OP_MOV(P(p), IA32_FADD, IA32_FMOV, Binary.getResult(P(p)), D(getFPR(0)), Binary.getVal1(P(p))); - -r: FP_ADD(fp0, r) -26 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_OP_MOV(P(p), IA32_FADD, IA32_FMOV, Binary.getResult(P(p)), D(getFPR(0)), Binary.getVal2(P(p))); - -r: FP_ADD(fpload, fp0) -28 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_OP_MOV(P(p), IA32_FADD, IA32_FMOV, Binary.getResult(P(p)), D(getFPR(0)), consumeMO()); - -r: FP_ADD(fp0, fpload) -28 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_OP_MOV(P(p), IA32_FADD, IA32_FMOV, Binary.getResult(P(p)), D(getFPR(0)), consumeMO()); - -r: FP_ADD(r, pfp0) -31 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_OP_MOV(P(p), IA32_FADD, IA32_FSTP, Binary.getResult(P(p)), myFP0(), Binary.getVal1(P(p))); - -r: FP_ADD(pfp0, r) -31 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_OP_MOV(P(p), IA32_FADD, IA32_FSTP, Binary.getResult(P(p)), myFP0(), Binary.getVal2(P(p))); - -r: FP_ADD(fpload, pfp0) -31 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_OP_MOV(P(p), IA32_FADD, IA32_FSTP, Binary.getResult(P(p)), myFP0(), consumeMO()); - -r: FP_ADD(pfp0, fpload) -31 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_OP_MOV(P(p), IA32_FADD, IA32_FSTP, Binary.getResult(P(p)), myFP0(), consumeMO()); - ##### # FP_MUL (handles both float and double; both are 80 bit anyways...) ##### -fp0: FP_MUL(r, r) -p.child1.isREGISTERNode()?43:26 -EMIT_INSTRUCTION -FP_MOV_OP(P(p), IA32_FMUL, Binary.getVal1(P(p)), Binary.getVal2(P(p))); - -fp0: FP_MUL(r, r) -p.child2.isREGISTERNode()?43:26 -EMIT_INSTRUCTION -FP_MOV_OP(P(p), IA32_FMUL, Binary.getVal2(P(p)), Binary.getVal1(P(p))); - -fp0: FP_MUL(r, fpload) -p.child1.isREGISTERNode()?45:28 -EMIT_INSTRUCTION -FP_MOV_OP(P(p), IA32_FMUL, Binary.getVal1(P(p)), consumeMO()); - -fp0: FP_MUL(fpload, r) -p.child2.isREGISTERNode()?45:28 -EMIT_INSTRUCTION -FP_MOV_OP(P(p), IA32_FMUL, Binary.getVal2(P(p)), consumeMO()); - -fp0: FP_MUL(pfp0, r) -p.child2.isREGISTERNode()?48:31 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_MOV_OP(P(p), IA32_FMULP, Binary.getVal2(P(p)), myFP0()); - -fp0: FP_MUL(r, pfp0) -p.child1.isREGISTERNode()?48:31 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_MOV_OP(P(p), IA32_FMULP, Binary.getVal1(P(p)), myFP0()); - -fp0: FP_MUL(fp0, r) -13 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_OP(P(p), IA32_FMUL, D(getFPR(0)), Binary.getVal2(P(p))); - -fp0: FP_MUL(r, fp0) -13 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_OP(P(p), IA32_FMUL, D(getFPR(0)), Binary.getVal1(P(p))); - -fp0: FP_MUL(fp0, fpload) -15 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_OP(P(p), IA32_FMUL, D(getFPR(0)), consumeMO()); - -fp0: FP_MUL(fpload, fp0) -15 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_OP(P(p), IA32_FMUL, D(getFPR(0)), consumeMO()); - -pfp0: FP_MUL(r, r) -31 -EMIT_INSTRUCTION -EMIT(MIR_Move.create(IA32_FLD, myFP0(), Binary.getVal1(P(p)))); \ -FP_OP(P(p), IA32_FMUL, myFP0(), Binary.getVal2(P(p))); - -pfp0: FP_MUL(pfp0, r) -13 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_OP(P(p), IA32_FMUL, myFP0(), Binary.getVal2(P(p))); - -pfp0: FP_MUL(r, pfp0) -13 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_OP(P(p), IA32_FMUL, myFP0(), Binary.getVal1(P(p))); - -pfp0: FP_MUL(pfp0, fpload) -15 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_OP(P(p), IA32_FMUL, myFP0(), consumeMO()); - -pfp0: FP_MUL(fpload, pfp0) -15 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_OP(P(p), IA32_FMUL, myFP0(), consumeMO()); - r: FP_MUL(r, r) p.child1.isREGISTERNode()?56:39 EMIT_INSTRUCTION @@ -1689,125 +1407,9 @@ EMIT_INSTRUCTION FP_MOV_OP_MOV(P(p), IA32_FMUL, Binary.getResult(P(p)), Binary.getVal2(P(p)), consumeMO()); -r: FP_MUL(r, fp0) -26 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_OP_MOV(P(p), IA32_FMUL, IA32_FMOV, Binary.getResult(P(p)), D(getFPR(0)), Binary.getVal1(P(p))); - -r: FP_MUL(fp0, r) -26 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_OP_MOV(P(p), IA32_FMUL, IA32_FMOV, Binary.getResult(P(p)), D(getFPR(0)), Binary.getVal2(P(p))); - -r: FP_MUL(fpload, fp0) -28 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_OP_MOV(P(p), IA32_FMUL, IA32_FMOV, Binary.getResult(P(p)), D(getFPR(0)), consumeMO()); - -r: FP_MUL(fp0, fpload) -28 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_OP_MOV(P(p), IA32_FMUL, IA32_FMOV, Binary.getResult(P(p)), D(getFPR(0)), consumeMO()); - -r: FP_MUL(r, pfp0) -31 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_OP_MOV(P(p), IA32_FMUL, IA32_FSTP, Binary.getResult(P(p)), myFP0(), Binary.getVal1(P(p))); - -r: FP_MUL(pfp0, r) -31 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_OP_MOV(P(p), IA32_FMUL, IA32_FSTP, Binary.getResult(P(p)), myFP0(), Binary.getVal2(P(p))); - -r: FP_MUL(fpload, pfp0) -31 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_OP_MOV(P(p), IA32_FMUL, IA32_FSTP, Binary.getResult(P(p)), myFP0(), consumeMO()); - -r: FP_MUL(pfp0, fpload) -31 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_OP_MOV(P(p), IA32_FMUL, IA32_FSTP, Binary.getResult(P(p)), myFP0(), consumeMO()); - ##### # FP_SUB (handles both float and double; both are 80 bit anyways...) ##### -fp0: FP_SUB(r, r) -p.child1.isREGISTERNode()?43:26 -EMIT_INSTRUCTION -FP_MOV_OP(P(p), IA32_FSUB, Binary.getVal1(P(p)), Binary.getVal2(P(p))); - -fp0: FP_SUB(r, r) -p.child2.isREGISTERNode()?43:26 -EMIT_INSTRUCTION -FP_MOV_OP(P(p), IA32_FSUBR, Binary.getVal2(P(p)), Binary.getVal1(P(p))); - -fp0: FP_SUB(r, fpload) -p.child1.isREGISTERNode()?45:28 -EMIT_INSTRUCTION -FP_MOV_OP(P(p), IA32_FSUB, Binary.getVal1(P(p)), consumeMO()); - -fp0: FP_SUB(fpload, r) -p.child2.isREGISTERNode()?45:28 -EMIT_INSTRUCTION -FP_MOV_OP(P(p), IA32_FSUBR, Binary.getVal2(P(p)), consumeMO()); - -fp0: FP_SUB(pfp0, r) -p.child2.isREGISTERNode()?48:31 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_MOV_OP(P(p), IA32_FSUBRP, Binary.getVal2(P(p)), myFP0()); - -fp0: FP_SUB(r, pfp0) -p.child1.isREGISTERNode()?48:31 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_MOV_OP(P(p), IA32_FSUBP, Binary.getVal1(P(p)), myFP0()); - -fp0: FP_SUB(fp0, r) -13 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_OP(P(p), IA32_FSUB, D(getFPR(0)), Binary.getVal2(P(p))); - -fp0: FP_SUB(r, fp0) -13 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_OP(P(p), IA32_FSUBR, D(getFPR(0)), Binary.getVal1(P(p))); - -fp0: FP_SUB(fp0, fpload) -15 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_OP(P(p), IA32_FSUB, D(getFPR(0)), consumeMO()); - -fp0: FP_SUB(fpload, fp0) -15 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_OP(P(p), IA32_FSUBR, D(getFPR(0)), consumeMO()); - -pfp0: FP_SUB(r, r) -31 -EMIT_INSTRUCTION -EMIT(MIR_Move.create(IA32_FLD, myFP0(), Binary.getVal1(P(p)))); \ -FP_OP(P(p), IA32_FSUB, myFP0(), Binary.getVal2(P(p))); - -pfp0: FP_SUB(pfp0, r) -13 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_OP(P(p), IA32_FSUB, myFP0(), Binary.getVal2(P(p))); - -pfp0: FP_SUB(r, pfp0) -13 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_OP(P(p), IA32_FSUBR, myFP0(), Binary.getVal1(P(p))); - -pfp0: FP_SUB(pfp0, fpload) -15 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_OP(P(p), IA32_FSUB, myFP0(), consumeMO()); - -pfp0: FP_SUB(fpload, pfp0) -15 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_OP(P(p), IA32_FSUBR, myFP0(), consumeMO()); - r: FP_SUB(r, r) p.child1.isREGISTERNode()?56:39 EMIT_INSTRUCTION @@ -1828,125 +1430,9 @@ EMIT_INSTRUCTION FP_MOV_OP_MOV(P(p), IA32_FSUBR, Binary.getResult(P(p)), Binary.getVal2(P(p)), consumeMO()); -r: FP_SUB(r, fp0) -26 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_OP_MOV(P(p), IA32_FSUBR, IA32_FMOV, Binary.getResult(P(p)), D(getFPR(0)), Binary.getVal1(P(p))); - -r: FP_SUB(fp0, r) -26 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_OP_MOV(P(p), IA32_FSUB, IA32_FMOV, Binary.getResult(P(p)), D(getFPR(0)), Binary.getVal2(P(p))); - -r: FP_SUB(fpload, fp0) -28 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_OP_MOV(P(p), IA32_FSUBR, IA32_FMOV, Binary.getResult(P(p)), D(getFPR(0)), consumeMO()); - -r: FP_SUB(fp0, fpload) -28 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_OP_MOV(P(p), IA32_FSUB, IA32_FMOV, Binary.getResult(P(p)), D(getFPR(0)), consumeMO()); - -r: FP_SUB(r, pfp0) -31 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_OP_MOV(P(p), IA32_FSUBR, IA32_FSTP, Binary.getResult(P(p)), myFP0(), Binary.getVal1(P(p))); - -r: FP_SUB(pfp0, r) -31 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_OP_MOV(P(p), IA32_FSUB, IA32_FSTP, Binary.getResult(P(p)), myFP0(), Binary.getVal2(P(p))); - -r: FP_SUB(fpload, pfp0) -31 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_OP_MOV(P(p), IA32_FSUBR, IA32_FSTP, Binary.getResult(P(p)), myFP0(), consumeMO()); - -r: FP_SUB(pfp0, fpload) -31 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_OP_MOV(P(p), IA32_FSUB, IA32_FSTP, Binary.getResult(P(p)), myFP0(), consumeMO()); - ##### # FP_DIV (handles both float and double; both are 80 bit anyways...) ##### -fp0: FP_DIV(r, r) -p.child1.isREGISTERNode()?43:26 -EMIT_INSTRUCTION -FP_MOV_OP(P(p), IA32_FDIV, Binary.getVal1(P(p)), Binary.getVal2(P(p))); - -fp0: FP_DIV(r, r) -p.child2.isREGISTERNode()?43:26 -EMIT_INSTRUCTION -FP_MOV_OP(P(p), IA32_FDIVR, Binary.getVal2(P(p)), Binary.getVal1(P(p))); - -fp0: FP_DIV(r, fpload) -p.child1.isREGISTERNode()?45:28 -EMIT_INSTRUCTION -FP_MOV_OP(P(p), IA32_FDIV, Binary.getVal1(P(p)), consumeMO()); - -fp0: FP_DIV(fpload, r) -p.child2.isREGISTERNode()?45:28 -EMIT_INSTRUCTION -FP_MOV_OP(P(p), IA32_FDIVR, Binary.getVal2(P(p)), consumeMO()); - -fp0: FP_DIV(pfp0, r) -p.child2.isREGISTERNode()?48:31 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_MOV_OP(P(p), IA32_FDIVRP, Binary.getVal2(P(p)), myFP0()); - -fp0: FP_DIV(r, pfp0) -p.child1.isREGISTERNode()?48:31 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_MOV_OP(P(p), IA32_FDIVP, Binary.getVal1(P(p)), myFP0()); - -fp0: FP_DIV(fp0, r) -13 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_OP(P(p), IA32_FDIV, D(getFPR(0)), Binary.getVal2(P(p))); - -fp0: FP_DIV(r, fp0) -13 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_OP(P(p), IA32_FDIVR, D(getFPR(0)), Binary.getVal1(P(p))); - -fp0: FP_DIV(fp0, fpload) -15 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_OP(P(p), IA32_FDIV, D(getFPR(0)), consumeMO()); - -fp0: FP_DIV(fpload, fp0) -15 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_OP(P(p), IA32_FDIVR, D(getFPR(0)), consumeMO()); - -pfp0: FP_DIV(r, r) -31 -EMIT_INSTRUCTION -EMIT(MIR_Move.create(IA32_FLD, myFP0(), Binary.getVal1(P(p)))); \ -FP_OP(P(p), IA32_FDIV, myFP0(), Binary.getVal2(P(p))); - -pfp0: FP_DIV(pfp0, r) -13 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_OP(P(p), IA32_FDIV, myFP0(), Binary.getVal2(P(p))); - -pfp0: FP_DIV(r, pfp0) -13 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_OP(P(p), IA32_FDIVR, myFP0(), Binary.getVal1(P(p))); - -pfp0: FP_DIV(pfp0, fpload) -15 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_OP(P(p), IA32_FDIV, myFP0(), consumeMO()); - -pfp0: FP_DIV(fpload, pfp0) -15 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_OP(P(p), IA32_FDIVR, myFP0(), consumeMO()); - r: FP_DIV(r, r) p.child1.isREGISTERNode()?56:39 EMIT_INSTRUCTION @@ -1967,59 +1453,9 @@ EMIT_INSTRUCTION FP_MOV_OP_MOV(P(p), IA32_FDIVR, Binary.getResult(P(p)), Binary.getVal2(P(p)), consumeMO()); -r: FP_DIV(r, fp0) -26 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_OP_MOV(P(p), IA32_FDIVR, IA32_FMOV, Binary.getResult(P(p)), D(getFPR(0)), Binary.getVal1(P(p))); - -r: FP_DIV(fp0, r) -26 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_OP_MOV(P(p), IA32_FDIV, IA32_FMOV, Binary.getResult(P(p)), D(getFPR(0)), Binary.getVal2(P(p))); - -r: FP_DIV(fpload, fp0) -28 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_OP_MOV(P(p), IA32_FDIVR, IA32_FMOV, Binary.getResult(P(p)), D(getFPR(0)), consumeMO()); - -r: FP_DIV(fp0, fpload) -28 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_OP_MOV(P(p), IA32_FDIV, IA32_FMOV, Binary.getResult(P(p)), D(getFPR(0)), consumeMO()); - -r: FP_DIV(r, pfp0) -31 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_OP_MOV(P(p), IA32_FDIVR, IA32_FSTP, Binary.getResult(P(p)), myFP0(), Binary.getVal1(P(p))); - -r: FP_DIV(pfp0, r) -31 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_OP_MOV(P(p), IA32_FDIV, IA32_FSTP, Binary.getResult(P(p)), myFP0(), Binary.getVal2(P(p))); - -r: FP_DIV(fpload, pfp0) -31 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -FP_OP_MOV(P(p), IA32_FDIVR, IA32_FSTP, Binary.getResult(P(p)), myFP0(), consumeMO()); - -r: FP_DIV(pfp0, fpload) -31 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_OP_MOV(P(p), IA32_FDIV, IA32_FSTP, Binary.getResult(P(p)), myFP0(), consumeMO()); - ##### # FP_REM (handles both float and double; both are 80 bit anyways...) ##### -fp0: FP_REM(r, r) -39 -EMIT_INSTRUCTION -FP_REM(P(p), Binary.getVal1(P(p)), Binary.getVal2(P(p))); - -fp0: FP_REM(fp0, r) -26 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -FP_REM(P(p), Binary.getVal2(P(p))); - r: FP_REM(r, r) 52 EMIT_INSTRUCTION @@ -2027,38 +1463,9 @@ FP_REM(P(p), Binary.getVal1(P(p)), Binary.getVal2(P(p))); \ EMIT(MIR_Move.create(IA32_FMOV, res, F(getFPR(0)))); -r: FP_REM(fp0, r) -52 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -OPT_RegisterOperand res = Binary.getResult(P(p)); \ -FP_REM(P(p), Binary.getVal2(P(p))); \ -EMIT(MIR_Move.create(IA32_FMOV, res, F(getFPR(0)))); - ##### # FP_NEG (handles both float and double; both are 80 bit anyways...) ##### -fp0: FP_NEG(r) -43 -EMIT_INSTRUCTION -EMIT(MIR_Move.create(IA32_FMOV, D(getFPR(0)), Unary.getVal(P(p)))); \ -EMIT(MIR_UnaryAcc.mutate(P(p), IA32_FCHS, D(getFPR(0)))); - -fp0: FP_NEG(fp0) -13 -EMIT_INSTRUCTION -EMIT(MIR_UnaryAcc.mutate(P(p), IA32_FCHS, D(getFPR(0)))); - -pfp0: FP_NEG(r) -29 -EMIT_INSTRUCTION -EMIT(MIR_Move.create(IA32_FLD, myFP0(), Unary.getVal(P(p)))); \ -EMIT(MIR_UnaryAcc.mutate(P(p), IA32_FCHS, myFP0())); - -pfp0: FP_NEG(pfp0) -13 -EMIT_INSTRUCTION -EMIT(MIR_UnaryAcc.mutate(P(p), IA32_FCHS, myFP0())); - r: FP_NEG(r) 56 EMIT_INSTRUCTION @@ -2066,18 +1473,6 @@ EMIT(MIR_UnaryAcc.create(IA32_FCHS, D(getFPR(0)))); \ EMIT(MIR_Move.mutate(P(p), IA32_FMOV, Unary.getResult(P(p)), D(getFPR(0)))); -r: FP_NEG(fp0) -26 -EMIT_INSTRUCTION -EMIT(MIR_UnaryAcc.create(IA32_FCHS, D(getFPR(0)))); \ -EMIT(MIR_Move.create(IA32_FMOV, Unary.getResult(P(p)), D(getFPR(0)))); - -r: FP_NEG(pfp0) -31 -EMIT_INSTRUCTION -EMIT(MIR_UnaryAcc.create(IA32_FCHS, myFP0())); \ -EMIT(MIR_Move.create(IA32_FSTP, Unary.getResult(P(p)), myFP0())); - ################################## # Basic Long ALU operations ################################## @@ -2268,70 +1663,24 @@ EMIT(MIR_Move.create(IA32_FILD, myFP0(), MO_CONV(DW))); \ EMIT(MIR_Move.mutate(P(p), IA32_FSTP, Unary.getResult(P(p)), myFP0())); -fp0: INT_2FP(riv) -48 -EMIT_INSTRUCTION -EMIT(MIR_Move.create(IA32_MOV, MO_CONV(DW), Unary.getVal(P(p)))); \ -EMIT(MIR_Move.create(IA32_FILD, myFP0(), MO_CONV(DW))); \ -EMIT(MIR_Move.mutate(P(p), IA32_FSTP, D(getFPR(0)), myFP0())); - -pfp0: INT_2FP(riv) -35 -EMIT_INSTRUCTION -EMIT(MIR_Move.create(IA32_MOV, MO_CONV(DW), Unary.getVal(P(p)))); \ -EMIT(MIR_Move.create(IA32_FILD, myFP0(), MO_CONV(DW))); - r: INT_2FP(load32) 33 EMIT_INSTRUCTION EMIT(MIR_Move.create(IA32_FILD, myFP0(), consumeMO())); \ EMIT(MIR_Move.mutate(P(p), IA32_FSTP, Unary.getResult(P(p)), myFP0())); -fp0: INT_2FP(load32) -33 -EMIT_INSTRUCTION -EMIT(MIR_Move.create(IA32_FILD, myFP0(), consumeMO())); \ -EMIT(MIR_Move.mutate(P(p), IA32_FSTP, D(getFPR(0)), myFP0())); - -pfp0: INT_2FP(load32) -20 -EMIT_INSTRUCTION -EMIT(MIR_Move.mutate(P(p), IA32_FILD, myFP0(), consumeMO())); - r: INT_2FP(INT_CONSTANT) isONE(VL(p), 31) EMIT_INSTRUCTION EMIT(MIR_Nullary.create(IA32_FLD1, myFP0())); \ EMIT(MIR_Move.mutate(P(p), IA32_FSTP, Unary.getResult(P(p)), myFP0())); -fp0: INT_2FP(INT_CONSTANT) -isONE(VL(p),31) -EMIT_INSTRUCTION -EMIT(MIR_Nullary.create(IA32_FLD1, myFP0())); \ -EMIT(MIR_Move.mutate(P(p), IA32_FSTP, D(getFPR(0)), myFP0())); - -pfp0: INT_2FP(INT_CONSTANT) -isONE(VL(p), 18) -EMIT_INSTRUCTION -EMIT(MIR_Nullary.mutate(P(p), IA32_FLD1, myFP0())); - r: INT_2FP(INT_CONSTANT) isZERO(VL(p), 31) EMIT_INSTRUCTION EMIT(MIR_Nullary.create(IA32_FLDZ, myFP0())); \ EMIT(MIR_Move.mutate(P(p), IA32_FSTP, Unary.getResult(P(p)), myFP0())); -fp0: INT_2FP(INT_CONSTANT) -isZERO(VL(p), 31) -EMIT_INSTRUCTION -EMIT(MIR_Nullary.create(IA32_FLDZ, myFP0())); \ -EMIT(MIR_Move.mutate(P(p), IA32_FSTP, D(getFPR(0)), myFP0())); - -pfp0: INT_2FP(INT_CONSTANT) -isZERO(VL(p), 18) -EMIT_INSTRUCTION -EMIT(MIR_Nullary.mutate(P(p), IA32_FLDZ, myFP0())); - ##### # LONG_2FP (handles both float and double; both are 80 bit anyways...) ##### @@ -2342,36 +1691,12 @@ EMIT(MIR_Move.create(IA32_FILD, myFP0(), MO_CONV(QW))); \ EMIT(MIR_Move.mutate(P(p), IA32_FSTP, Unary.getResult(P(p)), myFP0())); -fp0: LONG_2FP(rlv) -53 -EMIT_INSTRUCTION -STORE_LONG_FOR_CONV(Unary.getVal(P(p))); \ -EMIT(MIR_Move.create(IA32_FILD, myFP0(), MO_CONV(QW))); \ -EMIT(MIR_Move.mutate(P(p), IA32_FSTP, D(getFPR(0)), myFP0())); - -pfp0: LONG_2FP(rlv) -50 -EMIT_INSTRUCTION -STORE_LONG_FOR_CONV(Unary.getVal(P(p))); \ -EMIT(MIR_Move.create(IA32_FILD, myFP0(), MO_CONV(QW))); - r: LONG_2FP(load64) 33 EMIT_INSTRUCTION EMIT(MIR_Move.create(IA32_FILD, myFP0(), consumeMO())); \ EMIT(MIR_Move.mutate(P(p), IA32_FSTP, Unary.getResult(P(p)), myFP0())); -fp0: LONG_2FP(load64) -33 -EMIT_INSTRUCTION -EMIT(MIR_Move.create(IA32_FILD, myFP0(), consumeMO())); \ -EMIT(MIR_Move.mutate(P(p), IA32_FSTP, D(getFPR(0)), myFP0())); - -pfp0: LONG_2FP(load64) -20 -EMIT_INSTRUCTION -EMIT(MIR_Move.mutate(P(p), IA32_FILD, myFP0(), consumeMO())); - ##### # LONG_2INT ##### @@ -2406,16 +1731,6 @@ EMIT_INSTRUCTION FPR_2INT(P(p), Unary.getResult(P(p)), Unary.getVal(P(p))); -r: FLOAT_2INT(fp0) -30 -EMIT_INSTRUCTION -FPR_2INT(P(p), Unary.getResult(P(p)), D(getFPR(0))); - -r: FLOAT_2INT(pfp0) -30 -EMIT_INSTRUCTION -FPR_2INT(P(p), Unary.getResult(P(p)), myFP0()); - r: FLOAT_2INT(fpload) 30 EMIT_INSTRUCTION @@ -2429,31 +1744,6 @@ EMIT_INSTRUCTION EMIT(MIR_Move.mutate(P(p), IA32_FMOV, Unary.getResult(P(p)), Unary.getVal(P(p)))); -r: FLOAT_2DOUBLE(fp0) -13 -EMIT_INSTRUCTION -EMIT(MIR_Move.mutate(P(p), IA32_FMOV, Unary.getResult(P(p)), D(getFPR(0)))); - -r: FLOAT_2DOUBLE(pfp0) -18 -EMIT_INSTRUCTION -EMIT(MIR_Move.mutate(P(p), IA32_FSTP, Unary.getResult(P(p)), myFP0())); - -fp0: FLOAT_2DOUBLE(pfp0) -18 -EMIT_INSTRUCTION -EMIT(MIR_Move.mutate(P(p), IA32_FSTP, D(getFPR(0)), myFP0())); - -fp0: FLOAT_2DOUBLE(fp0) -0 -NOFLAGS -// nothing to do - -pfp0: FLOAT_2DOUBLE(pfp0) -0 -NOFLAGS -// nothing to do - ##### # DOUBLE_2INT ##### @@ -2462,16 +1752,6 @@ EMIT_INSTRUCTION FPR_2INT(P(p), Unary.getResult(P(p)), Unary.getVal(P(p))); -r: DOUBLE_2INT(fp0) -30 -EMIT_INSTRUCTION -FPR_2INT(P(p), Unary.getResult(P(p)), D(getFPR(0))); - -r: DOUBLE_2INT(pfp0) -30 -EMIT_INSTRUCTION -FPR_2INT(P(p), Unary.getResult(P(p)), myFP0()); - r: DOUBLE_2INT(fpload) 30 EMIT_INSTRUCTION @@ -2486,54 +1766,6 @@ EMIT(MIR_Move.create(IA32_FMOV, MO_CONV(DW), Unary.getVal(P(p)))); \ EMIT(MIR_Move.mutate(P(p), IA32_FMOV, Unary.getResult(P(p)), MO_CONV(DW))); -r: DOUBLE_2FLOAT(fp0) -45 -EMIT_INSTRUCTION -EMIT(MIR_Move.create(IA32_FMOV, MO_CONV(DW), D(getFPR(0)))); \ -EMIT(MIR_Move.mutate(P(p), IA32_FMOV, Unary.getResult(P(p)), MO_CONV(DW))); - -r: DOUBLE_2FLOAT(pfp0) -50 -EMIT_INSTRUCTION -EMIT(MIR_Move.create(IA32_FSTP, MO_CONV(DW), myFP0())); \ -EMIT(MIR_Move.mutate(P(p), IA32_FMOV, Unary.getResult(P(p)), MO_CONV(DW))); - -fp0: DOUBLE_2FLOAT(r) -45 -EMIT_INSTRUCTION -EMIT(MIR_Move.create(IA32_FMOV, MO_CONV(DW), Unary.getVal(P(p)))); \ -EMIT(MIR_Move.mutate(P(p), IA32_FMOV, F(getFPR(0)), MO_CONV(DW))); - -fp0: DOUBLE_2FLOAT(fp0) -45 -EMIT_INSTRUCTION -EMIT(MIR_Move.create(IA32_FMOV, MO_CONV(DW), F(getFPR(0)))); \ -EMIT(MIR_Move.mutate(P(p), IA32_FMOV, F(getFPR(0)), MO_CONV(DW))); - -fp0: DOUBLE_2FLOAT(pfp0) -50 -EMIT_INSTRUCTION -EMIT(MIR_Move.create(IA32_FSTP, MO_CONV(DW), myFP0())); \ -EMIT(MIR_Move.mutate(P(p), IA32_FMOV, F(getFPR(0)), MO_CONV(DW))); - -pfp0: DOUBLE_2FLOAT(r) -35 -EMIT_INSTRUCTION -EMIT(MIR_Move.create(IA32_FMOV, MO_CONV(DW), Unary.getVal(P(p)))); \ -EMIT(MIR_Move.mutate(P(p), IA32_FLD, myFP0(), MO_CONV(DW))); - -pfp0: DOUBLE_2FLOAT(fp0) -35 -EMIT_INSTRUCTION -EMIT(MIR_Move.create(IA32_FMOV, MO_CONV(DW), F(getFPR(0)))); \ -EMIT(MIR_Move.mutate(P(p), IA32_FLD, myFP0(), MO_CONV(DW))); - -pfp0: DOUBLE_2FLOAT(pfp0) -40 -EMIT_INSTRUCTION -EMIT(MIR_Move.create(IA32_FSTP, MO_CONV(DW), myFP0())); \ -EMIT(MIR_Move.mutate(P(p), IA32_FLD, myFP0(), MO_CONV(DW))); - stm: FLOAT_STORE(DOUBLE_2FLOAT(r), OTHER_OPERAND(riv, riv)) 15 EMIT_INSTRUCTION @@ -2544,26 +1776,6 @@ EMIT_INSTRUCTION EMIT(MIR_Move.mutate(P(p), IA32_FMOV, MO_AS(P(p), DW_S, DW), Unary.getVal(PL(p)))); -stm: FLOAT_STORE(DOUBLE_2FLOAT(fp0), OTHER_OPERAND(riv, riv)) -15 -EMIT_INSTRUCTION -EMIT(MIR_Move.mutate(P(p), IA32_FMOV, MO_S(P(p), DW), D(getFPR(0)))); - -stm: FLOAT_ASTORE(DOUBLE_2FLOAT(fp0), OTHER_OPERAND(r, riv)) -15 -EMIT_INSTRUCTION -EMIT(MIR_Move.mutate(P(p), IA32_FMOV, MO_AS(P(p), DW_S, DW), D(getFPR(0)))); - -stm: FLOAT_STORE(DOUBLE_2FLOAT(pfp0), OTHER_OPERAND(riv, riv)) -20 -EMIT_INSTRUCTION -EMIT(MIR_Move.mutate(P(p), IA32_FSTP, MO_S(P(p), DW), myFP0())); - -stm: FLOAT_ASTORE(DOUBLE_2FLOAT(pfp0), OTHER_OPERAND(r, riv)) -20 -EMIT_INSTRUCTION -EMIT(MIR_Move.mutate(P(p), IA32_FSTP, MO_AS(P(p), DW_S, DW), myFP0())); - ##### # FLOAT_AS_INT_BITS ##### @@ -2573,22 +1785,9 @@ EMIT(MIR_Move.create(IA32_FMOV, MO_CONV(DW), Unary.getVal(P(p)))); \ EMIT(MIR_Move.mutate(P(p), IA32_MOV, Unary.getResult(P(p)), MO_CONV(DW))); -r: FLOAT_AS_INT_BITS(fp0) -30 -EMIT_INSTRUCTION -EMIT(MIR_Move.create(IA32_FMOV, MO_CONV(DW), F(getFPR(0)))); \ -EMIT(MIR_Move.mutate(P(p), IA32_MOV, Unary.getResult(P(p)), MO_CONV(DW))); - -r: FLOAT_AS_INT_BITS(pfp0) -35 -EMIT_INSTRUCTION -EMIT(MIR_Move.create(IA32_FSTP, MO_CONV(DW), myFP0())); \ -EMIT(MIR_Move.mutate(P(p), IA32_MOV, Unary.getResult(P(p)), MO_CONV(DW))); - ##### # DOUBLE_AS_LONG_BITS ##### -# TODO: rules to consume fp0, pfp0, fpload r: DOUBLE_AS_LONG_BITS(r) 45 EMIT_INSTRUCTION @@ -2603,37 +1802,14 @@ EMIT(MIR_Move.create(IA32_MOV, MO_CONV(DW), Unary.getVal(P(p)))); \ EMIT(MIR_Move.mutate(P(p), IA32_FMOV, Unary.getResult(P(p)), MO_CONV(DW))); -fp0: INT_BITS_AS_FLOAT(riv) -45 -EMIT_INSTRUCTION -EMIT(MIR_Move.create(IA32_MOV, MO_CONV(DW), Unary.getVal(P(p)))); \ -EMIT(MIR_Move.mutate(P(p), IA32_FMOV, F(getFPR(0)), MO_CONV(DW))); - -pfp0: INT_BITS_AS_FLOAT(riv) -30 -EMIT_INSTRUCTION -EMIT(MIR_Move.create(IA32_MOV, MO_CONV(DW), Unary.getVal(P(p)))); \ -EMIT(MIR_Move.mutate(P(p), IA32_FLD, myFP0(), MO_CONV(DW))); - r: INT_BITS_AS_FLOAT(load32) 30 EMIT_INSTRUCTION EMIT(MIR_Move.mutate(P(p), IA32_FMOV, Unary.getResult(P(p)), consumeMO())); -fp0: INT_BITS_AS_FLOAT(load32) -30 -EMIT_INSTRUCTION -EMIT(MIR_Move.mutate(P(p), IA32_FMOV, F(getFPR(0)), consumeMO())); - -pfp0: INT_BITS_AS_FLOAT(load32) -15 -EMIT_INSTRUCTION -EMIT(MIR_Move.mutate(P(p), IA32_FLD, myFP0(), consumeMO())); - ##### # LONG_BITS_AS_DOUBLE ##### -# TODO: rules to produce fp0, pfp0 # rules to consume long loads r: LONG_BITS_AS_DOUBLE(rlv) 60 @@ -2735,41 +1911,11 @@ EMIT_INSTRUCTION EMIT(MIR_Move.mutate(P(p), IA32_FMOV, Move.getResult(P(p)), Move.getVal(P(p)))); -r: FLOAT_MOVE(fp0) -13 -EMIT_INSTRUCTION -EMIT(MIR_Move.mutate(P(p), IA32_FMOV, Move.getResult(P(p)), F(getFPR(0)))); - -r: FLOAT_MOVE(pfp0) -18 -EMIT_INSTRUCTION -EMIT(MIR_Move.mutate(P(p), IA32_FSTP, Move.getResult(P(p)), myFP0())); - fpload: FLOAT_MOVE(fpload) 0 NOFLAGS // nothing to do -fp0: FLOAT_MOVE(fp0) -0 -NOFLAGS -// nothing to do - -pfp0: FLOAT_MOVE(pfp0) -0 -NOFLAGS -// nothing to do - -fp0: FLOAT_MOVE(pfp0) -18 -EMIT_INSTRUCTION -EMIT(MIR_Move.mutate(P(p), IA32_FSTP, F(getFPR(0)), myFP0())); - -fpload: FLOAT_MOVE(fpload) -0 -NOFLAGS -// nothing to do - ###### # DOUBLE_MOVE ###### @@ -2778,41 +1924,11 @@ EMIT_INSTRUCTION EMIT(MIR_Move.mutate(P(p), IA32_FMOV, Move.getResult(P(p)), Move.getVal(P(p)))); -r: DOUBLE_MOVE(fp0) -13 -EMIT_INSTRUCTION -EMIT(MIR_Move.mutate(P(p), IA32_FMOV, Move.getResult(P(p)), D(getFPR(0)))); - -r: DOUBLE_MOVE(pfp0) -18 -EMIT_INSTRUCTION -EMIT(MIR_Move.mutate(P(p), IA32_FSTP, Move.getResult(P(p)), myFP0())); - fpload: DOUBLE_MOVE(fpload) 0 NOFLAGS // nothing to do -fp0: DOUBLE_MOVE(fp0) -13 -NOFLAGS -// nothing to do - -pfp0: DOUBLE_MOVE(pfp0) -0 -NOFLAGS -// nothing to do - -fp0: DOUBLE_MOVE(pfp0) -18 -EMIT_INSTRUCTION -EMIT(MIR_Move.mutate(P(p), IA32_FSTP, D(getFPR(0)), myFP0())); - -fpload: DOUBLE_MOVE(fpload) -0 -NOFLAGS -// nothing to do - ##### # LONG_MOVE ##### @@ -3055,16 +2171,6 @@ EMIT_INSTRUCTION EMIT(MIR_Move.mutate(P(p), IA32_FMOV, Load.getResult(P(p)), MO_L(P(p), DW))); -fp0: FLOAT_LOAD(riv, riv) -30 -EMIT_INSTRUCTION -EMIT(MIR_Move.mutate(P(p), IA32_FMOV, F(getFPR(0)), MO_L(P(p), DW))); - -pfp0: FLOAT_LOAD(riv, riv) -20 -EMIT_INSTRUCTION -EMIT(MIR_Move.mutate(P(p), IA32_FLD, myFP0(), MO_L(P(p), DW))); - ##### # FLOAT_ALOAD ##### @@ -3073,16 +2179,6 @@ EMIT_INSTRUCTION EMIT(MIR_Move.mutate(P(p), IA32_FMOV, ALoad.getResult(P(p)), MO_AL(P(p), DW_S, DW))); -fp0: FLOAT_ALOAD(r, riv) -30 -EMIT_INSTRUCTION -EMIT(MIR_Move.mutate(P(p), IA32_FMOV, F(getFPR(0)), MO_AL(P(p), DW_S, DW))); - -pfp0: FLOAT_ALOAD(r, riv) -20 -EMIT_INSTRUCTION -EMIT(MIR_Move.mutate(P(p), IA32_FLD, myFP0(), MO_AL(P(p), DW_S, DW))); - ##### # LONG_LOAD ##### @@ -3113,16 +2209,6 @@ EMIT_INSTRUCTION EMIT(MIR_Move.mutate(P(p), IA32_FMOV, Load.getResult(P(p)), MO_L(P(p), QW))); -fp0: DOUBLE_LOAD(riv, riv) -30 -EMIT_INSTRUCTION -EMIT(MIR_Move.mutate(P(p), IA32_FMOV, D(getFPR(0)), MO_L(P(p), QW))); - -pfp0: DOUBLE_LOAD(riv, riv) -20 -EMIT_INSTRUCTION -EMIT(MIR_Move.mutate(P(p), IA32_FLD, myFP0(), MO_L(P(p), QW))); - ##### # DOUBLE_ALOAD ##### @@ -3131,16 +2217,6 @@ EMIT_INSTRUCTION EMIT(MIR_Move.mutate(P(p), IA32_FMOV, ALoad.getResult(P(p)), MO_AL(P(p), QW_S, QW))); -fp0: DOUBLE_ALOAD(r, riv) -30 -EMIT_INSTRUCTION -EMIT(MIR_Move.mutate(P(p), IA32_FMOV, D(getFPR(0)), MO_AL(P(p), QW_S, QW))); - -pfp0: DOUBLE_ALOAD(r, riv) -20 -EMIT_INSTRUCTION -EMIT(MIR_Move.mutate(P(p), IA32_FLD, myFP0(), MO_AL(P(p), QW_S, QW))); - ##### # PREPARE_INT (just a normal load on IA32) ##### @@ -3497,16 +2573,6 @@ EMIT_INSTRUCTION EMIT(MIR_Move.mutate(P(p), IA32_FMOV, MO_S(P(p), DW), Store.getValue(P(p)))); -stm: FLOAT_STORE(fp0, OTHER_OPERAND(riv, riv)) -15 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -EMIT(MIR_Move.mutate(P(p), IA32_FST, MO_S(P(p), DW), F(getFPR(0)))); - -stm: FLOAT_STORE(pfp0, OTHER_OPERAND(riv, riv)) -20 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -EMIT(MIR_Move.mutate(P(p), IA32_FSTP, MO_S(P(p), DW), myFP0())); - ##### # FLOAT_ASTORE ##### @@ -3515,16 +2581,6 @@ EMIT_INSTRUCTION EMIT(MIR_Move.mutate(P(p), IA32_FMOV, MO_AS(P(p), DW_S, DW), AStore.getValue(P(p)))); -stm: FLOAT_ASTORE(fp0, OTHER_OPERAND(r, riv)) -15 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -EMIT(MIR_Move.mutate(P(p), IA32_FST, MO_AS(P(p), DW_S, DW), F(getFPR(0)))); - -stm: FLOAT_ASTORE(pfp0, OTHER_OPERAND(r, riv)) -20 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -EMIT(MIR_Move.mutate(P(p), IA32_FSTP, MO_AS(P(p), DW_S, DW), myFP0())); - ##### # LONG_STORE ##### @@ -3569,16 +2625,6 @@ EMIT_INSTRUCTION EMIT(MIR_Move.mutate(P(p), IA32_FMOV, MO_S(P(p), QW), Store.getValue(P(p)))); -stm: DOUBLE_STORE(fp0, OTHER_OPERAND(riv, riv)) -15 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -EMIT(MIR_Move.mutate(P(p), IA32_FST, MO_S(P(p), QW), D(getFPR(0)))); - -stm: DOUBLE_STORE(pfp0, OTHER_OPERAND(riv, riv)) -20 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -EMIT(MIR_Move.mutate(P(p), IA32_FSTP, MO_S(P(p), QW), myFP0())); - ##### # DOUBLE_ASTORE ##### @@ -3587,16 +2633,6 @@ EMIT_INSTRUCTION EMIT(MIR_Move.mutate(P(p), IA32_FMOV, MO_AS(P(p), QW_S, QW), AStore.getValue(P(p)))); -stm: DOUBLE_ASTORE(fp0, OTHER_OPERAND(r, riv)) -15 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -EMIT(MIR_Move.mutate(P(p), IA32_FST, MO_AS(P(p), QW_S, QW), D(getFPR(0)))); - -stm: DOUBLE_ASTORE(pfp0, OTHER_OPERAND(r, riv)) -20 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -EMIT(MIR_Move.mutate(P(p), IA32_FSTP, MO_AS(P(p), QW_S, QW), myFP0())); - ################################## # Control flow ################################## @@ -3730,36 +2766,6 @@ ##### # FLOAT_IFCMP ##### -stm: FLOAT_IFCMP(fp0,r) -30 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -EMIT(MIR_Compare.create(IA32_FCOMI, F(getFPR(0)), IfCmp.getClearVal2(P(p)))); \ -IfCmp.getClearVal1(P(p)); \ -EMIT(P(p)); // OPT_ComplexLIR2MIRExpansion will handle rest of the work. - -stm: FLOAT_IFCMP(r,fp0) -30 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -EMIT(MIR_Compare.create(IA32_FCOMI, F(getFPR(0)), IfCmp.getClearVal1(P(p)))); \ -IfCmp.getClearVal2(P(p)); \ -IfCmp.getCond(P(p)).flipOperands(); \ -EMIT(P(p)); // OPT_ComplexLIR2MIRExpansion will handle rest of the work. - -stm: FLOAT_IFCMP(pfp0,r) -35 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -EMIT(MIR_Compare.create(IA32_FCOMIP, myFP0(), IfCmp.getClearVal2(P(p)))); \ -IfCmp.getClearVal1(P(p)); \ -EMIT(P(p)); // OPT_ComplexLIR2MIRExpansion will handle rest of the work. - -stm: FLOAT_IFCMP(r,pfp0) -35 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -EMIT(MIR_Compare.create(IA32_FCOMIP, myFP0(), IfCmp.getClearVal1(P(p)))); \ -IfCmp.getClearVal2(P(p)); \ -IfCmp.getCond(P(p)).flipOperands(); \ -EMIT(P(p)); // OPT_ComplexLIR2MIRExpansion will handle rest of the work. - stm: FLOAT_IFCMP(r,r) p.child1.isREGISTERNode()?60:43 EMIT_INSTRUCTION @@ -3778,36 +2784,6 @@ ##### # DOUBLE_IFCMP ##### -stm: DOUBLE_IFCMP(fp0,r) -30 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -EMIT(MIR_Compare.create(IA32_FCOMI, F(getFPR(0)), IfCmp.getClearVal2(P(p)))); \ -IfCmp.getClearVal1(P(p)); \ -EMIT(P(p)); // OPT_ComplexLIR2MIRExpansion will handle rest of the work. - -stm: DOUBLE_IFCMP(r,fp0) -30 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -EMIT(MIR_Compare.create(IA32_FCOMI, F(getFPR(0)), IfCmp.getClearVal1(P(p)))); \ -IfCmp.getClearVal2(P(p)); \ -IfCmp.getCond(P(p)).flipOperands(); \ -EMIT(P(p)); // OPT_ComplexLIR2MIRExpansion will handle rest of the work. - -stm: DOUBLE_IFCMP(pfp0,r) -35 -EMIT_INSTRUCTION | RIGHT_CHILD_FIRST -EMIT(MIR_Compare.create(IA32_FCOMIP, myFP0(), IfCmp.getClearVal2(P(p)))); \ -IfCmp.getClearVal1(P(p)); \ -EMIT(P(p)); // OPT_ComplexLIR2MIRExpansion will handle rest of the work. - -stm: DOUBLE_IFCMP(r,pfp0) -35 -EMIT_INSTRUCTION | LEFT_CHILD_FIRST -EMIT(MIR_Compare.create(IA32_FCOMIP, myFP0(), IfCmp.getClearVal1(P(p)))); \ -IfCmp.getClearVal2(P(p)); \ -IfCmp.getCond(P(p)).flipOperands(); \ -EMIT(P(p)); // OPT_ComplexLIR2MIRExpansion will handle rest of the work. - stm: DOUBLE_IFCMP(r,r) p.child1.isREGISTERNode()?60:43 EMIT_INSTRUCTION @@ -3921,19 +2897,6 @@ OPT_LongConstantOperand val = LC(Return.getVal(P(p))); \ EMIT(MIR_Return.mutate(P(p), IA32_RET, null, IC(val.upper32()), IC(val.lower32()))); -stm: RETURN(fp0) -11 -EMIT_INSTRUCTION -OPT_RegisterOperand res = Return.getVal(P(p)).isDouble() ? D(getFPR(0)) : F(getFPR(0)); \ -EMIT(MIR_Return.mutate(P(p), IA32_RET, null, res, null)); - -stm: RETURN(pfp0) -26 -EMIT_INSTRUCTION -OPT_RegisterOperand res = Return.getVal(P(p)).isDouble() ? D(getFPR(0)) : F(getFPR(0)); \ -EMIT(MIR_Move.create(IA32_FSTP, res.copy(), myFP0())); \ -EMIT(MIR_Return.mutate(P(p), IA32_RET, null, res, null)); - ##### # CALL ##### This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pet...@us...> - 2007-02-28 03:06:20
|
Revision: 11563 http://svn.sourceforge.net/jikesrvm/?rev=11563&view=rev Author: peter_donald Date: 2007-02-27 19:06:19 -0800 (Tue, 27 Feb 2007) Log Message: ----------- Use fully qualified names to make it easier to read Modified Paths: -------------- rvmroot/trunk/rvm/src/Dummy.java rvmroot/trunk/rvm/src/OptDummy.java Modified: rvmroot/trunk/rvm/src/Dummy.java =================================================================== --- rvmroot/trunk/rvm/src/Dummy.java 2007-02-28 02:56:23 UTC (rev 11562) +++ rvmroot/trunk/rvm/src/Dummy.java 2007-02-28 03:06:19 UTC (rev 11563) @@ -7,35 +7,29 @@ * (C) Copyright IBM Corp. 2001 */ -import com.ibm.jikesrvm.*; -import com.ibm.jikesrvm.memorymanagers.mminterface.MM_Interface; -import com.ibm.jikesrvm.ArchitectureSpecific.VM_MultianewarrayHelper; -import org.vmmagic.unboxed.*; - /** * Dummy class containing enough references to force java compiler * to find every class comprising the vm, so everything gets recompiled * by just compiling "Dummy.java". - * + * <p/> * The minimal set has to be discovered by trial and error. Sorry. * * @author Derek Lieber */ class Dummy { - static VM a; + static com.ibm.jikesrvm.VM a; static com.ibm.jikesrvm.classloader.VM_TableBasedDynamicLinker b; - static VM_DynamicLinker c; - static VM_Reflection e; - static VM_Process f; + static com.ibm.jikesrvm.VM_DynamicLinker c; + static com.ibm.jikesrvm.VM_Reflection e; + static com.ibm.jikesrvm.VM_Process f; static com.ibm.jikesrvm.jni.BuildJNIFunctionTable g; static org.vmmagic.pragma.SaveVolatile i; - static MM_Interface l; - static VM_RecompilationManager o; - static VM_MultianewarrayHelper r; - static Address s; - static VM_Math t; - static WordArray x; - static OffsetArray y; - static ExtentArray z; + static com.ibm.jikesrvm.memorymanagers.mminterface.MM_Interface l; + static com.ibm.jikesrvm.VM_RecompilationManager o; + static com.ibm.jikesrvm.ArchitectureSpecific.VM_MultianewarrayHelper r; + static org.vmmagic.unboxed.Address s; + static com.ibm.jikesrvm.VM_Math t; + static org.vmmagic.unboxed.WordArray x; + static org.vmmagic.unboxed.OffsetArray y; + static org.vmmagic.unboxed.ExtentArray z; } - // Test of a TAB character. Modified: rvmroot/trunk/rvm/src/OptDummy.java =================================================================== --- rvmroot/trunk/rvm/src/OptDummy.java 2007-02-28 02:56:23 UTC (rev 11562) +++ rvmroot/trunk/rvm/src/OptDummy.java 2007-02-28 03:06:19 UTC (rev 11563) @@ -6,19 +6,18 @@ * * (C) Copyright IBM Corp. 2001 */ -import com.ibm.jikesrvm.opt.*; /** * Dummy class containing enough references to force java compiler - * to find every class comprising the opt compiler, so everything gets + * to find every class comprising the opt compiler, so everything gets * recompiled by just compiling "OptDummy.java". - * + * <p/> * The minimal set has to be discovered by trial and error. Sorry. --Derek * * @author Derek Lieber */ class OptDummy { - static OPT_Compiler a; - VM_OptSaveVolatile g; - static OPT_SpecializedMethodPool q; + static com.ibm.jikesrvm.opt.OPT_Compiler a; + static com.ibm.jikesrvm.opt.VM_OptSaveVolatile g; + static com.ibm.jikesrvm.opt.OPT_SpecializedMethodPool q; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pet...@us...> - 2007-03-01 04:17:14
|
Revision: 11576 http://svn.sourceforge.net/jikesrvm/?rev=11576&view=rev Author: peter_donald Date: 2007-02-28 20:17:13 -0800 (Wed, 28 Feb 2007) Log Message: ----------- Remove redundent throws Modified Paths: -------------- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM.java rvmroot/trunk/rvm/src/java/lang/reflect/Field.java Modified: rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM.java =================================================================== --- rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM.java 2007-03-01 04:16:17 UTC (rev 11575) +++ rvmroot/trunk/rvm/src/com/ibm/jikesrvm/VM.java 2007-03-01 04:17:13 UTC (rev 11576) @@ -79,7 +79,7 @@ * @exception Exception */ @UninterruptibleNoWarn - public static void boot() throws Exception { + public static void boot() { writingBootImage = false; runningVM = true; runningAsSubsystem = false; Modified: rvmroot/trunk/rvm/src/java/lang/reflect/Field.java =================================================================== --- rvmroot/trunk/rvm/src/java/lang/reflect/Field.java 2007-03-01 04:16:17 UTC (rev 11575) +++ rvmroot/trunk/rvm/src/java/lang/reflect/Field.java 2007-03-01 04:17:13 UTC (rev 11576) @@ -422,7 +422,7 @@ } private void setBooleanInternal(Object object, boolean value) - throws IllegalAccessException, IllegalArgumentException { + throws IllegalArgumentException { VM_TypeReference type = field.getType(); if (type.isBooleanType()) field.setBooleanValueUnchecked(object, value); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cap...@us...> - 2007-03-06 20:34:12
|
Revision: 11741 http://svn.sourceforge.net/jikesrvm/?rev=11741&view=rev Author: captain5050 Date: 2007-03-06 12:34:00 -0800 (Tue, 06 Mar 2007) Log Message: ----------- Support for all 387 constants Modified Paths: -------------- rvmroot/trunk/rvm/src/org/jikesrvm/ia32/opt/OPT_BURS_Helpers.java rvmroot/trunk/rvm/src-generated/opt-burs/ia32/IA32.rules Modified: rvmroot/trunk/rvm/src/org/jikesrvm/ia32/opt/OPT_BURS_Helpers.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/ia32/opt/OPT_BURS_Helpers.java 2007-03-06 13:30:37 UTC (rev 11740) +++ rvmroot/trunk/rvm/src/org/jikesrvm/ia32/opt/OPT_BURS_Helpers.java 2007-03-06 20:34:00 UTC (rev 11741) @@ -151,45 +151,90 @@ } } - protected final int isFPC_ONE(OPT_Instruction s, int trueCost) { - return isFPC_ONE(s, trueCost, INFINITE); - } - protected final int isFPC_ONE(OPT_Instruction s, int trueCost, int falseCost) { + private static final double LG2 = Double.parseDouble("0.3010299956639811952256464283594894482"); + private static final double LN2 = Double.parseDouble("0.6931471805599453094286904741849753009"); + private static final double L2E = Double.parseDouble("1.4426950408889634073876517827983434472"); + private static final double L2T = Double.parseDouble("3.3219280948873623478083405569094566090"); + + protected final int is387_FPC(OPT_Instruction s, int trueCost) { OPT_Operand val = Binary.getVal2(s); if (val instanceof OPT_FloatConstantOperand) { OPT_FloatConstantOperand fc = (OPT_FloatConstantOperand)val; - return fc.value == 1.0f ? trueCost : falseCost; + if (fc.value == 1.0f) { + return trueCost; + } else if (fc.value == 0.0f) { + return trueCost; + } else if (fc.value == (float)Math.PI) { + return trueCost; + } else if (fc.value == (float)LG2) { + return trueCost; + } else if (fc.value == (float)LN2) { + return trueCost; + } else if (fc.value == (float)L2E) { + return trueCost; + } else if (fc.value == (float)L2T) { + return trueCost; + } } else { OPT_DoubleConstantOperand dc = (OPT_DoubleConstantOperand)val; - return dc.value == 1.0 ? trueCost : falseCost; + if (dc.value == 1.0) { + return trueCost; + } else if (dc.value == 0.0) { + return trueCost; + } else if (dc.value == Math.PI) { + return trueCost; + } else if (dc.value == LG2) { + return trueCost; + } else if (dc.value == LN2) { + return trueCost; + } else if (dc.value == L2E) { + return trueCost; + } else if (dc.value == L2T) { + return trueCost; + } } + return INFINITE; } - protected final int isFPC_ZERO(OPT_Instruction s, int trueCost) { - return isFPC_ZERO(s, trueCost, INFINITE); - } - protected final int isFPC_ZERO(OPT_Instruction s, int trueCost, int falseCost) { + + protected final OPT_Operator get387_FPC(OPT_Instruction s) { OPT_Operand val = Binary.getVal2(s); if (val instanceof OPT_FloatConstantOperand) { OPT_FloatConstantOperand fc = (OPT_FloatConstantOperand)val; - return fc.value == 0.0f ? trueCost : falseCost; + if (fc.value == 1.0f) { + return IA32_FLD1; + } else if (fc.value == 0.0f) { + return IA32_FLDZ; + } else if (fc.value == (float)Math.PI) { + return IA32_FLDPI; + } else if (fc.value == (float)LG2) { + return IA32_FLDLG2; + } else if (fc.value == (float)LN2) { + return IA32_FLDLN2; + } else if (fc.value == (float)L2E) { + return IA32_FLDL2E; + } else if (fc.value == (float)L2T) { + return IA32_FLDL2T; + } } else { OPT_DoubleConstantOperand dc = (OPT_DoubleConstantOperand)val; - return dc.value == 0.0 ? trueCost : falseCost; + if (dc.value == 1.0) { + return IA32_FLD1; + } else if (dc.value == 0.0) { + return IA32_FLDZ; + } else if (dc.value == Math.PI) { + return IA32_FLDPI; + } else if (dc.value == LG2) { + return IA32_FLDLG2; + } else if (dc.value == LN2) { + return IA32_FLDLN2; + } else if (dc.value == L2E) { + return IA32_FLDL2E; + } else if (dc.value == L2T) { + return IA32_FLDL2T; + } } + throw new OPT_OptimizingCompilerException("OPT_BURS_Helpers", "unexpected 387 constant "+val); } - protected final int isFPC_PI(OPT_Instruction s, int trueCost) { - return isFPC_PI(s, trueCost, INFINITE); - } - protected final int isFPC_PI(OPT_Instruction s, int trueCost, int falseCost) { - OPT_Operand val = Binary.getVal2(s); - if (val instanceof OPT_FloatConstantOperand) { - OPT_FloatConstantOperand fc = (OPT_FloatConstantOperand)val; - return fc.value == (float)Math.PI ? trueCost : falseCost; - } else { - OPT_DoubleConstantOperand dc = (OPT_DoubleConstantOperand)val; - return dc.value == Math.PI ? trueCost : falseCost; - } - } protected final OPT_IA32ConditionOperand COND(OPT_ConditionOperand op) { return new OPT_IA32ConditionOperand(op); Modified: rvmroot/trunk/rvm/src-generated/opt-burs/ia32/IA32.rules =================================================================== --- rvmroot/trunk/rvm/src-generated/opt-burs/ia32/IA32.rules 2007-03-06 13:30:37 UTC (rev 11740) +++ rvmroot/trunk/rvm/src-generated/opt-burs/ia32/IA32.rules 2007-03-06 20:34:00 UTC (rev 11741) @@ -352,42 +352,18 @@ # Use FLD1/FLDZ to avoid loading from the JTOC r: MATERIALIZE_FP_CONSTANT(riv) -isFPC_ONE(P(p), 26) +is387_FPC(P(p), 26) EMIT_INSTRUCTION -EMIT(MIR_Nullary.create(IA32_FLD1, myFP0())); \ +EMIT(MIR_Nullary.create(get387_FPC(P(p)), myFP0())); \ EMIT(MIR_Move.mutate(P(p), IA32_FSTP, Binary.getResult(P(p)), myFP0())); -r: MATERIALIZE_FP_CONSTANT(riv) -isFPC_ZERO(P(p), 26) -EMIT_INSTRUCTION -EMIT(MIR_Nullary.create(IA32_FLDZ, myFP0())); \ -EMIT(MIR_Move.mutate(P(p), IA32_FSTP, Binary.getResult(P(p)), myFP0())); - -r: MATERIALIZE_FP_CONSTANT(riv) -isFPC_PI(P(p), 26) -EMIT_INSTRUCTION -EMIT(MIR_Nullary.create(IA32_FLDPI, myFP0())); \ -EMIT(MIR_Move.mutate(P(p), IA32_FSTP, Binary.getResult(P(p)), myFP0())); - # Use FLD1/FLDZ to avoid loading from the JTOC r: MATERIALIZE_FP_CONSTANT(GET_JTOC(r)) -isFPC_ONE(P(p), 26) +is387_FPC(P(p), 26) EMIT_INSTRUCTION -EMIT(MIR_Nullary.create(IA32_FLD1, myFP0())); \ +EMIT(MIR_Nullary.create(get387_FPC(P(p)), myFP0())); \ EMIT(MIR_Move.mutate(P(p), IA32_FSTP, Binary.getResult(P(p)), myFP0())); -r: MATERIALIZE_FP_CONSTANT(GET_JTOC(r)) -isFPC_ZERO(P(p), 26) -EMIT_INSTRUCTION -EMIT(MIR_Nullary.create(IA32_FLDZ, myFP0())); \ -EMIT(MIR_Move.mutate(P(p), IA32_FSTP, Binary.getResult(P(p)), myFP0())); - -r: MATERIALIZE_FP_CONSTANT(GET_JTOC(r)) -isFPC_PI(P(p), 26) -EMIT_INSTRUCTION -EMIT(MIR_Nullary.create(IA32_FLDPI, myFP0())); \ -EMIT(MIR_Move.mutate(P(p), IA32_FSTP, Binary.getResult(P(p)), myFP0())); - ################################## # A few operators are passed through unchanged ################################## This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <pet...@us...> - 2007-03-10 15:22:17
|
Revision: 11801 http://svn.sourceforge.net/jikesrvm/?rev=11801&view=rev Author: peter_donald Date: 2007-03-10 07:22:15 -0800 (Sat, 10 Mar 2007) Log Message: ----------- This patch changes the way that the architecture dependent code accesses some of the common facilities. Prior to this patch the architecture independent and architecture dependent code both used ArchitectureSpecific.Foo where as after this patch the architecture dependent code will now use <arch>.Foo where possible and architecture independent code will use ArchitectureSpecific.Foo. This has the advantage that less code will be red in an IDE if you are editing ppc code where the ArchitectureSpecific has been generated for ia32 and vice versa. This is the first step towards getting the ppc and ia32 code being able to coexist and be compiled together in one tree. Modified Paths: -------------- rvmroot/trunk/rvm/src/org/jikesrvm/VM_Entrypoints.java rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_Barriers.java rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_BaselineExceptionDeliverer.java rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_BaselineGCMapIterator.java rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_Compiler.java rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_DynamicLinkerHelper.java rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_InterfaceMethodConflictResolver.java rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_LazyCompilationTrampolineGenerator.java rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_Lister.java rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_MachineCode.java rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_MachineSpecificIA.java rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_OutOfLineMachineCode.java rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_ProcessorLocalState.java rvmroot/trunk/rvm/src/org/jikesrvm/ia32/jni/VM_JNICompiler.java rvmroot/trunk/rvm/src/org/jikesrvm/ia32/jni/VM_JNIGCMapIterator.java rvmroot/trunk/rvm/src/org/jikesrvm/ia32/osr/OSR_BaselineExecStateExtractor.java rvmroot/trunk/rvm/src/org/jikesrvm/ia32/osr/OSR_CodeInstaller.java rvmroot/trunk/rvm/src/org/jikesrvm/ia32/osr/OSR_OptExecStateExtractor.java rvmroot/trunk/rvm/src/org/jikesrvm/ia32/osr/OSR_PostThreadSwitch.java rvmroot/trunk/rvm/src/org/jikesrvm/ia32/osr/OSR_TempRegisters.java rvmroot/trunk/rvm/src/org/jikesrvm/opt/VM_OptCompiledMethod.java rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/OPT_AssemblerBase.java rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/OPT_CallingConvention.java rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/OPT_ExpandFPRStackConvention.java rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/OPT_FinalMIRExpansion.java rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/OPT_MIRSplitRanges.java rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/OPT_PhysicalRegisterConstants.java rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/OPT_RegisterRestrictions.java rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/OPT_StackManager.java rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/VM_OptGCMapIteratorConstants.java rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/ir/OPT_GenerateMachineSpecificMagic.java rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/ir/OPT_MachineSpecificIRIA.java rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/ir/OPT_PhysicalDefUse.java rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/ir/OPT_PhysicalRegisterSet.java rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/OPT_Assembler.java rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/OPT_BURS_Helpers.java rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/OPT_CallingConvention.java rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/OPT_ComplexLIR2MIRExpansion.java rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/OPT_FinalMIRExpansion.java rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/OPT_PhysicalRegisterConstants.java rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/OPT_PhysicalRegisterTools.java rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/OPT_StackManager.java rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/VM_OptGCMapIteratorConstants.java rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/ir/OPT_GenerateMachineSpecificMagic.java rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/ir/OPT_PhysicalDefUse.java rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/ir/OPT_PhysicalRegisterSet.java rvmroot/trunk/rvm/src/org/jikesrvm/ppc/VM_Assembler.java rvmroot/trunk/rvm/src/org/jikesrvm/ppc/VM_Barriers.java rvmroot/trunk/rvm/src/org/jikesrvm/ppc/VM_BaselineExceptionDeliverer.java rvmroot/trunk/rvm/src/org/jikesrvm/ppc/VM_BaselineGCMapIterator.java rvmroot/trunk/rvm/src/org/jikesrvm/ppc/VM_Compiler.java rvmroot/trunk/rvm/src/org/jikesrvm/ppc/VM_InterfaceMethodConflictResolver.java rvmroot/trunk/rvm/src/org/jikesrvm/ppc/VM_LazyCompilationTrampolineGenerator.java rvmroot/trunk/rvm/src/org/jikesrvm/ppc/VM_MachineCode.java rvmroot/trunk/rvm/src/org/jikesrvm/ppc/VM_MachineSpecificPowerPC.java rvmroot/trunk/rvm/src/org/jikesrvm/ppc/VM_OutOfLineMachineCode.java rvmroot/trunk/rvm/src/org/jikesrvm/ppc/jni/VM_JNICompiler.java rvmroot/trunk/rvm/src/org/jikesrvm/ppc/jni/VM_JNIGCMapIterator.java rvmroot/trunk/rvm/src/org/jikesrvm/ppc/jni/VM_JNIHelpers.java rvmroot/trunk/rvm/src/org/jikesrvm/ppc/jni/VM_JNIStackframeLayoutConstants.java rvmroot/trunk/rvm/src/org/jikesrvm/ppc/osr/OSR_BaselineExecStateExtractor.java rvmroot/trunk/rvm/src/org/jikesrvm/ppc/osr/OSR_CodeInstaller.java rvmroot/trunk/rvm/src/org/jikesrvm/ppc/osr/OSR_OptExecStateExtractor.java rvmroot/trunk/rvm/src/org/jikesrvm/ppc/osr/OSR_PostThreadSwitch.java rvmroot/trunk/rvm/src/org/jikesrvm/ppc/osr/OSR_TempRegisters.java rvmroot/trunk/rvm/src-generated/ia32-assembler/VM_Assembler.in Modified: rvmroot/trunk/rvm/src/org/jikesrvm/VM_Entrypoints.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/VM_Entrypoints.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/VM_Entrypoints.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -20,7 +20,7 @@ */ public class VM_Entrypoints implements VM_Constants { - public static final String archdir = VM.BuildForIA32 ? "ia32/" : "ppc/"; + public static final String arch = VM.BuildForIA32 ? "ia32" : "ppc"; public static final VM_NormalMethod bootMethod = getMethod("Lorg/jikesrvm/VM;", "boot", "()V"); @@ -45,7 +45,7 @@ public static final VM_NormalMethod unresolvedNewScalarMethod= getMethod("Lorg/jikesrvm/VM_Runtime;", "unresolvedNewScalar", "(II)Ljava/lang/Object;"); public static final VM_NormalMethod unresolvedNewArrayMethod = getMethod("Lorg/jikesrvm/VM_Runtime;", "unresolvedNewArray", "(III)Ljava/lang/Object;"); public static final VM_NormalMethod resolvedNewArrayMethod = getMethod("Lorg/jikesrvm/VM_Runtime;", "resolvedNewArray", "(III[Ljava/lang/Object;IIII)Ljava/lang/Object;"); - public static final VM_NormalMethod newArrayArrayMethod = getMethod("Lorg/jikesrvm/"+archdir+"VM_MultianewarrayHelper;", "newArrayArray", "(IIII)Ljava/lang/Object;"); + public static final VM_NormalMethod newArrayArrayMethod = getMethod("Lorg/jikesrvm/"+ arch +"/VM_MultianewarrayHelper;", "newArrayArray", "(IIII)Ljava/lang/Object;"); public static final VM_Field gcLockField = getField("Ljava/lang/VMRuntime;", "gcLock", "I"); public static final VM_Field sysWriteLockField = getField("Lorg/jikesrvm/VM;", "sysWriteLock", "I"); @@ -95,13 +95,14 @@ public static final VM_Field minintField = getField("Lorg/jikesrvm/VM_Math;", "minint", "D"); // smallest double that can be rounded to an int public static final VM_Field IEEEmagicField = getField("Lorg/jikesrvm/VM_Math;", "IEEEmagic", "D");// IEEEmagic constant public static final VM_Field I2DconstantField = getField("Lorg/jikesrvm/VM_Math;", "I2Dconstant", "D");// special double value for use in int <--> double conversions - public static final VM_Field FPUControlWordField = (VM.BuildForIA32) ? getField("Lorg/jikesrvm/"+archdir+"VM_MachineSpecificIA;", "FPUControlWord", "I") : null; + public static final VM_Field FPUControlWordField = (VM.BuildForIA32) ? getField("Lorg/jikesrvm/"+ arch +"/VM_MachineSpecificIA;", "FPUControlWord", "I") : null; - public static final VM_Field reflectiveMethodInvokerInstructionsField = getField("Lorg/jikesrvm/"+archdir+"VM_OutOfLineMachineCode;", "reflectiveMethodInvokerInstructions", "Lorg/jikesrvm/ArchitectureSpecific$VM_CodeArray;"); - public static final VM_Field saveThreadStateInstructionsField = getField("Lorg/jikesrvm/"+archdir+"VM_OutOfLineMachineCode;", "saveThreadStateInstructions", "Lorg/jikesrvm/ArchitectureSpecific$VM_CodeArray;"); - public static final VM_Field threadSwitchInstructionsField = getField("Lorg/jikesrvm/"+archdir+"VM_OutOfLineMachineCode;", "threadSwitchInstructions", "Lorg/jikesrvm/ArchitectureSpecific$VM_CodeArray;"); - public static final VM_Field restoreHardwareExceptionStateInstructionsField = getField("Lorg/jikesrvm/"+archdir+"VM_OutOfLineMachineCode;", "restoreHardwareExceptionStateInstructions", "Lorg/jikesrvm/ArchitectureSpecific$VM_CodeArray;"); - public static final VM_Field invokeNativeFunctionInstructionsField = getField("Lorg/jikesrvm/"+archdir+"VM_OutOfLineMachineCode;", "invokeNativeFunctionInstructions", "Lorg/jikesrvm/ArchitectureSpecific$VM_CodeArray;"); + public static final String ArchCodeArrayName = "Lorg/jikesrvm/" + arch + "/VM_CodeArray;"; + public static final VM_Field reflectiveMethodInvokerInstructionsField = getField("Lorg/jikesrvm/"+ arch +"/VM_OutOfLineMachineCode;", "reflectiveMethodInvokerInstructions", ArchCodeArrayName); + public static final VM_Field saveThreadStateInstructionsField = getField("Lorg/jikesrvm/"+ arch +"/VM_OutOfLineMachineCode;", "saveThreadStateInstructions", ArchCodeArrayName); + public static final VM_Field threadSwitchInstructionsField = getField("Lorg/jikesrvm/"+ arch +"/VM_OutOfLineMachineCode;", "threadSwitchInstructions", ArchCodeArrayName); + public static final VM_Field restoreHardwareExceptionStateInstructionsField = getField("Lorg/jikesrvm/"+ arch +"/VM_OutOfLineMachineCode;", "restoreHardwareExceptionStateInstructions", ArchCodeArrayName); + public static final VM_Field invokeNativeFunctionInstructionsField = getField("Lorg/jikesrvm/"+ arch +"/VM_OutOfLineMachineCode;", "invokeNativeFunctionInstructions", ArchCodeArrayName); public static final VM_Field scratchStorageField = getField("Lorg/jikesrvm/VM_Processor;", "scratchStorage", "D"); public static final VM_Field timeSliceExpiredField = getField("Lorg/jikesrvm/VM_Processor;", "timeSliceExpired", "I"); @@ -160,13 +161,13 @@ public static final VM_NormalMethod putstaticWriteBarrierMethod = getMethod("Lorg/jikesrvm/memorymanagers/mminterface/MM_Interface;", "putstaticWriteBarrier", "(Lorg/vmmagic/unboxed/Offset;Ljava/lang/Object;)V"); public static final VM_NormalMethod modifyCheckMethod = getMethod("Lorg/jikesrvm/memorymanagers/mminterface/MM_Interface;", "modifyCheck", "(Ljava/lang/Object;)V"); - public static final VM_Field registersIPField = getField("Lorg/jikesrvm/"+archdir+"VM_Registers;", "ip", "Lorg/vmmagic/unboxed/Address;"); - public static final VM_Field registersFPRsField = getField("Lorg/jikesrvm/"+archdir+"VM_Registers;", "fprs", "[D"); - public static final VM_Field registersGPRsField = getField("Lorg/jikesrvm/"+archdir+"VM_Registers;", "gprs", "Lorg/vmmagic/unboxed/WordArray;"); - public static final VM_Field registersInUseField= getField("Lorg/jikesrvm/"+archdir+"VM_Registers;", "inuse", "Z"); - public static final VM_Field registersLRField = (VM.BuildForPowerPC) ? getField("Lorg/jikesrvm/"+archdir+"VM_Registers;", "lr", "Lorg/vmmagic/unboxed/Address;") : null; + public static final VM_Field registersIPField = getField("Lorg/jikesrvm/"+ arch +"/VM_Registers;", "ip", "Lorg/vmmagic/unboxed/Address;"); + public static final VM_Field registersFPRsField = getField("Lorg/jikesrvm/"+ arch +"/VM_Registers;", "fprs", "[D"); + public static final VM_Field registersGPRsField = getField("Lorg/jikesrvm/"+ arch +"/VM_Registers;", "gprs", "Lorg/vmmagic/unboxed/WordArray;"); + public static final VM_Field registersInUseField= getField("Lorg/jikesrvm/"+ arch +"/VM_Registers;", "inuse", "Z"); + public static final VM_Field registersLRField = (VM.BuildForPowerPC) ? getField("Lorg/jikesrvm/"+ arch +"/VM_Registers;", "lr", "Lorg/vmmagic/unboxed/Address;") : null; static final VM_Field toSyncProcessorsField = (VM.BuildForPowerPC) ? getField("Lorg/jikesrvm/VM_Scheduler;", "toSyncProcessors", "I") : null; - public static final VM_Field registersFPField = (VM.BuildForIA32) ? getField("Lorg/jikesrvm/"+archdir+"VM_Registers;", "fp", "Lorg/vmmagic/unboxed/Address;") : null; + public static final VM_Field registersFPField = (VM.BuildForIA32) ? getField("Lorg/jikesrvm/"+ arch +"/VM_Registers;", "fp", "Lorg/vmmagic/unboxed/Address;") : null; static final VM_Field outputLockField = getField("Lorg/jikesrvm/VM_Scheduler;", "outputLock", "I"); Modified: rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_Barriers.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_Barriers.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_Barriers.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -11,8 +11,8 @@ import org.jikesrvm.VM; import org.jikesrvm.VM_Configuration; import org.jikesrvm.VM_Entrypoints; -import org.jikesrvm.ArchitectureSpecific.VM_Assembler; -import org.jikesrvm.ArchitectureSpecific.VM_BaselineConstants; +import org.jikesrvm.ia32.VM_Assembler; +import org.jikesrvm.ia32.VM_BaselineConstants; import org.vmmagic.unboxed.Offset; /** Modified: rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_BaselineExceptionDeliverer.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_BaselineExceptionDeliverer.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_BaselineExceptionDeliverer.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -16,9 +16,7 @@ import org.jikesrvm.VM_ObjectModel; import org.jikesrvm.VM_Processor; import org.jikesrvm.VM_Thread; -import org.jikesrvm.ArchitectureSpecific.VM_BaselineConstants; -import org.jikesrvm.ArchitectureSpecific.VM_Compiler; -import org.jikesrvm.ArchitectureSpecific.VM_Registers; +import org.jikesrvm.ArchitectureSpecific; import org.jikesrvm.classloader.*; import org.vmmagic.unboxed.*; @@ -39,7 +37,7 @@ public void deliverException(VM_CompiledMethod compiledMethod, Address catchBlockInstructionAddress, Throwable exceptionObject, - VM_Registers registers) { + ArchitectureSpecific.VM_Registers registers) { Address fp = registers.getInnermostFramePointer(); VM_NormalMethod method = (VM_NormalMethod)compiledMethod.getMethod(); VM_Thread myThread = VM_Thread.getCurrentThread(); @@ -82,7 +80,7 @@ /** * Unwind a stackframe. */ - public void unwindStackFrame(VM_CompiledMethod compiledMethod, VM_Registers registers) { + public void unwindStackFrame(VM_CompiledMethod compiledMethod, ArchitectureSpecific.VM_Registers registers) { VM_NormalMethod method = (VM_NormalMethod)compiledMethod.getMethod(); Address fp = registers.getInnermostFramePointer(); if (method.isSynchronized()) { // release the lock, if it is being held Modified: rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_BaselineGCMapIterator.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_BaselineGCMapIterator.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_BaselineGCMapIterator.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -15,7 +15,7 @@ import org.jikesrvm.VM_DynamicLink; import org.jikesrvm.VM_Magic; import org.jikesrvm.VM_ReferenceMaps; -import org.jikesrvm.ArchitectureSpecific.VM_BaselineConstants; +import org.jikesrvm.ia32.VM_BaselineConstants; import org.jikesrvm.classloader.*; import org.jikesrvm.memorymanagers.mminterface.VM_GCMapIterator; Modified: rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_Compiler.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_Compiler.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_Compiler.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -20,10 +20,7 @@ import org.jikesrvm.VM_Runtime; import org.jikesrvm.VM_SizeConstants; import org.jikesrvm.VM_Thread; -import org.jikesrvm.ArchitectureSpecific.VM_Assembler; -import org.jikesrvm.ArchitectureSpecific.VM_BaselineConstants; -import org.jikesrvm.ArchitectureSpecific.VM_ProcessorLocalState; -import org.jikesrvm.ArchitectureSpecific.VM_JNICompiler; +import org.jikesrvm.ia32.jni.VM_JNICompiler; import org.jikesrvm.classloader.*; import org.jikesrvm.memorymanagers.mminterface.MM_Constants; import org.jikesrvm.memorymanagers.mminterface.MM_Interface; Modified: rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_DynamicLinkerHelper.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_DynamicLinkerHelper.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_DynamicLinkerHelper.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -11,7 +11,7 @@ import org.jikesrvm.VM; import org.jikesrvm.VM_Constants; import org.jikesrvm.VM_Magic; -import org.jikesrvm.ArchitectureSpecific.VM_BaselineConstants; +import org.jikesrvm.ia32.VM_BaselineConstants; import org.vmmagic.pragma.*; import org.vmmagic.unboxed.*; Modified: rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_InterfaceMethodConflictResolver.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_InterfaceMethodConflictResolver.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_InterfaceMethodConflictResolver.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -12,9 +12,7 @@ import org.jikesrvm.VM_Constants; import org.jikesrvm.VM_Entrypoints; import org.jikesrvm.VM_ObjectModel; -import org.jikesrvm.ArchitectureSpecific.VM_Assembler; -import org.jikesrvm.ArchitectureSpecific.VM_CodeArray; -import org.jikesrvm.ArchitectureSpecific.VM_ProcessorLocalState; +import org.jikesrvm.ArchitectureSpecific; import org.jikesrvm.classloader.*; import org.vmmagic.unboxed.Offset; @@ -38,10 +36,10 @@ // Create a conflict resolution stub for the set of interface method signatures l. // - public static VM_CodeArray createStub(int[] sigIds, VM_Method[] targets) { + public static ArchitectureSpecific.VM_CodeArray createStub(int[] sigIds, VM_Method[] targets) { int numEntries = sigIds.length; // (1) Create an assembler. - VM_Assembler asm = new VM_Assembler(numEntries); + VM_Assembler asm = new ArchitectureSpecific.VM_Assembler(numEntries); // (2) signatures must be in ascending order (to build binary search tree). if (VM.VerifyAssertions) { @@ -86,7 +84,7 @@ // factor out to reduce code space in each call. // private static void insertStubPrologue (VM_Assembler asm) { - VM_ObjectModel.baselineEmitLoadTIB(asm,ECX,EAX); + VM_ObjectModel.baselineEmitLoadTIB((ArchitectureSpecific.VM_Assembler) asm,ECX,EAX); } // Generate a subtree covering from low to high inclusive. Modified: rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_LazyCompilationTrampolineGenerator.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_LazyCompilationTrampolineGenerator.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_LazyCompilationTrampolineGenerator.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -9,10 +9,7 @@ package org.jikesrvm.ia32; import org.jikesrvm.VM_Entrypoints; -import org.jikesrvm.ArchitectureSpecific.VM_Assembler; -import org.jikesrvm.ArchitectureSpecific.VM_BaselineConstants; -import org.jikesrvm.ArchitectureSpecific.VM_CodeArray; -import org.jikesrvm.ArchitectureSpecific.VM_ProcessorLocalState; +import org.jikesrvm.ArchitectureSpecific; /** * Generate a "trampoline" that jumps to the shared lazy compilation stub. @@ -28,8 +25,8 @@ public abstract class VM_LazyCompilationTrampolineGenerator implements VM_BaselineConstants { /** Generate a new lazy compilation trampoline. */ - public static VM_CodeArray getTrampoline (){ - VM_Assembler asm = new VM_Assembler(0); + public static ArchitectureSpecific.VM_CodeArray getTrampoline (){ + VM_Assembler asm = new ArchitectureSpecific.VM_Assembler(0); // get JTOC into ECX VM_ProcessorLocalState.emitMoveFieldToReg(asm, ECX, VM_Entrypoints.jtocField.getOffset()); Modified: rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_Lister.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_Lister.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_Lister.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -10,7 +10,7 @@ import org.jikesrvm.VM; import org.jikesrvm.VM_Constants; -import org.jikesrvm.ArchitectureSpecific.VM_Assembler; +import org.jikesrvm.ia32.VM_Assembler; import org.vmmagic.unboxed.Offset; /** Modified: rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_MachineCode.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_MachineCode.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_MachineCode.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -8,24 +8,24 @@ */ package org.jikesrvm.ia32; -import org.jikesrvm.ArchitectureSpecific.VM_CodeArray; +import org.jikesrvm.ArchitectureSpecific; /** * @author Julian Dolby */ public abstract class VM_MachineCode { - private final VM_CodeArray instructions; + private final ArchitectureSpecific.VM_CodeArray instructions; // TODO: This should really be a final field, but is not due to the way // OSR is currently implemented. private int[] bytecodeMap; - public VM_MachineCode (VM_CodeArray i, int[] bm) { + public VM_MachineCode (ArchitectureSpecific.VM_CodeArray i, int[] bm) { instructions = i; bytecodeMap = bm; } - public final VM_CodeArray getInstructions () { + public final ArchitectureSpecific.VM_CodeArray getInstructions () { return instructions; } Modified: rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_MachineSpecificIA.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_MachineSpecificIA.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_MachineSpecificIA.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -12,9 +12,7 @@ import org.jikesrvm.VM_Constants; import org.jikesrvm.VM_MachineSpecific; import org.jikesrvm.VM_Magic; -import org.jikesrvm.ArchitectureSpecific.VM_Assembler; -import org.jikesrvm.ArchitectureSpecific.VM_BaselineConstants; -import org.jikesrvm.ArchitectureSpecific.VM_Registers; +import org.jikesrvm.ArchitectureSpecific; import org.vmmagic.pragma.*; import org.vmmagic.unboxed.*; @@ -62,7 +60,7 @@ * @param tibOffset the offset of the tib from the object header */ @Interruptible - public final void baselineEmitLoadTIB(VM_Assembler asm, int dest, int object, Offset tibOffset) { + public final void baselineEmitLoadTIB(ArchitectureSpecific.VM_Assembler asm, int dest, int object, Offset tibOffset) { asm.emitMOV_Reg_RegDisp((byte) dest, (byte) object, tibOffset); } @@ -76,7 +74,7 @@ * @param sp The base of the stack */ @Uninterruptible - public final void initializeStack(VM_Registers contextRegisters, Address ip, Address sp) { + public final void initializeStack(ArchitectureSpecific.VM_Registers contextRegisters, Address ip, Address sp) { Address fp; sp = sp.minus(STACKFRAME_HEADER_SIZE); // last word of header fp = sp.minus(BYTES_IN_ADDRESS + STACKFRAME_BODY_OFFSET); @@ -103,7 +101,7 @@ */ @Uninterruptible @Override - public final void adjustESP(VM_Registers registers, Offset delta, boolean traceAdjustments) { + public final void adjustESP(ArchitectureSpecific.VM_Registers registers, Offset delta, boolean traceAdjustments) { Word old = registers.gprs.get(ESP); registers.gprs.set(ESP, old.plus(delta)); if (traceAdjustments) { Modified: rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_OutOfLineMachineCode.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_OutOfLineMachineCode.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_OutOfLineMachineCode.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -13,11 +13,8 @@ import org.jikesrvm.VM_ForwardReference; import org.jikesrvm.VM_ObjectModel; import org.jikesrvm.VM_Processor; -import org.jikesrvm.ArchitectureSpecific.VM_Assembler; -import org.jikesrvm.ArchitectureSpecific.VM_BaselineConstants; -import org.jikesrvm.ArchitectureSpecific.VM_CodeArray; -import org.jikesrvm.ArchitectureSpecific.VM_JNICompiler; -import org.jikesrvm.ArchitectureSpecific.VM_ProcessorLocalState; +import org.jikesrvm.ArchitectureSpecific; +import org.jikesrvm.ia32.jni.VM_JNICompiler; import org.vmmagic.unboxed.Offset; @@ -125,7 +122,7 @@ * */ private static VM_CodeArray generateReflectiveMethodInvokerInstructions() { - VM_Assembler asm = new VM_Assembler(100); + VM_Assembler asm = new ArchitectureSpecific.VM_Assembler(100); /* write at most 2 parameters from registers in the stack. This is * logically equivalent to ParamaterRegisterUnload in the compiler @@ -241,7 +238,7 @@ */ private static VM_CodeArray generateSaveThreadStateInstructions() { if (VM.VerifyAssertions) VM._assert(NUM_NONVOLATILE_FPRS == 0); // assuming no NV FPRs (otherwise would have to save them here) - VM_Assembler asm = new VM_Assembler(0); + VM_Assembler asm = new ArchitectureSpecific.VM_Assembler(0); Offset ipOffset = VM_Entrypoints.registersIPField.getOffset(); Offset fpOffset = VM_Entrypoints.registersFPField.getOffset(); Offset gprsOffset = VM_Entrypoints.registersGPRsField.getOffset(); @@ -278,7 +275,7 @@ */ private static VM_CodeArray generateThreadSwitchInstructions() { if (VM.VerifyAssertions) VM._assert(NUM_NONVOLATILE_FPRS == 0); // assuming no NV FPRs (otherwise would have to save them here) - VM_Assembler asm = new VM_Assembler(0); + VM_Assembler asm = new ArchitectureSpecific.VM_Assembler(0); Offset ipOffset = VM_Entrypoints.registersIPField.getOffset(); Offset fpOffset = VM_Entrypoints.registersFPField.getOffset(); Offset gprsOffset = VM_Entrypoints.registersGPRsField.getOffset(); @@ -326,7 +323,7 @@ * execution resumes at "registers.ip" */ private static VM_CodeArray generateRestoreHardwareExceptionStateInstructions() { - VM_Assembler asm = new VM_Assembler(0); + VM_Assembler asm = new ArchitectureSpecific.VM_Assembler(0); // Set PR.framePointer to be registers.fp asm.emitMOV_Reg_RegDisp(S0, T0, VM_Entrypoints.registersFPField.getOffset()); @@ -367,7 +364,7 @@ // S0 = address of native function to branch to // private static VM_CodeArray generateInvokeNativeFunctionInstructions() { - VM_Assembler asm = new VM_Assembler(0); + VM_Assembler asm = new ArchitectureSpecific.VM_Assembler(0); // save callers ret addr in glue frame asm.emitPOP_RegDisp (EBP, VM_JNICompiler.JNI_RETURN_ADDRESS_OFFSET); Modified: rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_ProcessorLocalState.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_ProcessorLocalState.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/ia32/VM_ProcessorLocalState.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -10,8 +10,6 @@ import org.jikesrvm.VM_Magic; import org.jikesrvm.VM_Processor; -import org.jikesrvm.ArchitectureSpecific.VM_Assembler; -import org.jikesrvm.ArchitectureSpecific.VM_RegisterConstants; import org.vmmagic.pragma.*; import org.vmmagic.unboxed.Offset; Modified: rvmroot/trunk/rvm/src/org/jikesrvm/ia32/jni/VM_JNICompiler.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/ia32/jni/VM_JNICompiler.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/ia32/jni/VM_JNICompiler.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -14,11 +14,11 @@ import org.jikesrvm.VM_ForwardReference; import org.jikesrvm.VM_JNICompiledMethod; import org.jikesrvm.VM_Processor; -import org.jikesrvm.ArchitectureSpecific.VM_Assembler; -import org.jikesrvm.ArchitectureSpecific.VM_BaselineConstants; -import org.jikesrvm.ArchitectureSpecific.VM_CodeArray; -import org.jikesrvm.ArchitectureSpecific.VM_MachineCode; -import org.jikesrvm.ArchitectureSpecific.VM_ProcessorLocalState; +import org.jikesrvm.ArchitectureSpecific; +import org.jikesrvm.ia32.VM_BaselineConstants; +import org.jikesrvm.ia32.VM_ProcessorLocalState; +import org.jikesrvm.ia32.VM_Assembler; +import org.jikesrvm.ia32.VM_MachineCode; import org.jikesrvm.classloader.*; import org.vmmagic.unboxed.*; @@ -64,7 +64,7 @@ */ public static synchronized VM_CompiledMethod compile (VM_NativeMethod method) { VM_JNICompiledMethod cm = (VM_JNICompiledMethod)VM_CompiledMethods.createCompiledMethod(method, VM_CompiledMethod.JNI); - VM_Assembler asm = new VM_Assembler(100); // some size for the instruction array + VM_Assembler asm = new ArchitectureSpecific.VM_Assembler(100); // some size for the instruction array Address nativeIP = method.getNativeIP(); // recompute some constants int parameterWords = method.getParameterWords(); @@ -186,7 +186,7 @@ else asm.emitRET_Imm((parameterWords+1) << LG_WORDSIZE); - VM_MachineCode machineCode = new VM_MachineCode(asm.getMachineCodes(), null); + VM_MachineCode machineCode = new ArchitectureSpecific.VM_MachineCode(asm.getMachineCodes(), null); cm.compileComplete(machineCode.getInstructions()); return cm; } Modified: rvmroot/trunk/rvm/src/org/jikesrvm/ia32/jni/VM_JNIGCMapIterator.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/ia32/jni/VM_JNIGCMapIterator.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/ia32/jni/VM_JNIGCMapIterator.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -11,8 +11,7 @@ import org.jikesrvm.VM_CompiledMethod; import org.jikesrvm.VM_Magic; import org.jikesrvm.VM_Thread; -import org.jikesrvm.ArchitectureSpecific.VM_BaselineConstants; -import org.jikesrvm.ArchitectureSpecific.VM_JNICompiler; +import org.jikesrvm.ia32.VM_BaselineConstants; import org.jikesrvm.jni.VM_JNIEnvironment; import org.jikesrvm.memorymanagers.mminterface.VM_GCMapIterator; Modified: rvmroot/trunk/rvm/src/org/jikesrvm/ia32/osr/OSR_BaselineExecStateExtractor.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/ia32/osr/OSR_BaselineExecStateExtractor.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/ia32/osr/OSR_BaselineExecStateExtractor.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -15,7 +15,7 @@ import org.jikesrvm.VM_Constants; import org.jikesrvm.VM_Magic; import org.jikesrvm.VM_Thread; -import org.jikesrvm.ArchitectureSpecific.OPT_PhysicalRegisterConstants; +import org.jikesrvm.opt.ia32.OPT_PhysicalRegisterConstants; import org.jikesrvm.classloader.*; import org.jikesrvm.ia32.*; import org.jikesrvm.osr.OSR_BytecodeTraverser; Modified: rvmroot/trunk/rvm/src/org/jikesrvm/ia32/osr/OSR_CodeInstaller.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/ia32/osr/OSR_CodeInstaller.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/ia32/osr/OSR_CodeInstaller.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -18,8 +18,9 @@ import org.jikesrvm.VM_Memory; import org.jikesrvm.VM_Statics; import org.jikesrvm.VM_Thread; -import org.jikesrvm.ArchitectureSpecific.VM_Assembler; -import org.jikesrvm.ArchitectureSpecific.VM_BaselineConstants; +import org.jikesrvm.ArchitectureSpecific; +import org.jikesrvm.ia32.VM_BaselineConstants; +import org.jikesrvm.ia32.VM_Assembler; import org.jikesrvm.opt.VM_OptCompiledMethod; import org.jikesrvm.osr.OSR_ExecutionState; import org.jikesrvm.adaptive.*; @@ -59,7 +60,7 @@ // should given an estimated length, and print the instructions // for debugging - VM_Assembler asm = new VM_Assembler(50, VM.TraceOnStackReplacement); + VM_Assembler asm = new ArchitectureSpecific.VM_Assembler(50, VM.TraceOnStackReplacement); // 1. generate bridge instructions to recover saved registers if (cType == VM_CompiledMethod.BASELINE) { Modified: rvmroot/trunk/rvm/src/org/jikesrvm/ia32/osr/OSR_OptExecStateExtractor.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/ia32/osr/OSR_OptExecStateExtractor.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/ia32/osr/OSR_OptExecStateExtractor.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -16,9 +16,9 @@ import org.jikesrvm.VM_Magic; import org.jikesrvm.VM_Runtime; import org.jikesrvm.VM_Thread; -import org.jikesrvm.ArchitectureSpecific.OPT_PhysicalRegisterConstants; import org.jikesrvm.classloader.*; import org.jikesrvm.opt.VM_OptCompiledMethod; +import org.jikesrvm.opt.ia32.OPT_PhysicalRegisterConstants; import org.jikesrvm.osr.OSR_Constants; import org.jikesrvm.osr.OSR_EncodedOSRMap; import org.jikesrvm.osr.OSR_ExecStateExtractor; @@ -38,7 +38,7 @@ extends OSR_ExecStateExtractor implements VM_Constants, OSR_Constants, - OPT_PhysicalRegisterConstants { + OPT_PhysicalRegisterConstants { public OSR_ExecutionState extractState(VM_Thread thread, Offset osrFPoff, Modified: rvmroot/trunk/rvm/src/org/jikesrvm/ia32/osr/OSR_PostThreadSwitch.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/ia32/osr/OSR_PostThreadSwitch.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/ia32/osr/OSR_PostThreadSwitch.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -11,8 +11,8 @@ import org.jikesrvm.VM; import org.jikesrvm.VM_Magic; import org.jikesrvm.VM_Thread; -import org.jikesrvm.ArchitectureSpecific.VM_BaselineConstants; -import org.jikesrvm.ArchitectureSpecific.VM_CodeArray; +import org.jikesrvm.ia32.VM_BaselineConstants; +import org.jikesrvm.ia32.VM_CodeArray; import org.vmmagic.pragma.*; import org.vmmagic.unboxed.*; Modified: rvmroot/trunk/rvm/src/org/jikesrvm/ia32/osr/OSR_TempRegisters.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/ia32/osr/OSR_TempRegisters.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/ia32/osr/OSR_TempRegisters.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -11,7 +11,7 @@ import org.jikesrvm.VM; import org.jikesrvm.VM_Constants; -import org.jikesrvm.ArchitectureSpecific.VM_Registers; +import org.jikesrvm.ia32.VM_Registers; import org.vmmagic.unboxed.*; Modified: rvmroot/trunk/rvm/src/org/jikesrvm/opt/VM_OptCompiledMethod.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/opt/VM_OptCompiledMethod.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/opt/VM_OptCompiledMethod.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -10,11 +10,7 @@ package org.jikesrvm.opt; import org.jikesrvm.*; -import org.jikesrvm.ArchitectureSpecific.OPT_Assembler; -import org.jikesrvm.ArchitectureSpecific.VM_Assembler; -import org.jikesrvm.ArchitectureSpecific.VM_CodeArray; -import org.jikesrvm.ArchitectureSpecific.VM_OptExceptionDeliverer; -import org.jikesrvm.ArchitectureSpecific.VM_RegisterConstants; +import org.jikesrvm.ArchitectureSpecific; import org.jikesrvm.classloader.*; import org.jikesrvm.opt.ir.*; import org.jikesrvm.osr.*; @@ -223,8 +219,8 @@ //----------------// // implementation // //----------------// - private static final VM_OptExceptionDeliverer exceptionDeliverer = - new VM_OptExceptionDeliverer(); + private static final ArchitectureSpecific.VM_OptExceptionDeliverer exceptionDeliverer = + new ArchitectureSpecific.VM_OptExceptionDeliverer(); private OSR_EncodedOSRMap _osrMap; @@ -340,9 +336,9 @@ */ public int getNumberOfNonvolatileGPRs() { if (VM.BuildForPowerPC) - return VM_RegisterConstants.NUM_GPRS - getFirstNonVolatileGPR(); + return ArchitectureSpecific.VM_RegisterConstants.NUM_GPRS - getFirstNonVolatileGPR(); else if (VM.BuildForIA32) - return VM_RegisterConstants.NUM_NONVOLATILE_GPRS - getFirstNonVolatileGPR(); + return ArchitectureSpecific.VM_RegisterConstants.NUM_NONVOLATILE_GPRS - getFirstNonVolatileGPR(); else if (VM.VerifyAssertions) VM._assert(VM.NOT_REACHED); return -1; @@ -352,9 +348,9 @@ */ public int getNumberOfNonvolatileFPRs() { if (VM.BuildForPowerPC) - return VM_RegisterConstants.NUM_FPRS - getFirstNonVolatileFPR(); + return ArchitectureSpecific.VM_RegisterConstants.NUM_FPRS - getFirstNonVolatileFPR(); else if (VM.BuildForIA32) - return VM_RegisterConstants.NUM_NONVOLATILE_FPRS - getFirstNonVolatileFPR(); + return ArchitectureSpecific.VM_RegisterConstants.NUM_NONVOLATILE_FPRS - getFirstNonVolatileFPR(); else if (VM.VerifyAssertions) VM._assert(VM.NOT_REACHED); return -1; @@ -364,9 +360,9 @@ */ public void setNumberOfNonvolatileGPRs(short n) { if (VM.BuildForPowerPC) - setFirstNonVolatileGPR(VM_RegisterConstants.NUM_GPRS - n); + setFirstNonVolatileGPR(ArchitectureSpecific.VM_RegisterConstants.NUM_GPRS - n); else if (VM.BuildForIA32) - setFirstNonVolatileGPR(VM_RegisterConstants.NUM_NONVOLATILE_GPRS - n); + setFirstNonVolatileGPR(ArchitectureSpecific.VM_RegisterConstants.NUM_NONVOLATILE_GPRS - n); else if (VM.VerifyAssertions) VM._assert(VM.NOT_REACHED); } @@ -375,9 +371,9 @@ */ public void setNumberOfNonvolatileFPRs(short n) { if (VM.BuildForPowerPC) - setFirstNonVolatileFPR(VM_RegisterConstants.NUM_FPRS - n); + setFirstNonVolatileFPR(ArchitectureSpecific.VM_RegisterConstants.NUM_FPRS - n); else if (VM.BuildForIA32) - setFirstNonVolatileFPR(VM_RegisterConstants.NUM_NONVOLATILE_FPRS - n); + setFirstNonVolatileFPR(ArchitectureSpecific.VM_RegisterConstants.NUM_NONVOLATILE_FPRS - n); else if (VM.VerifyAssertions) VM._assert(VM.NOT_REACHED); } @@ -456,9 +452,9 @@ * is adjusted for one word */ patchMap[idx++] = - (patchPoint >> VM_RegisterConstants.LG_INSTRUCTION_WIDTH) -1; + (patchPoint >> ArchitectureSpecific.VM_RegisterConstants.LG_INSTRUCTION_WIDTH) -1; patchMap[idx++] = (newTarget - patchPoint - + (1<<VM_RegisterConstants.LG_INSTRUCTION_WIDTH)); + + (1<<ArchitectureSpecific.VM_RegisterConstants.LG_INSTRUCTION_WIDTH)); } else if (VM.VerifyAssertions) VM._assert(VM.NOT_REACHED); } @@ -473,11 +469,11 @@ public void applyCodePatches(VM_CompiledMethod cm) { if (patchMap != null) { for (int idx=0; idx<patchMap.length; idx += 2) { - VM_CodeArray code = cm.codeArrayForOffset(Offset.fromIntZeroExtend(patchMap[idx])); + ArchitectureSpecific.VM_CodeArray code = cm.codeArrayForOffset(Offset.fromIntZeroExtend(patchMap[idx])); if (VM.BuildForIA32) - VM_Assembler.patchCode(code, patchMap[idx], patchMap[idx+1]); + ArchitectureSpecific.VM_Assembler.patchCode(code, patchMap[idx], patchMap[idx+1]); else if (VM.BuildForPowerPC) - OPT_Assembler.patchCode(code, patchMap[idx], patchMap[idx+1]); + ArchitectureSpecific.OPT_Assembler.patchCode(code, patchMap[idx], patchMap[idx+1]); else if (VM.VerifyAssertions) VM._assert(VM.NOT_REACHED); } Modified: rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/OPT_AssemblerBase.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/OPT_AssemblerBase.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/OPT_AssemblerBase.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -30,11 +30,9 @@ import org.jikesrvm.opt.ir.OPT_Register; import org.jikesrvm.opt.ir.OPT_RegisterOperand; import org.jikesrvm.opt.ir.OPT_TrapCodeOperand; -import org.jikesrvm.ArchitectureSpecific.VM_Assembler; -import org.jikesrvm.ArchitectureSpecific.VM_TrapConstants; +import org.jikesrvm.ia32.VM_Assembler; +import org.jikesrvm.ia32.VM_TrapConstants; import org.jikesrvm.ArchitectureSpecific.OPT_Assembler; -import org.jikesrvm.ArchitectureSpecific.OPT_PhysicalRegisterConstants; -import org.jikesrvm.ArchitectureSpecific.OPT_PhysicalRegisterSet; import org.jikesrvm.VM; import org.jikesrvm.VM_Constants; import org.jikesrvm.VM_ForwardReference; Modified: rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/OPT_CallingConvention.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/OPT_CallingConvention.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/OPT_CallingConvention.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -10,10 +10,7 @@ import org.jikesrvm.VM; import org.jikesrvm.VM_Entrypoints; -import org.jikesrvm.ArchitectureSpecific.OPT_PhysicalRegisterConstants; import org.jikesrvm.ArchitectureSpecific.OPT_PhysicalRegisterSet; -import org.jikesrvm.ArchitectureSpecific.OPT_PhysicalRegisterTools; -import org.jikesrvm.ArchitectureSpecific.OPT_StackManager; import org.jikesrvm.classloader.*; import org.jikesrvm.opt.OPT_ConvertToLowLevelIR; import org.jikesrvm.opt.OPT_DefUse; Modified: rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/OPT_ExpandFPRStackConvention.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/OPT_ExpandFPRStackConvention.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/OPT_ExpandFPRStackConvention.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -8,10 +8,10 @@ */ package org.jikesrvm.opt.ia32; import org.jikesrvm.VM; -import org.jikesrvm.ArchitectureSpecific.OPT_PhysicalRegisterSet; import org.jikesrvm.opt.OPT_CompilerPhase; import org.jikesrvm.opt.OPT_Options; +import org.jikesrvm.opt.ia32.ir.OPT_PhysicalRegisterSet; import org.jikesrvm.opt.ir.*; /** Modified: rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/OPT_FinalMIRExpansion.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/OPT_FinalMIRExpansion.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/OPT_FinalMIRExpansion.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -11,7 +11,6 @@ import org.jikesrvm.VM; import org.jikesrvm.VM_Entrypoints; import org.jikesrvm.VM_Magic; -import org.jikesrvm.ArchitectureSpecific.OPT_PhysicalRegisterSet; import org.jikesrvm.classloader.*; import org.jikesrvm.opt.ia32.ir.*; @@ -31,7 +30,7 @@ * is little choice for relocatable IA32 code that does this. And the * details of this code are shared with the baseline compiler and * dependent in detail on the VM_Assembler (see {@link - * VM_Assembler#emitOFFSET_Imm_ImmOrLabel}). If you want to mess with + * org.jikesrvm.ia32.VM_Assembler#emitOFFSET_Imm_ImmOrLabel}). If you want to mess with * it, you will probably need to mess with them as well. * * @author Dave Grove Modified: rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/OPT_MIRSplitRanges.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/OPT_MIRSplitRanges.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/OPT_MIRSplitRanges.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -8,8 +8,6 @@ */ package org.jikesrvm.opt.ia32; -import org.jikesrvm.ArchitectureSpecific.OPT_PhysicalRegisterTools; -import org.jikesrvm.ArchitectureSpecific.OPT_RegisterRestrictions; import org.jikesrvm.opt.OPT_CompilerPhase; import org.jikesrvm.opt.ir.MIR_LowTableSwitch; import org.jikesrvm.opt.ir.OPT_BasicBlock; Modified: rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/OPT_PhysicalRegisterConstants.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/OPT_PhysicalRegisterConstants.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/OPT_PhysicalRegisterConstants.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -8,7 +8,7 @@ */ package org.jikesrvm.opt.ia32; -import org.jikesrvm.ArchitectureSpecific.VM_RegisterConstants; +import org.jikesrvm.ia32.VM_RegisterConstants; /** * This class holds constants that describe IA32 physical register set. Modified: rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/OPT_RegisterRestrictions.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/OPT_RegisterRestrictions.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/OPT_RegisterRestrictions.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -8,7 +8,6 @@ */ package org.jikesrvm.opt.ia32; -import org.jikesrvm.ArchitectureSpecific.OPT_PhysicalRegisterConstants; import org.jikesrvm.ArchitectureSpecific.OPT_PhysicalRegisterSet; import org.jikesrvm.opt.ia32.ir.*; import org.jikesrvm.opt.OPT_GenericRegisterRestrictions; Modified: rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/OPT_StackManager.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/OPT_StackManager.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/OPT_StackManager.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -7,11 +7,8 @@ * (C) Copyright IBM Corp. 2001 */ package org.jikesrvm.opt.ia32; -import org.jikesrvm.VM_Entrypoints; -import org.jikesrvm.ArchitectureSpecific.OPT_RegisterRestrictions; -import org.jikesrvm.ArchitectureSpecific.OPT_PhysicalDefUse; -import org.jikesrvm.ArchitectureSpecific.OPT_PhysicalRegisterSet; +import org.jikesrvm.VM_Entrypoints; import org.jikesrvm.opt.ia32.ir.*; import org.jikesrvm.opt.OPT_GenericStackManager; import org.jikesrvm.opt.OPT_OptimizingCompilerException; Modified: rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/VM_OptGCMapIteratorConstants.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/VM_OptGCMapIteratorConstants.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/VM_OptGCMapIteratorConstants.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -8,7 +8,7 @@ */ package org.jikesrvm.opt.ia32; -import org.jikesrvm.ArchitectureSpecific.OPT_PhysicalRegisterConstants; +import org.jikesrvm.opt.ia32.OPT_PhysicalRegisterConstants; /** * This interface holds constants for the Opt GC map code specific to IA32 Modified: rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/ir/OPT_GenerateMachineSpecificMagic.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/ir/OPT_GenerateMachineSpecificMagic.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/ir/OPT_GenerateMachineSpecificMagic.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -12,7 +12,6 @@ import org.jikesrvm.VM_Entrypoints; import org.jikesrvm.VM_Magic; import org.jikesrvm.VM_MagicNames; -import org.jikesrvm.ArchitectureSpecific.OPT_PhysicalRegisterSet; import org.jikesrvm.classloader.*; import org.jikesrvm.opt.OPT_MagicNotImplementedException; import org.jikesrvm.opt.ir.*; Modified: rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/ir/OPT_MachineSpecificIRIA.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/ir/OPT_MachineSpecificIRIA.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/ir/OPT_MachineSpecificIRIA.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -8,8 +8,6 @@ */ package org.jikesrvm.opt.ia32.ir; -import org.jikesrvm.ArchitectureSpecific.OPT_PhysicalRegisterSet; - import org.jikesrvm.VM; import org.jikesrvm.classloader.VM_TypeReference; import org.jikesrvm.opt.OPT_LiveIntervalElement; Modified: rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/ir/OPT_PhysicalDefUse.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/ir/OPT_PhysicalDefUse.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/ir/OPT_PhysicalDefUse.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -12,7 +12,6 @@ import org.jikesrvm.opt.ir.OPT_IR; import org.jikesrvm.opt.ir.OPT_Operator; import org.jikesrvm.opt.ir.OPT_Register; -import org.jikesrvm.ArchitectureSpecific.OPT_PhysicalRegisterSet; import java.util.Enumeration; /** Modified: rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/ir/OPT_PhysicalRegisterSet.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/ir/OPT_PhysicalRegisterSet.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/opt/ia32/ir/OPT_PhysicalRegisterSet.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -9,8 +9,8 @@ package org.jikesrvm.opt.ia32.ir; import org.jikesrvm.VM; -import org.jikesrvm.ArchitectureSpecific.VM_RegisterConstants; -import org.jikesrvm.ArchitectureSpecific.OPT_PhysicalRegisterConstants; +import org.jikesrvm.ia32.VM_RegisterConstants; +import org.jikesrvm.opt.ia32.OPT_PhysicalRegisterConstants; import org.jikesrvm.opt.OPT_BitSet; import org.jikesrvm.opt.OPT_CompoundEnumerator; import org.jikesrvm.opt.OPT_EmptyEnumerator; @@ -27,8 +27,9 @@ * * @author Stephen Fink */ -public abstract class OPT_PhysicalRegisterSet extends OPT_GenericPhysicalRegisterSet -implements VM_RegisterConstants, OPT_PhysicalRegisterConstants { +public abstract class OPT_PhysicalRegisterSet + extends OPT_GenericPhysicalRegisterSet + implements VM_RegisterConstants, OPT_PhysicalRegisterConstants { /** * This array holds a pool of objects representing physical registers Modified: rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/OPT_Assembler.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/OPT_Assembler.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/OPT_Assembler.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -12,7 +12,6 @@ import org.jikesrvm.VM_Constants; import org.jikesrvm.VM_Services; import org.jikesrvm.ArchitectureSpecific.VM_CodeArray; -import org.jikesrvm.ArchitectureSpecific.OPT_PhysicalRegisterSet; import org.jikesrvm.opt.OPT_Compiler; import org.jikesrvm.opt.OPT_OperationNotImplementedException; Modified: rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/OPT_BURS_Helpers.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/OPT_BURS_Helpers.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/OPT_BURS_Helpers.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -11,8 +11,8 @@ import org.jikesrvm.VM; import org.jikesrvm.VM_Entrypoints; import org.jikesrvm.VM_Runtime; -import org.jikesrvm.ArchitectureSpecific.VM_TrapConstants; -import org.jikesrvm.ArchitectureSpecific.OPT_PhysicalRegisterConstants; +import org.jikesrvm.ppc.VM_TrapConstants; +import org.jikesrvm.opt.ppc.OPT_PhysicalRegisterConstants; import org.jikesrvm.classloader.*; import org.jikesrvm.opt.OPT_BURS; import org.jikesrvm.opt.OPT_BURS_Common_Helpers; Modified: rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/OPT_CallingConvention.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/OPT_CallingConvention.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/OPT_CallingConvention.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -11,7 +11,6 @@ import org.jikesrvm.VM; import org.jikesrvm.VM_Constants; import org.jikesrvm.VM_Entrypoints; -import org.jikesrvm.ArchitectureSpecific.OPT_PhysicalRegisterSet; import org.jikesrvm.classloader.*; import org.jikesrvm.opt.OPT_ConvertToLowLevelIR; import org.jikesrvm.opt.OPT_DefUse; @@ -40,6 +39,7 @@ import static org.jikesrvm.opt.ir.OPT_Operators.*; import static org.jikesrvm.ppc.VM_StackframeLayoutConstants.*; import static org.jikesrvm.opt.ppc.OPT_PhysicalRegisterConstants.*; +import org.jikesrvm.opt.ppc.ir.OPT_PhysicalRegisterSet; /** * This class contains PowerPC Calling conventions. Modified: rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/OPT_ComplexLIR2MIRExpansion.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/OPT_ComplexLIR2MIRExpansion.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/OPT_ComplexLIR2MIRExpansion.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -9,7 +9,6 @@ package org.jikesrvm.opt.ppc; import org.jikesrvm.VM; -import org.jikesrvm.ArchitectureSpecific.OPT_PhysicalRegisterSet; import org.jikesrvm.opt.OPT_DefUse; import org.jikesrvm.opt.ir.*; import org.jikesrvm.opt.ppc.ir.*; Modified: rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/OPT_FinalMIRExpansion.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/OPT_FinalMIRExpansion.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/OPT_FinalMIRExpansion.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -11,8 +11,6 @@ import org.jikesrvm.VM; import org.jikesrvm.VM_Entrypoints; import org.jikesrvm.VM_Thread; -import org.jikesrvm.ArchitectureSpecific.OPT_Assembler; -import org.jikesrvm.ArchitectureSpecific.OPT_PhysicalRegisterSet; import org.jikesrvm.classloader.*; import org.jikesrvm.opt.OPT_Bits; import org.jikesrvm.opt.OPT_OptimizingCompilerException; Modified: rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/OPT_PhysicalRegisterConstants.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/OPT_PhysicalRegisterConstants.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/OPT_PhysicalRegisterConstants.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -8,7 +8,7 @@ */ package org.jikesrvm.opt.ppc; -import org.jikesrvm.ArchitectureSpecific.VM_RegisterConstants; +import org.jikesrvm.ppc.VM_RegisterConstants; /** * This class holds constants that describe PowerPC register set. @@ -16,7 +16,7 @@ * @author Mauricio J. Serrano * @author Stephen Fink * @modified Vivek Sarkar - * @see OPT_RegisterAllocator + * @see org.jikesrvm.opt.OPT_RegisterAllocator */ public interface OPT_PhysicalRegisterConstants extends VM_RegisterConstants { Modified: rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/OPT_PhysicalRegisterTools.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/OPT_PhysicalRegisterTools.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/OPT_PhysicalRegisterTools.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -9,8 +9,8 @@ package org.jikesrvm.opt.ppc; import org.jikesrvm.opt.OPT_GenericPhysicalRegisterTools; +import org.jikesrvm.opt.ppc.ir.OPT_PhysicalRegisterSet; import org.jikesrvm.opt.ir.OPT_RegisterOperand; -import org.jikesrvm.ArchitectureSpecific.OPT_PhysicalRegisterSet; /** * This abstract class provides a set of useful methods for Modified: rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/OPT_StackManager.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/OPT_StackManager.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/OPT_StackManager.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -10,7 +10,7 @@ import org.jikesrvm.VM; import org.jikesrvm.VM_Entrypoints; -import org.jikesrvm.ArchitectureSpecific.OPT_PhysicalRegisterSet; +import org.jikesrvm.opt.ppc.ir.OPT_PhysicalRegisterSet; import org.jikesrvm.opt.OPT_Bits; import org.jikesrvm.opt.OPT_GenericStackManager; import org.jikesrvm.opt.OPT_OptimizingCompilerException; Modified: rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/VM_OptGCMapIteratorConstants.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/VM_OptGCMapIteratorConstants.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/VM_OptGCMapIteratorConstants.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -8,8 +8,6 @@ */ package org.jikesrvm.opt.ppc; -import org.jikesrvm.ArchitectureSpecific.OPT_PhysicalRegisterConstants; - /** * This interface holds constants for the Opt GC map code specific to PowerPC * Modified: rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/ir/OPT_GenerateMachineSpecificMagic.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/ir/OPT_GenerateMachineSpecificMagic.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/ir/OPT_GenerateMachineSpecificMagic.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -9,7 +9,7 @@ package org.jikesrvm.opt.ppc.ir; import org.jikesrvm.VM_MagicNames; -import org.jikesrvm.ArchitectureSpecific.VM_StackframeLayoutConstants; +import org.jikesrvm.ppc.VM_StackframeLayoutConstants; import org.jikesrvm.classloader.*; import org.jikesrvm.opt.OPT_MagicNotImplementedException; import org.jikesrvm.opt.ir.Binary; @@ -30,7 +30,7 @@ /** * This class implements the machine-specific magics for the opt compiler. * - * @see OPT_GenerateMagic for the machine-independent magics. + * @see org.jikesrvm.opt.ir.OPT_GenerateMagic for the machine-independent magics. * * @author Dave Grove * @author Mauricio Serrano Modified: rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/ir/OPT_PhysicalDefUse.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/ir/OPT_PhysicalDefUse.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/ir/OPT_PhysicalDefUse.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -9,7 +9,6 @@ package org.jikesrvm.opt.ppc.ir; import java.util.Enumeration; -import org.jikesrvm.ArchitectureSpecific.OPT_PhysicalRegisterSet; import org.jikesrvm.opt.ir.OPT_IR; import org.jikesrvm.opt.ir.OPT_Register; Modified: rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/ir/OPT_PhysicalRegisterSet.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/ir/OPT_PhysicalRegisterSet.java 2007-03-10 12:40:53 UTC (rev 11800) +++ rvmroot/trunk/rvm/src/org/jikesrvm/opt/ppc/ir/OPT_PhysicalRegisterSet.java 2007-03-10 15:22:15 UTC (rev 11801) @@ -9,8 +9,8 @@ package org.jikesrvm.opt.ppc.ir; import org.jikesrvm.VM; -import org.jikesrvm.ArchitectureSpecific.VM_RegisterConstants; -import org.jikesrvm.ArchitectureSpecific.OPT_PhysicalRegisterConstants; +import org.jikesrvm.ppc.VM_RegisterConstants; +import org.jikesrvm.opt.ppc.OPT_PhysicalRegisterConstants; import org.jikesrvm.opt.OP... [truncated message content] |
From: <dgr...@us...> - 2007-03-12 15:49:36
|
Revision: 11830 http://svn.sourceforge.net/jikesrvm/?rev=11830&view=rev Author: dgrove-oss Date: 2007-03-12 08:49:18 -0700 (Mon, 12 Mar 2007) Log Message: ----------- Repackage arch.osr as osr.arch org.jikesrvm.ia32.osr ==> org.jikesrvm.osr.ia32 org.jikesrvm.ppc.osr ==> org.jikesrvm.osr.ppc Modified Paths: -------------- rvmroot/trunk/rvm/src/org/jikesrvm/osr/ia32/OSR_BaselineExecStateExtractor.java rvmroot/trunk/rvm/src/org/jikesrvm/osr/ia32/OSR_CodeInstaller.java rvmroot/trunk/rvm/src/org/jikesrvm/osr/ia32/OSR_OptExecStateExtractor.java rvmroot/trunk/rvm/src/org/jikesrvm/osr/ia32/OSR_PostThreadSwitch.java rvmroot/trunk/rvm/src/org/jikesrvm/osr/ia32/OSR_TempRegisters.java rvmroot/trunk/rvm/src/org/jikesrvm/osr/ppc/OSR_BaselineExecStateExtractor.java rvmroot/trunk/rvm/src/org/jikesrvm/osr/ppc/OSR_CodeInstaller.java rvmroot/trunk/rvm/src/org/jikesrvm/osr/ppc/OSR_OptExecStateExtractor.java rvmroot/trunk/rvm/src/org/jikesrvm/osr/ppc/OSR_PostThreadSwitch.java rvmroot/trunk/rvm/src/org/jikesrvm/osr/ppc/OSR_TempRegisters.java rvmroot/trunk/rvm/src-generated/vm-configuration/ArchitectureSpecific.template Added Paths: ----------- rvmroot/trunk/rvm/src/org/jikesrvm/osr/ia32/ rvmroot/trunk/rvm/src/org/jikesrvm/osr/ppc/ Removed Paths: ------------- rvmroot/trunk/rvm/src/org/jikesrvm/ia32/osr/ rvmroot/trunk/rvm/src/org/jikesrvm/ppc/osr/ Copied: rvmroot/trunk/rvm/src/org/jikesrvm/osr/ia32 (from rev 11829, rvmroot/trunk/rvm/src/org/jikesrvm/ia32/osr) Modified: rvmroot/trunk/rvm/src/org/jikesrvm/osr/ia32/OSR_BaselineExecStateExtractor.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/ia32/osr/OSR_BaselineExecStateExtractor.java 2007-03-12 15:19:30 UTC (rev 11829) +++ rvmroot/trunk/rvm/src/org/jikesrvm/osr/ia32/OSR_BaselineExecStateExtractor.java 2007-03-12 15:49:18 UTC (rev 11830) @@ -7,7 +7,7 @@ * (C) Copyright IBM Corp 2002 */ -package org.jikesrvm.ia32.osr; +package org.jikesrvm.osr.ia32; import org.jikesrvm.VM; import org.jikesrvm.VM_BaselineCompiledMethod; Modified: rvmroot/trunk/rvm/src/org/jikesrvm/osr/ia32/OSR_CodeInstaller.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/ia32/osr/OSR_CodeInstaller.java 2007-03-12 15:19:30 UTC (rev 11829) +++ rvmroot/trunk/rvm/src/org/jikesrvm/osr/ia32/OSR_CodeInstaller.java 2007-03-12 15:49:18 UTC (rev 11830) @@ -7,7 +7,7 @@ * (C) Copyright IBM Corp 2002 */ -package org.jikesrvm.ia32.osr; +package org.jikesrvm.osr.ia32; import org.jikesrvm.VM; import org.jikesrvm.VM_CompiledMethod; Modified: rvmroot/trunk/rvm/src/org/jikesrvm/osr/ia32/OSR_OptExecStateExtractor.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/ia32/osr/OSR_OptExecStateExtractor.java 2007-03-12 15:19:30 UTC (rev 11829) +++ rvmroot/trunk/rvm/src/org/jikesrvm/osr/ia32/OSR_OptExecStateExtractor.java 2007-03-12 15:49:18 UTC (rev 11830) @@ -7,7 +7,7 @@ * (C) Copyright IBM Corp 2002 */ -package org.jikesrvm.ia32.osr; +package org.jikesrvm.osr.ia32; import org.jikesrvm.VM; import org.jikesrvm.VM_CompiledMethod; Modified: rvmroot/trunk/rvm/src/org/jikesrvm/osr/ia32/OSR_PostThreadSwitch.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/ia32/osr/OSR_PostThreadSwitch.java 2007-03-12 15:19:30 UTC (rev 11829) +++ rvmroot/trunk/rvm/src/org/jikesrvm/osr/ia32/OSR_PostThreadSwitch.java 2007-03-12 15:49:18 UTC (rev 11830) @@ -7,7 +7,7 @@ * (C) Copyright IBM Corp 2002 */ -package org.jikesrvm.ia32.osr; +package org.jikesrvm.osr.ia32; import org.jikesrvm.VM; import org.jikesrvm.VM_Magic; import org.jikesrvm.VM_Thread; Modified: rvmroot/trunk/rvm/src/org/jikesrvm/osr/ia32/OSR_TempRegisters.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/ia32/osr/OSR_TempRegisters.java 2007-03-12 15:19:30 UTC (rev 11829) +++ rvmroot/trunk/rvm/src/org/jikesrvm/osr/ia32/OSR_TempRegisters.java 2007-03-12 15:49:18 UTC (rev 11830) @@ -7,7 +7,7 @@ * (C) Copyright IBM Corp 2002 */ -package org.jikesrvm.ia32.osr; +package org.jikesrvm.osr.ia32; import org.jikesrvm.VM; import org.jikesrvm.ia32.VM_Registers; Copied: rvmroot/trunk/rvm/src/org/jikesrvm/osr/ppc (from rev 11829, rvmroot/trunk/rvm/src/org/jikesrvm/ppc/osr) Modified: rvmroot/trunk/rvm/src/org/jikesrvm/osr/ppc/OSR_BaselineExecStateExtractor.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/ppc/osr/OSR_BaselineExecStateExtractor.java 2007-03-12 15:19:30 UTC (rev 11829) +++ rvmroot/trunk/rvm/src/org/jikesrvm/osr/ppc/OSR_BaselineExecStateExtractor.java 2007-03-12 15:49:18 UTC (rev 11830) @@ -7,7 +7,7 @@ * (C) Copyright IBM Corp 2002 */ -package org.jikesrvm.ppc.osr; +package org.jikesrvm.osr.ppc; import org.jikesrvm.VM; import org.jikesrvm.VM_BaselineCompiledMethod; Modified: rvmroot/trunk/rvm/src/org/jikesrvm/osr/ppc/OSR_CodeInstaller.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/ppc/osr/OSR_CodeInstaller.java 2007-03-12 15:19:30 UTC (rev 11829) +++ rvmroot/trunk/rvm/src/org/jikesrvm/osr/ppc/OSR_CodeInstaller.java 2007-03-12 15:49:18 UTC (rev 11830) @@ -7,7 +7,7 @@ * (C) Copyright IBM Corp 2002 */ -package org.jikesrvm.ppc.osr; +package org.jikesrvm.osr.ppc; import org.jikesrvm.VM; import org.jikesrvm.VM_BaselineCompiledMethod; Modified: rvmroot/trunk/rvm/src/org/jikesrvm/osr/ppc/OSR_OptExecStateExtractor.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/ppc/osr/OSR_OptExecStateExtractor.java 2007-03-12 15:19:30 UTC (rev 11829) +++ rvmroot/trunk/rvm/src/org/jikesrvm/osr/ppc/OSR_OptExecStateExtractor.java 2007-03-12 15:49:18 UTC (rev 11830) @@ -6,7 +6,7 @@ * * (C) Copyright IBM Corp 2002 */ -package org.jikesrvm.ppc.osr; +package org.jikesrvm.osr.ppc; import org.jikesrvm.VM; import org.jikesrvm.VM_CompiledMethod; Modified: rvmroot/trunk/rvm/src/org/jikesrvm/osr/ppc/OSR_PostThreadSwitch.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/ppc/osr/OSR_PostThreadSwitch.java 2007-03-12 15:19:30 UTC (rev 11829) +++ rvmroot/trunk/rvm/src/org/jikesrvm/osr/ppc/OSR_PostThreadSwitch.java 2007-03-12 15:49:18 UTC (rev 11830) @@ -7,7 +7,7 @@ * (C) Copyright IBM Corp 2002 */ -package org.jikesrvm.ppc.osr; +package org.jikesrvm.osr.ppc; import org.jikesrvm.VM_Magic; import org.jikesrvm.VM_Thread; Modified: rvmroot/trunk/rvm/src/org/jikesrvm/osr/ppc/OSR_TempRegisters.java =================================================================== --- rvmroot/trunk/rvm/src/org/jikesrvm/ppc/osr/OSR_TempRegisters.java 2007-03-12 15:19:30 UTC (rev 11829) +++ rvmroot/trunk/rvm/src/org/jikesrvm/osr/ppc/OSR_TempRegisters.java 2007-03-12 15:49:18 UTC (rev 11830) @@ -7,7 +7,7 @@ * (C) Copyright IBM Corp 2002 */ -package org.jikesrvm.ppc.osr; +package org.jikesrvm.osr.ppc; import org.jikesrvm.ppc.VM_Registers; import org.jikesrvm.ppc.VM_RegisterConstants; Modified: rvmroot/trunk/rvm/src-generated/vm-configuration/ArchitectureSpecific.template =================================================================== --- rvmroot/trunk/rvm/src-generated/vm-configuration/ArchitectureSpecific.template 2007-03-12 15:19:30 UTC (rev 11829) +++ rvmroot/trunk/rvm/src-generated/vm-configuration/ArchitectureSpecific.template 2007-03-12 15:49:18 UTC (rev 11830) @@ -108,8 +108,8 @@ public OPT_RegisterPool(VM_Method meth) { super(meth); }} - public static final class OSR_BaselineExecStateExtractor extends org.jikesrvm.@_ARCH_@.osr.OSR_BaselineExecStateExtractor {} - public static final class OSR_CodeInstaller extends org.jikesrvm.@_ARCH_@.osr.OSR_CodeInstaller {} - public static final class OSR_OptExecStateExtractor extends org.jikesrvm.@_ARCH_@.osr.OSR_OptExecStateExtractor {} - public static final class OSR_PostThreadSwitch extends org.jikesrvm.@_ARCH_@.osr.OSR_PostThreadSwitch {} + public static final class OSR_BaselineExecStateExtractor extends org.jikesrvm.osr.@_ARCH_@.OSR_BaselineExecStateExtractor {} + public static final class OSR_CodeInstaller extends org.jikesrvm.osr.@_ARCH_@.OSR_CodeInstaller {} + public static final class OSR_OptExecStateExtractor extends org.jikesrvm.osr.@_ARCH_@.OSR_OptExecStateExtractor {} + public static final class OSR_PostThreadSwitch extends org.jikesrvm.osr.@_ARCH_@.OSR_PostThreadSwitch {} } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |