From: <cap...@us...> - 2008-11-13 13:12:00
|
Revision: 15171 http://jikesrvm.svn.sourceforge.net/jikesrvm/?rev=15171&view=rev Author: captain5050 Date: 2008-11-13 13:11:51 +0000 (Thu, 13 Nov 2008) Log Message: ----------- Update branch to r15169 Modified Paths: -------------- rvmroot/branches/RVM-658-Quarantine/LICENSE.txt rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/harness/org/mmtk/harness/vm/ActivePlan.java rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/harness/org/mmtk/harness/vm/Collection.java rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/harness/org/mmtk/harness/vm/Factory.java rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/harness/org/mmtk/harness/vm/Memory.java rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/harness/org/mmtk/harness/vm/ObjectModel.java rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/harness/org/mmtk/harness/vm/Scanning.java rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/harness/org/mmtk/harness/vm/Statistics.java rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/jikesrvm/org/jikesrvm/mm/mmtk/Assert.java rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/jikesrvm/org/jikesrvm/mm/mmtk/Factory.java rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/jikesrvm/org/jikesrvm/mm/mmtk/FinalizableProcessor.java rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/jikesrvm/org/jikesrvm/mm/mmtk/Strings.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/Collector.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/Harness.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/Mutator.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/Compiler.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/Env.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/UnsyncStack.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/ast/AST.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/ast/AbstractAST.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/ast/IntrinsicMethod.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/ast/Method.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/ast/NormalMethod.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/pcode/AllocOp.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/pcode/BinaryOp.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/pcode/BinaryOperation.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/pcode/Branch.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/pcode/CallIntrinsicOp.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/pcode/CallNormalOp.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/pcode/CallOp.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/pcode/EnnaryOp.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/pcode/ExitOp.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/pcode/ExpectOp.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/pcode/Goto.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/pcode/LoadFieldOp.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/pcode/NullaryOp.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/pcode/PrintOp.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/pcode/PseudoOp.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/pcode/ReturnOp.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/pcode/SpawnOp.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/pcode/StoreFieldOp.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/pcode/StoreLocal.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/pcode/TernaryOp.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/pcode/UnaryOp.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/pcode/UnaryOperation.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/runtime/BoolValue.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/runtime/ConstantPool.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/runtime/ObjectValue.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/runtime/PcodeInterpreter.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/options/Collectors.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/options/DumpPcode.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/options/GcEvery.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/options/InitHeap.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/options/MaxHeap.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/options/Plan.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/options/PolicyStats.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/options/RandomPolicyLength.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/options/RandomPolicyMax.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/options/RandomPolicyMin.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/options/RandomPolicySeed.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/options/Scheduler.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/options/SchedulerPolicy.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/options/Trace.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/options/YieldInterval.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/scheduler/Scheduler.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/scheduler/ThreadModel.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/scheduler/YieldRandomly.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/scheduler/javathreads/JavaThreadModel.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/scheduler/javathreads/Rendezvous.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/scheduler/rawthreads/RawThread.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/scheduler/rawthreads/RawThreadModel.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src-generated/org/mmtk/harness/lang/parser/Parser.jj rvmroot/branches/RVM-658-Quarantine/MMTk/harness/vmmagic/org/vmmagic/unboxed/SimulatedMemory.java rvmroot/branches/RVM-658-Quarantine/MMTk/src/org/mmtk/plan/generational/Gen.java rvmroot/branches/RVM-658-Quarantine/MMTk/src/org/mmtk/plan/generational/marksweep/GenMS.java rvmroot/branches/RVM-658-Quarantine/MMTk/src/org/mmtk/plan/nogc/NoGC.java rvmroot/branches/RVM-658-Quarantine/MMTk/src/org/mmtk/policy/ExplicitLargeObjectSpace.java rvmroot/branches/RVM-658-Quarantine/MMTk/src/org/mmtk/policy/SegregatedFreeListSpace.java rvmroot/branches/RVM-658-Quarantine/MMTk/src/org/mmtk/policy/Space.java rvmroot/branches/RVM-658-Quarantine/MMTk/src/org/mmtk/utility/deque/LocalSSB.java rvmroot/branches/RVM-658-Quarantine/MMTk/src/org/mmtk/utility/heap/FreeListPageResource.java rvmroot/branches/RVM-658-Quarantine/MMTk/src/org/mmtk/utility/heap/HeapGrowthManager.java rvmroot/branches/RVM-658-Quarantine/MMTk/src/org/mmtk/utility/heap/Map.java rvmroot/branches/RVM-658-Quarantine/MMTk/src/org/mmtk/utility/heap/MonotonePageResource.java rvmroot/branches/RVM-658-Quarantine/MMTk/src/org/mmtk/vm/Factory.java rvmroot/branches/RVM-658-Quarantine/MMTk/src/org/mmtk/vm/VM.java rvmroot/branches/RVM-658-Quarantine/NEWS.txt rvmroot/branches/RVM-658-Quarantine/bin/buildit rvmroot/branches/RVM-658-Quarantine/bin/buildit.base_config rvmroot/branches/RVM-658-Quarantine/bin/test-mmtk rvmroot/branches/RVM-658-Quarantine/build/components/harmony.xml rvmroot/branches/RVM-658-Quarantine/build/eclipse/classpath.harmony.template rvmroot/branches/RVM-658-Quarantine/build/eclipse/classpath.template rvmroot/branches/RVM-658-Quarantine/build/primordials/Harmony.txt rvmroot/branches/RVM-658-Quarantine/build/test-runs/sanity.properties rvmroot/branches/RVM-658-Quarantine/build.xml rvmroot/branches/RVM-658-Quarantine/common/vmmagic/src/org/vmmagic/pragma/Inline.java rvmroot/branches/RVM-658-Quarantine/libraryInterface/Common/src/java/lang/Class.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/VM.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/adaptive/OnStackReplacementEvent.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/adaptive/OnStackReplacementPlan.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/adaptive/controller/AnalyticModel.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/adaptive/controller/Controller.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/adaptive/controller/ControllerPlan.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/adaptive/controller/ControllerThread.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/adaptive/controller/RecompilationStrategy.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/adaptive/database/methodsamples/MethodCountData.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/adaptive/measurements/RuntimeMeasurements.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/adaptive/measurements/organizers/AccumulatingMethodSampleOrganizer.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/adaptive/measurements/organizers/DynamicCallGraphOrganizer.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/adaptive/measurements/organizers/MethodSampleOrganizer.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/adaptive/recompilation/CompilationThread.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/adaptive/recompilation/CompilerDNA.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/adaptive/recompilation/PreCompile.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/adaptive/util/AOSLogging.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/classloader/Primitive.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/classloader/RVMArray.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/classloader/RVMClass.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/classloader/RVMMethod.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/classloader/TableBasedDynamicLinker.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/compilers/baseline/BaselineCompiledMethod.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/compilers/baseline/BaselineCompiler.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/compilers/baseline/ReferenceMaps.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/compilers/baseline/TemplateCompilerFramework.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/compilers/baseline/ia32/Barriers.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/compilers/baseline/ia32/BaselineCompilerImpl.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/compilers/baseline/ia32/BaselineGCMapIterator.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/compilers/baseline/ia32/BaselineMagic.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/compilers/baseline/ppc/BaselineCompilerImpl.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/compilers/baseline/ppc/BaselineExceptionDeliverer.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/compilers/baseline/ppc/BaselineGCMapIterator.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/compilers/common/RuntimeCompiler.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/compilers/common/assembler/ia32/Lister.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/compilers/opt/hir2lir/ConvertToLowLevelIR.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/compilers/opt/inlining/ClassLoadingDependencyManager.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/compilers/opt/inlining/InlineTools.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/compilers/opt/lir2mir/ia32/BURS_Helpers.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/compilers/opt/lir2mir/ia32/ComplexLIR2MIRExpansion.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/compilers/opt/mir2mc/ia32/AssemblerBase.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/compilers/opt/mir2mc/ia32/FinalMIRExpansion.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/compilers/opt/regalloc/ia32/CallingConvention.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/compilers/opt/regalloc/ia32/MIRSplitRanges.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/compilers/opt/regalloc/ia32/RegisterRestrictions.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/compilers/opt/regalloc/ia32/StackManager.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/ia32/BaselineConstants.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/ia32/CodeArray.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/ia32/MachineCode.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/ia32/MachineSpecificIA.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/ia32/MultianewarrayHelper.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/ia32/OutOfLineMachineCode.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/ia32/ProcessorLocalState.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/ia32/RegisterConstants.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/ia32/StackframeLayoutConstants.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/jni/ia32/JNICompiler.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/jni/ia32/JNIGCMapIterator.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/mm/mminterface/CollectorThread.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/objectmodel/TIB.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/osr/OSRProfiler.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/osr/ia32/CodeInstaller.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/osr/ppc/BaselineExecutionStateExtractor.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/osr/ppc/CodeInstaller.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/ppc/CodeArray.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/runtime/Reflection.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/runtime/ReflectionBase.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/scheduler/MainThread.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/scheduler/Processor.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/scheduler/RVMThread.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/scheduler/Scheduler.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/scheduler/greenthreads/GreenScheduler.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/util/AbstractHashMapRVM.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/util/AbstractHashSetRVM.java rvmroot/branches/RVM-658-Quarantine/rvm/src-generated/ia32-assembler/Assembler.in rvmroot/branches/RVM-658-Quarantine/rvm/src-generated/ia32-assembler/genAssembler.sh rvmroot/branches/RVM-658-Quarantine/rvm/src-generated/ia32-assembler-opt/GenerateAssembler.java rvmroot/branches/RVM-658-Quarantine/rvm/src-generated/ia32-assembler-opt/Lister.fake rvmroot/branches/RVM-658-Quarantine/rvm/src-generated/ia32-assembler-opt/Magic.fake rvmroot/branches/RVM-658-Quarantine/rvm/src-generated/opt-burs/ia32/IA32.rules rvmroot/branches/RVM-658-Quarantine/rvm/src-generated/opt-ir/ia32/InstructionFormatList.dat rvmroot/branches/RVM-658-Quarantine/rvm/src-generated/opt-ir/ia32/OperatorList.dat rvmroot/branches/RVM-658-Quarantine/rvm/src-generated/options/ValueOptions.vm.dat rvmroot/branches/RVM-658-Quarantine/rvm/src-generated/vm-configuration/ArchitectureSpecific.template rvmroot/branches/RVM-658-Quarantine/rvm/src-generated/vm-configuration/Configuration.template rvmroot/branches/RVM-658-Quarantine/rvm/src-generated/vm-configuration/HeapLayoutConstants.template rvmroot/branches/RVM-658-Quarantine/tools/bootImageRunner/bootImageRunner.h rvmroot/branches/RVM-658-Quarantine/tools/bootImageRunner/ia32/libvm.c rvmroot/branches/RVM-658-Quarantine/tools/bootImageRunner/ia32/linux_ucontext.h rvmroot/branches/RVM-658-Quarantine/tools/bootImageRunner/sys.C rvmroot/branches/RVM-658-Quarantine/tools/bootImageWriter/src/org/jikesrvm/tools/bootImageWriter/BootImageWriter.java Added Paths: ----------- rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/harness/org/mmtk/harness/vm/MMTkEvents.java rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/jikesrvm/org/jikesrvm/mm/mmtk/MMTk_Events.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/parser/Source.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/scheduler/javathreads/JavaLock.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/scheduler/rawthreads/RawLock.java rvmroot/branches/RVM-658-Quarantine/MMTk/src/org/mmtk/vm/MMTk_Events.java rvmroot/branches/RVM-658-Quarantine/bin/unit-test-mmtk rvmroot/branches/RVM-658-Quarantine/build/configs/BaseAdaptiveGenImmix.properties rvmroot/branches/RVM-658-Quarantine/build/hosts/x86_64_m64-linux.properties rvmroot/branches/RVM-658-Quarantine/build/targets/x86_64_m64-linux.properties rvmroot/branches/RVM-658-Quarantine/build/test-runs/mmtk-unit-tests.properties rvmroot/branches/RVM-658-Quarantine/build/test-runs/sanity-tier2.properties rvmroot/branches/RVM-658-Quarantine/external/ rvmroot/branches/RVM-658-Quarantine/external/README.txt rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/ rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/LICENSE.txt rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/ rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/ rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/ rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/tracegen/ rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/tracegen/chunk/ rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/tracegen/chunk/Chunk.java rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/tracegen/chunk/EventChunk.java rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/tracegen/chunk/EventTypeChunk.java rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/tracegen/chunk/EventTypeSpaceChunk.java rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/tracegen/chunk/FeedHeaderChunk.java rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/tracegen/chunk/FeedletChunk.java rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/tracegen/chunk/PropertyTableChunk.java rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/tracegen/chunk/RawChunk.java rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/tracegen/chunk/StringTableChunk.java rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/tracegen/types/ rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/tracegen/types/EventAttribute.java rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/tracegen/types/EventType.java rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/tracegen/types/EventTypeSpaceVersion.java rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/tracegen/types/ScalarType.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/ia32/Code.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/ppc/Code.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/scheduler/SoftLatch.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/tuningfork/ rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/tuningfork/ChunkQueue.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/tuningfork/EventChunkQueue.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/tuningfork/Feedlet.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/tuningfork/SpaceDescriptorChunk.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/tuningfork/TraceEngine.java rvmroot/branches/RVM-658-Quarantine/rvm/src-generated/ia32-assembler-opt/OutOfLineMachineCode.fake rvmroot/branches/RVM-658-Quarantine/rvm/src-generated/ia32-assembler-opt/RVMField.fake rvmroot/branches/RVM-658-Quarantine/testing/tests/mmtk/ rvmroot/branches/RVM-658-Quarantine/testing/tests/mmtk/build.xml rvmroot/branches/RVM-658-Quarantine/testing/tests/mmtk/src/ rvmroot/branches/RVM-658-Quarantine/testing/tests/mmtk/src/org/ rvmroot/branches/RVM-658-Quarantine/testing/tests/mmtk/src/org/mmtk/ rvmroot/branches/RVM-658-Quarantine/testing/tests/mmtk/src/org/mmtk/utility/ rvmroot/branches/RVM-658-Quarantine/testing/tests/mmtk/src/org/mmtk/utility/deque/ rvmroot/branches/RVM-658-Quarantine/testing/tests/mmtk/src/org/mmtk/utility/deque/ObjectReferenceDequeTest.java Removed Paths: ------------- rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/scheduler/javathreads/Lock.java rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/scheduler/rawthreads/Lock.java rvmroot/branches/RVM-658-Quarantine/external/README.txt rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/ rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/LICENSE.txt rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/ rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/ rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/ rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/tracegen/ rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/tracegen/chunk/ rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/tracegen/chunk/Chunk.java rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/tracegen/chunk/EventChunk.java rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/tracegen/chunk/EventTypeChunk.java rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/tracegen/chunk/EventTypeSpaceChunk.java rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/tracegen/chunk/FeedHeaderChunk.java rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/tracegen/chunk/FeedletChunk.java rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/tracegen/chunk/PropertyTableChunk.java rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/tracegen/chunk/RawChunk.java rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/tracegen/chunk/StringTableChunk.java rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/tracegen/types/ rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/tracegen/types/EventAttribute.java rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/tracegen/types/EventType.java rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/tracegen/types/EventTypeSpaceVersion.java rvmroot/branches/RVM-658-Quarantine/external/tuningforklib/src/com/ibm/tuningfork/tracegen/types/ScalarType.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/tuningfork/ChunkQueue.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/tuningfork/EventChunkQueue.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/tuningfork/Feedlet.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/tuningfork/SpaceDescriptorChunk.java rvmroot/branches/RVM-658-Quarantine/rvm/src/org/jikesrvm/tuningfork/TraceEngine.java rvmroot/branches/RVM-658-Quarantine/testing/tests/mmtk/build.xml rvmroot/branches/RVM-658-Quarantine/testing/tests/mmtk/src/ rvmroot/branches/RVM-658-Quarantine/testing/tests/mmtk/src/org/ rvmroot/branches/RVM-658-Quarantine/testing/tests/mmtk/src/org/mmtk/ rvmroot/branches/RVM-658-Quarantine/testing/tests/mmtk/src/org/mmtk/utility/ rvmroot/branches/RVM-658-Quarantine/testing/tests/mmtk/src/org/mmtk/utility/deque/ rvmroot/branches/RVM-658-Quarantine/testing/tests/mmtk/src/org/mmtk/utility/deque/ObjectReferenceDequeTest.java rvmroot/branches/RVM-658-Quarantine/tools/bootImageRunner/ia32/bootThread.S Modified: rvmroot/branches/RVM-658-Quarantine/LICENSE.txt =================================================================== --- rvmroot/branches/RVM-658-Quarantine/LICENSE.txt 2008-11-13 12:57:27 UTC (rev 15170) +++ rvmroot/branches/RVM-658-Quarantine/LICENSE.txt 2008-11-13 13:11:51 UTC (rev 15171) @@ -7,6 +7,10 @@ other open source licenses. See the various LICENSE files in that tree for details. +Note: some code in the external tree is distributed under +other open source licenses. See the various LICENSE files in that +tree for details. + Note: rvm/src-generated/opt-burs/jburg contains a tool, jburg, which was derived from iburg and is not distributed under the CPL. See rvm/src-generated/opt-burs/jburg/LICENSE for details. Modified: rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/harness/org/mmtk/harness/vm/ActivePlan.java =================================================================== --- rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/harness/org/mmtk/harness/vm/ActivePlan.java 2008-11-13 12:57:27 UTC (rev 15170) +++ rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/harness/org/mmtk/harness/vm/ActivePlan.java 2008-11-13 13:11:51 UTC (rev 15171) @@ -27,7 +27,7 @@ * Stub to give access to plan local, constraint and global instances */ @Uninterruptible -public class ActivePlan extends org.mmtk.vm.ActivePlan { +public final class ActivePlan extends org.mmtk.vm.ActivePlan { /** Initialise static state */ public static void init(String prefix) { @@ -53,18 +53,23 @@ private static int mutatorIndex; /** @return The active Plan instance. */ + @Override public Plan global() { return plan; }; /** @return The active PlanConstraints instance. */ + @Override public PlanConstraints constraints() { return constraints; }; /** @return The active <code>CollectorContext</code> instance. */ + @Override public CollectorContext collector() { return Collector.current().getContext(); }; /** @return The active <code>MutatorContext</code> instance. */ + @Override public MutatorContext mutator() { return Mutator.current().getContext(); } /** @return The active <code>MutatorContext</code> instance. */ + @Override public Log log() { return Scheduler.currentLog(); } /** @@ -73,6 +78,7 @@ * @param id The identifier of the <code>CollectorContext</code> to return * @return The specified <code>CollectorContext</code> */ + @Override public CollectorContext collector(int id) { return Collector.get(id).getContext(); } /** @@ -81,15 +87,19 @@ * @param id The identifier of the <code>MutatorContext</code> to return * @return The specified <code>MutatorContext</code> */ + @Override public MutatorContext mutator(int id) { return Mutator.get(id).getContext(); } /** @return The number of registered <code>CollectorContext</code> instances. */ + @Override public int collectorCount() { return Collector.count(); } /** @return The number of registered <code>MutatorContext</code> instances. */ + @Override public int mutatorCount() { return Mutator.count(); } /** Reset the mutator iterator */ + @Override public void resetMutatorIterator() { mutatorIndex = 0; } /** @@ -100,6 +110,7 @@ * synchronized iteration of all mutators, or * <code>null</code> when all mutators have been done. */ + @Override public MutatorContext getNextMutator() { synchronized(ActivePlan.class) { if (mutatorIndex >= Mutator.count()) return null; @@ -114,6 +125,7 @@ * @return The <code>CollectorContext</code>'s unique identifier */ @Interruptible + @Override public int registerCollector(CollectorContext collector) { return Collector.register(collector); } @@ -125,6 +137,7 @@ * @return The <code>MutatorContext</code>'s unique identifier */ @Interruptible + @Override public int registerMutator(MutatorContext mutator) { return Mutator.register(mutator); } Modified: rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/harness/org/mmtk/harness/vm/Collection.java =================================================================== --- rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/harness/org/mmtk/harness/vm/Collection.java 2008-11-13 12:57:27 UTC (rev 15170) +++ rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/harness/org/mmtk/harness/vm/Collection.java 2008-11-13 13:11:51 UTC (rev 15171) @@ -111,7 +111,7 @@ int current = mutator.getCollectionAttempts(); if (current > max) max = current; } - return max + Collector.collectionAttemptBase; + return max + Collector.getCollectionAttemptBase(); } /** Modified: rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/harness/org/mmtk/harness/vm/Factory.java =================================================================== --- rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/harness/org/mmtk/harness/vm/Factory.java 2008-11-13 12:57:27 UTC (rev 15170) +++ rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/harness/org/mmtk/harness/vm/Factory.java 2008-11-13 13:11:51 UTC (rev 15171) @@ -388,4 +388,12 @@ Assert.notImplemented(); return null; } + + /** + * TuningFork support + */ + @Override + public org.mmtk.vm.MMTk_Events newEvents() { + return new MMTkEvents(); + } } Copied: rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/harness/org/mmtk/harness/vm/MMTkEvents.java (from rev 15169, rvmroot/trunk/MMTk/ext/vm/harness/org/mmtk/harness/vm/MMTkEvents.java) =================================================================== --- rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/harness/org/mmtk/harness/vm/MMTkEvents.java (rev 0) +++ rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/harness/org/mmtk/harness/vm/MMTkEvents.java 2008-11-13 13:11:51 UTC (rev 15171) @@ -0,0 +1,34 @@ +/* + * This file is part of the Jikes RVM project (http://jikesrvm.org). + * + * This file is licensed to You under the Common Public License (CPL); + * You may not use this file except in compliance with the License. You + * may obtain a copy of the License at + * + * http://www.opensource.org/licenses/cpl1.0.php + * + * See the COPYRIGHT.txt file distributed with this work for information + * regarding copyright ownership. + */ +package org.mmtk.harness.vm; + +import org.mmtk.policy.Space; +import org.mmtk.vm.MMTk_Events; +import org.vmmagic.unboxed.Address; +import org.vmmagic.unboxed.Extent; + +public final class MMTkEvents extends MMTk_Events { + + @Override + public void heapSizeChanged(Extent heapSize) { + } + + @Override + public void tracePageAcquired(Space space, Address startAddress, int numPages) { + } + + @Override + public void tracePageReleased(Space space, Address startAddress, int numPages) { + } + +} Modified: rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/harness/org/mmtk/harness/vm/Memory.java =================================================================== --- rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/harness/org/mmtk/harness/vm/Memory.java 2008-11-13 12:57:27 UTC (rev 15170) +++ rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/harness/org/mmtk/harness/vm/Memory.java 2008-11-13 13:11:51 UTC (rev 15171) @@ -12,6 +12,7 @@ */ package org.mmtk.harness.vm; +import org.mmtk.harness.scheduler.Scheduler; import org.mmtk.policy.ImmortalSpace; import org.mmtk.utility.heap.VMRequest; @@ -165,6 +166,7 @@ */ @Inline public void sync() { + Scheduler.yield(); // Nothing required } @@ -175,6 +177,7 @@ */ @Inline public void isync() { + Scheduler.yield(); // Nothing required } Modified: rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/harness/org/mmtk/harness/vm/ObjectModel.java =================================================================== --- rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/harness/org/mmtk/harness/vm/ObjectModel.java 2008-11-13 12:57:27 UTC (rev 15170) +++ rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/harness/org/mmtk/harness/vm/ObjectModel.java 2008-11-13 13:11:51 UTC (rev 15171) @@ -167,7 +167,7 @@ * Set the number of data words in the object. */ private static void setDataCount(ObjectReference object, int count) { - assert count < Short.MAX_VALUE && count > 0 : "Too many data fields, "+count; + assert count < Short.MAX_VALUE && count >= 0 : "Too many data fields, "+count; object.toAddress().store((short)count, DATACOUNT_OFFSET); } @@ -176,7 +176,7 @@ * Set the number of references in the object. */ private static void setRefCount(ObjectReference object, int count) { - assert count < Short.MAX_VALUE && count > 0 : "Too many reference fields, "+count; + assert count < Short.MAX_VALUE && count >= 0 : "Too many reference fields, "+count; object.toAddress().store((short)count, REFCOUNT_OFFSET); } Modified: rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/harness/org/mmtk/harness/vm/Scanning.java =================================================================== --- rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/harness/org/mmtk/harness/vm/Scanning.java 2008-11-13 12:57:27 UTC (rev 15170) +++ rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/harness/org/mmtk/harness/vm/Scanning.java 2008-11-13 13:11:51 UTC (rev 15171) @@ -70,7 +70,7 @@ * parallel GC threads were not important, the thread counter could * simply be replaced by a for loop). */ - public void resetThreadCounter() { + public synchronized void resetThreadCounter() { threadCounter = 0; } Modified: rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/harness/org/mmtk/harness/vm/Statistics.java =================================================================== --- rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/harness/org/mmtk/harness/vm/Statistics.java 2008-11-13 12:57:27 UTC (rev 15170) +++ rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/harness/org/mmtk/harness/vm/Statistics.java 2008-11-13 13:11:51 UTC (rev 15171) @@ -24,7 +24,7 @@ * @return The number of collections that have occurred. */ public int getCollectionCount() { - return Collector.collectionCount; + return Collector.getCollectionCount(); } /** Modified: rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/jikesrvm/org/jikesrvm/mm/mmtk/Assert.java =================================================================== --- rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/jikesrvm/org/jikesrvm/mm/mmtk/Assert.java 2008-11-13 12:57:27 UTC (rev 15170) +++ rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/jikesrvm/org/jikesrvm/mm/mmtk/Assert.java 2008-11-13 13:11:51 UTC (rev 15171) @@ -57,7 +57,7 @@ * * @param cond the condition to be checked */ - @Inline + @Inline(value=Inline.When.AllArgumentsAreConstant) public final void _assert(boolean cond) { if (!org.mmtk.vm.VM.VERIFY_ASSERTIONS) VM.sysFail("All assertions must be guarded by VM.VERIFY_ASSERTIONS: please check the failing assertion"); @@ -72,7 +72,7 @@ * @param cond the condition to be checked * @param message the message to print */ - @Inline + @Inline(value=Inline.When.ArgumentsAreConstant, arguments={1}) public final void _assert(boolean cond, String message) { if (!org.mmtk.vm.VM.VERIFY_ASSERTIONS) VM.sysFail("All assertions must be guarded by VM.VERIFY_ASSERTIONS: please check the failing assertion"); Modified: rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/jikesrvm/org/jikesrvm/mm/mmtk/Factory.java =================================================================== --- rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/jikesrvm/org/jikesrvm/mm/mmtk/Factory.java 2008-11-13 12:57:27 UTC (rev 15170) +++ rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/jikesrvm/org/jikesrvm/mm/mmtk/Factory.java 2008-11-13 13:11:51 UTC (rev 15171) @@ -282,6 +282,22 @@ } } + /** + * Create a new MMTk_Events instance using the appropriate VM-specific + * concrete MMTk_Events sub-class. + * + * @see MMTk_Events + * @return A concrete VM-specific MMTk_Events instance. + */ + public org.mmtk.vm.MMTk_Events newEvents() { + try { + return new MMTk_Events(org.jikesrvm.tuningfork.TraceEngine.engine); + } catch (Exception e) { + VM.sysFail("Failed to allocate new MMTk_Events!"); + return null; // never get here + } + } + /********************************************************************** * GCspy methods */ Modified: rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/jikesrvm/org/jikesrvm/mm/mmtk/FinalizableProcessor.java =================================================================== --- rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/jikesrvm/org/jikesrvm/mm/mmtk/FinalizableProcessor.java 2008-11-13 12:57:27 UTC (rev 15170) +++ rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/jikesrvm/org/jikesrvm/mm/mmtk/FinalizableProcessor.java 2008-11-13 13:11:51 UTC (rev 15171) @@ -123,8 +123,6 @@ * Allocate an entry in the table. This should be called from an unpreemptible * context so that the entry can be filled. This method is responsible for growing * the table if necessary. - * - * @return The allocated index. */ @NoInline @Unpreemptible("Non-preemptible but yield when table needs to be grown") Copied: rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/jikesrvm/org/jikesrvm/mm/mmtk/MMTk_Events.java (from rev 15169, rvmroot/trunk/MMTk/ext/vm/jikesrvm/org/jikesrvm/mm/mmtk/MMTk_Events.java) =================================================================== --- rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/jikesrvm/org/jikesrvm/mm/mmtk/MMTk_Events.java (rev 0) +++ rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/jikesrvm/org/jikesrvm/mm/mmtk/MMTk_Events.java 2008-11-13 13:11:51 UTC (rev 15171) @@ -0,0 +1,69 @@ +/* + * This file is part of the Jikes RVM project (http://jikesrvm.org). + * + * This file is licensed to You under the Common Public License (CPL); + * You may not use this file except in compliance with the License. You + * may obtain a copy of the License at + * + * http://www.opensource.org/licenses/cpl1.0.php + * + * See the COPYRIGHT.txt file distributed with this work for information + * regarding copyright ownership. + */ + +package org.jikesrvm.mm.mmtk; + +import org.jikesrvm.scheduler.Processor; +import org.jikesrvm.tuningfork.TraceEngine; +import org.mmtk.policy.Space; +import org.vmmagic.pragma.Uninterruptible; +import org.vmmagic.unboxed.Address; +import org.vmmagic.unboxed.Extent; + +import com.ibm.tuningfork.tracegen.types.EventAttribute; +import com.ibm.tuningfork.tracegen.types.EventType; +import com.ibm.tuningfork.tracegen.types.ScalarType; + +/** + * Implementation of simple MMTK event generation hooks + * to allow MMTk to generate TuningFork events. + */ +@Uninterruptible +public class MMTk_Events extends org.mmtk.vm.MMTk_Events { + public static MMTk_Events events; + + public final EventType gcStart; + public final EventType gcStop; + public final EventType pageAction; + public final EventType heapSizeChanged; + + private final TraceEngine engine; + + public MMTk_Events(TraceEngine engine) { + this.engine = engine; + + /* Define events used by the MMTk subsystem */ + gcStart = engine.defineEvent("GC Start", "Start of a GC cycle", new EventAttribute("Reason","Encoded reason for GC",ScalarType.INT)); + gcStop = engine.defineEvent("GC Stop", "End of a GC Cycle"); + pageAction = engine.defineEvent("Page Action", "A space has acquired or released one or more pages", + new EventAttribute[] { + new EventAttribute("Space", "Space ID", ScalarType.INT), + new EventAttribute("Start Address", "Start address of range of released pages", ScalarType.INT), + new EventAttribute("Num Pages", "Number of pages released", ScalarType.INT), + new EventAttribute("Acquire/Release", "0 for acquire, 1 for release", ScalarType.INT)}); + heapSizeChanged = engine.defineEvent("Heapsize", "Current heapsize ceiling", new EventAttribute("Heapsize", "Heapsize in bytes", ScalarType.INT)); + events = this; + } + + public void tracePageAcquired(Space space, Address startAddress, int numPages) { + Processor.getCurrentFeedlet().addEvent(pageAction, space.getIndex(), startAddress.toInt(), numPages, 0); + } + + public void tracePageReleased(Space space, Address startAddress, int numPages) { + Processor.getCurrentFeedlet().addEvent(pageAction, space.getIndex(), startAddress.toInt(), numPages, 1); + } + + public void heapSizeChanged(Extent heapSize) { + Processor.getCurrentFeedlet().addEvent(heapSizeChanged, heapSize.toInt()); + } +} Modified: rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/jikesrvm/org/jikesrvm/mm/mmtk/Strings.java =================================================================== --- rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/jikesrvm/org/jikesrvm/mm/mmtk/Strings.java 2008-11-13 12:57:27 UTC (rev 15170) +++ rvmroot/branches/RVM-658-Quarantine/MMTk/ext/vm/jikesrvm/org/jikesrvm/mm/mmtk/Strings.java 2008-11-13 13:11:51 UTC (rev 15171) @@ -93,7 +93,7 @@ * Copies characters from the string into the character array. * Thread switching is disabled during this method's execution. * - * @param src the source string + * @param str the source string * @param dst the destination array * @param dstBegin the start offset in the destination array * @param dstEnd the index after the last character in the Modified: rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/Collector.java =================================================================== --- rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/Collector.java 2008-11-13 12:57:27 UTC (rev 15170) +++ rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/Collector.java 2008-11-13 13:11:51 UTC (rev 15171) @@ -97,11 +97,19 @@ } /** The number of collections that have occurred */ - public static int collectionCount; + private static int collectionCount; + public static int getCollectionCount() { + return collectionCount; + } + /** The current base count of collection attempts */ - public static int collectionAttemptBase; + private static int collectionAttemptBase; + public static int getCollectionAttemptBase() { + return collectionAttemptBase; + } + /** Has a heap dump been requested? */ private static boolean heapDumpRequested; Modified: rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/Harness.java =================================================================== --- rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/Harness.java 2008-11-13 12:57:27 UTC (rev 15170) +++ rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/Harness.java 2008-11-13 13:11:51 UTC (rev 15171) @@ -28,46 +28,46 @@ public class Harness { /** Used for processing harness and MMTk options */ - public static HarnessOptionSet options = new HarnessOptionSet(); + public static final HarnessOptionSet options = new HarnessOptionSet(); /** Option for the number of collector threads */ - public static Collectors collectors = new Collectors(); + public static final Collectors collectors = new Collectors(); /** Option for the MMTk plan (prefix) to use */ - public static Plan plan = new Plan(); + public static final Plan plan = new Plan(); /** Option for the initial heap size */ - public static InitHeap initHeap = new InitHeap(); + public static final InitHeap initHeap = new InitHeap(); /** Option for the maximum heap size */ - public static MaxHeap maxHeap = new MaxHeap(); + public static final MaxHeap maxHeap = new MaxHeap(); /** Option for the maximum heap size */ - public static DumpPcode dumpPcode = new DumpPcode(); + public static final DumpPcode dumpPcode = new DumpPcode(); /** Trace options */ - public static Trace trace = new Trace(); + public static final Trace trace = new Trace(); /** GC stress options */ - public static GcEvery gcEvery = new GcEvery(); + public static final GcEvery gcEvery = new GcEvery(); /** Scheduler */ - public static Scheduler scheduler = new Scheduler(); + public static final Scheduler scheduler = new Scheduler(); /** Scheduler policy */ - public static SchedulerPolicy policy = new SchedulerPolicy(); + public static final SchedulerPolicy policy = new SchedulerPolicy(); /** Interval for the fixed scheduler policies */ - public static YieldInterval yieldInterval = new YieldInterval(); + public static final YieldInterval yieldInterval = new YieldInterval(); /** Parameters for the random scheduler policy */ - public static RandomPolicyLength randomPolicyLength = new RandomPolicyLength(); - public static RandomPolicySeed randomPolicySeed = new RandomPolicySeed(); - public static RandomPolicyMin randomPolicyMin = new RandomPolicyMin(); - public static RandomPolicyMax randomPolicyMax = new RandomPolicyMax(); + public static final RandomPolicyLength randomPolicyLength = new RandomPolicyLength(); + public static final RandomPolicySeed randomPolicySeed = new RandomPolicySeed(); + public static final RandomPolicyMin randomPolicyMin = new RandomPolicyMin(); + public static final RandomPolicyMax randomPolicyMax = new RandomPolicyMax(); - /** Scheduler policy */ - public static PolicyStats policyStats = new PolicyStats(); + /** Print yield policy statistics on exit */ + public static final PolicyStats policyStats = new PolicyStats(); private static boolean isInitialized = false; Modified: rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/Mutator.java =================================================================== --- rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/Mutator.java 2008-11-13 12:57:27 UTC (rev 15170) +++ rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/Mutator.java 2008-11-13 13:11:51 UTC (rev 15171) @@ -51,7 +51,7 @@ } /** Registered mutators */ - protected static ArrayList<Mutator> mutators = new ArrayList<Mutator>(); + protected static final ArrayList<Mutator> mutators = new ArrayList<Mutator>(); /** * Get a mutator by id. Modified: rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/Compiler.java =================================================================== --- rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/Compiler.java 2008-11-13 12:57:27 UTC (rev 15170) +++ rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/Compiler.java 2008-11-13 13:11:51 UTC (rev 15171) @@ -55,6 +55,7 @@ import org.mmtk.harness.lang.pcode.ExitOp; import org.mmtk.harness.lang.pcode.ExpectOp; import org.mmtk.harness.lang.pcode.Goto; +import org.mmtk.harness.lang.pcode.LoadFieldOp; import org.mmtk.harness.lang.pcode.PrintOp; import org.mmtk.harness.lang.pcode.PseudoOp; import org.mmtk.harness.lang.pcode.ReturnOp; @@ -148,7 +149,7 @@ alloc.getDoubleAlign().accept(this); Register doubleAlign = operands.pop(); Register result = temps.acquire(); - emit(new AllocOp(result,dataCount,refCount,doubleAlign,alloc.getSite())); + emit(new AllocOp(alloc,result,dataCount,refCount,doubleAlign,alloc.getSite())); operands.push(result); temps.release(dataCount,refCount,doubleAlign); } @@ -157,7 +158,7 @@ public void visit(Assert ass) { ass.getPredicate().accept(this); // Compile the predicate Register predicate = operands.pop(); - Branch branch = new Branch(predicate,true); + Branch branch = new Branch(ass,predicate,true); emit(branch); temps.release(predicate); ArrayList<Register> actuals = new ArrayList<Register>(ass.getOutputs().size()); @@ -165,9 +166,9 @@ expr.accept(this); actuals.add(operands.pop()); } - emit(new PrintOp(actuals.toArray(new Register[0]))); + emit(new PrintOp(ass,actuals.toArray(new Register[0]))); freeTemps(actuals); - emit(new ExitOp(ConstantPool.ONE)); + emit(new ExitOp(ass,ConstantPool.ONE)); branch.setBranchTarget(currentPc()); } @@ -175,7 +176,7 @@ public void visit(Assignment a) { a.getRhs().accept(this); Register rhs = operands.pop(); - emit(new StoreLocal(Register.createLocal(a.getSlot()),rhs)); + emit(new StoreLocal(a,Register.createLocal(a.getSlot()),rhs)); temps.release(rhs); } @@ -186,7 +187,7 @@ exp.getRhs().accept(this); Register rhs = operands.pop(); Register result = temps.acquire(); - emit(new BinaryOperation(result,lhs,rhs,exp.getOperator())); + emit(new BinaryOperation(exp,result,lhs,rhs,exp.getOperator())); temps.release(rhs,lhs); operands.push(result); } @@ -201,10 +202,10 @@ Register.NULL : temps.acquire(); if (method instanceof IntrinsicMethod) { - emit(new CallIntrinsicOp(returnVal,(IntrinsicMethod)method,actuals)); + emit(new CallIntrinsicOp(call,returnVal,(IntrinsicMethod)method,actuals)); } else if (method instanceof NormalMethod) { CompiledMethod compiledMethod = compiledMethodFor(method); - emit(new CallNormalOp(returnVal,compiledMethod,actuals)); + emit(new CallNormalOp(call,returnVal,compiledMethod,actuals)); } else { throw new RuntimeException("Unknown method class "+method.getClass().getCanonicalName()); } @@ -229,19 +230,19 @@ @Override public void visit(Expect exp) { - emit(new ExpectOp(exp.getExpected())); + emit(new ExpectOp(exp,exp.getExpected())); } @Override public void visit(IfStatement conditional) { Iterator<Statement> stmtIter = conditional.getStmts().iterator(); - Branch branch = new Branch(Register.NULL,false); - Goto gotoExit = new Goto(); + Branch branch = new Branch(conditional,Register.NULL,false); + Goto gotoExit = new Goto(conditional); for (Expression cond : conditional.getConds()) { branch.setBranchTarget(currentPc()); cond.accept(this); Register conditionReg = operands.pop(); - branch = new Branch(conditionReg,false); + branch = new Branch(conditional,conditionReg,false); temps.release(conditionReg); emit(branch); stmtIter.next().accept(this); @@ -265,7 +266,7 @@ Register index = operands.pop(); Register object = Register.createLocal(load.getSlot()); Register result = temps.acquire(); - emit(new org.mmtk.harness.lang.pcode.LoadFieldOp(result,object,index,load.getFieldType())); + emit(new LoadFieldOp(load,result,object,index,load.getFieldType())); temps.release(index); operands.push(result); } @@ -273,14 +274,14 @@ @Override public void visit(NormalMethod method) { method.getBody().accept(this); - emit(new ReturnOp()); + emit(new ReturnOp(method)); } @Override public void visit(PrintStatement print) { List<Expression> args = print.getArgs(); List<Register> actuals = compileArgList(args); - emit(new PrintOp(actuals)); + emit(new PrintOp(print,actuals)); freeTemps(actuals); } @@ -288,9 +289,9 @@ public void visit(Return ret) { if (ret.hasReturnValue()) { ret.getRhs().accept(this); - emit(new ReturnOp(operands.pop())); + emit(new ReturnOp(ret,operands.pop())); } else { - emit(new ReturnOp()); + emit(new ReturnOp(ret)); } } @@ -304,7 +305,7 @@ @Override public void visit(Spawn sp) { List<Register> actuals = compileArgList(sp.getArgs()); - emit(new SpawnOp(compiledMethodFor(sp.getMethod()),actuals)); + emit(new SpawnOp(sp,compiledMethodFor(sp.getMethod()),actuals)); freeTemps(actuals); } @@ -315,7 +316,7 @@ store.getRhs().accept(this); Register value = operands.pop(); Register object = Register.createLocal(store.getSlot()); - emit(new StoreFieldOp(object,index,value,store.getFieldType())); + emit(new StoreFieldOp(store,object,index,value,store.getFieldType())); temps.release(index,value); } @@ -323,7 +324,7 @@ public void visit(UnaryExpression exp) { exp.getOperand().accept(this); Register operand = operands.peek(); - emit(new UnaryOperation(operand,operand,exp.getOperator())); + emit(new UnaryOperation(exp,operand,operand,exp.getOperator())); } /** @@ -348,11 +349,11 @@ int top = currentPc(); w.getCond().accept(this); // Compile the loop condition Register cond = operands.pop(); - Branch branchToExit = new Branch(cond,false); + Branch branchToExit = new Branch(w,cond,false); temps.release(cond); emit(branchToExit); w.getBody().accept(this); - emit(new Goto(top)); + emit(new Goto(w,top)); branchToExit.setBranchTarget(currentPc()); } Modified: rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/Env.java =================================================================== --- rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/Env.java 2008-11-13 12:57:27 UTC (rev 15170) +++ rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/Env.java 2008-11-13 13:11:51 UTC (rev 15171) @@ -68,6 +68,13 @@ } /** + * + */ + public Iterable<StackFrame> stack() { + return stack; + } + + /** * Compute the thread roots for this mutator. */ @Override Modified: rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/UnsyncStack.java =================================================================== --- rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/UnsyncStack.java 2008-11-13 12:57:27 UTC (rev 15170) +++ rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/UnsyncStack.java 2008-11-13 13:11:51 UTC (rev 15171) @@ -13,6 +13,7 @@ package org.mmtk.harness.lang; import java.util.ArrayList; +import java.util.Collections; import java.util.Iterator; /** @@ -68,10 +69,12 @@ } /** - * Iterate over the stack contents + * Iterate over the stack contents - top of stack to bottom. */ @Override public Iterator<E> iterator() { - return elements.iterator(); + ArrayList<E> tmp = new ArrayList<E>(elements); + Collections.reverse(tmp); + return tmp.iterator(); } } Modified: rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/ast/AST.java =================================================================== --- rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/ast/AST.java 2008-11-13 12:57:27 UTC (rev 15170) +++ rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/ast/AST.java 2008-11-13 13:11:51 UTC (rev 15171) @@ -25,4 +25,6 @@ int getLine(); int getColumn(); + + String sourceLocation(String prefix); } Modified: rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/ast/AbstractAST.java =================================================================== --- rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/ast/AbstractAST.java 2008-11-13 12:57:27 UTC (rev 15170) +++ rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/ast/AbstractAST.java 2008-11-13 13:11:51 UTC (rev 15171) @@ -12,13 +12,37 @@ */ package org.mmtk.harness.lang.ast; +import org.mmtk.harness.lang.parser.Source; import org.mmtk.harness.lang.parser.Token; /** * Abstract parent of all the components of an AST */ -public abstract class AbstractAST implements AST { +public abstract class AbstractAST implements AST { + /* + * Track the current source file - assumes only one source file + * is being parsed at a time. If this stops being true, we'll need + * to introduce an AST factory, or add the Source to each + * AST constructor. + */ + + /* The source file currently being parsed */ + private static Source currentSource = null; + + /* Set the current source file */ + public static void setCurrentSource(Source source) { + currentSource = source; + } + + /* Clear the current source file */ + public static void clearCurrentSource() { + currentSource = null; + } + + /* The source file */ + private Source source = currentSource; + /** Source code line corresponding to this syntax element */ private final int line; /** Source code column corresponding to this syntax element */ @@ -42,4 +66,22 @@ public int getColumn() { return column; } + + @Override + public String sourceLocation(String prefix) { + if (source == null) { + return prefix+"<no source available>"; + } else { + return prefix+source.getLine(line)+"\n"+ + spaces(prefix.length())+spaces(column-1)+"^"; + } + } + + private String spaces(int n) { + StringBuilder str = new StringBuilder(n); + for (int i=0; i < n; i++) { + str.append(' '); + } + return str.toString(); + } } Modified: rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/ast/IntrinsicMethod.java =================================================================== --- rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/ast/IntrinsicMethod.java 2008-11-13 12:57:27 UTC (rev 15170) +++ rvmroot/branches/RVM-658-Quarantine/MMTk/harness/src/org/mmtk/harness/lang/ast/IntrinsicMethod.java 2008-11-13 13:11:51 UTC (rev 15171) @@ -211,13 +211,13 @@ if (klass.isAssignableFrom(IntValue.class)) { return v; } else { - return new Integer(v.getIntValue()); + return Integer.valueOf(v.getInt... [truncated message content] |