From doug.simon at oracle.com Sun Mar 1 02:00:14 2015 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Sun, 01 Mar 2015 02:00:14 +0000 Subject: hg: graal/graal: 16 new changesets Message-ID: <201503010200.t2120EkM004704@aojmv0008> Changeset: 5e31fe50d330 Author: Tom Rodriguez Date: 2015-02-27 15:34 -0800 URL: http://hg.openjdk.java.net/graal/graal/rev/5e31fe50d330 Make isDominatedBy faster ! graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/cfg/AbstractControlFlowGraph.java Changeset: 312bf1b3f410 Author: Thomas Wuerthinger Date: 2015-02-27 22:49 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/312bf1b3f410 Support == as a loop exit condition of counted loops. ! graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopEx.java Changeset: f727ca2940ba Author: Thomas Wuerthinger Date: 2015-02-27 22:49 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/f727ca2940ba Support for loops for Truffle bytecode interpreters. ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java ! graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/BytecodeInterpreterPartialEvaluationTest.java Changeset: c96ebc780911 Author: Thomas Wuerthinger Date: 2015-02-28 01:01 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/c96ebc780911 Fix for counted loop changes. ! graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopEx.java Changeset: cd097635c865 Author: Thomas Wuerthinger Date: 2015-02-28 12:44 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/cd097635c865 Add Truffle bytecode interpreter test with nested loops. ! graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/BytecodeInterpreterPartialEvaluationTest.java Changeset: 71a9b760d3bb Author: Thomas Wuerthinger Date: 2015-02-28 13:15 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/71a9b760d3bb Another fix after counted loop recognition changes. ! graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopEx.java Changeset: d2e3d8202ed3 Author: Thomas Wuerthinger Date: 2015-02-28 14:50 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/d2e3d8202ed3 Improve error message for partialEvaluationConstant assert to include the values of phis. ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/TruffleGraphBuilderPlugins.java Changeset: 86909168a529 Author: Thomas Wuerthinger Date: 2015-02-28 14:54 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/86909168a529 Verify that merge nodes have more than one merged forward end. Add utility for cleaning up merge nodes that do not. ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MergeNode.java Changeset: 96cf6f7678d2 Author: Thomas Wuerthinger Date: 2015-02-28 14:54 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/96cf6f7678d2 Add test case and support for nested loops for Truffle bytecode interpreters. ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java ! graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/BytecodeInterpreterPartialEvaluationTest.java Changeset: 78f7c16c9bee Author: Thomas Wuerthinger Date: 2015-02-28 15:09 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/78f7c16c9bee Add assertion in ControlFlowGraph. ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/ControlFlowGraph.java Changeset: 393da6e56fd9 Author: Thomas Wuerthinger Date: 2015-02-28 15:16 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/393da6e56fd9 Do not need to compute post dominators for schedule. ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java Changeset: e7a5a7cf4730 Author: Thomas Wuerthinger Date: 2015-02-28 15:20 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/e7a5a7cf4730 Block to kill set is only necessary for floating reads. ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java Changeset: 68dd6598be5f Author: Thomas Wuerthinger Date: 2015-02-28 15:34 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/68dd6598be5f Turn SortState#containsInstruction into an assertion. ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java Changeset: ac35617db239 Author: Michael Van De Vanter Date: 2015-02-28 09:32 -0800 URL: http://hg.openjdk.java.net/graal/graal/rev/ac35617db239 Truffle/Instrumentation: Javadoc fix ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/tools/LineToProbesMap.java Changeset: 3ed1c541f420 Author: Michael Van De Vanter Date: 2015-02-28 12:50 -0800 URL: http://hg.openjdk.java.net/graal/graal/rev/3ed1c541f420 Merge with 68dd6598be5f74970e7fc1a4a2fa4ccd166dbb11 Changeset: 10a1fc5e3209 Author: Michael Van De Vanter Date: 2015-02-28 15:52 -0800 URL: http://hg.openjdk.java.net/graal/graal/rev/10a1fc5e3209 Truffle/Instrumentation: new, experimental kind of Instrument ! graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/InstrumentationPartialEvaluationTest.java ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/Instrument.java From doug.simon at oracle.com Tue Mar 3 02:00:24 2015 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Tue, 03 Mar 2015 02:00:24 +0000 Subject: hg: graal/graal: 16 new changesets Message-ID: <201503030200.t2320ONK024194@aojmv0008> Changeset: c5f6a7397eb1 Author: Gilles Duboscq Date: 2015-02-20 14:24 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/c5f6a7397eb1 SA fixes: add GraalEnv to VMTypes, remove references to value_value from agent sources ! agent/src/share/classes/sun/jvm/hotspot/compiler/OopMapSet.java ! agent/src/share/classes/sun/jvm/hotspot/compiler/OopMapValue.java ! agent/src/share/classes/sun/jvm/hotspot/compiler/OopMapVisitor.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/Frame.java ! agent/src/share/classes/sun/jvm/hotspot/ui/classbrowser/HTMLGenerator.java ! src/share/vm/graal/vmStructs_graal.hpp Changeset: 3e41eb69def4 Author: Gilles Duboscq Date: 2015-03-02 14:00 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/3e41eb69def4 Give a debugId to DeoptimizeNodes that do not come from Guard lowering ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/DeoptimizeNode.java ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/GuardLoweringPhase.java Changeset: 5b35e0c85d1b Author: Roland Schatz Date: 2015-03-02 14:43 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/5b35e0c85d1b Temporarily back out changeset 68dd6598be5f (Turn SortState#containsInstruction into an assertion.) ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java Changeset: 4726801eedfc Author: Josef Eisl Date: 2015-02-26 18:04 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/4726801eedfc Introduce NestedBooleanOptionValue. + graal/com.oracle.graal.options/src/com/oracle/graal/options/NestedBooleanOptionValue.java Changeset: d0600f479309 Author: Josef Eisl Date: 2015-03-02 14:03 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/d0600f479309 Add NestedBooleanOptionValueTest. + graal/com.oracle.graal.options.test/src/com/oracle/graal/options/test/NestedBooleanOptionValueTest.java Changeset: a0284c1724e6 Author: Josef Eisl Date: 2015-02-26 17:39 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/a0284c1724e6 Introduce LIROptimization option to disable all LIR optimization. ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/constopt/ConstantLoadOptimization.java ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LIRPhase.java ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/PostAllocationOptimizationStage.java ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/stackslotalloc/LSStackSlotAllocator.java Changeset: 0a6b0e662e0a Author: Tom Rodriguez Date: 2015-03-02 14:15 -0800 URL: http://hg.openjdk.java.net/graal/graal/rev/0a6b0e662e0a Remove dead markLocation routine ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/LIRFrameState.java Changeset: aed19d655de9 Author: Thomas Wuerthinger Date: 2015-03-01 13:36 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/aed19d655de9 Remove dead code in schedule phase. ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java Changeset: f25111ca1225 Author: Thomas Wuerthinger Date: 2015-03-02 12:26 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/f25111ca1225 Make earliest possible schedule iterative. ! graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeBitMap.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ControlSplitNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeWithExceptionNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/ControlFlowGraph.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/SwitchNode.java ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/arithmetic/IntegerExactArithmeticSplitNode.java Changeset: 9049f9e6c15a Author: Thomas Wuerthinger Date: 2015-03-02 15:42 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/9049f9e6c15a Enable LongNodeChainTest for earliest possible schedule strategy. ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/LongNodeChainTest.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/debug/OpaqueNode.java ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java Changeset: 9c0c84dc8a7f Author: Thomas Wuerthinger Date: 2015-03-02 15:59 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/9c0c84dc8a7f Enable adding constant nodes to the comparison for GraalCompilerTest. ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/GraalCompilerTest.java Changeset: dcfdf9eb8570 Author: Thomas Wuerthinger Date: 2015-03-02 16:31 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/dcfdf9eb8570 Fix cycle in lowered graph for atomic read write. ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultJavaLoweringProvider.java Changeset: 165244576c9e Author: Thomas Wuerthinger Date: 2015-03-02 16:31 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/165244576c9e Merge. ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java Changeset: 84776a6314d7 Author: Thomas Wuerthinger Date: 2015-03-02 17:07 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/84776a6314d7 Merge. Changeset: e17923568367 Author: Thomas Wuerthinger Date: 2015-03-02 19:09 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/e17923568367 Handle case in new earliest schedule when end node and begin node are identical. ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java Changeset: c96f8337292e Author: Thomas Wuerthinger Date: 2015-03-03 00:01 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/c96f8337292e Merge. From christian.thalinger at oracle.com Wed Mar 4 23:53:33 2015 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Wed, 4 Mar 2015 15:53:33 -0800 Subject: RFR: bootstrap might exit early in debug JVM Message-ID: <5E2D8FE5-4D28-4205-BE5C-CEC1270F53B4@oracle.com> Sometimes a debug JVM is too slow to schedule compilations in time during a bootstrap and the result is an early exit: Bootstrapping Graal in 1000 ms (compiled 0 methods) Here is a fix that waits until there are some methods in the queue the first time: diff --git a/src/share/vm/graal/graalCompiler.cpp b/src/share/vm/graal/graalCompiler.cpp --- a/src/share/vm/graal/graalCompiler.cpp +++ b/src/share/vm/graal/graalCompiler.cpp @@ -85,12 +85,15 @@ } int qsize; - jlong sleep_time = 1000; + bool first_round = true; int z = 0; do { - os::sleep(THREAD, sleep_time, true); - sleep_time = 100; - qsize = CompileBroker::queue_size(CompLevel_full_optimization); + // Loop until there is something in the queue. + do { + os::sleep(THREAD, 100, true); + qsize = CompileBroker::queue_size(CompLevel_full_optimization); + } while (first_round && qsize == 0); + first_round = false; if (PrintBootstrap) { while (z < (_methodsCompiled / 100)) { ++z; From doug.simon at oracle.com Thu Mar 5 02:00:12 2015 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Thu, 05 Mar 2015 02:00:12 +0000 Subject: hg: graal/graal: 37 new changesets Message-ID: <201503050200.t2520D49014847@aojmv0008> Changeset: f595e97626fd Author: Tom Rodriguez Date: 2015-03-02 18:40 -0800 URL: http://hg.openjdk.java.net/graal/graal/rev/f595e97626fd Use Value instead of JavaValue in BytecodeFrame and VirtualObject ! graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/BytecodeFrame.java ! graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/StackLockValue.java ! graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/VirtualObject.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/DebugInfoBuilder.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotDebugInfoBuilder.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotLIRFrameState.java ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/LIRFrameState.java ! graal/com.oracle.graal.printer/src/com/oracle/graal/printer/CompilationPrinter.java ! src/share/vm/graal/graalJavaAccess.hpp Changeset: 1f95f91dd1d6 Author: Tom Rodriguez Date: 2015-03-02 19:06 -0800 URL: http://hg.openjdk.java.net/graal/graal/rev/1f95f91dd1d6 Add ttyLocker to TraceDeoptimization output ! src/share/vm/runtime/deoptimization.cpp Changeset: 16b239e422d2 Author: Tom Rodriguez Date: 2015-03-02 19:18 -0800 URL: http://hg.openjdk.java.net/graal/graal/rev/16b239e422d2 Rearrange scopes and timers in emitBackend to match up better ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java Changeset: 6bc0c7c6f690 Author: Tom Rodriguez Date: 2015-03-02 19:21 -0800 URL: http://hg.openjdk.java.net/graal/graal/rev/6bc0c7c6f690 Add EmitLIRRepeatCount to repeat emitLIR for profiling ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java Changeset: d9e44edfca9b Author: Thomas Wuerthinger Date: 2015-03-03 11:50 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/d9e44edfca9b Improve common dominator calculations. ! graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/cfg/AbstractBlockBase.java ! graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/cfg/AbstractControlFlowGraph.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/Block.java Changeset: 9669f6a5624b Author: Thomas Wuerthinger Date: 2015-03-03 11:51 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/9669f6a5624b Merge. - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotLIRFrameState.java Changeset: 413ac504d74e Author: Stefan Anzinger Date: 2015-02-27 09:18 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/413ac504d74e [SPARC] Simplify branch instructions (No more object allocations), Tidy up SPARCControlFlow and SPARCAssembler ! graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCAssembler.java ! graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCMacroAssembler.java ! graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCLIRGenerator.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackend.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCArithmetic.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCArrayEqualsOp.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCControlFlow.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCJumpOp.java ! graal/com.oracle.graal.truffle.hotspot.sparc/src/com/oracle/graal/truffle/hotspot/sparc/SPARCOptimizedCallTargetInstumentationFactory.java Changeset: f6a01e64a87a Author: Stefan Anzinger Date: 2015-02-27 11:40 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/f6a01e64a87a Compile the testmethod for jsr in DeoptimizeOnExceptionTest explicitely instead of making it hot in a loop (Saves a lot of time) ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/DeoptimizeOnExceptionTest.java Changeset: 7d3afd4356a2 Author: Stefan Anzinger Date: 2015-02-27 11:42 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/7d3afd4356a2 [SPARC] Remove all object oriented fmt00 instructions (sethi, nop, cbcond) and use simple function calls ! graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCAssembler.java ! graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCMacroAssembler.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackend.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotJumpToExceptionHandlerInCallerOp.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCArithmetic.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCArrayEqualsOp.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCCall.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCControlFlow.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCJumpOp.java ! graal/com.oracle.graal.truffle.hotspot.sparc/src/com/oracle/graal/truffle/hotspot/sparc/SPARCOptimizedCallTargetInstumentationFactory.java Changeset: 2819dcd694b9 Author: Stefan Anzinger Date: 2015-02-27 11:52 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/2819dcd694b9 [SPARC] Replace call ! graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCAssembler.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCCall.java Changeset: b1b887938753 Author: Stefan Anzinger Date: 2015-02-27 13:23 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/b1b887938753 [SPARC] Change fcmp ! graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCAssembler.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCArithmetic.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCCompare.java Changeset: 4be296f6eeac Author: Stefan Anzinger Date: 2015-02-27 13:55 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/4be296f6eeac [SPARC] Change part of the fpop assembler ! graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCAssembler.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCArithmetic.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCMove.java Changeset: 32a5dd091f5f Author: Stefan Anzinger Date: 2015-02-27 14:43 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/32a5dd091f5f [SPARC] Replace fpop instructions ! graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCAssembler.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCArithmetic.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCMathIntrinsicOp.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCMove.java Changeset: f1b4f2613702 Author: Stefan Anzinger Date: 2015-03-02 11:22 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/f1b4f2613702 [SPARC] Change arithmetic ops of SPARC to functions in assembler ! graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCAssembler.java ! graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCMacroAssembler.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackend.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotCRuntimeCallPrologueOp.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotEnterUnpackFramesStackFrameOp.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotJumpToExceptionHandlerInCallerOp.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotLeaveCurrentStackFrameOp.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotLeaveDeoptimizedStackFrameOp.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotLeaveUnpackFramesStackFrameOp.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotPatchReturnAddressOp.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotPushInterpreterFrameOp.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotUnwindOp.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotCodeCacheProvider.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCArithmetic.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCArrayEqualsOp.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCBitManipulationOp.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCBreakpointOp.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCCall.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCCompare.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCControlFlow.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCMove.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCTestOp.java ! graal/com.oracle.graal.truffle.hotspot.sparc/src/com/oracle/graal/truffle/hotspot/sparc/SPARCOptimizedCallTargetInstumentationFactory.java Changeset: 9459ec57fa73 Author: Stefan Anzinger Date: 2015-03-02 12:14 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/9459ec57fa73 [SPARC] Change conditional move ops of SPARC to functions ! graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCAssembler.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotJumpToExceptionHandlerInCallerOp.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCControlFlow.java Changeset: 00d7b0adaf66 Author: Stefan Anzinger Date: 2015-03-02 18:44 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/00d7b0adaf66 [SPARC] Change ld/st ops of SPARC to functions ! graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCAssembler.java ! graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCMacroAssembler.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackend.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotCRuntimeCallEpilogueOp.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotCRuntimeCallPrologueOp.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotEnterUnpackFramesStackFrameOp.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotJumpToExceptionHandlerInCallerOp.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotLeaveUnpackFramesStackFrameOp.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotSafepointOp.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCPrefetchOp.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCArrayEqualsOp.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCByteSwapOp.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCMove.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCSaveRegistersOp.java ! graal/com.oracle.graal.truffle.hotspot.sparc/src/com/oracle/graal/truffle/hotspot/sparc/SPARCOptimizedCallTargetInstumentationFactory.java Changeset: 96ab2078eeaf Author: Stefan Anzinger Date: 2015-03-02 19:11 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/96ab2078eeaf Merge ! graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCAssembler.java - graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/cfg/AbstractBlock.java ! graal/com.oracle.graal.compiler.sparc/src/com/oracle/graal/compiler/sparc/SPARCLIRGenerator.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackend.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotCRuntimeCallEpilogueOp.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotCRuntimeCallPrologueOp.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotEnterUnpackFramesStackFrameOp.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotJumpToExceptionHandlerInCallerOp.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotLeaveCurrentStackFrameOp.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotLeaveDeoptimizedStackFrameOp.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotLeaveUnpackFramesStackFrameOp.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotPatchReturnAddressOp.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotPushInterpreterFrameOp.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotSafepointOp.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotUnwindOp.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCPrefetchOp.java - graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/HotSpotNodeClassSubstitutionsTest.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotCodeCacheProvider.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotMonitorValue.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CompositeValueClassSubstitutions.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/HotSpotNodeClassSubstitutions.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/HotSpotNodeSubstitutions.java - graal/com.oracle.graal.java/src/com/oracle/graal/java/DefaultGraphBuilderPlugins.java - graal/com.oracle.graal.java/src/com/oracle/graal/java/GraalDirectivePlugins.java - graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPlugins.java - graal/com.oracle.graal.java/src/com/oracle/graal/java/StandardGraphBuilderPlugins.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCArithmetic.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCArrayEqualsOp.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCBitManipulationOp.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCBreakpointOp.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCByteSwapOp.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCCall.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCCompare.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCControlFlow.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCJumpOp.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCMathIntrinsicOp.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCMove.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCSaveRegistersOp.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCTestOp.java - graal/com.oracle.graal.lir/src/com/oracle/graal/lir/LIRInstructionBase.java - graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LIRHighTier.java - graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LIRHighTierPhase.java - graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LIRLowTier.java - graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LIRLowTierPhase.java - graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LIRMidTier.java - graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LIRMidTierPhase.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/asserts/CompilationConstantNode.java Changeset: 87d5316e171b Author: Stefan Anzinger Date: 2015-03-03 13:19 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/87d5316e171b Merge - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotLIRFrameState.java Changeset: d01c26301c28 Author: Stefan Anzinger Date: 2015-03-03 13:24 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/d01c26301c28 Fix compiler warning ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/DeoptimizeOnExceptionTest.java Changeset: 25e5614ae73c Author: Josef Eisl Date: 2015-03-03 14:55 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/25e5614ae73c Introduce FinishFrameStatePhase (outsourced from LocationMarker). + graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/FinishFrameStatePhase.java ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/LocationMarker.java ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/AllocationStage.java Changeset: 7e429c4c3bfc Author: Josef Eisl Date: 2015-03-03 15:01 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/7e429c4c3bfc Remove LIRFrameState.finish() (and FinishFrameStatePhase). ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/LIRFrameState.java - graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/FinishFrameStatePhase.java ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/AllocationStage.java Changeset: 268f56a8ce55 Author: Stefan Anzinger Date: 2015-03-03 15:19 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/268f56a8ce55 [SPARC] Remove unused code from assembler ! graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCAssembler.java Changeset: 84b85c43633b Author: Stefan Anzinger Date: 2015-03-03 16:10 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/84b85c43633b [SPARC] Install hsdis-sparcv9.so into the jvm with mx ! mx/mx_graal.py Changeset: 787e9bd5966e Author: Stefan Anzinger Date: 2015-03-03 16:10 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/787e9bd5966e Merge Changeset: fa75218e3942 Author: Tom Rodriguez Date: 2015-03-03 10:32 -0800 URL: http://hg.openjdk.java.net/graal/graal/rev/fa75218e3942 Fix nested Timer and MemUse tracking logic ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java ! graal/com.oracle.graal.debug.test/src/com/oracle/graal/debug/test/DebugTimerTest.java ! graal/com.oracle.graal.debug/src/com/oracle/graal/debug/Debug.java + graal/com.oracle.graal.debug/src/com/oracle/graal/debug/DebugCloseable.java ! graal/com.oracle.graal.debug/src/com/oracle/graal/debug/DebugMemUseTracker.java ! graal/com.oracle.graal.debug/src/com/oracle/graal/debug/DebugTimer.java + graal/com.oracle.graal.debug/src/com/oracle/graal/debug/internal/AccumulatedDebugValue.java + graal/com.oracle.graal.debug/src/com/oracle/graal/debug/internal/CloseableCounterImpl.java ! graal/com.oracle.graal.debug/src/com/oracle/graal/debug/internal/MemUseTrackerImpl.java - graal/com.oracle.graal.debug/src/com/oracle/graal/debug/internal/TimerCloseable.java ! graal/com.oracle.graal.debug/src/com/oracle/graal/debug/internal/TimerImpl.java ! graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Graph.java ! graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeClass.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilationTask.java ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LIRPhase.java ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/stackslotalloc/LSStackSlotAllocator.java ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/BasePhase.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsImpl.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCompilerImpl.java Changeset: 787b5aa53401 Author: Michael Van De Vanter Date: 2015-03-03 16:54 -0800 URL: http://hg.openjdk.java.net/graal/graal/rev/787b5aa53401 Truffle: new factory method for files whose contents have already been read. ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/source/Source.java Changeset: 33bdafbf285d Author: Michael Van De Vanter Date: 2015-03-03 17:11 -0800 URL: http://hg.openjdk.java.net/graal/graal/rev/33bdafbf285d Truffle: SourceSection can now produce the line/column coordinates of its final character ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/source/NullSourceSection.java ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/source/Source.java ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/source/SourceSection.java Changeset: 9d2ff2e8360d Author: Michael Van De Vanter Date: 2015-03-03 17:13 -0800 URL: http://hg.openjdk.java.net/graal/graal/rev/9d2ff2e8360d Merge with fa75218e39424f24e05d31ee58dfd5c2bb4c8319 - graal/com.oracle.graal.debug/src/com/oracle/graal/debug/internal/TimerCloseable.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotLIRFrameState.java Changeset: c152a485d747 Author: Michael Van De Vanter Date: 2015-03-03 17:55 -0800 URL: http://hg.openjdk.java.net/graal/graal/rev/c152a485d747 Truffle: new method Source.getLength() and semantic adjustments to the new factory method for creating files whose contents have already been read. ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/source/Source.java Changeset: 898686c10193 Author: Tom Rodriguez Date: 2015-03-03 18:00 -0800 URL: http://hg.openjdk.java.net/graal/graal/rev/898686c10193 Fix setting of conditional in MemUseTrackerImpl ! graal/com.oracle.graal.debug/src/com/oracle/graal/debug/internal/MemUseTrackerImpl.java Changeset: 50b6f616b3c7 Author: Tom Rodriguez Date: 2015-03-03 18:02 -0800 URL: http://hg.openjdk.java.net/graal/graal/rev/50b6f616b3c7 Use ILLEGAL.equals(value) in ValueUtil.isIllegal ! graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/ValueUtil.java ! graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/Value.java Changeset: 2cca53fbf38f Author: Tom Rodriguez Date: 2015-03-03 18:04 -0800 URL: http://hg.openjdk.java.net/graal/graal/rev/2cca53fbf38f Debug.metrics should be static final ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/LinearScan.java Changeset: ab4007bfc67d Author: Josef Eisl Date: 2015-03-03 11:50 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/ab4007bfc67d GraalCompiler: Encapsulate LIR generation in an LIRPhase. ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java + graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/LIRGenerationPhase.java Changeset: 5d2309d32463 Author: Josef Eisl Date: 2015-03-04 12:17 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/5d2309d32463 GraalCompiler: add LIR to LIRStages context. ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java Changeset: 27fe86a6fb49 Author: Michael Van De Vanter Date: 2015-03-04 16:28 -0800 URL: http://hg.openjdk.java.net/graal/graal/rev/27fe86a6fb49 Truffle/Instrumentation: Javadoc ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/Probe.java ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/StandardSyntaxTag.java ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/SyntaxTag.java ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/SyntaxTagTrap.java ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/SyntaxTagged.java Changeset: 191c55f08ed2 Author: Michael Van De Vanter Date: 2015-03-04 16:36 -0800 URL: http://hg.openjdk.java.net/graal/graal/rev/191c55f08ed2 Truffle: add the ability to "tag" Sources with any number of standard or private tags, for example so that Sources might be marked as "FROM_FILE", "LIBRARY", "BUILTIN", or any other distinction that matters to some tools. Those tags can be applied by the language runtime when sources are created, for example when loading builtins. Alternately, you can listen for newly created sources from outside the implementation, where you might tag sources based on pattern matching against file paths or any other meta-information in the Source. + graal/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/source/SourceTest.java ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/source/Source.java + graal/com.oracle.truffle.api/src/com/oracle/truffle/api/source/SourceListener.java + graal/com.oracle.truffle.api/src/com/oracle/truffle/api/source/SourceTag.java + graal/com.oracle.truffle.api/src/com/oracle/truffle/api/source/StandardSourceTag.java Changeset: 32b4b06b6fac Author: Michael Van De Vanter Date: 2015-03-04 16:38 -0800 URL: http://hg.openjdk.java.net/graal/graal/rev/32b4b06b6fac Merge with 5d2309d32463f4c857d55e3233e8366f7b4d6feb From doug.simon at oracle.com Thu Mar 5 09:32:00 2015 From: doug.simon at oracle.com (Doug Simon) Date: Thu, 5 Mar 2015 10:32:00 +0100 Subject: RFR: bootstrap might exit early in debug JVM In-Reply-To: <5E2D8FE5-4D28-4205-BE5C-CEC1270F53B4@oracle.com> References: <5E2D8FE5-4D28-4205-BE5C-CEC1270F53B4@oracle.com> Message-ID: <4E6F48BF-4E62-40BE-92A7-F8C09CA69504@oracle.com> Looks good to me. However, getting it integrated may take a while given the current gate instability. > On Mar 5, 2015, at 12:53 AM, Christian Thalinger wrote: > > Sometimes a debug JVM is too slow to schedule compilations in time during a bootstrap and the result is an early exit: > > Bootstrapping Graal in 1000 ms (compiled 0 methods) > > Here is a fix that waits until there are some methods in the queue the first time: > > diff --git a/src/share/vm/graal/graalCompiler.cpp b/src/share/vm/graal/graalCompiler.cpp > --- a/src/share/vm/graal/graalCompiler.cpp > +++ b/src/share/vm/graal/graalCompiler.cpp > @@ -85,12 +85,15 @@ > } > > int qsize; > - jlong sleep_time = 1000; > + bool first_round = true; > int z = 0; > do { > - os::sleep(THREAD, sleep_time, true); > - sleep_time = 100; > - qsize = CompileBroker::queue_size(CompLevel_full_optimization); > + // Loop until there is something in the queue. > + do { > + os::sleep(THREAD, 100, true); > + qsize = CompileBroker::queue_size(CompLevel_full_optimization); > + } while (first_round && qsize == 0); > + first_round = false; > if (PrintBootstrap) { > while (z < (_methodsCompiled / 100)) { > ++z; > From christian.thalinger at oracle.com Thu Mar 5 15:15:50 2015 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Thu, 5 Mar 2015 07:15:50 -0800 Subject: RFR: bootstrap might exit early in debug JVM In-Reply-To: <4E6F48BF-4E62-40BE-92A7-F8C09CA69504@oracle.com> References: <5E2D8FE5-4D28-4205-BE5C-CEC1270F53B4@oracle.com> <4E6F48BF-4E62-40BE-92A7-F8C09CA69504@oracle.com> Message-ID: <13394F24-5CB0-4BF7-8B39-A3EC06BBB901@oracle.com> No problem. Are you pushing it or should I do it? > On Mar 5, 2015, at 1:32 AM, Doug Simon wrote: > > Looks good to me. However, getting it integrated may take a while given the current gate instability. > >> On Mar 5, 2015, at 12:53 AM, Christian Thalinger wrote: >> >> Sometimes a debug JVM is too slow to schedule compilations in time during a bootstrap and the result is an early exit: >> >> Bootstrapping Graal in 1000 ms (compiled 0 methods) >> >> Here is a fix that waits until there are some methods in the queue the first time: >> >> diff --git a/src/share/vm/graal/graalCompiler.cpp b/src/share/vm/graal/graalCompiler.cpp >> --- a/src/share/vm/graal/graalCompiler.cpp >> +++ b/src/share/vm/graal/graalCompiler.cpp >> @@ -85,12 +85,15 @@ >> } >> >> int qsize; >> - jlong sleep_time = 1000; >> + bool first_round = true; >> int z = 0; >> do { >> - os::sleep(THREAD, sleep_time, true); >> - sleep_time = 100; >> - qsize = CompileBroker::queue_size(CompLevel_full_optimization); >> + // Loop until there is something in the queue. >> + do { >> + os::sleep(THREAD, 100, true); >> + qsize = CompileBroker::queue_size(CompLevel_full_optimization); >> + } while (first_round && qsize == 0); >> + first_round = false; >> if (PrintBootstrap) { >> while (z < (_methodsCompiled / 100)) { >> ++z; >> > From doug.simon at oracle.com Thu Mar 5 16:11:40 2015 From: doug.simon at oracle.com (Doug Simon) Date: Thu, 5 Mar 2015 17:11:40 +0100 Subject: RFR: bootstrap might exit early in debug JVM In-Reply-To: <13394F24-5CB0-4BF7-8B39-A3EC06BBB901@oracle.com> References: <5E2D8FE5-4D28-4205-BE5C-CEC1270F53B4@oracle.com> <4E6F48BF-4E62-40BE-92A7-F8C09CA69504@oracle.com> <13394F24-5CB0-4BF7-8B39-A3EC06BBB901@oracle.com> Message-ID: <084FF8B9-2B80-49C5-A31E-D7AF4EABE68A@oracle.com> You are welcome to try. > On Mar 5, 2015, at 4:15 PM, Christian Thalinger wrote: > > No problem. Are you pushing it or should I do it? > >> On Mar 5, 2015, at 1:32 AM, Doug Simon wrote: >> >> Looks good to me. However, getting it integrated may take a while given the current gate instability. >> >>> On Mar 5, 2015, at 12:53 AM, Christian Thalinger wrote: >>> >>> Sometimes a debug JVM is too slow to schedule compilations in time during a bootstrap and the result is an early exit: >>> >>> Bootstrapping Graal in 1000 ms (compiled 0 methods) >>> >>> Here is a fix that waits until there are some methods in the queue the first time: >>> >>> diff --git a/src/share/vm/graal/graalCompiler.cpp b/src/share/vm/graal/graalCompiler.cpp >>> --- a/src/share/vm/graal/graalCompiler.cpp >>> +++ b/src/share/vm/graal/graalCompiler.cpp >>> @@ -85,12 +85,15 @@ >>> } >>> >>> int qsize; >>> - jlong sleep_time = 1000; >>> + bool first_round = true; >>> int z = 0; >>> do { >>> - os::sleep(THREAD, sleep_time, true); >>> - sleep_time = 100; >>> - qsize = CompileBroker::queue_size(CompLevel_full_optimization); >>> + // Loop until there is something in the queue. >>> + do { >>> + os::sleep(THREAD, 100, true); >>> + qsize = CompileBroker::queue_size(CompLevel_full_optimization); >>> + } while (first_round && qsize == 0); >>> + first_round = false; >>> if (PrintBootstrap) { >>> while (z < (_methodsCompiled / 100)) { >>> ++z; >>> >> > From doug.simon at oracle.com Sat Mar 7 02:00:18 2015 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Sat, 07 Mar 2015 02:00:18 +0000 Subject: hg: graal/graal: 5 new changesets Message-ID: <201503070200.t2720I27014589@aojmv0008> Changeset: ef30b2318658 Author: Michael Van De Vanter Date: 2015-03-05 16:58 -0800 URL: http://hg.openjdk.java.net/graal/graal/rev/ef30b2318658 Truffle/Instrumentation: the Visualizer for language-specific values now has a "trim" option to limit result size. ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/Visualizer.java ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/impl/DefaultVisualizer.java ! graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLDefaultVisualizer.java Changeset: d57ca11a6883 Author: Tom Rodriguez Date: 2015-03-05 17:57 -0800 URL: http://hg.openjdk.java.net/graal/graal/rev/d57ca11a6883 Use FixedGuard in tryCheckcastSingleImplementor ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/MethodCallTargetNode.java ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/ConditionalEliminationPhase.java Changeset: 6755624bf03d Author: Benoit Daloze Date: 2015-02-25 18:31 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/6755624bf03d PrimitiveValueProfile: directly use the field inside the class to highlight its usages. ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/PrimitiveValueProfile.java Changeset: 678a3de139ad Author: Benoit Daloze Date: 2015-03-05 14:19 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/678a3de139ad Add test for concurrent DSL node specializations. + graal/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/MergeSpecializationsTest.java Changeset: 48eeda5dfdbf Author: Benoit Daloze Date: 2015-03-06 18:51 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/48eeda5dfdbf Move linking of RootNode to CallTarget to ensure final semantics. * "this" was published before complete initialization by being in the constructor. * Make the constructor protected where possible. ! graal/com.oracle.graal.truffle.hotspot/src/com/oracle/graal/truffle/hotspot/HotSpotTruffleRuntime.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/OptimizedCallTarget.java ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultCallTarget.java ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultTruffleRuntime.java From doug.simon at oracle.com Mon Mar 9 14:43:31 2015 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Mon, 09 Mar 2015 14:43:31 +0000 Subject: hg: graal/graal: 3 new changesets Message-ID: <201503091443.t29EhWZx011050@aojmv0008> Changeset: e9e99d8dca54 Author: Christian Humer Date: 2015-03-09 00:41 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/e9e99d8dca54 Truffle-DSL: fixed possible wrong variable accesses when calling node constructors. ! graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeGenFactory.java Changeset: 2f5d4df2af90 Author: Christian Humer Date: 2015-03-09 00:41 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/2f5d4df2af90 Truffle-DSL: fixed implementation of execute methods without unexpected value for null values. ! graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeGenFactory.java Changeset: dc7189b2bb5f Author: Benoit Daloze Date: 2015-03-09 14:22 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/dc7189b2bb5f CyclicAssumption: Use an AtomicReference to ensure invalidation. ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/CyclicAssumption.java From doug.simon at oracle.com Tue Mar 10 02:00:29 2015 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Tue, 10 Mar 2015 02:00:29 +0000 Subject: hg: graal/graal: 27 new changesets Message-ID: <201503100200.t2A20UBg019385@aojmv0008> Changeset: 957318c1cab8 Author: Stefan Anzinger Date: 2015-03-09 15:52 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/957318c1cab8 [SPARC] Refactor initialization of backend ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackendFactory.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotLIRGenerator.java Changeset: 8f21e30a29c2 Author: Thomas Wuerthinger Date: 2015-03-05 14:26 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/8f21e30a29c2 Add Graph#reverseUsageOrder facility. Add test case for guard elimination corner case. + graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/GuardEliminationCornerCasesTest.java ! graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Graph.java ! graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Node.java Changeset: 2fd45bb25118 Author: Thomas Wuerthinger Date: 2015-03-08 21:58 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/2fd45bb25118 Initial version of new dominator-based conditional elimination phase. ! graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/type/Stamp.java ! graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/type/StampFactory.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/BoxingEliminationTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/CompareCanonicalizerTest.java - graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ConditionalEliminationTest.java + graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ConditionalEliminationTest1.java + graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ConditionalEliminationTest2.java + graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ConditionalEliminationTest3.java + graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ConditionalEliminationTest4.java + graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ConditionalEliminationTest5.java + graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ConditionalEliminationTest6.java + graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ConditionalEliminationTest7.java + graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ConditionalEliminationTest8.java + graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ConditionalEliminationTest9.java + graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ConditionalEliminationTestBase.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/DegeneratedLoopsTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/EliminateNestedCheckCastsTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/FinalizableSubclassTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/FloatingReadTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/GuardEliminationCornerCasesTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/IfCanonicalizerTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/IntegerEqualsCanonicalizerTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/InvokeExceptionTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/InvokeHintsTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/LockEliminationTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/LongNodeChainTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/LoopUnswitchTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/MemoryScheduleTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/MergeCanonicalizerTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/MonitorGraphTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/PushNodesThroughPiTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/PushThroughIfTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ReadAfterCheckCastTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ReassociateAndCanonicalTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ScalarTypeSystemTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/StampCanonicalizerTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/StraighteningTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/TypeSystemTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/deopt/CompiledMethodTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ea/EATestBase.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ea/EarlyReadEliminationTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ea/EscapeAnalysisTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ea/IterativeInliningTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ea/PEAReadEliminationTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ea/PartialEscapeAnalysisTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ea/PoorMansEATest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/inlining/InliningTest.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalDebugConfig.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/HighTier.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/LowTier.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/MidTier.java ! graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Node.java ! graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/WriteBarrierAdditionTest.java ! graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/WriteBarrierVerificationTest.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/arraycopy/ArrayCopyNode.java ! graal/com.oracle.graal.jtt/src/com/oracle/graal/jtt/optimize/NestedLoop_EA.java ! graal/com.oracle.graal.nodes.test/src/com/oracle/graal/nodes/test/LoopPhiCanonicalizerTest.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/BinaryOpLogicNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ConditionAnchorNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GuardPhiNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GuardProxyNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/StructuredGraph.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/UnaryOpLogicNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatEqualsNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatLessThanNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerBelowNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerEqualsNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerLessThanNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerTestNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IsNullNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/PointerEqualsNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/ControlFlowGraph.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/InstanceOfNode.java ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/CanonicalizerPhase.java ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/ConditionalEliminationPhase.java + graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/DominatorConditionalEliminationPhase.java ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/IterativeConditionalEliminationPhase.java ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/info/MultiTypeGuardInlineInfo.java ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/ArraysSubstitutionsTest.java ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/BitOpNodesTest.java ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/EdgesTest.java ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/MethodSubstitutionTest.java ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/PointerTest.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsImpl.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/MacroNode.java ! graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/PartialEvaluationTest.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java ! graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/IterativeInliningPhase.java Changeset: e5028947ea79 Author: Thomas Wuerthinger Date: 2015-03-08 21:58 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/e5028947ea79 Merge. ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/ConditionalEliminationPhase.java Changeset: 69369fd52245 Author: Thomas Wuerthinger Date: 2015-03-09 01:23 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/69369fd52245 Set the block for proxy nodes in the schedule phase. ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java Changeset: 055a095424a7 Author: Thomas Wuerthinger Date: 2015-03-09 01:24 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/055a095424a7 Fixes for new conditional elimination phase. Make it default. ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/InstanceOfNode.java ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/DominatorConditionalEliminationPhase.java ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/IterativeConditionalEliminationPhase.java Changeset: 95d0385ec788 Author: Thomas Wuerthinger Date: 2015-03-09 11:33 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/95d0385ec788 Correctly handle corner case in AbstractBeginNode#removeProxies. ! graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Node.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/AbstractBeginNode.java Changeset: b503dd4e723c Author: Thomas Wuerthinger Date: 2015-03-09 12:03 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/b503dd4e723c Perform full schedule for conditional elimination only in a phase where floating guards are available. ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ConditionalEliminationTest2.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ConditionalEliminationTestBase.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/HighTier.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/LowTier.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/MidTier.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/Block.java ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/DominatorConditionalEliminationPhase.java ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/IterativeConditionalEliminationPhase.java ! graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/IterativeInliningPhase.java Changeset: ff556250415e Author: Thomas Wuerthinger Date: 2015-03-09 12:03 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/ff556250415e Merge. Changeset: 1a9bfa2c3cc9 Author: Thomas Wuerthinger Date: 2015-03-09 12:32 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/1a9bfa2c3cc9 Reduce number of inserted guard proxies. ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ConditionalEliminationTest8.java ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/DominatorConditionalEliminationPhase.java Changeset: 70d565f6e127 Author: Thomas Wuerthinger Date: 2015-03-09 14:14 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/70d565f6e127 Convert API for tryFold from Boolean return value to TriState return value. ! graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/JavaTypeProfile.java ! graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/ProfilingInfo.java + graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/TriState.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ProfilingInfoTest.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompileTheWorld.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotMethodData.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotMethodDataAccessor.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaMethodImpl.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nfi/HotSpotNativeFunctionInterface.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/InstanceOfSnippets.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/AbstractBytecodeParser.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/BinaryOpLogicNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/UnaryOpLogicNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatEqualsNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatLessThanNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerBelowNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerEqualsNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerLessThanNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerTestNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IsNullNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/PointerEqualsNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/InstanceOfNode.java ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/DominatorConditionalEliminationPhase.java ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/TypeCheckTest.java Changeset: d30a0545ddc2 Author: Thomas Wuerthinger Date: 2015-03-09 14:18 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/d30a0545ddc2 Fixes after tryFold signature change. ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatLessThanNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerEqualsNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerTestNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/InstanceOfNode.java Changeset: 7241e6dfcafd Author: Thomas Wuerthinger Date: 2015-03-09 15:04 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/7241e6dfcafd Merge. Changeset: 79a472b4f024 Author: Thomas Wuerthinger Date: 2015-03-09 15:38 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/79a472b4f024 Mid tier conditional elimination needs full schedule. ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/MidTier.java Changeset: 4df907480030 Author: Thomas Wuerthinger Date: 2015-03-09 15:38 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/4df907480030 Simplify begin node immediately after removing if node. ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/BeginNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerTestNode.java ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/DominatorConditionalEliminationPhase.java Changeset: adccf364178b Author: Thomas Wuerthinger Date: 2015-03-09 17:20 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/adccf364178b Add folding for IntegerTestNode. ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerTestNode.java Changeset: 632f04ffc7a5 Author: Thomas Wuerthinger Date: 2015-03-09 17:20 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/632f04ffc7a5 Merge. Changeset: 19a4fbe393d0 Author: Thomas Wuerthinger Date: 2015-03-09 17:41 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/19a4fbe393d0 Fix for conditional elimination: Block could have been deleted, but dominated block is alive. ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/DominatorConditionalEliminationPhase.java Changeset: 19d3db31bcea Author: Gilles Duboscq Date: 2015-03-02 17:23 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/19d3db31bcea Only use deoptimizing instanceof snippet if the profile covers 100% of the cases ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotVMConfig.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/DefaultHotSpotLoweringProvider.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/InstanceOfSnippets.java Changeset: 3f7cd3c36734 Author: Gilles Duboscq Date: 2015-03-09 17:49 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/3f7cd3c36734 mx_graal: do not clear LD_LIBRARY_PATH before invoking make ! mx/mx_graal.py Changeset: 72a3e3995879 Author: Tom Rodriguez Date: 2015-03-09 12:17 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/72a3e3995879 Fix possible race in assertion ! src/cpu/x86/vm/compiledIC_x86.cpp Changeset: f3eed864acdc Author: Tom Rodriguez Date: 2015-03-09 12:18 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/f3eed864acdc Support printing options for more nmethod parts ! src/share/vm/code/nmethod.cpp Changeset: f8147c931ce4 Author: Tom Rodriguez Date: 2015-03-09 12:43 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/f8147c931ce4 Add PrintNMethodsAtLevel option to hotspot ! src/share/vm/code/nmethod.cpp ! src/share/vm/runtime/globals.hpp Changeset: 6f7cb87ac0fa Author: Tom Rodriguez Date: 2015-03-09 12:44 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/6f7cb87ac0fa Add test that ConcreteSubtype works properly for abstract classes + graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ConcreteSubtypeTest.java + graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/GraalCompilerAssumptionsTest.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/StructuredGraph.java Changeset: d0b4f9771622 Author: Tom Rodriguez Date: 2015-03-09 12:46 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/d0b4f9771622 ConcreteSubtype always implies leaf ! src/share/vm/graal/graalCodeInstaller.cpp Changeset: 6a3832494e24 Author: Tom Rodriguez Date: 2015-03-09 13:07 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/6a3832494e24 Check for derived pointers before passing BytecodeFrame into HotSpot ! graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/BytecodeFrame.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/DebugInfoBuilder.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotCompiledCode.java ! src/share/vm/graal/graalCodeInstaller.cpp Changeset: 415975c5550b Author: Tom Rodriguez Date: 2015-03-09 13:11 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/415975c5550b Disable updateBytesCRC32 until MethodSubstutions are compiled like snippets ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CRC32Substitutions.java From doug.simon at oracle.com Wed Mar 11 02:00:11 2015 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Wed, 11 Mar 2015 02:00:11 +0000 Subject: hg: graal/graal: 30 new changesets Message-ID: <201503110200.t2B20BMo022696@aojmv0008> Changeset: b53f87e24a7b Author: Christian Wirth Date: 2015-03-10 09:22 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/b53f87e24a7b Truffle: deactivate assertion that is cause performance problems ! graal/com.oracle.truffle.object/src/com/oracle/truffle/object/ShapeImpl.java Changeset: 2d5d7da2d94b Author: Doug Simon Date: 2015-03-10 10:36 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/2d5d7da2d94b removed illegal use of Debug.handle() ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java Changeset: d526b6bffc7c Author: Doug Simon Date: 2015-03-10 10:36 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/d526b6bffc7c removed HotSpotResolvedObjectTypeImpl.trustedInterfaceType ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedObjectTypeImpl.java Changeset: de35dd773272 Author: Thomas Wuerthinger Date: 2015-03-09 18:11 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/de35dd773272 Fixed an issue with nested loop explosion. Added a unit test to prevent future regressions. ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java ! graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/SimplePartialEvaluationTest.java + graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/nodes/NestedExplodedLoopTestNode.java Changeset: 2bad5984e4fe Author: Thomas Wuerthinger Date: 2015-03-09 21:07 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/2bad5984e4fe Evaluate neverPartOfCompilation assertion only after partial escape analysis and conditional elimination. Create explicit SourceStackTrace exception. Add neverPartOfCompilation unit test. + graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/SourceStackTrace.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/util/GraphUtil.java ! graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/SimplePartialEvaluationTest.java + graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/nodes/NeverPartOfCompilationTestNode.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/TruffleGraphBuilderPlugins.java ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/CompilerAsserts.java Changeset: 17229e8fad57 Author: Thomas Wuerthinger Date: 2015-03-09 23:04 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/17229e8fad57 Refactor integer add exact node. ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/arithmetic/IntegerAddExactNode.java Changeset: 0493ae8a552d Author: Thomas Wuerthinger Date: 2015-03-09 23:06 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/0493ae8a552d Modification of phase order for fast partial evaluation. ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java Changeset: cb4d01e1c084 Author: Thomas Wuerthinger Date: 2015-03-09 23:07 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/cb4d01e1c084 Merge. Changeset: 095ddb9421d0 Author: Thomas Wuerthinger Date: 2015-03-10 11:33 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/095ddb9421d0 Merge. Changeset: 2a21ea0ec141 Author: Thomas Wuerthinger Date: 2015-03-10 12:48 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/2a21ea0ec141 Profile exceptions on OptimizeCallTarget#doInvoke. ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/OptimizedCallTarget.java Changeset: 84144a672012 Author: Thomas Wuerthinger Date: 2015-03-10 13:44 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/84144a672012 Do not wrap Error objects in OptimizedCallTarget#doInvoke. ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/OptimizedCallTarget.java Changeset: edf663acfb3f Author: Stefan Anzinger Date: 2015-03-10 15:08 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/edf663acfb3f Do not rely on object identity when comparing Value.ILLEGAL ! graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/Value.java Changeset: c217db06182a Author: Stefan Anzinger Date: 2015-03-10 15:08 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/c217db06182a Add missing constructor for GuardPhiNode ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GuardPhiNode.java Changeset: 39de568cbb02 Author: Stefan Anzinger Date: 2015-03-10 15:09 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/39de568cbb02 Reintroduce CustomCanonicalizer ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/CanonicalizerPhase.java Changeset: 2e5ed2fe28cb Author: Thomas Wuerthinger Date: 2015-03-10 14:49 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/2e5ed2fe28cb Make GuardProxyNode ready for the case where its input is null. ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GuardProxyNode.java Changeset: 7568501597c2 Author: Thomas Wuerthinger Date: 2015-03-10 15:19 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/7568501597c2 Simplification in SchedulePhase. ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java Changeset: b8cab8ce9827 Author: Thomas Wuerthinger Date: 2015-03-10 15:20 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/b8cab8ce9827 Add succeeding stamp inference for integer test node. ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerTestNode.java Changeset: 34fd3a18f211 Author: Thomas Wuerthinger Date: 2015-03-10 15:21 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/34fd3a18f211 Clean up unused methods in schedule phase. ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java Changeset: 15bb034480d7 Author: Thomas Wuerthinger Date: 2015-03-10 15:28 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/15bb034480d7 Add unit test for conditional elimination of IntegerTestNode. ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ConditionalEliminationTest1.java Changeset: dde8a89e7f92 Author: Thomas Wuerthinger Date: 2015-03-10 15:52 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/dde8a89e7f92 Add conditional elimination test cases. ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ConditionalEliminationTest5.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ConditionalEliminationTestBase.java Changeset: 37969636e6f8 Author: Thomas Wuerthinger Date: 2015-03-10 15:52 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/37969636e6f8 Merge. Changeset: 223e1d7b15b7 Author: Thomas Wuerthinger Date: 2015-03-10 19:19 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/223e1d7b15b7 Make conditional elimination more robust wrt deleted begin nodes. ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/DominatorConditionalEliminationPhase.java Changeset: d03352ba2efb Author: Christian Humer Date: 2015-03-10 13:47 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/d03352ba2efb Truffle-DSL: fix another null issue for execute method generation. ! graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeGenFactory.java Changeset: e8d2f3f95dcd Author: Christian Humer Date: 2015-03-10 19:28 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/e8d2f3f95dcd Truffle-DSL: implemented duplication check for specializations with @Cached to avoid duplicates for multithreaded AST execution. ! graal/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/MergeSpecializationsTest.java - graal/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/RewriteEvent.java + graal/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/SlowPathEvent.java ! graal/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/SpecializationNode.java ! graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeGenFactory.java Changeset: f682b9e6ca07 Author: Christian Humer Date: 2015-03-10 19:38 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/f682b9e6ca07 Truffle: expose non-atomic replace API to Truffle DSL to avoid multiple RootNode lookups for multiple replaces in one atomic block. ! graal/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/SpecializationNode.java ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/Node.java ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeUtil.java Changeset: 39315508f1b6 Author: Christian Humer Date: 2015-03-10 19:44 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/39315508f1b6 Truffle: cache trivial node counts per call target. ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/DefaultTruffleSplittingStrategy.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/DefaultTruffleSplittingStrategyNew.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/OptimizedCallTarget.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleInlining.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/debug/AbstractDebugCompilationListener.java Changeset: 287f7c223d58 Author: Thomas Wuerthinger Date: 2015-03-10 21:02 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/287f7c223d58 Add compiler configuration "economy". + graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/EconomyCompilerConfiguration.java + graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/EconomyHighTier.java + graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/EconomyLowTier.java + graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/EconomyMidTier.java + graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/EconomyAllocationStage.java + graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/EconomyPostAllocationOptimizationStage.java + graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/EconomyPreAllocationOptimizationStage.java ! mx/mx_graal.py Changeset: b30764a083b7 Author: Thomas Wuerthinger Date: 2015-03-10 22:09 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/b30764a083b7 Merge. - graal/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/RewriteEvent.java Changeset: b7f2540b28a5 Author: Thomas Wuerthinger Date: 2015-03-10 22:32 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/b7f2540b28a5 Make sure new "economy" compiler configuration is not picked up as the default. ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/tiers/Suites.java Changeset: fe0bc94a147a Author: Thomas Wuerthinger Date: 2015-03-10 23:33 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/fe0bc94a147a Fix new entry in the gate for economy compiler configuration. ! mx/mx_graal.py From igor.ignatyev at oracle.com Wed Mar 11 10:34:20 2015 From: igor.ignatyev at oracle.com (Igor Ignatyev) Date: Wed, 11 Mar 2015 13:34:20 +0300 Subject: RFR : exclude tests from jacoco coverage report Message-ID: <55001A2C.60705@oracle.com> Hi all, please review the tiny fix. problem: tests are excluded from jacoco instrumentation, but they are in reports. that causes incorrect overall percentages. fix: exclude jtt and all test directories from a report. http://cr.openjdk.java.net/~iignatyev/graal/jacocoreport_exclude_test/webrev.00/ -- Igor From jaroslav.tulach at gmail.com Wed Mar 11 10:52:17 2015 From: jaroslav.tulach at gmail.com (Jaroslav Tulach) Date: Wed, 11 Mar 2015 11:52:17 +0100 Subject: Patch: Speed up NetBeans IDE execution Message-ID: <2006322.kDPxCnFuuK@logoutek> Hi. I am using Graal with NetBeans and found various operations (rebuild of a single module, execution) too slow. I believe the reason is that NetBeans try to ensure all dependant projects are up-to-date. I guess this is unnecessary. The usual workflow is to do: $ ./mx build and only then rebuild individual parts in the IDE, right? I am attaching patch speed things up by removing the dependency checks. Would anyone be so kind and applied it? I am OCA signatory via NB. -jt -------------- next part -------------- A non-text attachment was scrubbed... Name: X.diff Type: text/x-patch Size: 381 bytes Desc: not available URL: From doug.simon at oracle.com Wed Mar 11 11:53:04 2015 From: doug.simon at oracle.com (Doug Simon) Date: Wed, 11 Mar 2015 12:53:04 +0100 Subject: Patch: Speed up NetBeans IDE execution In-Reply-To: <2006322.kDPxCnFuuK@logoutek> References: <2006322.kDPxCnFuuK@logoutek> Message-ID: Hi Jaroslav, > On Mar 11, 2015, at 11:52 AM, Jaroslav Tulach wrote: > > Hi. > I am using Graal with NetBeans and found various operations (rebuild of a > single module, execution) too slow. I believe the reason is that NetBeans try > to ensure all dependant projects are up-to-date. I guess this is unnecessary. Ideally, an IDE should ensure all dependents are up to date when the project they depend on changes. Unfortunately, this is a little slow in Netbeans since it out-souces the updating to ant which isn?t very incremental. > The usual workflow is to do: > > $ ./mx build > > and only then rebuild individual parts in the IDE, right? With your patch, this will become the *required* workflow for NetBeans users. The ?mx build? step will probably take as long NetBeans doing the updating itself but at least it is an explicit step as opposed to occurring each time one edits a file in NetBeans. In Eclipse, this is all somewhat faster given that it does more precise propagation of updates. I propose making this setting conditional on a variable in mx/env. Something like: NETBEANS_UPDATE_DEPENDENTS=false How does that sound? Of course, the variable would only have an effect when running ?mx netbeansinit?. -Doug From doug.simon at oracle.com Wed Mar 11 12:35:00 2015 From: doug.simon at oracle.com (Doug Simon) Date: Wed, 11 Mar 2015 13:35:00 +0100 Subject: RFR : exclude tests from jacoco coverage report In-Reply-To: <55001A2C.60705@oracle.com> References: <55001A2C.60705@oracle.com> Message-ID: Looks good - I?ll integrate it. > On Mar 11, 2015, at 11:34 AM, Igor Ignatyev wrote: > > Hi all, > > please review the tiny fix. > > problem: > tests are excluded from jacoco instrumentation, but they are in reports. that causes incorrect overall percentages. > > fix: > exclude jtt and all test directories from a report. > > http://cr.openjdk.java.net/~iignatyev/graal/jacocoreport_exclude_test/webrev.00/ > -- > Igor From chris.seaton at oracle.com Wed Mar 11 15:25:25 2015 From: chris.seaton at oracle.com (Chris Seaton) Date: Wed, 11 Mar 2015 15:25:25 +0000 Subject: CFP - Truffle/Graal Languages Workshop Message-ID: <54219AD0-24F2-44D5-8AEA-E9853CC209EE@oracle.com> ********************************************************************************** CALL FOR PARTICIPATION Truffle 2015 Truffle/Graal Languages Workshop July 7, 2015 Prague, Czech Republic Co-located with ECOOP 2015 http://2015.ecoop.org/track/Truffle-2015-papers ********************************************************************************** In recent years we have observed a change in the way people think about implementing programming languages. In the past, an implementation of a given language was monolithic, with all the components, such as the runtime, compiler or memory management subsystem, developed from scratch. With the appearance of Java, developers of other languages started targeting its bytecode format in order to re-use high-performance services provided by Java virtual machines. Evolution of these ideas has resulted in the creation of a specialized open-source Java-based language implementation toolkit, consisting of the Graal optimizing compiler and Graal?s multi-language framework, Truffle. The toolkit facilitates the creation of high-performance language implementations using partial evaluation of self-specializing interpreters and attempts to rectify some of the limitations of previous approaches. In particular, it circumvents possible mismatches between ?guest? language semantics and ?host? bytecodes. It is rapidly gaining popularity in both industry and academia as a foundation for guest languages (e.g., JavaScript, Ruby, Python, R and others). *** Workshop Goal *** The goal of this full day workshop is to attract programming language developers interested in using Truffle and Graal for creating programming language implementations and tools, as well as, more broadly, developers interested in discussing language implementation approaches heavily relying on dynamic profiling feedback and specialization. The workshop is meant to be a forum where language developers can learn about Truffle and Graal, share their experience using the toolkit, identify potential limitations and discuss methods of rectifying them, as well as propose future directions for the development of Truffle languages tooling support and of the toolkit itself. We are especially interested in attracting participation of language developers that are not yet familiar with Truffle or Graal but are interested in exploring how they can simplify development of their own current or future projects. *** Workshop Format *** The workshop will be divided into two segments. The morning segment will consist of a number of short talks and discussions led by experienced language developers, and is aimed at introducing Truffle and Graal as well as sharing experience implementing Truffle languages. The afternoon segment is aimed at providing support for developers planning to jump-start their own projects using Truffle or contributing to one of the existing Truffle-based implementations, as well as discussing how the Truffle platform can be used for programming language research. This segment will start with a hands-on tutorial, and experienced Truffle language developers as well as members of the Truffle/Graal core team will also be available for individual/group mentoring and/or coding sessions. *** Call for Submissions *** We solicit discussion topic proposals, describing both ongoing and future projects, in the form of extended (1-3 page) abstracts. The discussion topics include but are not limited to the following areas: - Case studies of existing Truffle language implementations. - Comparing alternative language implementation techniques to Truffle. - Performance analysis and/or optimizations for Truffle language implementations. - Tooling support for Truffle languages. - Infrastructure-level optimizations and extensions that can benefit languages built with Truffle. - New research project proposals utilizing Truffle and/or Graal. Depending on the number of accepted submissions, we expect topics to cover between 30 minutes and 60 minutes time slots at the workshop. All proposals should be submitted by email to Adam Welc (adam.welc at oracle.com). - deadline for proposal submissions: April 23, 2015 (by 11:59 PM AoE) - notification: May 1, 2015 Participants with accepted proposals may ask for financial support to cover travel costs. The financial support is optional and its total amount, if any, will be determined by the organizing committee. Please indicate if financial support is being requested as part of the submission. From doug.simon at oracle.com Wed Mar 11 17:50:34 2015 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Wed, 11 Mar 2015 17:50:34 +0000 Subject: hg: graal/graal: 12 new changesets Message-ID: <201503111750.t2BHoZgX028065@aojmv0008> Changeset: 18be6264186f Author: twisti Date: 2015-03-10 20:32 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/18be6264186f Bootstrap might exit early in debug JVM ! src/share/vm/graal/graalCompiler.cpp Changeset: ea8d6fa333ab Author: Tom Rodriguez Date: 2015-03-10 22:15 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/ea8d6fa333ab Add varargs versions of assertTrue and assertFalse ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/CompareCanonicalizerTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ConcreteSubtypeTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/GraalCompilerAssumptionsTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/MemoryScheduleTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/SchedulingTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/SimpleCFGTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ea/EAMergingTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ea/IterativeInliningTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ea/PEAReadEliminationTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/inlining/InliningTest.java ! graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/ArrayCopyIntrinsificationTest.java ! graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/ClassSubstitutionsTests.java ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/MethodSubstitutionTest.java ! graal/com.oracle.graal.test/src/com/oracle/graal/test/GraalTest.java Changeset: 29916dcee0b8 Author: Tom Rodriguez Date: 2015-03-10 22:18 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/29916dcee0b8 Verify dependencies when assertions are enabled ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotVMConfig.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/CompilerToVM.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotCodeCacheProvider.java ! src/share/vm/classfile/systemDictionary.hpp ! src/share/vm/classfile/vmSymbols.hpp ! src/share/vm/graal/graalEnv.cpp ! src/share/vm/graal/graalEnv.hpp ! src/share/vm/graal/graalJavaAccess.cpp ! src/share/vm/graal/graalJavaAccess.hpp ! src/share/vm/graal/vmStructs_graal.hpp Changeset: e6a4ba0980dd Author: Christian Humer Date: 2015-03-10 21:11 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/e6a4ba0980dd Truffle: add assertion to always be in atomic blocks for replaces as it now may be violated by NodeUtil#nonAtomicReplace. ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/Node.java Changeset: 8caabd6cf363 Author: Christian Humer Date: 2015-03-10 21:13 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/8caabd6cf363 Truffle-DSL: removeSame does not need to run using atomic. It is always used in an atomic block already. ! graal/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/SpecializationNode.java Changeset: e773cc48d3e8 Author: Christian Humer Date: 2015-03-11 11:30 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/e773cc48d3e8 Truffle-DSL: make specialization types mergable with other specialization types. ! graal/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/MergeSpecializationsTest.java ! graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeGenFactory.java Changeset: 7108d2319169 Author: Christian Humer Date: 2015-03-11 11:32 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/7108d2319169 Truffle-DSL: make the whole specialization block atomic to avoid unnecessary node allocations. ! graal/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/SpecializationNode.java Changeset: b249bdba508b Author: Christian Humer Date: 2015-03-11 15:44 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/b249bdba508b Truffle-DSL: @Cached javadoc fixes. ! graal/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/Cached.java Changeset: b3f566135b56 Author: Christian Humer Date: 2015-03-11 15:44 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/b3f566135b56 Fix broken windows build. ! src/share/vm/graal/graalJavaAccess.hpp Changeset: e66a6f8d63e3 Author: Christian Humer Date: 2015-03-11 15:44 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/e66a6f8d63e3 Truffle: implement recursive inlining and with a maximum depth of 4. ! graal/com.oracle.graal.truffle.test/sl/TestInliningRecursive1.sl ! graal/com.oracle.graal.truffle.test/sl/TestInliningRecursive2.sl ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/DefaultInliningPolicy.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCompilerOptions.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleInlining.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleInliningProfile.java Changeset: 5e74068c9150 Author: Lukas Stadler Date: 2015-03-11 16:35 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/5e74068c9150 iterative marking of loop phis in SchedulePhase ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java Changeset: 905afef74a2e Author: Lukas Stadler Date: 2015-03-11 18:16 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/905afef74a2e make sure that all split successors guard for a condition before optimizing in OptimizeGuardAnchorsPhase ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/OptimizeGuardAnchorsPhase.java From doug.simon at oracle.com Wed Mar 11 19:51:32 2015 From: doug.simon at oracle.com (Doug Simon) Date: Wed, 11 Mar 2015 20:51:32 +0100 Subject: Patch: Speed up NetBeans IDE execution In-Reply-To: References: <2006322.kDPxCnFuuK@logoutek> Message-ID: <94D105B5-537D-4450-8482-8FFA0ABCB45E@oracle.com> Your suggestion sounds good. I?ll have to defer to you as to how we generate project configurations to offer those different menu options. I have experience with Eclipse (where saving a file is the only explicit build step I need*). -Doug * in theory - unfortunately Eclipse has its own issues which is only resolved by refreshing a few times. > On Mar 11, 2015, at 7:08 PM, Jaroslav Tulach wrote: > > It might be better to leave the choice in hands on the person that does the build. E.g. have two menu items in project pop-up menu to "Build" and "Build with Dependencies" (I am trying to find out if that is possible). Or do something different on "Build" vs. "Clean and Build" (I know how to do it). Or leave "Clean and Build" action fast. But "Clean" followed by "Build" do the complete build with dependencies (I know how to do it as well). > > Choosing the dependency-build style when invoking mx.sh seems to global and too early too me. > -jt > > > 2015-03-11 12:53 GMT+01:00 Doug Simon : > Hi Jaroslav, > > > On Mar 11, 2015, at 11:52 AM, Jaroslav Tulach wrote: > > > > Hi. > > I am using Graal with NetBeans and found various operations (rebuild of a > > single module, execution) too slow. I believe the reason is that NetBeans try > > to ensure all dependant projects are up-to-date. I guess this is unnecessary. > > Ideally, an IDE should ensure all dependents are up to date when the project they depend on changes. Unfortunately, this is a little slow in Netbeans since it out-souces the updating to ant which isn?t very incremental. > > > The usual workflow is to do: > > > > $ ./mx build > > > > and only then rebuild individual parts in the IDE, right? > > With your patch, this will become the *required* workflow for NetBeans users. The ?mx build? step will probably take as long NetBeans doing the updating itself but at least it is an explicit step as opposed to occurring each time one edits a file in NetBeans. In Eclipse, this is all somewhat faster given that it does more precise propagation of updates. > > I propose making this setting conditional on a variable in mx/env. Something like: > > NETBEANS_UPDATE_DEPENDENTS=false > > How does that sound? Of course, the variable would only have an effect when running ?mx netbeansinit?. > > -Doug > From jaroslav.tulach at gmail.com Wed Mar 11 18:08:49 2015 From: jaroslav.tulach at gmail.com (Jaroslav Tulach) Date: Wed, 11 Mar 2015 19:08:49 +0100 Subject: Patch: Speed up NetBeans IDE execution In-Reply-To: References: <2006322.kDPxCnFuuK@logoutek> Message-ID: It might be better to leave the choice in hands on the person that does the build. E.g. have two menu items in project pop-up menu to "Build" and "Build with Dependencies" (I am trying to find out if that is possible). Or do something different on "Build" vs. "Clean and Build" (I know how to do it). Or leave "Clean and Build" action fast. But "Clean" followed by "Build" do the complete build with dependencies (I know how to do it as well). Choosing the dependency-build style when invoking mx.sh seems to global and too early too me. -jt 2015-03-11 12:53 GMT+01:00 Doug Simon : > Hi Jaroslav, > > > On Mar 11, 2015, at 11:52 AM, Jaroslav Tulach > wrote: > > > > Hi. > > I am using Graal with NetBeans and found various operations (rebuild of a > > single module, execution) too slow. I believe the reason is that > NetBeans try > > to ensure all dependant projects are up-to-date. I guess this is > unnecessary. > > Ideally, an IDE should ensure all dependents are up to date when the > project they depend on changes. Unfortunately, this is a little slow in > Netbeans since it out-souces the updating to ant which isn?t very > incremental. > > > The usual workflow is to do: > > > > $ ./mx build > > > > and only then rebuild individual parts in the IDE, right? > > With your patch, this will become the *required* workflow for NetBeans > users. The ?mx build? step will probably take as long NetBeans doing the > updating itself but at least it is an explicit step as opposed to occurring > each time one edits a file in NetBeans. In Eclipse, this is all somewhat > faster given that it does more precise propagation of updates. > > I propose making this setting conditional on a variable in mx/env. > Something like: > > NETBEANS_UPDATE_DEPENDENTS=false > > How does that sound? Of course, the variable would only have an effect > when running ?mx netbeansinit?. > > -Doug From christian.thalinger at oracle.com Thu Mar 12 00:23:27 2015 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Wed, 11 Mar 2015 17:23:27 -0700 Subject: RFR: bootstrap might exit early in debug JVM In-Reply-To: <084FF8B9-2B80-49C5-A31E-D7AF4EABE68A@oracle.com> References: <5E2D8FE5-4D28-4205-BE5C-CEC1270F53B4@oracle.com> <4E6F48BF-4E62-40BE-92A7-F8C09CA69504@oracle.com> <13394F24-5CB0-4BF7-8B39-A3EC06BBB901@oracle.com> <084FF8B9-2B80-49C5-A31E-D7AF4EABE68A@oracle.com> Message-ID: Done. > On Mar 5, 2015, at 8:11 AM, Doug Simon wrote: > > You are welcome to try. > >> On Mar 5, 2015, at 4:15 PM, Christian Thalinger wrote: >> >> No problem. Are you pushing it or should I do it? >> >>> On Mar 5, 2015, at 1:32 AM, Doug Simon wrote: >>> >>> Looks good to me. However, getting it integrated may take a while given the current gate instability. >>> >>>> On Mar 5, 2015, at 12:53 AM, Christian Thalinger wrote: >>>> >>>> Sometimes a debug JVM is too slow to schedule compilations in time during a bootstrap and the result is an early exit: >>>> >>>> Bootstrapping Graal in 1000 ms (compiled 0 methods) >>>> >>>> Here is a fix that waits until there are some methods in the queue the first time: >>>> >>>> diff --git a/src/share/vm/graal/graalCompiler.cpp b/src/share/vm/graal/graalCompiler.cpp >>>> --- a/src/share/vm/graal/graalCompiler.cpp >>>> +++ b/src/share/vm/graal/graalCompiler.cpp >>>> @@ -85,12 +85,15 @@ >>>> } >>>> >>>> int qsize; >>>> - jlong sleep_time = 1000; >>>> + bool first_round = true; >>>> int z = 0; >>>> do { >>>> - os::sleep(THREAD, sleep_time, true); >>>> - sleep_time = 100; >>>> - qsize = CompileBroker::queue_size(CompLevel_full_optimization); >>>> + // Loop until there is something in the queue. >>>> + do { >>>> + os::sleep(THREAD, 100, true); >>>> + qsize = CompileBroker::queue_size(CompLevel_full_optimization); >>>> + } while (first_round && qsize == 0); >>>> + first_round = false; >>>> if (PrintBootstrap) { >>>> while (z < (_methodsCompiled / 100)) { >>>> ++z; >>>> >>> >> > From doug.simon at oracle.com Thu Mar 12 02:08:06 2015 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Thu, 12 Mar 2015 02:08:06 +0000 Subject: hg: graal/graal: 21 new changesets Message-ID: <201503120208.t2C286DV011296@aojmv0008> Changeset: 16ad9711b44f Author: Doug Simon Date: 2015-02-19 15:40 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/16ad9711b44f always inline intrinsics in the graph builder as well as any methods (recursively) called from an instrinsic replace BytecodeParser.currentDepth with BytecodeParser.parent ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/FinalizableSubclassTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ea/EATestBase.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/tutorial/StaticAnalysis.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotSuitesProvider.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderContext.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPlugin.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsImpl.java ! graal/com.oracle.graal.truffle.hotspot/src/com/oracle/graal/truffle/hotspot/HotSpotTruffleRuntime.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCacheImpl.java Changeset: 017eb83853dd Author: Doug Simon Date: 2015-02-19 15:42 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/017eb83853dd fixed npe when the target class of optional method substitutions is not present ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsImpl.java Changeset: 09dfba3dbfb2 Author: Doug Simon Date: 2015-02-19 16:54 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/09dfba3dbfb2 refactored HotSpot graph builder plugins into top level classes + graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotAnnotatedInvocationPlugin.java + graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotInlineInvokePlugin.java + graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotLoadFieldPlugin.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotSuitesProvider.java Changeset: 143d65ef196f Author: Doug Simon Date: 2015-03-01 15:42 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/143d65ef196f minor javadoc fix ! graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/BytecodeFrame.java Changeset: 9ab357c8c0d0 Author: Doug Simon Date: 2015-03-03 14:19 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/9ab357c8c0d0 made helper methods private ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/StandardGraphBuilderPlugins.java Changeset: 8226f22cfdf6 Author: Doug Simon Date: 2015-03-03 14:20 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/8226f22cfdf6 removed invalid comment ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java Changeset: 86f2cb32cd64 Author: Doug Simon Date: 2015-03-03 14:20 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/86f2cb32cd64 removed assertion in a method substitution ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/ReplacementsParseTest.java Changeset: 69b7ad0a3fda Author: Doug Simon Date: 2015-03-10 21:26 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/69b7ad0a3fda Merge. ! graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/BytecodeFrame.java - graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/cfg/AbstractBlock.java - graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ConditionalEliminationTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/FinalizableSubclassTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ea/EATestBase.java - graal/com.oracle.graal.debug/src/com/oracle/graal/debug/internal/TimerCloseable.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotLIRFrameState.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotMonitorValue.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CompositeValueClassSubstitutions.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderContext.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPlugin.java - graal/com.oracle.graal.lir/src/com/oracle/graal/lir/LIRInstructionBase.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsImpl.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java ! graal/com.oracle.graal.truffle.hotspot/src/com/oracle/graal/truffle/hotspot/HotSpotTruffleRuntime.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCacheImpl.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/asserts/CompilationConstantNode.java - graal/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/RewriteEvent.java Changeset: e968986402dc Author: Doug Simon Date: 2015-03-10 21:26 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/e968986402dc spelling fix ! graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/CollectionsFactory.java Changeset: b99cbe1b125c Author: Doug Simon Date: 2015-03-10 21:29 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/b99cbe1b125c made BarrieredAccess final ! graal/com.oracle.graal.word/src/com/oracle/graal/word/BarrieredAccess.java Changeset: 2ddc2ddd89ac Author: Doug Simon Date: 2015-03-10 21:39 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/2ddc2ddd89ac added ArgSupplier mechanism for supporting tests that modify their arguments ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/GraalCompilerTest.java Changeset: 7117697d11e1 Author: Doug Simon Date: 2015-03-10 21:59 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/7117697d11e1 refactored graph builder plugins into a separate class renamed AnnotatedInvocationPlugins to GenericInvocationPlugin ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotHostBackend.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotAnnotatedInvocationPlugin.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotSuitesProvider.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/AbstractBytecodeParser.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderConfiguration.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPlugin.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCompilerImpl.java Changeset: 94d87f6324a3 Author: Doug Simon Date: 2015-03-11 15:25 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/94d87f6324a3 ensure an offset into a HotSpot metaspace object is valid before reading it ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotMemoryAccessProviderImpl.java Changeset: a72945780580 Author: Doug Simon Date: 2015-03-11 15:27 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/a72945780580 removed a static access to HotSpotGraalRuntime ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CurrentJavaThreadNode.java Changeset: 31fac91ea3b7 Author: Doug Simon Date: 2015-03-11 17:16 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/31fac91ea3b7 disallow method substitution to be compilation root ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilationTask.java Changeset: 14e703edb2ab Author: Doug Simon Date: 2015-03-11 20:43 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/14e703edb2ab use GraphBuilderPlugins for method substitutions, intrinsics and snippets (GRAAL-982) ! graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/GraalOptions.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/FinalizableSubclassTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/GraalCompilerTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ea/EATestBase.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/tutorial/StaticAnalysis.java ! graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBackendFactory.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackendFactory.java ! graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/AheadOfTimeCompilationTest.java ! graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/HotSpotMethodSubstitutionTest.java ! graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/WriteBarrierAdditionTest.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotHostBackend.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotReplacementsImpl.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotAnnotatedInvocationPlugin.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotConstantReflectionProvider.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotGraphBuilderPlugins.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotHostForeignCallsProvider.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotInlineInvokePlugin.java + graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotInvocationPlugins.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotLoadFieldPlugin.java + graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotLoadIndexedPlugin.java + graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotParameterPlugin.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotProviders.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotSuitesProvider.java + graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotWordOperationPlugin.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CurrentJavaThreadNode.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/AESCryptSubstitutions.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CipherBlockChainingSubstitutions.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/HotSpotClassSubstitutions.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/HotSpotReplacementsUtil.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/LoadExceptionObjectSnippets.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/MonitorSnippets.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ObjectCloneNode.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ObjectCloneSnippets.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ReflectionSubstitutions.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/SystemSubstitutions.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ThreadSubstitutions.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/WriteBarrierSnippets.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/arraycopy/ArrayCopyNode.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/arraycopy/UnsafeArrayCopySnippets.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/DeoptimizationStub.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/ExceptionHandlerStub.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/ForeignCallStub.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/NewArrayStub.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/NewInstanceStub.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/SnippetStub.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/UncommonTrapStub.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/UnwindExceptionToCallerStub.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/VerifyOopStub.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/word/HotSpotWordTypeRewriterPhase.java + graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/word/HotSpotWordTypes.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/AbstractBytecodeParser.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/AbstractFrameStateBuilder.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderConfiguration.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderContext.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPlugin.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/HIRFrameStateBuilder.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/InvocationPlugins.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FrameState.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GuardingPiNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/PiArrayNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/PiNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/AbsNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/ConditionalNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IsNullNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/SqrtNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/debug/BlackholeNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/debug/OpaqueNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/BoxNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/BranchProbabilityNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/FixedValueAnchorNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ForeignCallNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/MembarNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnboxNode.java + graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnsafeCopyNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnsafeLoadNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnsafeStoreNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AtomicReadAndAddNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AtomicReadAndWriteNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastDynamicNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CompareAndSwapNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/DynamicNewArrayNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/InstanceOfDynamicNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/RegisterFinalizerNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/Replacements.java ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/ArraysSubstitutionsTest.java ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/MethodSubstitutionTest.java ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/ObjectAccessTest.java ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/PointerTest.java ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/StandardMethodSubstitutionsTest.java ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/StringSubstitutionsTest.java ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/UnsafeSubstitutionsTest.java ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/WordTest.java ! graal/com.oracle.graal.replacements.verifier/src/com/oracle/graal/replacements/verifier/NodeIntrinsicVerifier.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ArraySubstitutions.java - graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/BlackholeSubstitutions.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/BoxingSnippets.java - graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/BoxingSubstitutions.java - graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/CharacterSubstitutions.java - graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ClassSubstitutions.java + graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ConstantBindingParameterPlugin.java + graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultGenericInvocationPlugin.java - graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DoubleSubstitutions.java - graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/EdgesSubstitutions.java - graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/FloatSubstitutions.java - graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/GraalDirectivesSubstitutions.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/GraalMethodSubstitutions.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/GraphKit.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/IntegerSubstitutions.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/LongSubstitutions.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/MathSubstitutionsX86.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/NodeIntrinsificationPhase.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsImpl.java - graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ShortSubstitutions.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/StandardGraphBuilderPlugins.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/UnsafeSubstitutions.java - graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/UnsignedMathSubstitutions.java + graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/WordOperationPlugin.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/AssertionNode.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/BitCountNode.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/DeferredPiNode.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/DirectReadNode.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/DirectStoreNode.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/MathIntrinsicNode.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/ReverseBytesNode.java ! graal/com.oracle.graal.truffle.hotspot/src/com/oracle/graal/truffle/hotspot/HotSpotTruffleReplacements.java ! graal/com.oracle.graal.truffle.hotspot/src/com/oracle/graal/truffle/hotspot/HotSpotTruffleRuntime.java ! graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/ExactMathTest.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCacheImpl.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleReplacements.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/arithmetic/IntegerAddExactNode.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/arithmetic/IntegerMulExactNode.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/arithmetic/IntegerMulHighNode.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/arithmetic/IntegerSubExactNode.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/arithmetic/UnsignedMulHighNode.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/frame/MaterializeFrameNode.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/CompilerDirectivesSubstitutions.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/ExactMathSubstitutions.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/FrameWithoutBoxingSubstitutions.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/OptimizedCallTargetSubstitutions.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/TruffleGraphBuilderPlugins.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/UnsafeAccessSubstitutions.java ! graal/com.oracle.graal.word/src/com/oracle/graal/word/Word.java ! graal/com.oracle.graal.word/src/com/oracle/graal/word/phases/WordTypeRewriterPhase.java ! graal/com.oracle.graal.word/src/com/oracle/graal/word/phases/WordTypeVerificationPhase.java + graal/com.oracle.graal.word/src/com/oracle/graal/word/phases/WordTypes.java Changeset: 90f0e7566dc0 Author: Doug Simon Date: 2015-03-11 20:43 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/90f0e7566dc0 Merge. ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/MethodSubstitutionTest.java Changeset: 9cfcbadec537 Author: Doug Simon Date: 2015-03-11 21:01 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/9cfcbadec537 workaround for JDK-8056066 ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java Changeset: 00c4aa355659 Author: Tom Rodriguez Date: 2015-03-11 16:06 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/00c4aa355659 Simplify STATIC_PRIMITIVE_FIELD macro ! src/share/vm/graal/graalJavaAccess.hpp Changeset: 3362ba500371 Author: Tom Rodriguez Date: 2015-03-11 17:32 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/3362ba500371 Connect required Assumptions with answer to CHA query - graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/Assumptions.java ! graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/CompilationResult.java ! graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/TypeCheckHints.java ! graal/com.oracle.graal.api.meta.test/src/com/oracle/graal/api/meta/test/TestResolvedJavaType.java + graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/Assumptions.java ! graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/ResolvedJavaType.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ConcreteSubtypeTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/FinalizableSubclassTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/FindUniqueConcreteMethodBugTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/GraalCompilerAssumptionsTest.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotObjectConstant.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotObjectConstantImpl.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedObjectType.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedObjectTypeImpl.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedPrimitiveType.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/MethodHandleNode.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ObjectCloneNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/StructuredGraph.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/TypeProfileProxyNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/LoadHubNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/LoadMethodNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/InstanceOfNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/MethodCallTargetNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/RegisterFinalizerNode.java ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/info/AssumptionInlineInfo.java ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/InliningData.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/BasicObjectCloneNode.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCompilerImpl.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/AssumptionNode.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/AssumptionValidAssumption.java ! src/share/vm/classfile/systemDictionary.hpp ! src/share/vm/classfile/vmSymbols.hpp ! src/share/vm/graal/graalJavaAccess.hpp Changeset: deab43a789ad Author: Tom Rodriguez Date: 2015-03-11 17:45 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/deab43a789ad Split LeafType off from ConcreteSubtype ! graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/TypeCheckHints.java ! graal/com.oracle.graal.api.meta.test/src/com/oracle/graal/api/meta/test/TestResolvedJavaType.java ! graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/Assumptions.java ! graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/ResolvedJavaType.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedObjectType.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedObjectTypeImpl.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedPrimitiveType.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/TypeProfileProxyNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/LoadHubNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/InstanceOfNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/MethodCallTargetNode.java ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/InliningData.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/BasicObjectCloneNode.java ! src/share/vm/classfile/systemDictionary.hpp ! src/share/vm/classfile/vmSymbols.hpp ! src/share/vm/graal/graalCodeInstaller.cpp ! src/share/vm/graal/graalCodeInstaller.hpp ! src/share/vm/graal/graalJavaAccess.hpp From jaroslav.tulach at gmail.com Thu Mar 12 04:42:34 2015 From: jaroslav.tulach at gmail.com (Jaroslav Tulach) Date: Thu, 12 Mar 2015 05:42:34 +0100 Subject: Patch: Speed up NetBeans IDE execution In-Reply-To: <94D105B5-537D-4450-8482-8FFA0ABCB45E@oracle.com> References: <2006322.kDPxCnFuuK@logoutek> <94D105B5-537D-4450-8482-8FFA0ABCB45E@oracle.com> Message-ID: 2015-03-11 20:51 GMT+01:00 Doug Simon : > Your suggestion sounds good. I?ll have to defer to you as to how we > generate project configurations to offer those different menu options. I checked with Tom?? and currently there is no way to influence pop-up menu of this type of project from its configuration files. Tom?? can fix that for NetBeans 8.1 - or at least make "Build with Dependencies" action available as is common in Maven projects... Meanwhile I can only hack with various Clean/Build tricks. My favourite one is: 1. Build/Clean action operates only locally as well as other actions, like Run, Test. 2. Clean action marks the project to be eligible for complete rebuild so subsequent action (like Build) builds with all dependencies. A bit magical, but it optimizes for the main usecase - e.g. fast work with single project. Unless there are objections, I can prepare the patch. -jt I have experience with Eclipse (where saving a file is the only explicit > build step I need*). > * in theory - unfortunately Eclipse has its own issues which is only > resolved by refreshing a few times. > PS: NetBeans has such mode as well, but I usually turn it of because its occasional quirks. > > On Mar 11, 2015, at 7:08 PM, Jaroslav Tulach > wrote: > > > > It might be better to leave the choice in hands on the person that does > the build. E.g. have two menu items in project pop-up menu to "Build" and > "Build with Dependencies" (I am trying to find out if that is possible). Or > do something different on "Build" vs. "Clean and Build" (I know how to do > it). Or leave "Clean and Build" action fast. But "Clean" followed by > "Build" do the complete build with dependencies (I know how to do it as > well). > > > > Choosing the dependency-build style when invoking mx.sh seems to global > and too early too me. > > -jt > > > > > > 2015-03-11 12:53 GMT+01:00 Doug Simon : > > Hi Jaroslav, > > > > > On Mar 11, 2015, at 11:52 AM, Jaroslav Tulach < > jaroslav.tulach at gmail.com> wrote: > > > > > > Hi. > > > I am using Graal with NetBeans and found various operations (rebuild > of a > > > single module, execution) too slow. I believe the reason is that > NetBeans try > > > to ensure all dependant projects are up-to-date. I guess this is > unnecessary. > > > > Ideally, an IDE should ensure all dependents are up to date when the > project they depend on changes. Unfortunately, this is a little slow in > Netbeans since it out-souces the updating to ant which isn?t very > incremental. > > > > > The usual workflow is to do: > > > > > > $ ./mx build > > > > > > and only then rebuild individual parts in the IDE, right? > > > > With your patch, this will become the *required* workflow for NetBeans > users. The ?mx build? step will probably take as long NetBeans doing the > updating itself but at least it is an explicit step as opposed to occurring > each time one edits a file in NetBeans. In Eclipse, this is all somewhat > faster given that it does more precise propagation of updates. > > > > I propose making this setting conditional on a variable in mx/env. > Something like: > > > > NETBEANS_UPDATE_DEPENDENTS=false > > > > How does that sound? Of course, the variable would only have an effect > when running ?mx netbeansinit?. > > > > -Doug > > > > From doug.simon at oracle.com Thu Mar 12 09:30:24 2015 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Thu, 12 Mar 2015 09:30:24 +0000 Subject: hg: graal/graal: 7 new changesets Message-ID: <201503120930.t2C9UOYI005727@aojmv0008> Changeset: 9594538080a8 Author: Doug Simon Date: 2015-03-11 23:23 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/9594538080a8 ensure voidness of a @NodeIntrinsic method's return kind agrees with the voidness of the stamp of the intrinsified node ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultGenericInvocationPlugin.java Changeset: 09a22ce2e442 Author: Doug Simon Date: 2015-03-11 23:27 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/09a22ce2e442 removed some uses of setStampFromReturnType ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotSnippetReflectionProvider.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/BeginLockScopeNode.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CStringNode.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CurrentJavaThreadNode.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CurrentLockNode.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/DimensionsNode.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/MonitorCounterNode.java Changeset: c70ef0d09be9 Author: Doug Simon Date: 2015-03-11 23:36 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/c70ef0d09be9 use the 'jacoco=exclude' project property when deciding which directories to include in JaCoCo coverage reports ! mx/mx_graal.py Changeset: c59d8ba9ced5 Author: Doug Simon Date: 2015-03-12 01:11 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/c59d8ba9ced5 removed WordTypeRewriterPhase ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nfi/NativeCallStubGraphBuilder.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/word/HotSpotWordTypeRewriterPhase.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/word/PointerCastNode.java ! graal/com.oracle.graal.word/src/com/oracle/graal/word/nodes/WordCastNode.java - graal/com.oracle.graal.word/src/com/oracle/graal/word/phases/WordTypeRewriterPhase.java - graal/com.oracle.graal.word/src/com/oracle/graal/word/phases/WordTypeVerificationPhase.java ! graal/com.oracle.nfi.test/test/com/oracle/nfi/test/NativeFunctionInterfaceTest.java Changeset: 2e6e20ac56b4 Author: Doug Simon Date: 2015-03-12 07:13 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/2e6e20ac56b4 moved WordTypes from c.o.g.word.phases to c.o.g.word ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotGraphBuilderPlugins.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotParameterPlugin.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotWordOperationPlugin.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/BeginLockScopeNode.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CStringNode.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CurrentJavaThreadNode.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CurrentLockNode.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/DimensionsNode.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/MonitorCounterNode.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/ForeignCallStub.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/word/HotSpotWordTypes.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultGenericInvocationPlugin.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/GraphKit.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/WordOperationPlugin.java + graal/com.oracle.graal.word/src/com/oracle/graal/word/WordTypes.java - graal/com.oracle.graal.word/src/com/oracle/graal/word/phases/WordTypes.java Changeset: 4545e180658c Author: Doug Simon Date: 2015-03-12 07:14 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/4545e180658c Merge. - graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/Assumptions.java Changeset: 17cbf6870ca7 Author: Doug Simon Date: 2015-03-12 07:29 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/17cbf6870ca7 fixed canonicalizeprojects issues ! mx/suite.py From doug.simon at oracle.com Thu Mar 12 09:56:00 2015 From: doug.simon at oracle.com (Doug Simon) Date: Thu, 12 Mar 2015 10:56:00 +0100 Subject: RFR : exclude tests from jacoco coverage report In-Reply-To: References: <55001A2C.60705@oracle.com> Message-ID: <3AD1AFC8-B186-417B-93F2-C11FE09E85B7@oracle.com> Hi Igor, I pushed a change that is slightly different from your patch: http://hg.openjdk.java.net/graal/graal/rev/c70ef0d09be9 This ensures projects which do not exclude JaCoCo still show up in the coverage reports. -Doug > On Mar 11, 2015, at 1:35 PM, Doug Simon wrote: > > Looks good - I?ll integrate it. > >> On Mar 11, 2015, at 11:34 AM, Igor Ignatyev wrote: >> >> Hi all, >> >> please review the tiny fix. >> >> problem: >> tests are excluded from jacoco instrumentation, but they are in reports. that causes incorrect overall percentages. >> >> fix: >> exclude jtt and all test directories from a report. >> >> http://cr.openjdk.java.net/~iignatyev/graal/jacocoreport_exclude_test/webrev.00/ >> -- >> Igor > From doug.simon at oracle.com Thu Mar 12 10:05:47 2015 From: doug.simon at oracle.com (Doug Simon) Date: Thu, 12 Mar 2015 11:05:47 +0100 Subject: Patch: Speed up NetBeans IDE execution In-Reply-To: References: <2006322.kDPxCnFuuK@logoutek> <94D105B5-537D-4450-8482-8FFA0ABCB45E@oracle.com> Message-ID: <17215627-80A3-45EC-B36E-D01D7957C75D@oracle.com> > On Mar 12, 2015, at 5:42 AM, Jaroslav Tulach wrote: > > 2015-03-11 20:51 GMT+01:00 Doug Simon : > Your suggestion sounds good. I?ll have to defer to you as to how we generate project configurations to offer those different menu options. > > I checked with Tom?? and currently there is no way to influence pop-up menu of this type of project from its configuration files. Tom?? can fix that for NetBeans 8.1 - or at least make "Build with Dependencies" action available as is common in Maven projects... > > Meanwhile I can only hack with various Clean/Build tricks. My favourite one is: > > 1. Build/Clean action operates only locally as well as other actions, like Run, Test. > 2. Clean action marks the project to be eligible for complete rebuild so subsequent action (like Build) builds with all dependencies. > > A bit magical, but it optimizes for the main usecase - e.g. fast work with single project. Unless there are objections, I can prepare the patch. Ok, sounds good. > -jt > > I have experience with Eclipse (where saving a file is the only explicit build step I need*). > * in theory - unfortunately Eclipse has its own issues which is only resolved by refreshing a few times. I?ve seen that and if I recall correctly we disable it as well. One reason we disable it is that it bypasses ant altogether (according to my understanding of http://wiki.netbeans.org/FaqCompileOnSave) which means the post-compile actions we generate into build.xml are ignored. This makes the compile-on-save behavior different from Eclipse (where post compile actions are run) and we wanted to avoid the confusion. So yes, this means you effectively should always run ?mx build? on the command line before running the VM if you?re developing with NetBeans. -Doug > > PS: NetBeans has such mode as well, but I usually turn it of because its occasional quirks. > > > On Mar 11, 2015, at 7:08 PM, Jaroslav Tulach wrote: > > > > It might be better to leave the choice in hands on the person that does the build. E.g. have two menu items in project pop-up menu to "Build" and "Build with Dependencies" (I am trying to find out if that is possible). Or do something different on "Build" vs. "Clean and Build" (I know how to do it). Or leave "Clean and Build" action fast. But "Clean" followed by "Build" do the complete build with dependencies (I know how to do it as well). > > > > Choosing the dependency-build style when invoking mx.sh seems to global and too early too me. > > -jt > > > > > > 2015-03-11 12:53 GMT+01:00 Doug Simon : > > Hi Jaroslav, > > > > > On Mar 11, 2015, at 11:52 AM, Jaroslav Tulach wrote: > > > > > > Hi. > > > I am using Graal with NetBeans and found various operations (rebuild of a > > > single module, execution) too slow. I believe the reason is that NetBeans try > > > to ensure all dependant projects are up-to-date. I guess this is unnecessary. > > > > Ideally, an IDE should ensure all dependents are up to date when the project they depend on changes. Unfortunately, this is a little slow in Netbeans since it out-souces the updating to ant which isn?t very incremental. > > > > > The usual workflow is to do: > > > > > > $ ./mx build > > > > > > and only then rebuild individual parts in the IDE, right? > > > > With your patch, this will become the *required* workflow for NetBeans users. The ?mx build? step will probably take as long NetBeans doing the updating itself but at least it is an explicit step as opposed to occurring each time one edits a file in NetBeans. In Eclipse, this is all somewhat faster given that it does more precise propagation of updates. > > > > I propose making this setting conditional on a variable in mx/env. Something like: > > > > NETBEANS_UPDATE_DEPENDENTS=false > > > > How does that sound? Of course, the variable would only have an effect when running ?mx netbeansinit?. > > > > -Doug > > > > From igor.ignatyev at oracle.com Thu Mar 12 14:52:20 2015 From: igor.ignatyev at oracle.com (Igor Ignatyev) Date: Thu, 12 Mar 2015 17:52:20 +0300 Subject: RFR : exclude tests from jacoco coverage report In-Reply-To: <3AD1AFC8-B186-417B-93F2-C11FE09E85B7@oracle.com> References: <55001A2C.60705@oracle.com> <3AD1AFC8-B186-417B-93F2-C11FE09E85B7@oracle.com> Message-ID: <5501A824.50201@oracle.com> Hi Doug, ok, thank you. - Igor On 03/12/2015 12:56 PM, Doug Simon wrote: > Hi Igor, > > I pushed a change that is slightly different from your patch: > > http://hg.openjdk.java.net/graal/graal/rev/c70ef0d09be9 > > This ensures projects which do not exclude JaCoCo still show up in the coverage reports. > > -Doug > >> On Mar 11, 2015, at 1:35 PM, Doug Simon wrote: >> >> Looks good - I?ll integrate it. >> >>> On Mar 11, 2015, at 11:34 AM, Igor Ignatyev wrote: >>> >>> Hi all, >>> >>> please review the tiny fix. >>> >>> problem: >>> tests are excluded from jacoco instrumentation, but they are in reports. that causes incorrect overall percentages. >>> >>> fix: >>> exclude jtt and all test directories from a report. >>> >>> http://cr.openjdk.java.net/~iignatyev/graal/jacocoreport_exclude_test/webrev.00/ >>> -- >>> Igor >> > From brauliobo at gmail.com Fri Mar 13 00:45:39 2015 From: brauliobo at gmail.com (=?UTF-8?Q?Br=C3=A1ulio_Bhavamitra?=) Date: Thu, 12 Mar 2015 21:45:39 -0300 Subject: Is graal VM going to be part of a future JDK release? Message-ID: Hello all, Sorry for asking this out of my anxiety... Having seen the incredible results when using the Graal VM with JRuby Truffle, I wonder if and when Graal code will be merged into OpenJDK mainline. Is there a roadmap or it is not going to happen soon (next years)? cheers, br?ulio -- "Lute pela sua ideologia. Seja um com sua ideologia. Viva pela sua ideologia. Morra por sua ideologia" P.R. Sarkar EITA - Educa??o, Informa??o e Tecnologias para Autogest?o http://cirandas.net/brauliobo http://eita.org.br "Paramapurusha ? meu pai e Parama Prakriti ? minha m?e. O universo ? meu lar e todos n?s somos cidad?os deste cosmo. Este universo ? a imagina??o da Mente Macroc?smica, e todas as entidades est?o sendo criadas, preservadas e destru?das nas fases de extrovers?o e introvers?o do fluxo imaginativo c?smico. No ?mbito pessoal, quando uma pessoa imagina algo em sua mente, naquele momento, essa pessoa ? a ?nica propriet?ria daquilo que ela imagina, e ningu?m mais. Quando um ser humano criado mentalmente caminha por um milharal tamb?m imaginado, a pessoa imaginada n?o ? a propriedade desse milharal, pois ele pertence ao indiv?duo que o est? imaginando. Este universo foi criado na imagina??o de Brahma, a Entidade Suprema, por isso a propriedade deste universo ? de Brahma, e n?o dos microcosmos que tamb?m foram criados pela imagina??o de Brahma. Nenhuma propriedade deste mundo, mut?vel ou imut?vel, pertence a um indiv?duo em particular; tudo ? o patrim?nio comum de todos." Restante do texto em http://cirandas.net/brauliobo/blog/a-problematica-de-hoje-em-dia From doug.simon at oracle.com Fri Mar 13 02:00:20 2015 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Fri, 13 Mar 2015 02:00:20 +0000 Subject: hg: graal/graal: 16 new changesets Message-ID: <201503130200.t2D20LDm000641@aojmv0008> Changeset: ad32fd810c83 Author: Gilles Duboscq Date: 2015-03-12 12:45 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/ad32fd810c83 mx: Support systems where SC_ARG_MAX has not defined limit ! mxtool/mx.py Changeset: 3a5847e64b30 Author: Stefan Anzinger Date: 2015-03-12 15:37 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/3a5847e64b30 [SPARC] Link Solaris/SPARC HotSpot code into Eclipse project ! hotspot/.project Changeset: a67fe68c25c5 Author: Stefan Anzinger Date: 2015-03-12 15:58 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/a67fe68c25c5 [SPARC] Print specific error code when mmap fails (even when PrintWarnings is set to false) ! src/os/solaris/vm/os_solaris.cpp Changeset: 4bc952439f2a Author: Stefan Anzinger Date: 2015-03-12 15:59 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/4bc952439f2a Merge - graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/Assumptions.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/word/HotSpotWordTypeRewriterPhase.java - graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/BlackholeSubstitutions.java - graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/BoxingSubstitutions.java - graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/CharacterSubstitutions.java - graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ClassSubstitutions.java - graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DoubleSubstitutions.java - graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/EdgesSubstitutions.java - graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/FloatSubstitutions.java - graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/GraalDirectivesSubstitutions.java - graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ShortSubstitutions.java - graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/UnsignedMathSubstitutions.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/CompilerDirectivesSubstitutions.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/ExactMathSubstitutions.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/FrameWithoutBoxingSubstitutions.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/OptimizedCallTargetSubstitutions.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/UnsafeAccessSubstitutions.java - graal/com.oracle.graal.word/src/com/oracle/graal/word/phases/WordTypeRewriterPhase.java - graal/com.oracle.graal.word/src/com/oracle/graal/word/phases/WordTypeVerificationPhase.java Changeset: 73dddd2d8710 Author: Doug Simon Date: 2015-03-12 14:11 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/73dddd2d8710 moved bytecode paring options to AbstractBytecodeParser.Options ! graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/GraalOptions.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/AbstractBytecodeParser.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java Changeset: 35f3381375de Author: Doug Simon Date: 2015-03-12 15:19 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/35f3381375de tidied up assertions in InliningUtil ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningUtil.java Changeset: 0a3c6e786b40 Author: Doug Simon Date: 2015-03-12 15:20 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/0a3c6e786b40 added test for Math.pow() intrinsic ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/StandardMethodSubstitutionsTest.java Changeset: 1e27e31aca11 Author: Doug Simon Date: 2015-03-12 15:25 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/1e27e31aca11 fixed bug in managing replacement scope during bytecode parsing and improved API for querying replacement info from graph builder plugins ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotInlineInvokePlugin.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/AbstractBytecodeParser.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderContext.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPlugin.java Changeset: 97a72dcdac8d Author: Doug Simon Date: 2015-03-12 16:03 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/97a72dcdac8d disallow intrinsics from calling the original method ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java Changeset: 853f84c7cc6f Author: Doug Simon Date: 2015-03-12 16:04 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/853f84c7cc6f fixed Math.pow intrinsic to make a runtime call instead of calling the original method ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotVMConfig.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotHostForeignCallsProvider.java ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/StandardMethodSubstitutionsTest.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/MathSubstitutionsX86.java Changeset: 4bc9b6838303 Author: Doug Simon Date: 2015-03-12 16:07 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/4bc9b6838303 removed tests for intrinsics that call the original method ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/ReplacementsParseTest.java Changeset: 7ee442766685 Author: Doug Simon Date: 2015-03-12 16:45 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/7ee442766685 Merge. Changeset: a71b0398f8c7 Author: Tom Rodriguez Date: 2015-03-12 12:15 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/a71b0398f8c7 fix race in expansion of superclass iterableIds ! graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeClass.java Changeset: 8b7a143aea6b Author: Tom Rodriguez Date: 2015-03-12 15:02 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/8b7a143aea6b Local fix for JDK-8075105 ! src/share/vm/opto/compile.cpp Changeset: 907128d02b31 Author: Michael Van De Vanter Date: 2015-03-12 18:03 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/907128d02b31 Truffle/Instrumentation: For clients of Instrumentation, replace the TruffleEventListener interface with two: InstrumentListener, and ASTInstrumentListener. The former is simple, completely Truffle-safe (can't affect Truffle execution), and designed for simple tools. The latter is similar to the previous interface. ! graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/InstrumentationPartialEvaluationTest.java ! graal/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/instrument/InstrumentationTest.java ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/Instrument.java ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/InstrumentationNode.java ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/Probe.java ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ProbeNode.java ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/Node.java ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/tools/CoverageTracker.java ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/tools/NodeExecCounter.java ! graal/com.oracle.truffle.sl.test/src/com/oracle/truffle/sl/test/instrument/SLInstrumentTestRunner.java Changeset: a5b09092003a Author: Michael Van De Vanter Date: 2015-03-12 18:04 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/a5b09092003a Truffle/Instrumentation (part 2): For clients of Instrumentation, replace the TruffleEventListener interface with two: InstrumentListener, and ASTInstrumentListener. The former is simple, completely Truffle-safe (can't affect Truffle execution), and designed for simple tools. The latter is similar to the previous interface. + graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ASTInstrumentListener.java + graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/InstrumentListener.java - graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/TruffleEventListener.java + graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/impl/DefaultASTInstrumentListener.java - graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/impl/DefaultEventListener.java + graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/impl/DefaultInstrumentListener.java + graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/impl/SimpleASTInstrumentListener.java - graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/impl/SimpleEventListener.java + graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/impl/SimpleInstrumentListener.java From jaroslav.tulach at gmail.com Fri Mar 13 08:58:09 2015 From: jaroslav.tulach at gmail.com (Jaroslav Tulach) Date: Fri, 13 Mar 2015 09:58:09 +0100 Subject: Patch: Speed up NetBeans IDE execution In-Reply-To: <17215627-80A3-45EC-B36E-D01D7957C75D@oracle.com> References: <2006322.kDPxCnFuuK@logoutek> <94D105B5-537D-4450-8482-8FFA0ABCB45E@oracle.com> <17215627-80A3-45EC-B36E-D01D7957C75D@oracle.com> Message-ID: After bit of experimenting I concluded that the best way is to trigger the build of all dependencies only when it is needed. I reported issue to make it standard behavior in NetBeans: https://netbeans.org/bugzilla/show_bug.cgi?id=251142 Until destiny of issue #251142 is decided, here is my modification of mx system: $ hg diff mxtool/mx.py diff -r a47eb3db81bb mxtool/mx.py --- a/mxtool/mx.py Thu Mar 12 11:42:16 2015 +0100 +++ b/mxtool/mx.py Fri Mar 13 09:52:13 2015 +0100 @@ -4170,6 +4170,31 @@ out.open('project', {'name' : p.name, 'default' : 'default', 'basedir' : '.'}) out.element('description', data='Builds, tests, and runs the project ' + p.name + '.') out.element('import', {'file' : 'nbproject/build-impl.xml'}) + out.open('target', {'name' : '-post-init'}) + out.open('pathconvert', {'property' : 'comma.javac.classpath', 'pathsep' : ','}) + out.element('path', {'path' : '${javac.classpath}'}) + out.close('pathconvert') + + out.open('restrict', {'id' : 'missing.javac.classpath'}) + out.element('filelist', {'dir' : '${basedir}', 'files' : '${comma.javac.classpath}'}) + out.open('not'); + out.element('exists'); + out.close('not'); + out.close('restrict') + + out.element('property', {'name' : 'missing.javac.classpath', 'refid' : 'missing.javac.classpath'}) + + out.open('condition', {'property' : 'no.dependencies', 'value' : 'true'}) + out.element('equals', {'arg1' : '${missing.javac.classpath}', 'arg2' : ''}) + out.close('condition') + + out.element('property', {'name' : 'no.dependencies', 'value' : 'false'}) + + out.open('condition', {'property' : 'no.deps'}) + out.element('equals', {'arg1' : '${no.dependencies}', 'arg2' : 'true'}) + out.close('condition') + + out.close('target') out.open('target', {'name' : '-post-compile'}) out.open('exec', {'executable' : sys.executable}) out.element('env', {'key' : 'JAVA_HOME', 'value' : jdk.jdk}) It will check for existence of all JARs needed by javac on classpath and if one of them is missing, it will trigger the deep dependency build. Otherwise it does the local one. -jt 2015-03-12 11:05 GMT+01:00 Doug Simon : > > > On Mar 12, 2015, at 5:42 AM, Jaroslav Tulach > wrote: > > > > 2015-03-11 20:51 GMT+01:00 Doug Simon : > > Your suggestion sounds good. I?ll have to defer to you as to how we > generate project configurations to offer those different menu options. > > > > I checked with Tom?? and currently there is no way to influence pop-up > menu of this type of project from its configuration files. Tom?? can fix > that for NetBeans 8.1 - or at least make "Build with Dependencies" action > available as is common in Maven projects... > > > > Meanwhile I can only hack with various Clean/Build tricks. My favourite > one is: > > > > 1. Build/Clean action operates only locally as well as other actions, > like Run, Test. > > 2. Clean action marks the project to be eligible for complete rebuild so > subsequent action (like Build) builds with all dependencies. > > > > A bit magical, but it optimizes for the main usecase - e.g. fast work > with single project. Unless there are objections, I can prepare the patch. > > Ok, sounds good. > > > -jt > > > > I have experience with Eclipse (where saving a file is the only explicit > build step I need*). > > * in theory - unfortunately Eclipse has its own issues which is only > resolved by refreshing a few times. > > I?ve seen that and if I recall correctly we disable it as well. One reason > we disable it is that it bypasses ant altogether (according to my > understanding of http://wiki.netbeans.org/FaqCompileOnSave) which means > the post-compile actions we generate into build.xml are ignored. This makes > the compile-on-save behavior different from Eclipse (where post compile > actions are run) and we wanted to avoid the confusion. So yes, this means > you effectively should always run ?mx build? on the command line before > running the VM if you?re developing with NetBeans. > > -Doug > > > > > > PS: NetBeans has such mode as well, but I usually turn it of because its > occasional quirks. > > > > > On Mar 11, 2015, at 7:08 PM, Jaroslav Tulach < > jaroslav.tulach at gmail.com> wrote: > > > > > > It might be better to leave the choice in hands on the person that > does the build. E.g. have two menu items in project pop-up menu to "Build" > and "Build with Dependencies" (I am trying to find out if that is > possible). Or do something different on "Build" vs. "Clean and Build" (I > know how to do it). Or leave "Clean and Build" action fast. But "Clean" > followed by "Build" do the complete build with dependencies (I know how to > do it as well). > > > > > > Choosing the dependency-build style when invoking mx.sh seems to > global and too early too me. > > > -jt > > > > > > > > > 2015-03-11 12:53 GMT+01:00 Doug Simon : > > > Hi Jaroslav, > > > > > > > On Mar 11, 2015, at 11:52 AM, Jaroslav Tulach < > jaroslav.tulach at gmail.com> wrote: > > > > > > > > Hi. > > > > I am using Graal with NetBeans and found various operations (rebuild > of a > > > > single module, execution) too slow. I believe the reason is that > NetBeans try > > > > to ensure all dependant projects are up-to-date. I guess this is > unnecessary. > > > > > > Ideally, an IDE should ensure all dependents are up to date when the > project they depend on changes. Unfortunately, this is a little slow in > Netbeans since it out-souces the updating to ant which isn?t very > incremental. > > > > > > > The usual workflow is to do: > > > > > > > > $ ./mx build > > > > > > > > and only then rebuild individual parts in the IDE, right? > > > > > > With your patch, this will become the *required* workflow for NetBeans > users. The ?mx build? step will probably take as long NetBeans doing the > updating itself but at least it is an explicit step as opposed to occurring > each time one edits a file in NetBeans. In Eclipse, this is all somewhat > faster given that it does more precise propagation of updates. > > > > > > I propose making this setting conditional on a variable in mx/env. > Something like: > > > > > > NETBEANS_UPDATE_DEPENDENTS=false > > > > > > How does that sound? Of course, the variable would only have an effect > when running ?mx netbeansinit?. > > > > > > -Doug > > > > > > > > > From doug.simon at oracle.com Fri Mar 13 09:36:03 2015 From: doug.simon at oracle.com (Doug Simon) Date: Fri, 13 Mar 2015 10:36:03 +0100 Subject: Patch: Speed up NetBeans IDE execution In-Reply-To: References: <2006322.kDPxCnFuuK@logoutek> <94D105B5-537D-4450-8482-8FFA0ABCB45E@oracle.com> <17215627-80A3-45EC-B36E-D01D7957C75D@oracle.com> Message-ID: <6895E4BF-FC7C-4D11-8AA3-988857DD7F49@oracle.com> > On Mar 13, 2015, at 9:58 AM, Jaroslav Tulach wrote: > > After bit of experimenting I concluded that the best way is to trigger the build of all dependencies only when it is needed. I reported issue to make it standard behavior in NetBeans: https://netbeans.org/bugzilla/show_bug.cgi?id=251142 Now we just need someone from the Eclipse team to join the project and all our IDE concerns will be addressed before long ;-) > Until destiny of issue #251142 is decided, here is my modification of mx system: I?m going to trust that's the right fix since I honestly don?t grok completely what it does. I?ll integrate it. -Doug > $ hg diff mxtool/mx.py > diff -r a47eb3db81bb mxtool/mx.py > --- a/mxtool/mx.py Thu Mar 12 11:42:16 2015 +0100 > +++ b/mxtool/mx.py Fri Mar 13 09:52:13 2015 +0100 > @@ -4170,6 +4170,31 @@ > out.open('project', {'name' : p.name, 'default' : 'default', 'basedir' : '.'}) > out.element('description', data='Builds, tests, and runs the project ' + p.name + '.') > out.element('import', {'file' : 'nbproject/build-impl.xml'}) > + out.open('target', {'name' : '-post-init'}) > + out.open('pathconvert', {'property' : 'comma.javac.classpath', 'pathsep' : ','}) > + out.element('path', {'path' : '${javac.classpath}'}) > + out.close('pathconvert') > + > + out.open('restrict', {'id' : 'missing.javac.classpath'}) > + out.element('filelist', {'dir' : '${basedir}', 'files' : '${comma.javac.classpath}'}) > + out.open('not'); > + out.element('exists'); > + out.close('not'); > + out.close('restrict') > + > + out.element('property', {'name' : 'missing.javac.classpath', 'refid' : 'missing.javac.classpath'}) > + > + out.open('condition', {'property' : 'no.dependencies', 'value' : 'true'}) > + out.element('equals', {'arg1' : '${missing.javac.classpath}', 'arg2' : ''}) > + out.close('condition') > + > + out.element('property', {'name' : 'no.dependencies', 'value' : 'false'}) > + > + out.open('condition', {'property' : 'no.deps'}) > + out.element('equals', {'arg1' : '${no.dependencies}', 'arg2' : 'true'}) > + out.close('condition') > + > + out.close('target') > out.open('target', {'name' : '-post-compile'}) > out.open('exec', {'executable' : sys.executable}) > out.element('env', {'key' : 'JAVA_HOME', 'value' : jdk.jdk}) > > It will check for existence of all JARs needed by javac on classpath and if one of them is missing, it will trigger the deep dependency build. Otherwise it does the local one. > -jt > > > 2015-03-12 11:05 GMT+01:00 Doug Simon : > > > On Mar 12, 2015, at 5:42 AM, Jaroslav Tulach wrote: > > > > 2015-03-11 20:51 GMT+01:00 Doug Simon : > > Your suggestion sounds good. I?ll have to defer to you as to how we generate project configurations to offer those different menu options. > > > > I checked with Tom?? and currently there is no way to influence pop-up menu of this type of project from its configuration files. Tom?? can fix that for NetBeans 8.1 - or at least make "Build with Dependencies" action available as is common in Maven projects... > > > > Meanwhile I can only hack with various Clean/Build tricks. My favourite one is: > > > > 1. Build/Clean action operates only locally as well as other actions, like Run, Test. > > 2. Clean action marks the project to be eligible for complete rebuild so subsequent action (like Build) builds with all dependencies. > > > > A bit magical, but it optimizes for the main usecase - e.g. fast work with single project. Unless there are objections, I can prepare the patch. > > Ok, sounds good. > > > -jt > > > > I have experience with Eclipse (where saving a file is the only explicit build step I need*). > > * in theory - unfortunately Eclipse has its own issues which is only resolved by refreshing a few times. > > I?ve seen that and if I recall correctly we disable it as well. One reason we disable it is that it bypasses ant altogether (according to my understanding of http://wiki.netbeans.org/FaqCompileOnSave) which means the post-compile actions we generate into build.xml are ignored. This makes the compile-on-save behavior different from Eclipse (where post compile actions are run) and we wanted to avoid the confusion. So yes, this means you effectively should always run ?mx build? on the command line before running the VM if you?re developing with NetBeans. > > -Doug > > > > > > PS: NetBeans has such mode as well, but I usually turn it of because its occasional quirks. > > > > > On Mar 11, 2015, at 7:08 PM, Jaroslav Tulach wrote: > > > > > > It might be better to leave the choice in hands on the person that does the build. E.g. have two menu items in project pop-up menu to "Build" and "Build with Dependencies" (I am trying to find out if that is possible). Or do something different on "Build" vs. "Clean and Build" (I know how to do it). Or leave "Clean and Build" action fast. But "Clean" followed by "Build" do the complete build with dependencies (I know how to do it as well). > > > > > > Choosing the dependency-build style when invoking mx.sh seems to global and too early too me. > > > -jt > > > > > > > > > 2015-03-11 12:53 GMT+01:00 Doug Simon : > > > Hi Jaroslav, > > > > > > > On Mar 11, 2015, at 11:52 AM, Jaroslav Tulach wrote: > > > > > > > > Hi. > > > > I am using Graal with NetBeans and found various operations (rebuild of a > > > > single module, execution) too slow. I believe the reason is that NetBeans try > > > > to ensure all dependant projects are up-to-date. I guess this is unnecessary. > > > > > > Ideally, an IDE should ensure all dependents are up to date when the project they depend on changes. Unfortunately, this is a little slow in Netbeans since it out-souces the updating to ant which isn?t very incremental. > > > > > > > The usual workflow is to do: > > > > > > > > $ ./mx build > > > > > > > > and only then rebuild individual parts in the IDE, right? > > > > > > With your patch, this will become the *required* workflow for NetBeans users. The ?mx build? step will probably take as long NetBeans doing the updating itself but at least it is an explicit step as opposed to occurring each time one edits a file in NetBeans. In Eclipse, this is all somewhat faster given that it does more precise propagation of updates. > > > > > > I propose making this setting conditional on a variable in mx/env. Something like: > > > > > > NETBEANS_UPDATE_DEPENDENTS=false > > > > > > How does that sound? Of course, the variable would only have an effect when running ?mx netbeansinit?. > > > > > > -Doug > > > > > > > > > From jaroslav.tulach at gmail.com Fri Mar 13 09:59:12 2015 From: jaroslav.tulach at gmail.com (Jaroslav Tulach) Date: Fri, 13 Mar 2015 10:59:12 +0100 Subject: What is the purpose of "mx archive"? Message-ID: Hi. All the build.xml files generated for NetBeans have: what actually that step does? I would assume it copies the generated JAR somewhere, but I am new to python so I feel safer to ask than to read the code. Thanks for your patience. -jt From gilwooden at gmail.com Fri Mar 13 10:13:58 2015 From: gilwooden at gmail.com (Gilles Duboscq) Date: Fri, 13 Mar 2015 10:13:58 +0000 Subject: What is the purpose of "mx archive"? In-Reply-To: References: Message-ID: Hi, mx archive takes care of creating the jar. There are also some listeners on well-known archives that will updates some copies of the jars. ? Gilles On Fri, Mar 13, 2015 at 11:09 AM Jaroslav Tulach wrote: > Hi. > All the build.xml files generated for NetBeans have: > > > > > > > > > what actually that step does? I would assume it copies the generated JAR > somewhere, but I am new to python so I feel safer to ask than to read the > code. > > Thanks for your patience. > -jt > From jaroslav.tulach at gmail.com Fri Mar 13 11:38:55 2015 From: jaroslav.tulach at gmail.com (Jaroslav Tulach) Date: Fri, 13 Mar 2015 12:38:55 +0100 Subject: What is the purpose of "mx archive"? In-Reply-To: References: Message-ID: Where does it copies the JAR? Could NetBeans build script create the JAR directly at the right location? 2015-03-13 11:13 GMT+01:00 Gilles Duboscq : > Hi, > > mx archive takes care of creating the jar. There are also some listeners > on well-known archives that will updates some copies of the jars. > > ? Gilles > > On Fri, Mar 13, 2015 at 11:09 AM Jaroslav Tulach < > jaroslav.tulach at gmail.com> wrote: > >> Hi. >> All the build.xml files generated for NetBeans have: >> >> >> >> >> >> >> >> >> what actually that step does? I would assume it copies the generated JAR >> somewhere, but I am new to python so I feel safer to ask than to read the >> code. >> >> Thanks for your patience. >> -jt >> > From gilwooden at gmail.com Fri Mar 13 12:56:49 2015 From: gilwooden at gmail.com (Gilles Duboscq) Date: Fri, 13 Mar 2015 12:56:49 +0000 Subject: What is the purpose of "mx archive"? In-Reply-To: Message-ID: It's not a single location: the TRUFFLE, GRAAL, GRAAL_LOADER and GRAAL_TRUFFLE jars get deployed into the JDKs lib directory so: /(debug|fastdebug|optimized|product)/jre/lib (depending on what exists) But that should be generated based on the _jdkDeployedDists to keep it configured in a single location. ? Gilles On Fri, Mar 13, 2015 at 12:38 PM Jaroslav Tulach wrote: > Where does it copies the JAR? Could NetBeans build script create the JAR > directly at the right location? > > 2015-03-13 11:13 GMT+01:00 Gilles Duboscq : > >> Hi, >> >> mx archive takes care of creating the jar. There are also some listeners >> on well-known archives that will updates some copies of the jars. >> >> ? Gilles >> >> On Fri, Mar 13, 2015 at 11:09 AM Jaroslav Tulach < >> jaroslav.tulach at gmail.com> wrote: >> >>> Hi. >>> All the build.xml files generated for NetBeans have: >>> >>> >>> >>> >>> >>> >>> >>> >>> what actually that step does? I would assume it copies the generated JAR >>> somewhere, but I am new to python so I feel safer to ask than to read the >>> code. >>> >>> Thanks for your patience. >>> -jt >>> >> > From chris.seaton at oracle.com Fri Mar 13 13:52:52 2015 From: chris.seaton at oracle.com (Chris Seaton) Date: Fri, 13 Mar 2015 13:52:52 +0000 Subject: Is graal VM going to be part of a future JDK release? In-Reply-To: References: Message-ID: Hi Br?ulio, There?s no specific date yet of when Graal might be integrated into OpenJDK. You can of course install a binary build of GraalVM, which isn?t much different from installing an OpenJDK build http://lafo.ssw.uni-linz.ac.at/builds . For the specific use case of JRuby, the ruby-build plugin to rbenv can already install JRuby+Truffle, with GraalVM bundled so all you have to do is run ?run? and you?ll get Graal. $ rbenv install jruby-9.0.0.0+graal-dev $ rbenv shell jruby-9.0.0.0+graal-dev $ ruby -X+T -e 'puts Truffle.graal?' true I think you can do something similar in RVM but not sure of the specifics at the moment. If you are interested in JRuby+Truffle, join us in #jruby on Freenode IRC. Regards, Chris > On 13 Mar 2015, at 00:45, Br?ulio Bhavamitra wrote: > > Hello all, > > Sorry for asking this out of my anxiety... > > Having seen the incredible results when using the Graal VM with JRuby > Truffle, I wonder if and when Graal code will be merged into OpenJDK > mainline. Is there a roadmap or it is not going to happen soon (next years)? > > cheers, > br?ulio > > -- > "Lute pela sua ideologia. Seja um com sua ideologia. Viva pela sua > ideologia. Morra por sua ideologia" P.R. Sarkar > > EITA - Educa??o, Informa??o e Tecnologias para Autogest?o > http://cirandas.net/brauliobo > http://eita.org.br > > "Paramapurusha ? meu pai e Parama Prakriti ? minha m?e. O universo ? meu > lar e todos n?s somos cidad?os deste cosmo. Este universo ? a imagina??o da > Mente Macroc?smica, e todas as entidades est?o sendo criadas, preservadas e > destru?das nas fases de extrovers?o e introvers?o do fluxo imaginativo > c?smico. No ?mbito pessoal, quando uma pessoa imagina algo em sua mente, > naquele momento, essa pessoa ? a ?nica propriet?ria daquilo que ela > imagina, e ningu?m mais. Quando um ser humano criado mentalmente caminha > por um milharal tamb?m imaginado, a pessoa imaginada n?o ? a propriedade > desse milharal, pois ele pertence ao indiv?duo que o est? imaginando. Este > universo foi criado na imagina??o de Brahma, a Entidade Suprema, por isso > a propriedade deste universo ? de Brahma, e n?o dos microcosmos que tamb?m > foram criados pela imagina??o de Brahma. Nenhuma propriedade deste mundo, > mut?vel ou imut?vel, pertence a um indiv?duo em particular; tudo ? o > patrim?nio comum de todos." > Restante do texto em > http://cirandas.net/brauliobo/blog/a-problematica-de-hoje-em-dia From java at stefan-marr.de Fri Mar 13 14:30:39 2015 From: java at stefan-marr.de (Stefan Marr) Date: Fri, 13 Mar 2015 15:30:39 +0100 Subject: Issue with Graal on JDK 1.8.0_40: relocation error: symbol JVM_GetResourceLookupCacheURLs not defined Message-ID: <54FE12B4-1DAF-4C90-BB94-1E3908DEE4F7@stefan-marr.de> Hi: I got an issue trying to build Graal on a new Ubuntu system, with JDK 1.8.0_40. After compiling without problems, I see the following error when trying to start the VM: ~/tmp/GraalVM$ ./mx.sh ?vm server vm -version /home/smarr/tmp/GraalVM/jdk1.8.0_40/product/bin/java: relocation error: /home/smarr/tmp/GraalVM/jdk1.8.0_40/product/jre/lib/amd64/libjava.so: symbol JVM_GetResourceLookupCacheURLs, version SUNWprivate_1.1 not defined in file libjvm.so with link time reference Any idea how to fix this, or how to work around it? Java version details below. Thanks Stefan ~/tmp/GraalVM$ /usr/lib/jvm/java-7-openjdk-amd64/bin/java -version java version "1.7.0_75" OpenJDK Runtime Environment (IcedTea 2.5.4) (7u75-2.5.4-1~trusty1) OpenJDK 64-Bit Server VM (build 24.75-b04, mixed mode) ~/tmp/GraalVM$ java -version java version "1.8.0_40" Java(TM) SE Runtime Environment (build 1.8.0_40-b25) Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode) -- Stefan Marr INRIA Lille - Nord Europe http://stefan-marr.de/research/ From christian.humer at gmail.com Fri Mar 13 14:53:35 2015 From: christian.humer at gmail.com (Christian Humer) Date: Fri, 13 Mar 2015 14:53:35 +0000 Subject: Issue with Graal on JDK 1.8.0_40: relocation error: symbol JVM_GetResourceLookupCacheURLs not defined In-Reply-To: <54FE12B4-1DAF-4C90-BB94-1E3908DEE4F7@stefan-marr.de> References: <54FE12B4-1DAF-4C90-BB94-1E3908DEE4F7@stefan-marr.de> Message-ID: Hi Stefan, This is a known issue. Please use jdk1.8.0_31 instead for now. Thx, - Christian On Fri, Mar 13, 2015 at 3:31 PM Stefan Marr wrote: > Hi: > > I got an issue trying to build Graal on a new Ubuntu system, with JDK > 1.8.0_40. > > After compiling without problems, I see the following error when trying to > start the VM: > > ~/tmp/GraalVM$ ./mx.sh ?vm server vm -version > /home/smarr/tmp/GraalVM/jdk1.8.0_40/product/bin/java: relocation error: > /home/smarr/tmp/GraalVM/jdk1.8.0_40/product/jre/lib/amd64/libjava.so: > symbol JVM_GetResourceLookupCacheURLs, version SUNWprivate_1.1 not > defined in file libjvm.so with link time reference > > Any idea how to fix this, or how to work around it? > > Java version details below. > > Thanks > Stefan > > ~/tmp/GraalVM$ /usr/lib/jvm/java-7-openjdk-amd64/bin/java -version > java version "1.7.0_75" > OpenJDK Runtime Environment (IcedTea 2.5.4) (7u75-2.5.4-1~trusty1) > OpenJDK 64-Bit Server VM (build 24.75-b04, mixed mode) > > ~/tmp/GraalVM$ java -version > java version "1.8.0_40" > Java(TM) SE Runtime Environment (build 1.8.0_40-b25) > Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode) > > > -- > Stefan Marr > INRIA Lille - Nord Europe > http://stefan-marr.de/research/ > > > > From java at stefan-marr.de Fri Mar 13 14:56:03 2015 From: java at stefan-marr.de (Stefan Marr) Date: Fri, 13 Mar 2015 15:56:03 +0100 Subject: Issue with Graal on JDK 1.8.0_40: relocation error: symbol JVM_GetResourceLookupCacheURLs not defined In-Reply-To: References: <54FE12B4-1DAF-4C90-BB94-1E3908DEE4F7@stefan-marr.de> Message-ID: Hi Christian: > On 13 Mar 2015, at 15:53, Christian Humer wrote: > > This is a known issue. Please use jdk1.8.0_31 instead for now. Ok. Unfortunately, the old packages are gone from the nicely packaged repo [1]. Guess, I?ll need to install it manually then. Thanks Stefan [1] https://launchpad.net/~webupd8team/+archive/ubuntu/java > > Thx, > - Christian > > > On Fri, Mar 13, 2015 at 3:31 PM Stefan Marr wrote: > Hi: > > I got an issue trying to build Graal on a new Ubuntu system, with JDK 1.8.0_40. > > After compiling without problems, I see the following error when trying to start the VM: > > ~/tmp/GraalVM$ ./mx.sh ?vm server vm -version > /home/smarr/tmp/GraalVM/jdk1.8.0_40/product/bin/java: relocation error: /home/smarr/tmp/GraalVM/jdk1.8.0_40/product/jre/lib/amd64/libjava.so: symbol JVM_GetResourceLookupCacheURLs, version SUNWprivate_1.1 not defined in file libjvm.so with link time reference > > Any idea how to fix this, or how to work around it? > > Java version details below. > > Thanks > Stefan > > ~/tmp/GraalVM$ /usr/lib/jvm/java-7-openjdk-amd64/bin/java -version > java version "1.7.0_75" > OpenJDK Runtime Environment (IcedTea 2.5.4) (7u75-2.5.4-1~trusty1) > OpenJDK 64-Bit Server VM (build 24.75-b04, mixed mode) > > ~/tmp/GraalVM$ java -version > java version "1.8.0_40" > Java(TM) SE Runtime Environment (build 1.8.0_40-b25) > Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode) > > > -- > Stefan Marr > INRIA Lille - Nord Europe > http://stefan-marr.de/research/ > > > -- Stefan Marr INRIA Lille - Nord Europe http://stefan-marr.de/research/ From vitalyd at gmail.com Fri Mar 13 15:01:23 2015 From: vitalyd at gmail.com (Vitaly Davidovich) Date: Fri, 13 Mar 2015 11:01:23 -0400 Subject: Is graal VM going to be part of a future JDK release? In-Reply-To: References: Message-ID: Chris (or anyone else really), Are there any optimizations that graal does better (or at all) than Hotspot's C2? I know it has flow sensitive EA - are there other things? Thanks sent from my phone On Mar 13, 2015 9:53 AM, "Chris Seaton" wrote: > Hi Br?ulio, > > There?s no specific date yet of when Graal might be integrated into > OpenJDK. > > You can of course install a binary build of GraalVM, which isn?t much > different from installing an OpenJDK build > http://lafo.ssw.uni-linz.ac.at/builds < > http://lafo.ssw.uni-linz.ac.at/builds>. For the specific use case of > JRuby, the ruby-build plugin to rbenv can already install JRuby+Truffle, > with GraalVM bundled so all you have to do is run ?run? and you?ll get > Graal. > > $ rbenv install jruby-9.0.0.0+graal-dev > $ rbenv shell jruby-9.0.0.0+graal-dev > $ ruby -X+T -e 'puts Truffle.graal?' > true > > I think you can do something similar in RVM but not sure of the specifics > at the moment. > > If you are interested in JRuby+Truffle, join us in #jruby on Freenode IRC. > > Regards, > > Chris > > > On 13 Mar 2015, at 00:45, Br?ulio Bhavamitra > wrote: > > > > Hello all, > > > > Sorry for asking this out of my anxiety... > > > > Having seen the incredible results when using the Graal VM with JRuby > > Truffle, I wonder if and when Graal code will be merged into OpenJDK > > mainline. Is there a roadmap or it is not going to happen soon (next > years)? > > > > cheers, > > br?ulio > > > > -- > > "Lute pela sua ideologia. Seja um com sua ideologia. Viva pela sua > > ideologia. Morra por sua ideologia" P.R. Sarkar > > > > EITA - Educa??o, Informa??o e Tecnologias para Autogest?o > > http://cirandas.net/brauliobo > > http://eita.org.br > > > > "Paramapurusha ? meu pai e Parama Prakriti ? minha m?e. O universo ? meu > > lar e todos n?s somos cidad?os deste cosmo. Este universo ? a imagina??o > da > > Mente Macroc?smica, e todas as entidades est?o sendo criadas, > preservadas e > > destru?das nas fases de extrovers?o e introvers?o do fluxo imaginativo > > c?smico. No ?mbito pessoal, quando uma pessoa imagina algo em sua mente, > > naquele momento, essa pessoa ? a ?nica propriet?ria daquilo que ela > > imagina, e ningu?m mais. Quando um ser humano criado mentalmente caminha > > por um milharal tamb?m imaginado, a pessoa imaginada n?o ? a propriedade > > desse milharal, pois ele pertence ao indiv?duo que o est? imaginando. > Este > > universo foi criado na imagina??o de Brahma, a Entidade Suprema, por isso > > a propriedade deste universo ? de Brahma, e n?o dos microcosmos que > tamb?m > > foram criados pela imagina??o de Brahma. Nenhuma propriedade deste mundo, > > mut?vel ou imut?vel, pertence a um indiv?duo em particular; tudo ? o > > patrim?nio comum de todos." > > Restante do texto em > > http://cirandas.net/brauliobo/blog/a-problematica-de-hoje-em-dia > > From chris.seaton at oracle.com Fri Mar 13 15:17:30 2015 From: chris.seaton at oracle.com (Chris Seaton) Date: Fri, 13 Mar 2015 15:17:30 +0000 Subject: Is graal VM going to be part of a future JDK release? In-Reply-To: References: Message-ID: Section 4.2 of this paper http://lampwww.epfl.ch/~hmiller/scala2013/resources/pdfs/paper9.pdf gives an overview of where Graal?s optimisations differ from C2. We call flow-sensitive EA ?partial' EA. However that?s using Graal as a normal Java VM. Truffle uses Graal directly in a way that it is not currently possible to use C2, so it?s a different question really. The benefits that we get from Graal, via the Truffle API, include very extensive specialisation of operators and core library methods, aggressive inlining, both at the runtime and guest language level, explicit loop unrolling, explicit code invalidation, and more. Chris > On 13 Mar 2015, at 15:01, Vitaly Davidovich wrote: > > Chris (or anyone else really), > > Are there any optimizations that graal does better (or at all) than Hotspot's C2? I know it has flow sensitive EA - are there other things? > > Thanks > > sent from my phone > > On Mar 13, 2015 9:53 AM, "Chris Seaton" > wrote: > Hi Br?ulio, > > There?s no specific date yet of when Graal might be integrated into OpenJDK. > > You can of course install a binary build of GraalVM, which isn?t much different from installing an OpenJDK build http://lafo.ssw.uni-linz.ac.at/builds >. For the specific use case of JRuby, the ruby-build plugin to rbenv can already install JRuby+Truffle, with GraalVM bundled so all you have to do is run ?run? and you?ll get Graal. > > $ rbenv install jruby-9.0.0.0+graal-dev > $ rbenv shell jruby-9.0.0.0+graal-dev > $ ruby -X+T -e 'puts Truffle.graal?' > true > > I think you can do something similar in RVM but not sure of the specifics at the moment. > > If you are interested in JRuby+Truffle, join us in #jruby on Freenode IRC. > > Regards, > > Chris > > > On 13 Mar 2015, at 00:45, Br?ulio Bhavamitra > wrote: > > > > Hello all, > > > > Sorry for asking this out of my anxiety... > > > > Having seen the incredible results when using the Graal VM with JRuby > > Truffle, I wonder if and when Graal code will be merged into OpenJDK > > mainline. Is there a roadmap or it is not going to happen soon (next years)? > > > > cheers, > > br?ulio > > > > -- > > "Lute pela sua ideologia. Seja um com sua ideologia. Viva pela sua > > ideologia. Morra por sua ideologia" P.R. Sarkar > > > > EITA - Educa??o, Informa??o e Tecnologias para Autogest?o > > http://cirandas.net/brauliobo > > http://eita.org.br > > > > "Paramapurusha ? meu pai e Parama Prakriti ? minha m?e. O universo ? meu > > lar e todos n?s somos cidad?os deste cosmo. Este universo ? a imagina??o da > > Mente Macroc?smica, e todas as entidades est?o sendo criadas, preservadas e > > destru?das nas fases de extrovers?o e introvers?o do fluxo imaginativo > > c?smico. No ?mbito pessoal, quando uma pessoa imagina algo em sua mente, > > naquele momento, essa pessoa ? a ?nica propriet?ria daquilo que ela > > imagina, e ningu?m mais. Quando um ser humano criado mentalmente caminha > > por um milharal tamb?m imaginado, a pessoa imaginada n?o ? a propriedade > > desse milharal, pois ele pertence ao indiv?duo que o est? imaginando. Este > > universo foi criado na imagina??o de Brahma, a Entidade Suprema, por isso > > a propriedade deste universo ? de Brahma, e n?o dos microcosmos que tamb?m > > foram criados pela imagina??o de Brahma. Nenhuma propriedade deste mundo, > > mut?vel ou imut?vel, pertence a um indiv?duo em particular; tudo ? o > > patrim?nio comum de todos." > > Restante do texto em > > http://cirandas.net/brauliobo/blog/a-problematica-de-hoje-em-dia > From vitalyd at gmail.com Fri Mar 13 15:19:14 2015 From: vitalyd at gmail.com (Vitaly Davidovich) Date: Fri, 13 Mar 2015 11:19:14 -0400 Subject: Is graal VM going to be part of a future JDK release? In-Reply-To: References: Message-ID: Thanks. Yes, sorry -- I should've mentioned that my question was in the context of regular java code, not Truffle-based guest languages. On Fri, Mar 13, 2015 at 11:17 AM, Chris Seaton wrote: > Section 4.2 of this paper > http://lampwww.epfl.ch/~hmiller/scala2013/resources/pdfs/paper9.pdf gives > an overview of where Graal?s optimisations differ from C2. We call > flow-sensitive EA ?partial' EA. > > However that?s using Graal as a normal Java VM. Truffle uses Graal > directly in a way that it is not currently possible to use C2, so it?s a > different question really. The benefits that we get from Graal, via the > Truffle API, include very extensive specialisation of operators and core > library methods, aggressive inlining, both at the runtime and guest > language level, explicit loop unrolling, explicit code invalidation, and > more. > > Chris > > On 13 Mar 2015, at 15:01, Vitaly Davidovich wrote: > > Chris (or anyone else really), > > Are there any optimizations that graal does better (or at all) than > Hotspot's C2? I know it has flow sensitive EA - are there other things? > > Thanks > > sent from my phone > On Mar 13, 2015 9:53 AM, "Chris Seaton" wrote: > >> Hi Br?ulio, >> >> There?s no specific date yet of when Graal might be integrated into >> OpenJDK. >> >> You can of course install a binary build of GraalVM, which isn?t much >> different from installing an OpenJDK build >> http://lafo.ssw.uni-linz.ac.at/builds < >> http://lafo.ssw.uni-linz.ac.at/builds>. For the specific use case of >> JRuby, the ruby-build plugin to rbenv can already install JRuby+Truffle, >> with GraalVM bundled so all you have to do is run ?run? and you?ll get >> Graal. >> >> $ rbenv install jruby-9.0.0.0+graal-dev >> $ rbenv shell jruby-9.0.0.0+graal-dev >> $ ruby -X+T -e 'puts Truffle.graal?' >> true >> >> I think you can do something similar in RVM but not sure of the specifics >> at the moment. >> >> If you are interested in JRuby+Truffle, join us in #jruby on Freenode IRC. >> >> Regards, >> >> Chris >> >> > On 13 Mar 2015, at 00:45, Br?ulio Bhavamitra >> wrote: >> > >> > Hello all, >> > >> > Sorry for asking this out of my anxiety... >> > >> > Having seen the incredible results when using the Graal VM with JRuby >> > Truffle, I wonder if and when Graal code will be merged into OpenJDK >> > mainline. Is there a roadmap or it is not going to happen soon (next >> years)? >> > >> > cheers, >> > br?ulio >> > >> > -- >> > "Lute pela sua ideologia. Seja um com sua ideologia. Viva pela sua >> > ideologia. Morra por sua ideologia" P.R. Sarkar >> > >> > EITA - Educa??o, Informa??o e Tecnologias para Autogest?o >> > http://cirandas.net/brauliobo >> > http://eita.org.br >> > >> > "Paramapurusha ? meu pai e Parama Prakriti ? minha m?e. O universo ? meu >> > lar e todos n?s somos cidad?os deste cosmo. Este universo ? a >> imagina??o da >> > Mente Macroc?smica, e todas as entidades est?o sendo criadas, >> preservadas e >> > destru?das nas fases de extrovers?o e introvers?o do fluxo imaginativo >> > c?smico. No ?mbito pessoal, quando uma pessoa imagina algo em sua mente, >> > naquele momento, essa pessoa ? a ?nica propriet?ria daquilo que ela >> > imagina, e ningu?m mais. Quando um ser humano criado mentalmente caminha >> > por um milharal tamb?m imaginado, a pessoa imaginada n?o ? a propriedade >> > desse milharal, pois ele pertence ao indiv?duo que o est? imaginando. >> Este >> > universo foi criado na imagina??o de Brahma, a Entidade Suprema, por >> isso >> > a propriedade deste universo ? de Brahma, e n?o dos microcosmos que >> tamb?m >> > foram criados pela imagina??o de Brahma. Nenhuma propriedade deste >> mundo, >> > mut?vel ou imut?vel, pertence a um indiv?duo em particular; tudo ? o >> > patrim?nio comum de todos." >> > Restante do texto em >> > http://cirandas.net/brauliobo/blog/a-problematica-de-hoje-em-dia >> >> > From thomas.wuerthinger at oracle.com Fri Mar 13 15:29:12 2015 From: thomas.wuerthinger at oracle.com (Thomas Wuerthinger) Date: Fri, 13 Mar 2015 16:29:12 +0100 Subject: Is graal VM going to be part of a future JDK release? In-Reply-To: References: Message-ID: Vitaly, Graal has a very different design from C2 and therefore it has distinct performance characteristics. We invite developers to try our latest OTN release [1] on their applications and give us feedback. The largest three distinguishing factors are: a) Guard optimizations for efficient handling of speculative code - this has its biggest impact on the JavaScript, Ruby [2], and R [3] implementations built on Graal?s multi-language framework Truffle. b) Partial escape analysis to reduce object allocations even if the object escapes on some paths. c) Improved inlining strategy that explores the call tree and performs late inlining as default instead of inlining during bytecode parsing. We expect to publish a new improved version of Graal in another OTN release in the next couple of months. Regards, thomas [1] http://www.oracle.com/technetwork/oracle-labs/program-languages/overview/index-2301583.html [2] https://github.com/jruby/jruby/wiki/Truffle [3] https://bitbucket.org/allr/fastr > On 13 Mar 2015, at 16:01, Vitaly Davidovich wrote: > > Chris (or anyone else really), > > Are there any optimizations that graal does better (or at all) than > Hotspot's C2? I know it has flow sensitive EA - are there other things? > > Thanks > > sent from my phone > On Mar 13, 2015 9:53 AM, "Chris Seaton" wrote: > >> Hi Br?ulio, >> >> There?s no specific date yet of when Graal might be integrated into >> OpenJDK. >> >> You can of course install a binary build of GraalVM, which isn?t much >> different from installing an OpenJDK build >> http://lafo.ssw.uni-linz.ac.at/builds < >> http://lafo.ssw.uni-linz.ac.at/builds>. For the specific use case of >> JRuby, the ruby-build plugin to rbenv can already install JRuby+Truffle, >> with GraalVM bundled so all you have to do is run ?run? and you?ll get >> Graal. >> >> $ rbenv install jruby-9.0.0.0+graal-dev >> $ rbenv shell jruby-9.0.0.0+graal-dev >> $ ruby -X+T -e 'puts Truffle.graal?' >> true >> >> I think you can do something similar in RVM but not sure of the specifics >> at the moment. >> >> If you are interested in JRuby+Truffle, join us in #jruby on Freenode IRC. >> >> Regards, >> >> Chris >> >>> On 13 Mar 2015, at 00:45, Br?ulio Bhavamitra >> wrote: >>> >>> Hello all, >>> >>> Sorry for asking this out of my anxiety... >>> >>> Having seen the incredible results when using the Graal VM with JRuby >>> Truffle, I wonder if and when Graal code will be merged into OpenJDK >>> mainline. Is there a roadmap or it is not going to happen soon (next >> years)? >>> >>> cheers, >>> br?ulio >>> >>> -- >>> "Lute pela sua ideologia. Seja um com sua ideologia. Viva pela sua >>> ideologia. Morra por sua ideologia" P.R. Sarkar >>> >>> EITA - Educa??o, Informa??o e Tecnologias para Autogest?o >>> http://cirandas.net/brauliobo >>> http://eita.org.br >>> >>> "Paramapurusha ? meu pai e Parama Prakriti ? minha m?e. O universo ? meu >>> lar e todos n?s somos cidad?os deste cosmo. Este universo ? a imagina??o >> da >>> Mente Macroc?smica, e todas as entidades est?o sendo criadas, >> preservadas e >>> destru?das nas fases de extrovers?o e introvers?o do fluxo imaginativo >>> c?smico. No ?mbito pessoal, quando uma pessoa imagina algo em sua mente, >>> naquele momento, essa pessoa ? a ?nica propriet?ria daquilo que ela >>> imagina, e ningu?m mais. Quando um ser humano criado mentalmente caminha >>> por um milharal tamb?m imaginado, a pessoa imaginada n?o ? a propriedade >>> desse milharal, pois ele pertence ao indiv?duo que o est? imaginando. >> Este >>> universo foi criado na imagina??o de Brahma, a Entidade Suprema, por isso >>> a propriedade deste universo ? de Brahma, e n?o dos microcosmos que >> tamb?m >>> foram criados pela imagina??o de Brahma. Nenhuma propriedade deste mundo, >>> mut?vel ou imut?vel, pertence a um indiv?duo em particular; tudo ? o >>> patrim?nio comum de todos." >>> Restante do texto em >>> http://cirandas.net/brauliobo/blog/a-problematica-de-hoje-em-dia >> >> From vitalyd at gmail.com Fri Mar 13 15:38:49 2015 From: vitalyd at gmail.com (Vitaly Davidovich) Date: Fri, 13 Mar 2015 11:38:49 -0400 Subject: Is graal VM going to be part of a future JDK release? In-Reply-To: References: Message-ID: Thanks Thomas. I've been lurking on this mailing list for a while, so sort of have a big picture view of what's happening. However, as most conversations here tend to center around guest languages, I wasn't quite sure what the "value-add", so to speak, was for plain old java code. Regarding (c) in your email, yes, the somewhat naive inlining policy is annoying (e.g. assert statements possibly screwing with inlining decisions). However, in C2, there's also a different inlining threshold for very hot code (i.e. FreqInlineSize flag), which by default is 325 or so. I believe there's also ongoing work on incremental inlining. In light of that, does graal's late inlining policy still help somewhere? Just curious. Do you guys have any plans to support some things that C2 currently lacks, such as autovectorization of arithmetic/logic/etc operations on, say, arrays? That would be pretty sweet. Or is the (near to mid-term, at least) focus going to remain on supporting guest languages? Thanks On Fri, Mar 13, 2015 at 11:29 AM, Thomas Wuerthinger < thomas.wuerthinger at oracle.com> wrote: > Vitaly, > > Graal has a very different design from C2 and therefore it has distinct > performance characteristics. We invite developers to try our latest OTN > release [1] on their applications and give us feedback. > > The largest three distinguishing factors are: > a) Guard optimizations for efficient handling of speculative code - this > has its biggest impact on the JavaScript, Ruby [2], and R [3] > implementations built on Graal?s multi-language framework Truffle. > b) Partial escape analysis to reduce object allocations even if the object > escapes on some paths. > c) Improved inlining strategy that explores the call tree and performs > late inlining as default instead of inlining during bytecode parsing. > > We expect to publish a new improved version of Graal in another OTN > release in the next couple of months. > > Regards, thomas > > [1] > http://www.oracle.com/technetwork/oracle-labs/program-languages/overview/index-2301583.html > > [2] https://github.com/jruby/jruby/wiki/Truffle > [3] https://bitbucket.org/allr/fastr > > On 13 Mar 2015, at 16:01, Vitaly Davidovich wrote: > > Chris (or anyone else really), > > Are there any optimizations that graal does better (or at all) than > Hotspot's C2? I know it has flow sensitive EA - are there other things? > > Thanks > > sent from my phone > On Mar 13, 2015 9:53 AM, "Chris Seaton" wrote: > > Hi Br?ulio, > > There?s no specific date yet of when Graal might be integrated into > OpenJDK. > > You can of course install a binary build of GraalVM, which isn?t much > different from installing an OpenJDK build > http://lafo.ssw.uni-linz.ac.at/builds < > http://lafo.ssw.uni-linz.ac.at/builds>. For the specific use case of > JRuby, the ruby-build plugin to rbenv can already install JRuby+Truffle, > with GraalVM bundled so all you have to do is run ?run? and you?ll get > Graal. > > $ rbenv install jruby-9.0.0.0+graal-dev > $ rbenv shell jruby-9.0.0.0+graal-dev > $ ruby -X+T -e 'puts Truffle.graal?' > true > > I think you can do something similar in RVM but not sure of the specifics > at the moment. > > If you are interested in JRuby+Truffle, join us in #jruby on Freenode IRC. > > Regards, > > Chris > > On 13 Mar 2015, at 00:45, Br?ulio Bhavamitra > > wrote: > > > Hello all, > > Sorry for asking this out of my anxiety... > > Having seen the incredible results when using the Graal VM with JRuby > Truffle, I wonder if and when Graal code will be merged into OpenJDK > mainline. Is there a roadmap or it is not going to happen soon (next > > years)? > > > cheers, > br?ulio > > -- > "Lute pela sua ideologia. Seja um com sua ideologia. Viva pela sua > ideologia. Morra por sua ideologia" P.R. Sarkar > > EITA - Educa??o, Informa??o e Tecnologias para Autogest?o > http://cirandas.net/brauliobo > http://eita.org.br > > "Paramapurusha ? meu pai e Parama Prakriti ? minha m?e. O universo ? meu > lar e todos n?s somos cidad?os deste cosmo. Este universo ? a imagina??o > > da > > Mente Macroc?smica, e todas as entidades est?o sendo criadas, > > preservadas e > > destru?das nas fases de extrovers?o e introvers?o do fluxo imaginativo > c?smico. No ?mbito pessoal, quando uma pessoa imagina algo em sua mente, > naquele momento, essa pessoa ? a ?nica propriet?ria daquilo que ela > imagina, e ningu?m mais. Quando um ser humano criado mentalmente caminha > por um milharal tamb?m imaginado, a pessoa imaginada n?o ? a propriedade > desse milharal, pois ele pertence ao indiv?duo que o est? imaginando. > > Este > > universo foi criado na imagina??o de Brahma, a Entidade Suprema, por isso > a propriedade deste universo ? de Brahma, e n?o dos microcosmos que > > tamb?m > > foram criados pela imagina??o de Brahma. Nenhuma propriedade deste mundo, > mut?vel ou imut?vel, pertence a um indiv?duo em particular; tudo ? o > patrim?nio comum de todos." > Restante do texto em > http://cirandas.net/brauliobo/blog/a-problematica-de-hoje-em-dia > > > > > From anthony.vanelverdinghe at gmail.com Fri Mar 13 16:00:50 2015 From: anthony.vanelverdinghe at gmail.com (Anthony Vanelverdinghe) Date: Fri, 13 Mar 2015 17:00:50 +0100 Subject: Is graal VM going to be part of a future JDK release? In-Reply-To: References: Message-ID: <550309B2.2010000@gmail.com> Hi Thomas Will the next OTN release also contain a version for Windows x64 please? I just noticed in Chris' message [1] that there are actually already Windows builds available (though not for the latest version) at http://lafo.ssw.uni-linz.ac.at/builds. Kind regards, Anthony [1] http://mail.openjdk.java.net/pipermail/graal-dev/2015-March/002967.html On 13/03/2015 16:29, Thomas Wuerthinger wrote: > Vitaly, > > Graal has a very different design from C2 and therefore it has distinct performance characteristics. We invite developers to try our latest OTN release [1] on their applications and give us feedback. > > The largest three distinguishing factors are: > a) Guard optimizations for efficient handling of speculative code - this has its biggest impact on the JavaScript, Ruby [2], and R [3] implementations built on Graal?s multi-language framework Truffle. > b) Partial escape analysis to reduce object allocations even if the object escapes on some paths. > c) Improved inlining strategy that explores the call tree and performs late inlining as default instead of inlining during bytecode parsing. > > We expect to publish a new improved version of Graal in another OTN release in the next couple of months. > > Regards, thomas > > [1] http://www.oracle.com/technetwork/oracle-labs/program-languages/overview/index-2301583.html > [2] https://github.com/jruby/jruby/wiki/Truffle > [3] https://bitbucket.org/allr/fastr >> On 13 Mar 2015, at 16:01, Vitaly Davidovich wrote: >> >> Chris (or anyone else really), >> >> Are there any optimizations that graal does better (or at all) than >> Hotspot's C2? I know it has flow sensitive EA - are there other things? >> >> Thanks >> >> sent from my phone >> On Mar 13, 2015 9:53 AM, "Chris Seaton" wrote: >> >>> Hi Br?ulio, >>> >>> There?s no specific date yet of when Graal might be integrated into >>> OpenJDK. >>> >>> You can of course install a binary build of GraalVM, which isn?t much >>> different from installing an OpenJDK build >>> http://lafo.ssw.uni-linz.ac.at/builds < >>> http://lafo.ssw.uni-linz.ac.at/builds>. For the specific use case of >>> JRuby, the ruby-build plugin to rbenv can already install JRuby+Truffle, >>> with GraalVM bundled so all you have to do is run ?run? and you?ll get >>> Graal. >>> >>> $ rbenv install jruby-9.0.0.0+graal-dev >>> $ rbenv shell jruby-9.0.0.0+graal-dev >>> $ ruby -X+T -e 'puts Truffle.graal?' >>> true >>> >>> I think you can do something similar in RVM but not sure of the specifics >>> at the moment. >>> >>> If you are interested in JRuby+Truffle, join us in #jruby on Freenode IRC. >>> >>> Regards, >>> >>> Chris >>> >>>> On 13 Mar 2015, at 00:45, Br?ulio Bhavamitra >>> wrote: >>>> Hello all, >>>> >>>> Sorry for asking this out of my anxiety... >>>> >>>> Having seen the incredible results when using the Graal VM with JRuby >>>> Truffle, I wonder if and when Graal code will be merged into OpenJDK >>>> mainline. Is there a roadmap or it is not going to happen soon (next >>> years)? >>>> cheers, >>>> br?ulio >>>> >>>> -- >>>> "Lute pela sua ideologia. Seja um com sua ideologia. Viva pela sua >>>> ideologia. Morra por sua ideologia" P.R. Sarkar >>>> >>>> EITA - Educa??o, Informa??o e Tecnologias para Autogest?o >>>> http://cirandas.net/brauliobo >>>> http://eita.org.br >>>> >>>> "Paramapurusha ? meu pai e Parama Prakriti ? minha m?e. O universo ? meu >>>> lar e todos n?s somos cidad?os deste cosmo. Este universo ? a imagina??o >>> da >>>> Mente Macroc?smica, e todas as entidades est?o sendo criadas, >>> preservadas e >>>> destru?das nas fases de extrovers?o e introvers?o do fluxo imaginativo >>>> c?smico. No ?mbito pessoal, quando uma pessoa imagina algo em sua mente, >>>> naquele momento, essa pessoa ? a ?nica propriet?ria daquilo que ela >>>> imagina, e ningu?m mais. Quando um ser humano criado mentalmente caminha >>>> por um milharal tamb?m imaginado, a pessoa imaginada n?o ? a propriedade >>>> desse milharal, pois ele pertence ao indiv?duo que o est? imaginando. >>> Este >>>> universo foi criado na imagina??o de Brahma, a Entidade Suprema, por isso >>>> a propriedade deste universo ? de Brahma, e n?o dos microcosmos que >>> tamb?m >>>> foram criados pela imagina??o de Brahma. Nenhuma propriedade deste mundo, >>>> mut?vel ou imut?vel, pertence a um indiv?duo em particular; tudo ? o >>>> patrim?nio comum de todos." >>>> Restante do texto em >>>> http://cirandas.net/brauliobo/blog/a-problematica-de-hoje-em-dia >>> > From thomas.wuerthinger at oracle.com Fri Mar 13 16:07:28 2015 From: thomas.wuerthinger at oracle.com (Thomas Wuerthinger) Date: Fri, 13 Mar 2015 17:07:28 +0100 Subject: Is graal VM going to be part of a future JDK release? In-Reply-To: References: Message-ID: <865EF5F4-5193-458D-B7B9-DC737C6F5DCC@oracle.com> Vitaly, We are equally committed to Java performance as we are to Truffle guest language performance. While we are currently making the largest difference for JavaScript, Ruby, and R, we expect to also make a significant difference for Java in the future. The mentioned OTN release of Graal already includes auto-vectorisation features. We have several larger areas where we try to further push the current limits of Java performance. - thomas > On 13 Mar 2015, at 16:38, Vitaly Davidovich wrote: > > Thanks Thomas. > > I've been lurking on this mailing list for a while, so sort of have a big picture view of what's happening. However, as most conversations here tend to center around guest languages, I wasn't quite sure what the "value-add", so to speak, was for plain old java code. > > Regarding (c) in your email, yes, the somewhat naive inlining policy is annoying (e.g. assert statements possibly screwing with inlining decisions). However, in C2, there's also a different inlining threshold for very hot code (i.e. FreqInlineSize flag), which by default is 325 or so. I believe there's also ongoing work on incremental inlining. In light of that, does graal's late inlining policy still help somewhere? Just curious. > > Do you guys have any plans to support some things that C2 currently lacks, such as autovectorization of arithmetic/logic/etc operations on, say, arrays? That would be pretty sweet. Or is the (near to mid-term, at least) focus going to remain on supporting guest languages? > > Thanks > > On Fri, Mar 13, 2015 at 11:29 AM, Thomas Wuerthinger > wrote: > Vitaly, > > Graal has a very different design from C2 and therefore it has distinct performance characteristics. We invite developers to try our latest OTN release [1] on their applications and give us feedback. > > The largest three distinguishing factors are: > a) Guard optimizations for efficient handling of speculative code - this has its biggest impact on the JavaScript, Ruby [2], and R [3] implementations built on Graal?s multi-language framework Truffle. > b) Partial escape analysis to reduce object allocations even if the object escapes on some paths. > c) Improved inlining strategy that explores the call tree and performs late inlining as default instead of inlining during bytecode parsing. > > We expect to publish a new improved version of Graal in another OTN release in the next couple of months. > > Regards, thomas > > [1] http://www.oracle.com/technetwork/oracle-labs/program-languages/overview/index-2301583.html > [2] https://github.com/jruby/jruby/wiki/Truffle > [3] https://bitbucket.org/allr/fastr > >> On 13 Mar 2015, at 16:01, Vitaly Davidovich > wrote: >> >> Chris (or anyone else really), >> >> Are there any optimizations that graal does better (or at all) than >> Hotspot's C2? I know it has flow sensitive EA - are there other things? >> >> Thanks >> >> sent from my phone >> On Mar 13, 2015 9:53 AM, "Chris Seaton" > wrote: >> >>> Hi Br?ulio, >>> >>> There?s no specific date yet of when Graal might be integrated into >>> OpenJDK. >>> >>> You can of course install a binary build of GraalVM, which isn?t much >>> different from installing an OpenJDK build >>> http://lafo.ssw.uni-linz.ac.at/builds < >>> http://lafo.ssw.uni-linz.ac.at/builds >. For the specific use case of >>> JRuby, the ruby-build plugin to rbenv can already install JRuby+Truffle, >>> with GraalVM bundled so all you have to do is run ?run? and you?ll get >>> Graal. >>> >>> $ rbenv install jruby-9.0.0.0+graal-dev >>> $ rbenv shell jruby-9.0.0.0+graal-dev >>> $ ruby -X+T -e 'puts Truffle.graal?' >>> true >>> >>> I think you can do something similar in RVM but not sure of the specifics >>> at the moment. >>> >>> If you are interested in JRuby+Truffle, join us in #jruby on Freenode IRC. >>> >>> Regards, >>> >>> Chris >>> >>>> On 13 Mar 2015, at 00:45, Br?ulio Bhavamitra > >>> wrote: >>>> >>>> Hello all, >>>> >>>> Sorry for asking this out of my anxiety... >>>> >>>> Having seen the incredible results when using the Graal VM with JRuby >>>> Truffle, I wonder if and when Graal code will be merged into OpenJDK >>>> mainline. Is there a roadmap or it is not going to happen soon (next >>> years)? >>>> >>>> cheers, >>>> br?ulio >>>> >>>> -- >>>> "Lute pela sua ideologia. Seja um com sua ideologia. Viva pela sua >>>> ideologia. Morra por sua ideologia" P.R. Sarkar >>>> >>>> EITA - Educa??o, Informa??o e Tecnologias para Autogest?o >>>> http://cirandas.net/brauliobo >>>> http://eita.org.br >>>> >>>> "Paramapurusha ? meu pai e Parama Prakriti ? minha m?e. O universo ? meu >>>> lar e todos n?s somos cidad?os deste cosmo. Este universo ? a imagina??o >>> da >>>> Mente Macroc?smica, e todas as entidades est?o sendo criadas, >>> preservadas e >>>> destru?das nas fases de extrovers?o e introvers?o do fluxo imaginativo >>>> c?smico. No ?mbito pessoal, quando uma pessoa imagina algo em sua mente, >>>> naquele momento, essa pessoa ? a ?nica propriet?ria daquilo que ela >>>> imagina, e ningu?m mais. Quando um ser humano criado mentalmente caminha >>>> por um milharal tamb?m imaginado, a pessoa imaginada n?o ? a propriedade >>>> desse milharal, pois ele pertence ao indiv?duo que o est? imaginando. >>> Este >>>> universo foi criado na imagina??o de Brahma, a Entidade Suprema, por isso >>>> a propriedade deste universo ? de Brahma, e n?o dos microcosmos que >>> tamb?m >>>> foram criados pela imagina??o de Brahma. Nenhuma propriedade deste mundo, >>>> mut?vel ou imut?vel, pertence a um indiv?duo em particular; tudo ? o >>>> patrim?nio comum de todos." >>>> Restante do texto em >>>> http://cirandas.net/brauliobo/blog/a-problematica-de-hoje-em-dia >>> >>> > > From thomas.wuerthinger at oracle.com Fri Mar 13 16:11:15 2015 From: thomas.wuerthinger at oracle.com (Thomas Wuerthinger) Date: Fri, 13 Mar 2015 17:11:15 +0100 Subject: Is graal VM going to be part of a future JDK release? In-Reply-To: <550309B2.2010000@gmail.com> References: <550309B2.2010000@gmail.com> Message-ID: Sure! We will include a version for Windows x64. - thomas > On 13 Mar 2015, at 17:00, Anthony Vanelverdinghe wrote: > > Hi Thomas > > Will the next OTN release also contain a version for Windows x64 please? I just noticed in Chris' message [1] that there are actually already Windows builds available (though not for the latest version) at http://lafo.ssw.uni-linz.ac.at/builds . > > Kind regards, > Anthony > > [1] http://mail.openjdk.java.net/pipermail/graal-dev/2015-March/002967.html > > > On 13/03/2015 16:29, Thomas Wuerthinger wrote: >> Vitaly, >> >> Graal has a very different design from C2 and therefore it has distinct performance characteristics. We invite developers to try our latest OTN release [1] on their applications and give us feedback. >> >> The largest three distinguishing factors are: >> a) Guard optimizations for efficient handling of speculative code - this has its biggest impact on the JavaScript, Ruby [2], and R [3] implementations built on Graal?s multi-language framework Truffle. >> b) Partial escape analysis to reduce object allocations even if the object escapes on some paths. >> c) Improved inlining strategy that explores the call tree and performs late inlining as default instead of inlining during bytecode parsing. >> >> We expect to publish a new improved version of Graal in another OTN release in the next couple of months. >> >> Regards, thomas >> >> [1] http://www.oracle.com/technetwork/oracle-labs/program-languages/overview/index-2301583.html > >> [2] https://github.com/jruby/jruby/wiki/Truffle > >> [3] https://bitbucket.org/allr/fastr > >>> On 13 Mar 2015, at 16:01, Vitaly Davidovich > wrote: >>> >>> Chris (or anyone else really), >>> >>> Are there any optimizations that graal does better (or at all) than >>> Hotspot's C2? I know it has flow sensitive EA - are there other things? >>> >>> Thanks >>> >>> sent from my phone >>> On Mar 13, 2015 9:53 AM, "Chris Seaton" > wrote: >>> >>>> Hi Br?ulio, >>>> >>>> There?s no specific date yet of when Graal might be integrated into >>>> OpenJDK. >>>> >>>> You can of course install a binary build of GraalVM, which isn?t much >>>> different from installing an OpenJDK build >>>> http://lafo.ssw.uni-linz.ac.at/builds < >>>> http://lafo.ssw.uni-linz.ac.at/builds >. For the specific use case of >>>> JRuby, the ruby-build plugin to rbenv can already install JRuby+Truffle, >>>> with GraalVM bundled so all you have to do is run ?run? and you?ll get >>>> Graal. >>>> >>>> $ rbenv install jruby-9.0.0.0+graal-dev >>>> $ rbenv shell jruby-9.0.0.0+graal-dev >>>> $ ruby -X+T -e 'puts Truffle.graal?' >>>> true >>>> >>>> I think you can do something similar in RVM but not sure of the specifics >>>> at the moment. >>>> >>>> If you are interested in JRuby+Truffle, join us in #jruby on Freenode IRC. >>>> >>>> Regards, >>>> >>>> Chris >>>> >>>>> On 13 Mar 2015, at 00:45, Br?ulio Bhavamitra > >>>> wrote: >>>>> Hello all, >>>>> >>>>> Sorry for asking this out of my anxiety... >>>>> >>>>> Having seen the incredible results when using the Graal VM with JRuby >>>>> Truffle, I wonder if and when Graal code will be merged into OpenJDK >>>>> mainline. Is there a roadmap or it is not going to happen soon (next >>>> years)? >>>>> cheers, >>>>> br?ulio >>>>> >>>>> -- >>>>> "Lute pela sua ideologia. Seja um com sua ideologia. Viva pela sua >>>>> ideologia. Morra por sua ideologia" P.R. Sarkar >>>>> >>>>> EITA - Educa??o, Informa??o e Tecnologias para Autogest?o >>>>> http://cirandas.net/brauliobo >>>>> http://eita.org.br >>>>> >>>>> "Paramapurusha ? meu pai e Parama Prakriti ? minha m?e. O universo ? meu >>>>> lar e todos n?s somos cidad?os deste cosmo. Este universo ? a imagina??o >>>> da >>>>> Mente Macroc?smica, e todas as entidades est?o sendo criadas, >>>> preservadas e >>>>> destru?das nas fases de extrovers?o e introvers?o do fluxo imaginativo >>>>> c?smico. No ?mbito pessoal, quando uma pessoa imagina algo em sua mente, >>>>> naquele momento, essa pessoa ? a ?nica propriet?ria daquilo que ela >>>>> imagina, e ningu?m mais. Quando um ser humano criado mentalmente caminha >>>>> por um milharal tamb?m imaginado, a pessoa imaginada n?o ? a propriedade >>>>> desse milharal, pois ele pertence ao indiv?duo que o est? imaginando. >>>> Este >>>>> universo foi criado na imagina??o de Brahma, a Entidade Suprema, por isso >>>>> a propriedade deste universo ? de Brahma, e n?o dos microcosmos que >>>> tamb?m >>>>> foram criados pela imagina??o de Brahma. Nenhuma propriedade deste mundo, >>>>> mut?vel ou imut?vel, pertence a um indiv?duo em particular; tudo ? o >>>>> patrim?nio comum de todos." >>>>> Restante do texto em >>>>> http://cirandas.net/brauliobo/blog/a-problematica-de-hoje-em-dia From vitalyd at gmail.com Fri Mar 13 16:32:52 2015 From: vitalyd at gmail.com (Vitaly Davidovich) Date: Fri, 13 Mar 2015 12:32:52 -0400 Subject: Is graal VM going to be part of a future JDK release? In-Reply-To: <865EF5F4-5193-458D-B7B9-DC737C6F5DCC@oracle.com> References: <865EF5F4-5193-458D-B7B9-DC737C6F5DCC@oracle.com> Message-ID: Thomas, AFAIK, graal has some intrinsics that use vector instructions (I think array copy/equals?), but does it also auto-vectorize, say, arithmetic? for (int i = 0; i < some_trip_count; ++i) a[i] = b[i] * c[i]; Does it unroll and vectorize that? Thanks On Fri, Mar 13, 2015 at 12:07 PM, Thomas Wuerthinger < thomas.wuerthinger at oracle.com> wrote: > Vitaly, > > We are equally committed to Java performance as we are to Truffle guest > language performance. While we are currently making the largest difference > for JavaScript, Ruby, and R, we expect to also make a significant > difference for Java in the future. The mentioned OTN release of Graal > already includes auto-vectorisation features. We have several larger areas > where we try to further push the current limits of Java performance. > > - thomas > > > On 13 Mar 2015, at 16:38, Vitaly Davidovich wrote: > > Thanks Thomas. > > I've been lurking on this mailing list for a while, so sort of have a big > picture view of what's happening. However, as most conversations here tend > to center around guest languages, I wasn't quite sure what the "value-add", > so to speak, was for plain old java code. > > Regarding (c) in your email, yes, the somewhat naive inlining policy is > annoying (e.g. assert statements possibly screwing with inlining > decisions). However, in C2, there's also a different inlining threshold > for very hot code (i.e. FreqInlineSize flag), which by default is 325 or > so. I believe there's also ongoing work on incremental inlining. In light > of that, does graal's late inlining policy still help somewhere? Just > curious. > > Do you guys have any plans to support some things that C2 currently lacks, > such as autovectorization of arithmetic/logic/etc operations on, say, > arrays? That would be pretty sweet. Or is the (near to mid-term, at least) > focus going to remain on supporting guest languages? > > Thanks > > On Fri, Mar 13, 2015 at 11:29 AM, Thomas Wuerthinger < > thomas.wuerthinger at oracle.com> wrote: > >> Vitaly, >> >> Graal has a very different design from C2 and therefore it has distinct >> performance characteristics. We invite developers to try our latest OTN >> release [1] on their applications and give us feedback. >> >> The largest three distinguishing factors are: >> a) Guard optimizations for efficient handling of speculative code - this >> has its biggest impact on the JavaScript, Ruby [2], and R [3] >> implementations built on Graal?s multi-language framework Truffle. >> b) Partial escape analysis to reduce object allocations even if the >> object escapes on some paths. >> c) Improved inlining strategy that explores the call tree and performs >> late inlining as default instead of inlining during bytecode parsing. >> >> We expect to publish a new improved version of Graal in another OTN >> release in the next couple of months. >> >> Regards, thomas >> >> [1] >> http://www.oracle.com/technetwork/oracle-labs/program-languages/overview/index-2301583.html >> >> [2] https://github.com/jruby/jruby/wiki/Truffle >> [3] https://bitbucket.org/allr/fastr >> >> On 13 Mar 2015, at 16:01, Vitaly Davidovich wrote: >> >> Chris (or anyone else really), >> >> Are there any optimizations that graal does better (or at all) than >> Hotspot's C2? I know it has flow sensitive EA - are there other things? >> >> Thanks >> >> sent from my phone >> On Mar 13, 2015 9:53 AM, "Chris Seaton" wrote: >> >> Hi Br?ulio, >> >> There?s no specific date yet of when Graal might be integrated into >> OpenJDK. >> >> You can of course install a binary build of GraalVM, which isn?t much >> different from installing an OpenJDK build >> http://lafo.ssw.uni-linz.ac.at/builds < >> http://lafo.ssw.uni-linz.ac.at/builds>. For the specific use case of >> JRuby, the ruby-build plugin to rbenv can already install JRuby+Truffle, >> with GraalVM bundled so all you have to do is run ?run? and you?ll get >> Graal. >> >> $ rbenv install jruby-9.0.0.0+graal-dev >> $ rbenv shell jruby-9.0.0.0+graal-dev >> $ ruby -X+T -e 'puts Truffle.graal?' >> true >> >> I think you can do something similar in RVM but not sure of the specifics >> at the moment. >> >> If you are interested in JRuby+Truffle, join us in #jruby on Freenode IRC. >> >> Regards, >> >> Chris >> >> On 13 Mar 2015, at 00:45, Br?ulio Bhavamitra >> >> wrote: >> >> >> Hello all, >> >> Sorry for asking this out of my anxiety... >> >> Having seen the incredible results when using the Graal VM with JRuby >> Truffle, I wonder if and when Graal code will be merged into OpenJDK >> mainline. Is there a roadmap or it is not going to happen soon (next >> >> years)? >> >> >> cheers, >> br?ulio >> >> -- >> "Lute pela sua ideologia. Seja um com sua ideologia. Viva pela sua >> ideologia. Morra por sua ideologia" P.R. Sarkar >> >> EITA - Educa??o, Informa??o e Tecnologias para Autogest?o >> http://cirandas.net/brauliobo >> http://eita.org.br >> >> "Paramapurusha ? meu pai e Parama Prakriti ? minha m?e. O universo ? meu >> lar e todos n?s somos cidad?os deste cosmo. Este universo ? a imagina??o >> >> da >> >> Mente Macroc?smica, e todas as entidades est?o sendo criadas, >> >> preservadas e >> >> destru?das nas fases de extrovers?o e introvers?o do fluxo imaginativo >> c?smico. No ?mbito pessoal, quando uma pessoa imagina algo em sua mente, >> naquele momento, essa pessoa ? a ?nica propriet?ria daquilo que ela >> imagina, e ningu?m mais. Quando um ser humano criado mentalmente caminha >> por um milharal tamb?m imaginado, a pessoa imaginada n?o ? a propriedade >> desse milharal, pois ele pertence ao indiv?duo que o est? imaginando. >> >> Este >> >> universo foi criado na imagina??o de Brahma, a Entidade Suprema, por isso >> a propriedade deste universo ? de Brahma, e n?o dos microcosmos que >> >> tamb?m >> >> foram criados pela imagina??o de Brahma. Nenhuma propriedade deste mundo, >> mut?vel ou imut?vel, pertence a um indiv?duo em particular; tudo ? o >> patrim?nio comum de todos." >> Restante do texto em >> http://cirandas.net/brauliobo/blog/a-problematica-de-hoje-em-dia >> >> >> >> >> > > From brauliobo at gmail.com Fri Mar 13 16:58:10 2015 From: brauliobo at gmail.com (=?UTF-8?Q?Br=C3=A1ulio_Bhavamitra?=) Date: Fri, 13 Mar 2015 13:58:10 -0300 Subject: Is graal VM going to be part of a future JDK release? In-Reply-To: References: Message-ID: Thank you Chris, Unfortunetely, I'm still using a 32bit. That's probably why I couldn't build graal from hg repo. I'll update to a 64bit system when possible... It only supports 64bit right? cheers, br?ulio 2015-03-13 10:52 GMT-03:00 Chris Seaton : > Hi Br?ulio, > > There?s no specific date yet of when Graal might be integrated into > OpenJDK. > > You can of course install a binary build of GraalVM, which isn?t much > different from installing an OpenJDK build > http://lafo.ssw.uni-linz.ac.at/builds. For the specific use case of > JRuby, the ruby-build plugin to rbenv can already install JRuby+Truffle, > with GraalVM bundled so all you have to do is run ?run? and you?ll get > Graal. > > $ rbenv install jruby-9.0.0.0+graal-dev > $ rbenv shell jruby-9.0.0.0+graal-dev > $ ruby -X+T -e 'puts Truffle.graal?' > true > > I think you can do something similar in RVM but not sure of the specifics > at the moment. > > If you are interested in JRuby+Truffle, join us in #jruby on Freenode IRC. > > Regards, > > Chris > > On 13 Mar 2015, at 00:45, Br?ulio Bhavamitra wrote: > > Hello all, > > Sorry for asking this out of my anxiety... > > Having seen the incredible results when using the Graal VM with JRuby > Truffle, I wonder if and when Graal code will be merged into OpenJDK > mainline. Is there a roadmap or it is not going to happen soon (next > years)? > > cheers, > br?ulio > > -- > "Lute pela sua ideologia. Seja um com sua ideologia. Viva pela sua > ideologia. Morra por sua ideologia" P.R. Sarkar > > EITA - Educa??o, Informa??o e Tecnologias para Autogest?o > http://cirandas.net/brauliobo > http://eita.org.br > > "Paramapurusha ? meu pai e Parama Prakriti ? minha m?e. O universo ? meu > lar e todos n?s somos cidad?os deste cosmo. Este universo ? a imagina??o da > Mente Macroc?smica, e todas as entidades est?o sendo criadas, preservadas e > destru?das nas fases de extrovers?o e introvers?o do fluxo imaginativo > c?smico. No ?mbito pessoal, quando uma pessoa imagina algo em sua mente, > naquele momento, essa pessoa ? a ?nica propriet?ria daquilo que ela > imagina, e ningu?m mais. Quando um ser humano criado mentalmente caminha > por um milharal tamb?m imaginado, a pessoa imaginada n?o ? a propriedade > desse milharal, pois ele pertence ao indiv?duo que o est? imaginando. Este > universo foi criado na imagina??o de Brahma, a Entidade Suprema, por isso > a propriedade deste universo ? de Brahma, e n?o dos microcosmos que tamb?m > foram criados pela imagina??o de Brahma. Nenhuma propriedade deste mundo, > mut?vel ou imut?vel, pertence a um indiv?duo em particular; tudo ? o > patrim?nio comum de todos." > Restante do texto em > http://cirandas.net/brauliobo/blog/a-problematica-de-hoje-em-dia > > > -- "Lute pela sua ideologia. Seja um com sua ideologia. Viva pela sua ideologia. Morra por sua ideologia" P.R. Sarkar EITA - Educa??o, Informa??o e Tecnologias para Autogest?o http://cirandas.net/brauliobo http://eita.org.br "Paramapurusha ? meu pai e Parama Prakriti ? minha m?e. O universo ? meu lar e todos n?s somos cidad?os deste cosmo. Este universo ? a imagina??o da Mente Macroc?smica, e todas as entidades est?o sendo criadas, preservadas e destru?das nas fases de extrovers?o e introvers?o do fluxo imaginativo c?smico. No ?mbito pessoal, quando uma pessoa imagina algo em sua mente, naquele momento, essa pessoa ? a ?nica propriet?ria daquilo que ela imagina, e ningu?m mais. Quando um ser humano criado mentalmente caminha por um milharal tamb?m imaginado, a pessoa imaginada n?o ? a propriedade desse milharal, pois ele pertence ao indiv?duo que o est? imaginando. Este universo foi criado na imagina??o de Brahma, a Entidade Suprema, por isso a propriedade deste universo ? de Brahma, e n?o dos microcosmos que tamb?m foram criados pela imagina??o de Brahma. Nenhuma propriedade deste mundo, mut?vel ou imut?vel, pertence a um indiv?duo em particular; tudo ? o patrim?nio comum de todos." Restante do texto em http://cirandas.net/brauliobo/blog/a-problematica-de-hoje-em-dia From chris.seaton at oracle.com Fri Mar 13 17:18:43 2015 From: chris.seaton at oracle.com (Chris Seaton) Date: Fri, 13 Mar 2015 17:18:43 +0000 Subject: Is graal VM going to be part of a future JDK release? In-Reply-To: References: Message-ID: <2C567D8E-608D-4694-A1ED-9ED4926CD767@oracle.com> Yes Graal only supports 64bit architectures. Chris > On 13 Mar 2015, at 16:58, Br?ulio Bhavamitra wrote: > > Thank you Chris, > > Unfortunetely, I'm still using a 32bit. That's probably why I couldn't build graal from hg repo. > > I'll update to a 64bit system when possible... It only supports 64bit right? > > cheers, > br?ulio > > 2015-03-13 10:52 GMT-03:00 Chris Seaton >: > Hi Br?ulio, > > There?s no specific date yet of when Graal might be integrated into OpenJDK. > > You can of course install a binary build of GraalVM, which isn?t much different from installing an OpenJDK build http://lafo.ssw.uni-linz.ac.at/builds . For the specific use case of JRuby, the ruby-build plugin to rbenv can already install JRuby+Truffle, with GraalVM bundled so all you have to do is run ?run? and you?ll get Graal. > > $ rbenv install jruby-9.0.0.0+graal-dev > $ rbenv shell jruby-9.0.0.0+graal-dev > $ ruby -X+T -e 'puts Truffle.graal?' > true > > I think you can do something similar in RVM but not sure of the specifics at the moment. > > If you are interested in JRuby+Truffle, join us in #jruby on Freenode IRC. > > Regards, > > Chris > >> On 13 Mar 2015, at 00:45, Br?ulio Bhavamitra > wrote: >> >> Hello all, >> >> Sorry for asking this out of my anxiety... >> >> Having seen the incredible results when using the Graal VM with JRuby >> Truffle, I wonder if and when Graal code will be merged into OpenJDK >> mainline. Is there a roadmap or it is not going to happen soon (next years)? >> >> cheers, >> br?ulio >> >> -- >> "Lute pela sua ideologia. Seja um com sua ideologia. Viva pela sua >> ideologia. Morra por sua ideologia" P.R. Sarkar >> >> EITA - Educa??o, Informa??o e Tecnologias para Autogest?o >> http://cirandas.net/brauliobo >> http://eita.org.br >> >> "Paramapurusha ? meu pai e Parama Prakriti ? minha m?e. O universo ? meu >> lar e todos n?s somos cidad?os deste cosmo. Este universo ? a imagina??o da >> Mente Macroc?smica, e todas as entidades est?o sendo criadas, preservadas e >> destru?das nas fases de extrovers?o e introvers?o do fluxo imaginativo >> c?smico. No ?mbito pessoal, quando uma pessoa imagina algo em sua mente, >> naquele momento, essa pessoa ? a ?nica propriet?ria daquilo que ela >> imagina, e ningu?m mais. Quando um ser humano criado mentalmente caminha >> por um milharal tamb?m imaginado, a pessoa imaginada n?o ? a propriedade >> desse milharal, pois ele pertence ao indiv?duo que o est? imaginando. Este >> universo foi criado na imagina??o de Brahma, a Entidade Suprema, por isso >> a propriedade deste universo ? de Brahma, e n?o dos microcosmos que tamb?m >> foram criados pela imagina??o de Brahma. Nenhuma propriedade deste mundo, >> mut?vel ou imut?vel, pertence a um indiv?duo em particular; tudo ? o >> patrim?nio comum de todos." >> Restante do texto em >> http://cirandas.net/brauliobo/blog/a-problematica-de-hoje-em-dia > > > > > -- > "Lute pela sua ideologia. Seja um com sua ideologia. Viva pela sua ideologia. Morra por sua ideologia" P.R. Sarkar > > EITA - Educa??o, Informa??o e Tecnologias para Autogest?o > http://cirandas.net/brauliobo > http://eita.org.br > > "Paramapurusha ? meu pai e Parama Prakriti ? minha m?e. O universo ? meu lar e todos n?s somos cidad?os deste cosmo. Este universo ? a imagina??o da Mente Macroc?smica, e todas as entidades est?o sendo criadas, preservadas e destru?das nas fases de extrovers?o e introvers?o do fluxo imaginativo c?smico. No ?mbito pessoal, quando uma pessoa imagina algo em sua mente, naquele momento, essa pessoa ? a ?nica propriet?ria daquilo que ela imagina, e ningu?m mais. Quando um ser humano criado mentalmente caminha por um milharal tamb?m imaginado, a pessoa imaginada n?o ? a propriedade desse milharal, pois ele pertence ao indiv?duo que o est? imaginando. Este universo foi criado na imagina??o de Brahma, a Entidade Suprema, por isso a propriedade deste universo ? de Brahma, e n?o dos microcosmos que tamb?m foram criados pela imagina??o de Brahma. Nenhuma propriedade deste mundo, mut?vel ou imut?vel, pertence a um indiv?duo em particular; tudo ? o patrim?nio comum de todos." > Restante do texto em http://cirandas.net/brauliobo/blog/a-problematica-de-hoje-em-dia From brauliobo at gmail.com Fri Mar 13 17:20:24 2015 From: brauliobo at gmail.com (=?UTF-8?Q?Br=C3=A1ulio_Bhavamitra?=) Date: Fri, 13 Mar 2015 14:20:24 -0300 Subject: Is graal VM going to be part of a future JDK release? In-Reply-To: References: Message-ID: Could not install jruby via rbenv: ~/P/n/cirandas git:cirandas ??? rbenv install jruby-9.0.0.0+graal-dev ? ? ? ? no nightly builds available Downloading jruby-dist-9.0.0.0-SNAPSHOT+graal--bin.tar.gz... -> http://lafo.ssw.uni-linz.ac.at/graalvm/jruby-dist-9.0.0.0-SNAPSHOT+graal--bin.tar.gz error: failed to download jruby-9.0.0.0-SNAPSHOT.tar.gz BUILD FAILED (Ubuntu 14.10 using ruby-build 20150303) ~/P/n/cirandas git:cirandas ??? wget http://lafo.ssw.uni-linz.ac.at/graalvm/jruby-dist-9.0.0.0-SNAPSHOT+graal--bin.tar.gz ? ? ? ? --2015-03-13 14:19:58-- http://lafo.ssw.uni-linz.ac.at/graalvm/jruby-dist-9.0.0.0-SNAPSHOT+graal--bin.tar.gz Resolvendo lafo.ssw.uni-linz.ac.at (lafo.ssw.uni-linz.ac.at)... 140.78.145.6 Conectando-se a lafo.ssw.uni-linz.ac.at (lafo.ssw.uni-linz.ac.at)|140.78.145.6|:80... conectado. A requisi??o HTTP foi enviada, aguardando resposta... 404 Not Found 2015-03-13 14:19:59 ERRO 404: Not Found. 2015-03-13 10:52 GMT-03:00 Chris Seaton : > Hi Br?ulio, > > There?s no specific date yet of when Graal might be integrated into > OpenJDK. > > You can of course install a binary build of GraalVM, which isn?t much > different from installing an OpenJDK build > http://lafo.ssw.uni-linz.ac.at/builds. For the specific use case of > JRuby, the ruby-build plugin to rbenv can already install JRuby+Truffle, > with GraalVM bundled so all you have to do is run ?run? and you?ll get > Graal. > > $ rbenv install jruby-9.0.0.0+graal-dev > $ rbenv shell jruby-9.0.0.0+graal-dev > $ ruby -X+T -e 'puts Truffle.graal?' > true > > I think you can do something similar in RVM but not sure of the specifics > at the moment. > > If you are interested in JRuby+Truffle, join us in #jruby on Freenode IRC. > > Regards, > > Chris > > On 13 Mar 2015, at 00:45, Br?ulio Bhavamitra wrote: > > Hello all, > > Sorry for asking this out of my anxiety... > > Having seen the incredible results when using the Graal VM with JRuby > Truffle, I wonder if and when Graal code will be merged into OpenJDK > mainline. Is there a roadmap or it is not going to happen soon (next > years)? > > cheers, > br?ulio > > -- > "Lute pela sua ideologia. Seja um com sua ideologia. Viva pela sua > ideologia. Morra por sua ideologia" P.R. Sarkar > > EITA - Educa??o, Informa??o e Tecnologias para Autogest?o > http://cirandas.net/brauliobo > http://eita.org.br > > "Paramapurusha ? meu pai e Parama Prakriti ? minha m?e. O universo ? meu > lar e todos n?s somos cidad?os deste cosmo. Este universo ? a imagina??o da > Mente Macroc?smica, e todas as entidades est?o sendo criadas, preservadas e > destru?das nas fases de extrovers?o e introvers?o do fluxo imaginativo > c?smico. No ?mbito pessoal, quando uma pessoa imagina algo em sua mente, > naquele momento, essa pessoa ? a ?nica propriet?ria daquilo que ela > imagina, e ningu?m mais. Quando um ser humano criado mentalmente caminha > por um milharal tamb?m imaginado, a pessoa imaginada n?o ? a propriedade > desse milharal, pois ele pertence ao indiv?duo que o est? imaginando. Este > universo foi criado na imagina??o de Brahma, a Entidade Suprema, por isso > a propriedade deste universo ? de Brahma, e n?o dos microcosmos que tamb?m > foram criados pela imagina??o de Brahma. Nenhuma propriedade deste mundo, > mut?vel ou imut?vel, pertence a um indiv?duo em particular; tudo ? o > patrim?nio comum de todos." > Restante do texto em > http://cirandas.net/brauliobo/blog/a-problematica-de-hoje-em-dia > > > -- "Lute pela sua ideologia. Seja um com sua ideologia. Viva pela sua ideologia. Morra por sua ideologia" P.R. Sarkar EITA - Educa??o, Informa??o e Tecnologias para Autogest?o http://cirandas.net/brauliobo http://eita.org.br "Paramapurusha ? meu pai e Parama Prakriti ? minha m?e. O universo ? meu lar e todos n?s somos cidad?os deste cosmo. Este universo ? a imagina??o da Mente Macroc?smica, e todas as entidades est?o sendo criadas, preservadas e destru?das nas fases de extrovers?o e introvers?o do fluxo imaginativo c?smico. No ?mbito pessoal, quando uma pessoa imagina algo em sua mente, naquele momento, essa pessoa ? a ?nica propriet?ria daquilo que ela imagina, e ningu?m mais. Quando um ser humano criado mentalmente caminha por um milharal tamb?m imaginado, a pessoa imaginada n?o ? a propriedade desse milharal, pois ele pertence ao indiv?duo que o est? imaginando. Este universo foi criado na imagina??o de Brahma, a Entidade Suprema, por isso a propriedade deste universo ? de Brahma, e n?o dos microcosmos que tamb?m foram criados pela imagina??o de Brahma. Nenhuma propriedade deste mundo, mut?vel ou imut?vel, pertence a um indiv?duo em particular; tudo ? o patrim?nio comum de todos." Restante do texto em http://cirandas.net/brauliobo/blog/a-problematica-de-hoje-em-dia From chris.seaton at oracle.com Fri Mar 13 17:27:18 2015 From: chris.seaton at oracle.com (Chris Seaton) Date: Fri, 13 Mar 2015 17:27:18 +0000 Subject: Is graal VM going to be part of a future JDK release? In-Reply-To: References: Message-ID: The error message that is buried there is 'no nightly builds available?. It means it can?t find a 32bit build (as there aren?t any). This is the code responsible - I?m not sure why that exit command isn?t working. https://github.com/sstephenson/ruby-build/blob/master/bin/ruby-build#L605-L618 Chris > On 13 Mar 2015, at 17:20, Br?ulio Bhavamitra wrote: > > Could not install jruby via rbenv: > > ~/P/n/cirandas git:cirandas ??? rbenv install jruby-9.0.0.0+graal-dev ? ? ? ? > no nightly builds available > Downloading jruby-dist-9.0.0.0-SNAPSHOT+graal--bin.tar.gz... > -> http://lafo.ssw.uni-linz.ac.at/graalvm/jruby-dist-9.0.0.0-SNAPSHOT+graal--bin.tar.gz > error: failed to download jruby-9.0.0.0-SNAPSHOT.tar.gz > > BUILD FAILED (Ubuntu 14.10 using ruby-build 20150303) > > ~/P/n/cirandas git:cirandas ??? wget http://lafo.ssw.uni-linz.ac.at/graalvm/jruby-dist-9.0.0.0-SNAPSHOT+graal--bin.tar.gz ? ? ? ? > --2015-03-13 14:19:58-- http://lafo.ssw.uni-linz.ac.at/graalvm/jruby-dist-9.0.0.0-SNAPSHOT+graal--bin.tar.gz > Resolvendo lafo.ssw.uni-linz.ac.at (lafo.ssw.uni-linz.ac.at )... 140.78.145.6 > Conectando-se a lafo.ssw.uni-linz.ac.at (lafo.ssw.uni-linz.ac.at )|140.78.145.6|:80... conectado. > A requisi??o HTTP foi enviada, aguardando resposta... 404 Not Found > 2015-03-13 14:19:59 ERRO 404: Not Found. > > > 2015-03-13 10:52 GMT-03:00 Chris Seaton >: > Hi Br?ulio, > > There?s no specific date yet of when Graal might be integrated into OpenJDK. > > You can of course install a binary build of GraalVM, which isn?t much different from installing an OpenJDK build http://lafo.ssw.uni-linz.ac.at/builds . For the specific use case of JRuby, the ruby-build plugin to rbenv can already install JRuby+Truffle, with GraalVM bundled so all you have to do is run ?run? and you?ll get Graal. > > $ rbenv install jruby-9.0.0.0+graal-dev > $ rbenv shell jruby-9.0.0.0+graal-dev > $ ruby -X+T -e 'puts Truffle.graal?' > true > > I think you can do something similar in RVM but not sure of the specifics at the moment. > > If you are interested in JRuby+Truffle, join us in #jruby on Freenode IRC. > > Regards, > > Chris > >> On 13 Mar 2015, at 00:45, Br?ulio Bhavamitra > wrote: >> >> Hello all, >> >> Sorry for asking this out of my anxiety... >> >> Having seen the incredible results when using the Graal VM with JRuby >> Truffle, I wonder if and when Graal code will be merged into OpenJDK >> mainline. Is there a roadmap or it is not going to happen soon (next years)? >> >> cheers, >> br?ulio >> >> -- >> "Lute pela sua ideologia. Seja um com sua ideologia. Viva pela sua >> ideologia. Morra por sua ideologia" P.R. Sarkar >> >> EITA - Educa??o, Informa??o e Tecnologias para Autogest?o >> http://cirandas.net/brauliobo >> http://eita.org.br >> >> "Paramapurusha ? meu pai e Parama Prakriti ? minha m?e. O universo ? meu >> lar e todos n?s somos cidad?os deste cosmo. Este universo ? a imagina??o da >> Mente Macroc?smica, e todas as entidades est?o sendo criadas, preservadas e >> destru?das nas fases de extrovers?o e introvers?o do fluxo imaginativo >> c?smico. No ?mbito pessoal, quando uma pessoa imagina algo em sua mente, >> naquele momento, essa pessoa ? a ?nica propriet?ria daquilo que ela >> imagina, e ningu?m mais. Quando um ser humano criado mentalmente caminha >> por um milharal tamb?m imaginado, a pessoa imaginada n?o ? a propriedade >> desse milharal, pois ele pertence ao indiv?duo que o est? imaginando. Este >> universo foi criado na imagina??o de Brahma, a Entidade Suprema, por isso >> a propriedade deste universo ? de Brahma, e n?o dos microcosmos que tamb?m >> foram criados pela imagina??o de Brahma. Nenhuma propriedade deste mundo, >> mut?vel ou imut?vel, pertence a um indiv?duo em particular; tudo ? o >> patrim?nio comum de todos." >> Restante do texto em >> http://cirandas.net/brauliobo/blog/a-problematica-de-hoje-em-dia > > > > > -- > "Lute pela sua ideologia. Seja um com sua ideologia. Viva pela sua ideologia. Morra por sua ideologia" P.R. Sarkar > > EITA - Educa??o, Informa??o e Tecnologias para Autogest?o > http://cirandas.net/brauliobo > http://eita.org.br > > "Paramapurusha ? meu pai e Parama Prakriti ? minha m?e. O universo ? meu lar e todos n?s somos cidad?os deste cosmo. Este universo ? a imagina??o da Mente Macroc?smica, e todas as entidades est?o sendo criadas, preservadas e destru?das nas fases de extrovers?o e introvers?o do fluxo imaginativo c?smico. No ?mbito pessoal, quando uma pessoa imagina algo em sua mente, naquele momento, essa pessoa ? a ?nica propriet?ria daquilo que ela imagina, e ningu?m mais. Quando um ser humano criado mentalmente caminha por um milharal tamb?m imaginado, a pessoa imaginada n?o ? a propriedade desse milharal, pois ele pertence ao indiv?duo que o est? imaginando. Este universo foi criado na imagina??o de Brahma, a Entidade Suprema, por isso a propriedade deste universo ? de Brahma, e n?o dos microcosmos que tamb?m foram criados pela imagina??o de Brahma. Nenhuma propriedade deste mundo, mut?vel ou imut?vel, pertence a um indiv?duo em particular; tudo ? o patrim?nio comum de todos." > Restante do texto em http://cirandas.net/brauliobo/blog/a-problematica-de-hoje-em-dia From thomas.wuerthinger at oracle.com Fri Mar 13 22:46:40 2015 From: thomas.wuerthinger at oracle.com (Thomas Wuerthinger) Date: Fri, 13 Mar 2015 23:46:40 +0100 Subject: Is graal VM going to be part of a future JDK release? In-Reply-To: References: <865EF5F4-5193-458D-B7B9-DC737C6F5DCC@oracle.com> Message-ID: <7AC2A39B-110C-452D-950F-0D1BB31D8561@oracle.com> Vitaly, It does. Running your example with -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly and Graal?s OTN binary release, I get the following assembly snippets: ... 0x0000000106516d74: vmovsd 0x10(%rdx,%rbx,8),%xmm0 ;*daload ; - Test::calc at 12 (line 21) ... 0x0000000106516d86: vmovsd 0x10(%rcx,%rbx,8),%xmm1 ;*daload ; - Test::calc at 15 (line 21) ... 0x0000000106516d8c: vmulsd %xmm1,%xmm0,%xmm0 ... 0x0000000106516d9c: vmovsd %xmm0,0x10(%rsi,%rbx,8) ;*dastore ? We are still working on generalising the set of recognized patterns and creating the optimal machine code representation for the target architecture once we understand the vector operation structure. - thomas > On 13 Mar 2015, at 17:32, Vitaly Davidovich wrote: > > Thomas, > > AFAIK, graal has some intrinsics that use vector instructions (I think array copy/equals?), but does it also auto-vectorize, say, arithmetic? > > for (int i = 0; i < some_trip_count; ++i) > a[i] = b[i] * c[i]; > > Does it unroll and vectorize that? > > Thanks > > > On Fri, Mar 13, 2015 at 12:07 PM, Thomas Wuerthinger > wrote: > Vitaly, > > We are equally committed to Java performance as we are to Truffle guest language performance. While we are currently making the largest difference for JavaScript, Ruby, and R, we expect to also make a significant difference for Java in the future. The mentioned OTN release of Graal already includes auto-vectorisation features. We have several larger areas where we try to further push the current limits of Java performance. > > - thomas > > >> On 13 Mar 2015, at 16:38, Vitaly Davidovich > wrote: >> >> Thanks Thomas. >> >> I've been lurking on this mailing list for a while, so sort of have a big picture view of what's happening. However, as most conversations here tend to center around guest languages, I wasn't quite sure what the "value-add", so to speak, was for plain old java code. >> >> Regarding (c) in your email, yes, the somewhat naive inlining policy is annoying (e.g. assert statements possibly screwing with inlining decisions). However, in C2, there's also a different inlining threshold for very hot code (i.e. FreqInlineSize flag), which by default is 325 or so. I believe there's also ongoing work on incremental inlining. In light of that, does graal's late inlining policy still help somewhere? Just curious. >> >> Do you guys have any plans to support some things that C2 currently lacks, such as autovectorization of arithmetic/logic/etc operations on, say, arrays? That would be pretty sweet. Or is the (near to mid-term, at least) focus going to remain on supporting guest languages? >> >> Thanks >> >> On Fri, Mar 13, 2015 at 11:29 AM, Thomas Wuerthinger > wrote: >> Vitaly, >> >> Graal has a very different design from C2 and therefore it has distinct performance characteristics. We invite developers to try our latest OTN release [1] on their applications and give us feedback. >> >> The largest three distinguishing factors are: >> a) Guard optimizations for efficient handling of speculative code - this has its biggest impact on the JavaScript, Ruby [2], and R [3] implementations built on Graal?s multi-language framework Truffle. >> b) Partial escape analysis to reduce object allocations even if the object escapes on some paths. >> c) Improved inlining strategy that explores the call tree and performs late inlining as default instead of inlining during bytecode parsing. >> >> We expect to publish a new improved version of Graal in another OTN release in the next couple of months. >> >> Regards, thomas >> >> [1] http://www.oracle.com/technetwork/oracle-labs/program-languages/overview/index-2301583.html >> [2] https://github.com/jruby/jruby/wiki/Truffle >> [3] https://bitbucket.org/allr/fastr >> >>> On 13 Mar 2015, at 16:01, Vitaly Davidovich > wrote: >>> >>> Chris (or anyone else really), >>> >>> Are there any optimizations that graal does better (or at all) than >>> Hotspot's C2? I know it has flow sensitive EA - are there other things? >>> >>> Thanks >>> >>> sent from my phone >>> On Mar 13, 2015 9:53 AM, "Chris Seaton" > wrote: >>> >>>> Hi Br?ulio, >>>> >>>> There?s no specific date yet of when Graal might be integrated into >>>> OpenJDK. >>>> >>>> You can of course install a binary build of GraalVM, which isn?t much >>>> different from installing an OpenJDK build >>>> http://lafo.ssw.uni-linz.ac.at/builds < >>>> http://lafo.ssw.uni-linz.ac.at/builds >. For the specific use case of >>>> JRuby, the ruby-build plugin to rbenv can already install JRuby+Truffle, >>>> with GraalVM bundled so all you have to do is run ?run? and you?ll get >>>> Graal. >>>> >>>> $ rbenv install jruby-9.0.0.0+graal-dev >>>> $ rbenv shell jruby-9.0.0.0+graal-dev >>>> $ ruby -X+T -e 'puts Truffle.graal?' >>>> true >>>> >>>> I think you can do something similar in RVM but not sure of the specifics >>>> at the moment. >>>> >>>> If you are interested in JRuby+Truffle, join us in #jruby on Freenode IRC. >>>> >>>> Regards, >>>> >>>> Chris >>>> >>>>> On 13 Mar 2015, at 00:45, Br?ulio Bhavamitra > >>>> wrote: >>>>> >>>>> Hello all, >>>>> >>>>> Sorry for asking this out of my anxiety... >>>>> >>>>> Having seen the incredible results when using the Graal VM with JRuby >>>>> Truffle, I wonder if and when Graal code will be merged into OpenJDK >>>>> mainline. Is there a roadmap or it is not going to happen soon (next >>>> years)? >>>>> >>>>> cheers, >>>>> br?ulio >>>>> >>>>> -- >>>>> "Lute pela sua ideologia. Seja um com sua ideologia. Viva pela sua >>>>> ideologia. Morra por sua ideologia" P.R. Sarkar >>>>> >>>>> EITA - Educa??o, Informa??o e Tecnologias para Autogest?o >>>>> http://cirandas.net/brauliobo >>>>> http://eita.org.br >>>>> >>>>> "Paramapurusha ? meu pai e Parama Prakriti ? minha m?e. O universo ? meu >>>>> lar e todos n?s somos cidad?os deste cosmo. Este universo ? a imagina??o >>>> da >>>>> Mente Macroc?smica, e todas as entidades est?o sendo criadas, >>>> preservadas e >>>>> destru?das nas fases de extrovers?o e introvers?o do fluxo imaginativo >>>>> c?smico. No ?mbito pessoal, quando uma pessoa imagina algo em sua mente, >>>>> naquele momento, essa pessoa ? a ?nica propriet?ria daquilo que ela >>>>> imagina, e ningu?m mais. Quando um ser humano criado mentalmente caminha >>>>> por um milharal tamb?m imaginado, a pessoa imaginada n?o ? a propriedade >>>>> desse milharal, pois ele pertence ao indiv?duo que o est? imaginando. >>>> Este >>>>> universo foi criado na imagina??o de Brahma, a Entidade Suprema, por isso >>>>> a propriedade deste universo ? de Brahma, e n?o dos microcosmos que >>>> tamb?m >>>>> foram criados pela imagina??o de Brahma. Nenhuma propriedade deste mundo, >>>>> mut?vel ou imut?vel, pertence a um indiv?duo em particular; tudo ? o >>>>> patrim?nio comum de todos." >>>>> Restante do texto em >>>>> http://cirandas.net/brauliobo/blog/a-problematica-de-hoje-em-dia >>>> >>>> >> >> > > From vitalyd at gmail.com Fri Mar 13 23:01:25 2015 From: vitalyd at gmail.com (Vitaly Davidovich) Date: Fri, 13 Mar 2015 19:01:25 -0400 Subject: Is graal VM going to be part of a future JDK release? In-Reply-To: <7AC2A39B-110C-452D-950F-0D1BB31D8561@oracle.com> References: <865EF5F4-5193-458D-B7B9-DC737C6F5DCC@oracle.com> <7AC2A39B-110C-452D-950F-0D1BB31D8561@oracle.com> Message-ID: Awesome! Ok, now need to find some time to play with it. Thanks Thomas sent from my phone On Mar 13, 2015 6:42 PM, "Thomas Wuerthinger" wrote: > Vitaly, > > It does. Running your example with -XX:+UnlockDiagnosticVMOptions > -XX:+PrintAssembly and Graal?s OTN binary release, I get the following > assembly snippets: > > ... > 0x0000000106516d74: vmovsd 0x10(%rdx,%rbx,8),%xmm0 ;*daload > ; - Test::calc at 12 (line > 21) > ... > 0x0000000106516d86: vmovsd 0x10(%rcx,%rbx,8),%xmm1 ;*daload > ; - Test::calc at 15 (line > 21) > ... > 0x0000000106516d8c: vmulsd %xmm1,%xmm0,%xmm0 > ... > 0x0000000106516d9c: vmovsd %xmm0,0x10(%rsi,%rbx,8) ;*dastore > ? > > We are still working on generalising the set of recognized patterns and > creating the optimal machine code representation for the target > architecture once we understand the vector operation structure. > > - thomas > > > On 13 Mar 2015, at 17:32, Vitaly Davidovich wrote: > > Thomas, > > AFAIK, graal has some intrinsics that use vector instructions (I think > array copy/equals?), but does it also auto-vectorize, say, arithmetic? > > for (int i = 0; i < some_trip_count; ++i) > a[i] = b[i] * c[i]; > > Does it unroll and vectorize that? > > Thanks > > > On Fri, Mar 13, 2015 at 12:07 PM, Thomas Wuerthinger < > thomas.wuerthinger at oracle.com> wrote: > >> Vitaly, >> >> We are equally committed to Java performance as we are to Truffle guest >> language performance. While we are currently making the largest difference >> for JavaScript, Ruby, and R, we expect to also make a significant >> difference for Java in the future. The mentioned OTN release of Graal >> already includes auto-vectorisation features. We have several larger areas >> where we try to further push the current limits of Java performance. >> >> - thomas >> >> >> On 13 Mar 2015, at 16:38, Vitaly Davidovich wrote: >> >> Thanks Thomas. >> >> I've been lurking on this mailing list for a while, so sort of have a big >> picture view of what's happening. However, as most conversations here tend >> to center around guest languages, I wasn't quite sure what the "value-add", >> so to speak, was for plain old java code. >> >> Regarding (c) in your email, yes, the somewhat naive inlining policy is >> annoying (e.g. assert statements possibly screwing with inlining >> decisions). However, in C2, there's also a different inlining threshold >> for very hot code (i.e. FreqInlineSize flag), which by default is 325 or >> so. I believe there's also ongoing work on incremental inlining. In light >> of that, does graal's late inlining policy still help somewhere? Just >> curious. >> >> Do you guys have any plans to support some things that C2 currently >> lacks, such as autovectorization of arithmetic/logic/etc operations on, >> say, arrays? That would be pretty sweet. Or is the (near to mid-term, at >> least) focus going to remain on supporting guest languages? >> >> Thanks >> >> On Fri, Mar 13, 2015 at 11:29 AM, Thomas Wuerthinger < >> thomas.wuerthinger at oracle.com> wrote: >> >>> Vitaly, >>> >>> Graal has a very different design from C2 and therefore it has distinct >>> performance characteristics. We invite developers to try our latest OTN >>> release [1] on their applications and give us feedback. >>> >>> The largest three distinguishing factors are: >>> a) Guard optimizations for efficient handling of speculative code - this >>> has its biggest impact on the JavaScript, Ruby [2], and R [3] >>> implementations built on Graal?s multi-language framework Truffle. >>> b) Partial escape analysis to reduce object allocations even if the >>> object escapes on some paths. >>> c) Improved inlining strategy that explores the call tree and performs >>> late inlining as default instead of inlining during bytecode parsing. >>> >>> We expect to publish a new improved version of Graal in another OTN >>> release in the next couple of months. >>> >>> Regards, thomas >>> >>> [1] >>> http://www.oracle.com/technetwork/oracle-labs/program-languages/overview/index-2301583.html >>> >>> [2] https://github.com/jruby/jruby/wiki/Truffle >>> [3] https://bitbucket.org/allr/fastr >>> >>> On 13 Mar 2015, at 16:01, Vitaly Davidovich wrote: >>> >>> Chris (or anyone else really), >>> >>> Are there any optimizations that graal does better (or at all) than >>> Hotspot's C2? I know it has flow sensitive EA - are there other things? >>> >>> Thanks >>> >>> sent from my phone >>> On Mar 13, 2015 9:53 AM, "Chris Seaton" wrote: >>> >>> Hi Br?ulio, >>> >>> There?s no specific date yet of when Graal might be integrated into >>> OpenJDK. >>> >>> You can of course install a binary build of GraalVM, which isn?t much >>> different from installing an OpenJDK build >>> http://lafo.ssw.uni-linz.ac.at/builds < >>> http://lafo.ssw.uni-linz.ac.at/builds>. For the specific use case of >>> JRuby, the ruby-build plugin to rbenv can already install JRuby+Truffle, >>> with GraalVM bundled so all you have to do is run ?run? and you?ll get >>> Graal. >>> >>> $ rbenv install jruby-9.0.0.0+graal-dev >>> $ rbenv shell jruby-9.0.0.0+graal-dev >>> $ ruby -X+T -e 'puts Truffle.graal?' >>> true >>> >>> I think you can do something similar in RVM but not sure of the specifics >>> at the moment. >>> >>> If you are interested in JRuby+Truffle, join us in #jruby on Freenode >>> IRC. >>> >>> Regards, >>> >>> Chris >>> >>> On 13 Mar 2015, at 00:45, Br?ulio Bhavamitra >>> >>> wrote: >>> >>> >>> Hello all, >>> >>> Sorry for asking this out of my anxiety... >>> >>> Having seen the incredible results when using the Graal VM with JRuby >>> Truffle, I wonder if and when Graal code will be merged into OpenJDK >>> mainline. Is there a roadmap or it is not going to happen soon (next >>> >>> years)? >>> >>> >>> cheers, >>> br?ulio >>> >>> -- >>> "Lute pela sua ideologia. Seja um com sua ideologia. Viva pela sua >>> ideologia. Morra por sua ideologia" P.R. Sarkar >>> >>> EITA - Educa??o, Informa??o e Tecnologias para Autogest?o >>> http://cirandas.net/brauliobo >>> http://eita.org.br >>> >>> "Paramapurusha ? meu pai e Parama Prakriti ? minha m?e. O universo ? meu >>> lar e todos n?s somos cidad?os deste cosmo. Este universo ? a imagina??o >>> >>> da >>> >>> Mente Macroc?smica, e todas as entidades est?o sendo criadas, >>> >>> preservadas e >>> >>> destru?das nas fases de extrovers?o e introvers?o do fluxo imaginativo >>> c?smico. No ?mbito pessoal, quando uma pessoa imagina algo em sua mente, >>> naquele momento, essa pessoa ? a ?nica propriet?ria daquilo que ela >>> imagina, e ningu?m mais. Quando um ser humano criado mentalmente caminha >>> por um milharal tamb?m imaginado, a pessoa imaginada n?o ? a propriedade >>> desse milharal, pois ele pertence ao indiv?duo que o est? imaginando. >>> >>> Este >>> >>> universo foi criado na imagina??o de Brahma, a Entidade Suprema, por isso >>> a propriedade deste universo ? de Brahma, e n?o dos microcosmos que >>> >>> tamb?m >>> >>> foram criados pela imagina??o de Brahma. Nenhuma propriedade deste mundo, >>> mut?vel ou imut?vel, pertence a um indiv?duo em particular; tudo ? o >>> patrim?nio comum de todos." >>> Restante do texto em >>> http://cirandas.net/brauliobo/blog/a-problematica-de-hoje-em-dia >>> >>> >>> >>> >>> >> >> > > From doug.simon at oracle.com Sat Mar 14 02:00:24 2015 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Sat, 14 Mar 2015 02:00:24 +0000 Subject: hg: graal/graal: 23 new changesets Message-ID: <201503140200.t2E20OlL005580@aojmv0008> Changeset: ab1e960217ef Author: Doug Simon Date: 2015-03-13 10:52 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/ab1e960217ef fixed NPE when creating an InstanceOfDynamicNode during parsing ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/InstanceOfDynamicNode.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/StandardGraphBuilderPlugins.java Changeset: c9e3131099fb Author: Doug Simon Date: 2015-03-13 11:06 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/c9e3131099fb added StringIndexOutOfBoundsException to TruffleCompilerImpl.SKIPPED_EXCEPTION_CLASSES ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCompilerImpl.java Changeset: e87d55dfbbbb Author: Doug Simon Date: 2015-03-13 11:26 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/e87d55dfbbbb trigger building all dependencies in NetBeans only when needed Contributed-by: Jaroslav Tulach ! mxtool/mx.py Changeset: 97da0b90e0f3 Author: Thomas Wuerthinger Date: 2015-03-13 12:26 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/97da0b90e0f3 Use host backend when generating a new instance for HotSpotNativeFunctionInterface. ! graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBackend.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nfi/HotSpotNativeFunctionInterface.java Changeset: 6b73ce815fc2 Author: Thomas Wuerthinger Date: 2015-03-12 23:24 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/6b73ce815fc2 Add a new algorithm for latest possible schedule. Fix earliest possible schedule for the case of floating reads. Add scheduling test cases. ! graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/LocationIdentity.java ! graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/cfg/AbstractControlFlowGraph.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/GraalCompilerTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/GraphScheduleTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/MemoryScheduleTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/SchedulingTest.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/LIRGenerationPhase.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/NodeLIRBuilder.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/match/MatchContext.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/match/MatchPattern.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/match/MatchRuleRegistry.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/match/MatchStatement.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/BinaryArithmeticNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/Block.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/ControlFlowGraph.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/HIRLoop.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/NodeLIRBuilderTool.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/NodeMappableLIRBuilder.java ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/LoweringPhase.java ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/ProfileCompiledMethodsPhase.java ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/graph/ScheduledNodeIterator.java ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/util/GraphOrder.java ! graal/com.oracle.graal.printer/src/com/oracle/graal/printer/BinaryGraphPrinter.java ! graal/com.oracle.graal.printer/src/com/oracle/graal/printer/CFGPrinter.java ! graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapeClosure.java Changeset: 2fcc5ea8c110 Author: Thomas Wuerthinger Date: 2015-03-12 23:25 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/2fcc5ea8c110 Merge. - graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/Assumptions.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/GraalCompilerTest.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/word/HotSpotWordTypeRewriterPhase.java ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java - graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/BlackholeSubstitutions.java - graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/BoxingSubstitutions.java - graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/CharacterSubstitutions.java - graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ClassSubstitutions.java - graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DoubleSubstitutions.java - graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/EdgesSubstitutions.java - graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/FloatSubstitutions.java - graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/GraalDirectivesSubstitutions.java - graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ShortSubstitutions.java - graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/UnsignedMathSubstitutions.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/CompilerDirectivesSubstitutions.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/ExactMathSubstitutions.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/FrameWithoutBoxingSubstitutions.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/OptimizedCallTargetSubstitutions.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/UnsafeAccessSubstitutions.java - graal/com.oracle.graal.word/src/com/oracle/graal/word/phases/WordTypeRewriterPhase.java - graal/com.oracle.graal.word/src/com/oracle/graal/word/phases/WordTypeVerificationPhase.java Changeset: e89ca1d8ab5a Author: Thomas Wuerthinger Date: 2015-03-12 23:48 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/e89ca1d8ab5a Remove code of the old schedule algorithm. ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/GraalCompilerTest.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java Changeset: 5d624638e8a5 Author: Thomas Wuerthinger Date: 2015-03-12 23:49 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/5d624638e8a5 Add LocationSet file. + graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/LocationSet.java Changeset: 79682c7f2ec7 Author: Thomas Wuerthinger Date: 2015-03-13 12:27 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/79682c7f2ec7 Merge. - graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/TruffleEventListener.java - graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/impl/DefaultEventListener.java - graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/impl/SimpleEventListener.java Changeset: 79d5fbcc6978 Author: Thomas Wuerthinger Date: 2015-03-13 15:38 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/79d5fbcc6978 Merge. Changeset: 05a2fbf0e9a0 Author: Thomas Wuerthinger Date: 2015-03-13 16:19 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/05a2fbf0e9a0 Fix for FindBugs false positive. ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java Changeset: 8aa5bd9935b3 Author: Thomas Wuerthinger Date: 2015-03-13 16:47 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/8aa5bd9935b3 Turn UnboxNode into a fixed node. ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnboxNode.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/BoxingSnippets.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/NodeIntrinsificationPhase.java Changeset: a312673d5f8f Author: Thomas Wuerthinger Date: 2015-03-13 17:32 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/a312673d5f8f Use earliest possible schedule in effects phase instead of latest possible schedule. ! graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/EffectsPhase.java Changeset: 5342c99cba81 Author: Thomas Wuerthinger Date: 2015-03-13 21:34 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/5342c99cba81 Small fixes in GraphOrder and SchedulePhase. ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/util/GraphOrder.java Changeset: 71f8edb4fc7d Author: Thomas Wuerthinger Date: 2015-03-13 21:43 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/71f8edb4fc7d Fix formatting. ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/util/GraphOrder.java Changeset: f388e1591799 Author: Thomas Wuerthinger Date: 2015-03-13 22:35 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/f388e1591799 Create NodeStack implementation to replace inefficient Stack. + graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeStack.java ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java Changeset: 6c1b2ae65d6c Author: Thomas Wuerthinger Date: 2015-03-13 22:55 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/6c1b2ae65d6c Simplifications of SchedulePhase#processStack. ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java Changeset: 80d48cc80222 Author: Thomas Wuerthinger Date: 2015-03-13 22:59 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/80d48cc80222 Small data structure optimizations in SchedulePhase. ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java Changeset: 5e27aa02bb92 Author: Doug Simon Date: 2015-03-13 23:15 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/5e27aa02bb92 only do eager resolving for replacements that are intrinsics ! graal/com.oracle.graal.java/src/com/oracle/graal/java/AbstractBytecodeParser.java Changeset: 93b74f0db076 Author: Doug Simon Date: 2015-03-13 23:27 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/93b74f0db076 don't treat Truffle method inlining substitutions as graph builder replacements ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotInlineInvokePlugin.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderContext.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPlugin.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java Changeset: cd6821e84e59 Author: Doug Simon Date: 2015-03-13 23:46 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/cd6821e84e59 disabled crypto intrinsics until partial intrinsification (i.e., self recursive intrinsics) bug is fixed ! graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/HotSpotCryptoSubstitutionTest.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/HotSpotSubstitutions.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/Replacements.java Changeset: 834e5392ac05 Author: Doug Simon Date: 2015-03-14 00:23 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/834e5392ac05 inline intrinsics during bytecode paring only if -G:+Inline or -G:+InlineDuringParsing ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotInlineInvokePlugin.java Changeset: a9fbe23a602b Author: Doug Simon Date: 2015-03-14 00:24 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/a9fbe23a602b Merge. From doug.simon at oracle.com Sun Mar 15 02:00:22 2015 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Sun, 15 Mar 2015 02:00:22 +0000 Subject: hg: graal/graal: 16 new changesets Message-ID: <201503150200.t2F20MPL028808@aojmv0008> Changeset: c2124d859d91 Author: Thomas Wuerthinger Date: 2015-03-14 01:02 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/c2124d859d91 Remove LocationIdentity interface from ResolvedJavaField and add ResolvedJavaField#getLocationIdentity method instead. ! graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/ResolvedJavaField.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaFieldImpl.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultJavaLoweringProvider.java ! graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PEReadEliminationBlockState.java ! graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PEReadEliminationClosure.java ! graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/ReadEliminationClosure.java Changeset: 426461951938 Author: Thomas Wuerthinger Date: 2015-03-14 01:09 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/426461951938 Convert LocationIdentity from an interface into an abstract class. ! graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/LocationIdentity.java ! graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/NamedLocationIdentity.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/ObjectLocationIdentity.java Changeset: 3d0116ec99c5 Author: Thomas Wuerthinger Date: 2015-03-14 01:28 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/3d0116ec99c5 Create utilities LocationIdentity#isAny, LocationIdentity#isSingle, LocationIdentity#any, LocationIdentity#overlaps. ! graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/ForeignCallsProvider.java ! graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/LocationIdentity.java ! graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/NamedLocationIdentity.java ! graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotForeignCallsProvider.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotForeignCallsProvider.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/DefaultHotSpotLoweringProvider.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotHostForeignCallsProvider.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaFieldImpl.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotWordOperationPlugin.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/BeginLockScopeNode.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/EndLockScopeNode.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/SaveAllRegistersNode.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/AESCryptSubstitutions.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CipherBlockChainingSubstitutions.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/HotSpotReplacementsUtil.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ThreadSubstitutions.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/WriteBarrierSnippets.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/arraycopy/ArrayCopyCallNode.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/arraycopy/UnsafeArrayCopyNode.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/arraycopy/UnsafeArrayCopySnippets.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeWithExceptionNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MemoryMapNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/StartNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/Block.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/HIRLoop.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/LocationSet.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/BytecodeExceptionNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/FloatableAccessNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/MembarNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/MemoryCheckpoint.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnsafeAccessNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/ExceptionObjectNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/MonitorEnterNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/MonitorExitNode.java ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/FloatingReadPhase.java ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/ObjectAccessTest.java ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/PointerTest.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/StandardGraphBuilderPlugins.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/WordOperationPlugin.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/MacroStateSplitNode.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/ObjectLocationIdentity.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/typesystem/CustomizedUnsafeLoadMacroNode.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/typesystem/CustomizedUnsafeStoreMacroNode.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/TruffleGraphBuilderPlugins.java ! graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PEReadEliminationClosure.java ! graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/ReadEliminationClosure.java ! graal/com.oracle.graal.word/src/com/oracle/graal/word/nodes/SnippetLocationNode.java Changeset: 7fdfb533dc7a Author: Thomas Wuerthinger Date: 2015-03-14 01:57 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/7fdfb533dc7a Rewrite gathering of loop kill information of FloatingReadPhase to reduce set allocations. ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/HIRLoop.java ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/FloatingReadPhase.java Changeset: e17f04731c61 Author: Thomas Wuerthinger Date: 2015-03-14 02:04 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/e17f04731c61 Merge. ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java Changeset: e532af44f9f9 Author: Thomas Wuerthinger Date: 2015-03-14 12:14 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/e532af44f9f9 Fix WriteBarrierAdditionTest. ! graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/WriteBarrierVerificationTest.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaFieldImpl.java Changeset: bcc0069dba6f Author: Thomas Wuerthinger Date: 2015-03-14 13:19 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/bcc0069dba6f Add a unit test for the new ResolvedJavaField API method getLocationIdentity. ! graal/com.oracle.graal.api.meta.test/src/com/oracle/graal/api/meta/test/TestResolvedJavaField.java Changeset: be176e7088ed Author: Thomas Wuerthinger Date: 2015-03-14 14:03 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/be176e7088ed Relax check invariants for usage of ==. ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/verify/VerifyUsageWithEquals.java Changeset: 88e8fe50ccac Author: Thomas Wuerthinger Date: 2015-03-14 14:05 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/88e8fe50ccac Simplified NamedLocationIdentity #hashCode and #equals. ! graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/NamedLocationIdentity.java Changeset: 67e4da9a7c0e Author: Thomas Wuerthinger Date: 2015-03-14 14:14 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/67e4da9a7c0e Reduce # of MemoryCheckpoint#Multi. ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/DeoptimizationFetchUnrollInfoCallNode.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/UncommonTrapCallNode.java Changeset: 77c667701cf3 Author: Thomas Wuerthinger Date: 2015-03-14 17:59 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/77c667701cf3 Small simplification in GraphBuilderPhase. ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java Changeset: 4178f9830a27 Author: Thomas Wuerthinger Date: 2015-03-14 19:15 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/4178f9830a27 Assign the state after when appending the node and not automatically in the main graph builder loop. ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotGraphBuilderPlugins.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/AbstractBytecodeParser.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderContext.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultGenericInvocationPlugin.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/StandardGraphBuilderPlugins.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/WordOperationPlugin.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/TruffleGraphBuilderPlugins.java Changeset: edd37b7d6679 Author: Thomas Wuerthinger Date: 2015-03-14 20:42 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/edd37b7d6679 Turn a check for non-null stateAfter of an invoke into an assertion. ! graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Node.java ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningUtil.java Changeset: 63b6ad88b08f Author: Thomas Wuerthinger Date: 2015-03-14 22:29 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/63b6ad88b08f Consolidation of new allocation stubs to use the standard ForeignCallNode. ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotBackend.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotHostForeignCallsProvider.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/NewArrayStubCall.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/NewInstanceStubCall.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/NewMultiArrayStubCall.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/NewObjectSnippets.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ForeignCallNode.java Changeset: 82f65fca8da6 Author: Thomas Wuerthinger Date: 2015-03-14 22:38 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/82f65fca8da6 Fix javadoc. ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotBackend.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/NewArrayStub.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/NewInstanceStub.java Changeset: 1cbbdc29ab45 Author: Thomas Wuerthinger Date: 2015-03-14 22:45 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/1cbbdc29ab45 Remove dead code in GraphBuilderPhase. ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java From doug.simon at oracle.com Mon Mar 16 02:00:08 2015 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Mon, 16 Mar 2015 02:00:08 +0000 Subject: hg: graal/graal: 4 new changesets Message-ID: <201503160200.t2G2087f018447@aojmv0008> Changeset: ba265a5410e0 Author: Thomas Wuerthinger Date: 2015-03-15 13:40 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/ba265a5410e0 Add utility Node#pushInputs(NodeStack). ! graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Edges.java ! graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Node.java ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java ! graal/com.oracle.graal.printer/src/com/oracle/graal/printer/BinaryGraphPrinter.java Changeset: d4c45ab543c8 Author: Thomas Wuerthinger Date: 2015-03-15 14:16 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/d4c45ab543c8 Remove metric ConstantNodes. Make LocalLiveness log output only available when assertions are enabled. ! graal/com.oracle.graal.java/src/com/oracle/graal/java/LocalLiveness.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ConstantNode.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java Changeset: 7d933ffe6df6 Author: Thomas Wuerthinger Date: 2015-03-15 14:22 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/7d933ffe6df6 Remove fine grained debug scopes in the canonicalizer. ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/CanonicalizerPhase.java Changeset: e808c8324035 Author: Thomas Wuerthinger Date: 2015-03-15 16:22 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/e808c8324035 Support optional last access location in the scheduler phase. ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java From doug.simon at oracle.com Tue Mar 17 02:00:08 2015 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Tue, 17 Mar 2015 02:00:08 +0000 Subject: hg: graal/graal: 8 new changesets Message-ID: <201503170200.t2H208vx015494@aojmv0008> Changeset: bd953f563517 Author: Gilles Duboscq Date: 2015-03-16 12:23 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/bd953f563517 mx: followup fix for SC_ARG_MAX, add more assetions ! mxtool/mx.py Changeset: 51da1608115e Author: Roland Schatz Date: 2015-03-13 15:20 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/51da1608115e Move isCompressed method to HotSpotConstant interface. ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotCompressedNullConstant.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotConstant.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotMetaspaceConstant.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotObjectConstant.java Changeset: 89dd568a845d Author: Roland Schatz Date: 2015-03-13 15:23 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/89dd568a845d Allow arbitrary constants in CompilationResultBuilder.recordInlineDataInCode. ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/asm/CompilationResultBuilder.java Changeset: ac254887bfcd Author: Roland Schatz Date: 2015-03-16 14:17 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/ac254887bfcd Make LIRGeneratorTool.append(op) return the op. ! graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/gen/LIRGenerator.java ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/gen/LIRGeneratorTool.java Changeset: 89c729e9e0a4 Author: Roland Schatz Date: 2015-03-16 15:12 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/89c729e9e0a4 Refactoring of AMD64 code generation. ! graal/com.oracle.graal.asm.amd64.test/src/com/oracle/graal/asm/amd64/test/BitOpsTest.java ! graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64Assembler.java ! graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64MacroAssembler.java ! graal/com.oracle.graal.compiler.amd64/src/com/oracle/graal/compiler/amd64/AMD64LIRGenerator.java ! graal/com.oracle.graal.compiler.amd64/src/com/oracle/graal/compiler/amd64/AMD64NodeLIRBuilder.java - graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotCompare.java + graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotCompareConstOp.java + graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotCompareMemoryConstOp.java + graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotComparePatchOp.java ! graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java ! graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotNodeLIRBuilder.java ! graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64AddressValue.java ! graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Arithmetic.java + graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64BinaryCommutativeOp.java + graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64BinaryConstOp.java + graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64BinaryMemoryOp.java + graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64BinaryOp.java + graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64BinaryPatchOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64BitManipulationOp.java + graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64ClearRegisterOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Compare.java + graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64CompareConstOp.java + graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64CompareMemoryConstOp.java + graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64CompareMemoryOp.java + graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64CompareOp.java + graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64MulConstOp.java + graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64MulDivOp.java + graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64RegStackConstOp.java + graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64ShiftOp.java + graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64SignExtendOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64TestMemoryOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64TestOp.java + graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64UnaryMOp.java + graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64UnaryMROp.java + graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64UnaryMemoryOp.java + graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64UnaryRMOp.java Changeset: f803f49c9ec4 Author: Christian Humer Date: 2015-03-16 13:47 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/f803f49c9ec4 Truffle: fixed TruffleCompilationExceptionsAreThrown was ignored for non permanent bailouts. ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/OptimizedCallTarget.java Changeset: 1d6a7ea5de59 Author: Michael Van De Vanter Date: 2015-03-16 15:59 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/1d6a7ea5de59 Truffle/Instrumentation: remove support for "probe-lite", an optimization for a particular use case that no longer seems worth the complexity. ! graal/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/instrument/InstrumentationTest.java ! graal/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/tools/TestNodes.java ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ProbeFailure.java ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/ProbeNode.java ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/Node.java ! graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLExpressionWrapperNode.java ! graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/instrument/SLStatementWrapperNode.java Changeset: ab898f9f9c3c Author: Michael Van De Vanter Date: 2015-03-16 16:54 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/ab898f9f9c3c Merge with f803f49c9ec423cb1c87a510c29fd61afd6a8c57 - graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotCompare.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64BitManipulationOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Compare.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64TestMemoryOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64TestOp.java From doug.simon at oracle.com Tue Mar 17 14:03:00 2015 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Tue, 17 Mar 2015 14:03:00 +0000 Subject: hg: graal/graal: 19 new changesets Message-ID: <201503171403.t2HE30uo001641@aojmv0008> Changeset: 9f1404a45a6f Author: Stefan Anzinger Date: 2015-03-12 17:08 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/9f1404a45a6f [SPARC] Add com.oracle.nfi.test.NativeFunctionInterfaceTest to blacklist for SPARC ! test/blacklist_sparc.txt Changeset: 7d74d3ad09f4 Author: Stefan Anzinger Date: 2015-03-13 11:28 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/7d74d3ad09f4 Merge - graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/TruffleEventListener.java - graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/impl/DefaultEventListener.java - graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/impl/SimpleEventListener.java Changeset: 8e316bc46018 Author: Stefan Anzinger Date: 2015-03-17 12:05 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/8e316bc46018 [SPARC] remove debug code for mmap() ! src/os/solaris/vm/os_solaris.cpp Changeset: 825f5c7468bd Author: Stefan Anzinger Date: 2015-03-17 12:05 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/825f5c7468bd Merge - graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotCompare.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/NewArrayStubCall.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/NewInstanceStubCall.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/NewMultiArrayStubCall.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64BitManipulationOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Compare.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64TestMemoryOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64TestOp.java Changeset: 823074fd8410 Author: Lukas Stadler Date: 2015-03-17 11:10 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/823074fd8410 remove obsolete assertion from MonitorExitNode ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/MonitorExitNode.java Changeset: 00ee00de0491 Author: Lukas Stadler Date: 2015-03-17 11:11 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/00ee00de0491 fix faulty check in HotSpotTruffleRuntime ! graal/com.oracle.graal.truffle.hotspot/src/com/oracle/graal/truffle/hotspot/HotSpotTruffleRuntime.java Changeset: 16a2f9f367c8 Author: Lukas Stadler Date: 2015-03-17 11:18 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/16a2f9f367c8 add null check in Materialize graphbuilder plugin ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/TruffleGraphBuilderPlugins.java Changeset: 71f64b487b11 Author: Lukas Stadler Date: 2015-03-17 13:27 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/71f64b487b11 handle proxies with null inputs in SchedulePhase ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java Changeset: 52c9b1959f95 Author: Doug Simon Date: 2015-03-12 17:13 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/52c9b1959f95 fixed syntax error Contributed-by: igor.ignatyev at oracle.com ! src/cpu/x86/vm/sharedRuntime_x86_32.cpp Changeset: 3cc8aa066ed3 Author: Doug Simon Date: 2015-03-12 22:10 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/3cc8aa066ed3 made resolution of method with InvocationPlugins lazy ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/CheckGraalInvariants.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/FinalizableSubclassTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/tutorial/StaticAnalysis.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotGraphBuilderPlugins.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotInvocationPlugins.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/SnippetStub.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderConfiguration.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/InvocationPlugins.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsImpl.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/StandardGraphBuilderPlugins.java ! graal/com.oracle.graal.truffle.hotspot/src/com/oracle/graal/truffle/hotspot/HotSpotTruffleRuntime.java ! graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/ExactMathTest.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCompilerImpl.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/TruffleGraphBuilderPlugins.java Changeset: 6a684aeb1590 Author: Doug Simon Date: 2015-03-12 22:19 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/6a684aeb1590 NodeIntrinsificationPhase is given only the providers it needs instead of a Providers object ! graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/WriteBarrierAdditionTest.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotHostBackend.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotGraphBuilderPlugins.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/NodeIntrinsificationPhase.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsImpl.java Changeset: 0c29075aeafe Author: Doug Simon Date: 2015-03-15 10:52 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/0c29075aeafe graph builder plugins are created before GraphBuilderConfigurations and the process for deriving plugins from an existing configuration is simplified ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/CheckGraalInvariants.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/FinalizableSubclassTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/GraalCompilerTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/InfopointReasonTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/inlining/InliningTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/tutorial/StaticAnalysis.java ! graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBackendFactory.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackendFactory.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotHostBackend.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotGraphBuilderPlugins.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotInvocationPlugins.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotProviders.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotSuitesProvider.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/SnippetStub.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/AbstractBytecodeParser.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/DefaultSuitesProvider.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderConfiguration.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/InvocationPlugins.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsImpl.java ! graal/com.oracle.graal.truffle.hotspot/src/com/oracle/graal/truffle/hotspot/HotSpotTruffleRuntime.java ! graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/ExactMathTest.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCompilerImpl.java Changeset: 4d33cd6e0c8f Author: Doug Simon Date: 2015-03-15 11:36 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/4d33cd6e0c8f refactored GraphBuilderConfiguration (and its component classes) into a separate project ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/CheckGraalInvariants.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/FinalizableSubclassTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/GraalCompilerTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/InfopointReasonTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/inlining/InliningTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/tutorial/StaticAnalysis.java ! graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/GraphBuilderConfiguration.java < graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderConfiguration.java + graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/GraphBuilderContext.java + graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/GraphBuilderPlugin.java ! graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/InvocationPlugins.java < graal/com.oracle.graal.java/src/com/oracle/graal/java/InvocationPlugins.java ! graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBackendFactory.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackendFactory.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotGraphBuilderPlugins.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotInlineInvokePlugin.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotInvocationPlugins.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotLoadFieldPlugin.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotLoadIndexedPlugin.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotParameterPlugin.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotProviders.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotSuitesProvider.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotWordOperationPlugin.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/SnippetStub.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/AbstractBytecodeParser.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/DefaultSuitesProvider.java - graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderContext.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java - graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPlugin.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/HIRFrameStateBuilder.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ConstantBindingParameterPlugin.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultGenericInvocationPlugin.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsImpl.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/StandardGraphBuilderPlugins.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/WordOperationPlugin.java ! graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/ExactMathTest.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCacheImpl.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCompilerImpl.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/TruffleGraphBuilderPlugins.java ! mx/suite.py Changeset: 87736c089259 Author: Doug Simon Date: 2015-03-15 11:48 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/87736c089259 refactored graph builder plugins to be top level interfaces + graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/GenericInvocationPlugin.java ! graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/GraphBuilderConfiguration.java ! graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/GraphBuilderPlugin.java + graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/InlineInvokePlugin.java + graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/InvocationPlugin.java ! graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/InvocationPlugins.java + graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/LoadFieldPlugin.java + graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/LoadIndexedPlugin.java + graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/LoopExplosionPlugin.java + graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/ParameterPlugin.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotGraphBuilderPlugins.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotInlineInvokePlugin.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotInvocationPlugins.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotLoadFieldPlugin.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotLoadIndexedPlugin.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotParameterPlugin.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/AbstractBytecodeParser.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/HIRFrameStateBuilder.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ConstantBindingParameterPlugin.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultGenericInvocationPlugin.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/StandardGraphBuilderPlugins.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/WordOperationPlugin.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/TruffleGraphBuilderPlugins.java Changeset: b950967f74c7 Author: Doug Simon Date: 2015-03-17 12:05 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/b950967f74c7 replaced HashMap with a side-table (i.e., an array) for looking up InvocationPlugins ! graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/GraphBuilderConfiguration.java ! graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/InvocationPlugin.java + graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/InvocationPluginIdHolder.java ! graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/InvocationPlugins.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotInlineInvokePlugin.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaMethodImpl.java ! graal/com.oracle.graal.truffle.hotspot/src/com/oracle/graal/truffle/hotspot/HotSpotTruffleRuntime.java ! graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/ExactMathTest.java Changeset: 87c62a38f843 Author: Doug Simon Date: 2015-03-17 12:13 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/87c62a38f843 Merge. ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/GraalCompilerTest.java ! graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/GraphBuilderContext.java ! graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/GraphBuilderPlugin.java ! graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/InlineInvokePlugin.java - graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotCompare.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotGraphBuilderPlugins.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotInlineInvokePlugin.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotWordOperationPlugin.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/NewArrayStubCall.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/NewInstanceStubCall.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/NewMultiArrayStubCall.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/AbstractBytecodeParser.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64BitManipulationOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Compare.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64TestMemoryOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64TestOp.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultGenericInvocationPlugin.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/NodeIntrinsificationPhase.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/StandardGraphBuilderPlugins.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/WordOperationPlugin.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCompilerImpl.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/TruffleGraphBuilderPlugins.java - graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/TruffleEventListener.java - graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/impl/DefaultEventListener.java - graal/com.oracle.truffle.api/src/com/oracle/truffle/api/instrument/impl/SimpleEventListener.java Changeset: 6d142d351bf7 Author: Doug Simon Date: 2015-03-17 12:49 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/6d142d351bf7 Merge. Changeset: e1584086dc20 Author: Doug Simon Date: 2015-03-17 13:45 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/e1584086dc20 removed placeholder code ! graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/InvocationPlugin.java Changeset: 1eea5182d102 Author: Doug Simon Date: 2015-03-17 13:57 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/1eea5182d102 Merge. ! graal/com.oracle.graal.truffle.hotspot/src/com/oracle/graal/truffle/hotspot/HotSpotTruffleRuntime.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/TruffleGraphBuilderPlugins.java From doug.simon at oracle.com Wed Mar 18 02:08:29 2015 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Wed, 18 Mar 2015 02:08:29 +0000 Subject: hg: graal/graal: 37 new changesets Message-ID: <201503180208.t2I28TSv003800@aojmv0008> Changeset: 3ac6b576ef70 Author: Andreas Woess Date: 2015-03-17 14:40 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/3ac6b576ef70 Truffle: respect truffle inlining option in FastPE and replace Stack with ArrayDeque ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java Changeset: aa66d0a6f9dc Author: Andreas Woess Date: 2015-03-17 15:36 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/aa66d0a6f9dc MethodHandleNode: record unique concrete method assumptions ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/MethodHandleNode.java Changeset: 08233b1ae932 Author: Andreas Woess Date: 2015-03-17 15:39 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/08233b1ae932 Truffle: try to inline method handle invocations in FastPE ! graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/SimplePartialEvaluationTest.java + graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/nodes/LambdaTestNode.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java Changeset: 4b6a65cb8ecd Author: Andreas Woess Date: 2015-03-17 15:49 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/4b6a65cb8ecd Truffle: repair TraceTruffleTransferToInterpreter option ! graal/com.oracle.graal.truffle.hotspot/src/com/oracle/graal/truffle/hotspot/HotSpotTruffleRuntime.java Changeset: 706252994ee6 Author: Andreas Woess Date: 2015-03-17 15:52 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/706252994ee6 remove unused code in CurrentJavaThreadNode ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CurrentJavaThreadNode.java Changeset: c3d9637c98ed Author: Thomas Wuerthinger Date: 2015-03-16 21:49 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/c3d9637c98ed Add GraalHostThreads flag to overwrite the number of threads spawned for the baseline compiler. ! src/share/vm/compiler/compileBroker.cpp ! src/share/vm/graal/graalGlobals.hpp Changeset: 6dcbb4e05ce9 Author: Thomas Wuerthinger Date: 2015-03-16 21:50 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/6dcbb4e05ce9 Merge. - graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotCompare.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64BitManipulationOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Compare.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64TestMemoryOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64TestOp.java Changeset: 0b5036d27c02 Author: Thomas Wuerthinger Date: 2015-03-17 13:13 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/0b5036d27c02 Fix for earliest possible schedule when the last node in a block is an invoke. Added a new scheduling test. + graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/SchedulingTest2.java ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java Changeset: 749b96e8ff90 Author: Thomas Wuerthinger Date: 2015-03-17 13:14 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/749b96e8ff90 Merge. Changeset: bce741b26b84 Author: Thomas Wuerthinger Date: 2015-03-17 16:17 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/bce741b26b84 Add memory schedule verification pass. Fix a bug in the new schedule implementation. + graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/MemoryScheduleVerification.java ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java Changeset: b1a15754f63e Author: Thomas Wuerthinger Date: 2015-03-17 17:12 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/b1a15754f63e Assign result maps in schedule phase earlier to have better context in case of exceptions. ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java Changeset: c5c1c2de3cb8 Author: Thomas Wuerthinger Date: 2015-03-17 17:13 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/c5c1c2de3cb8 Fix another bug in the new scheduler found by the new verification phase. ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/Block.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/HIRLoop.java Changeset: d66d53b6b73c Author: Thomas Wuerthinger Date: 2015-03-17 17:15 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/d66d53b6b73c Add another memory schedule test. ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/MemoryScheduleTest.java Changeset: d15769a7e444 Author: Thomas Wuerthinger Date: 2015-03-17 17:16 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/d15769a7e444 Merge. - graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderConfiguration.java - graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderContext.java - graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPlugin.java - graal/com.oracle.graal.java/src/com/oracle/graal/java/InvocationPlugins.java ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java Changeset: 15ef790fec92 Author: Josef Eisl Date: 2015-03-17 13:07 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/15ef790fec92 NewObjectSnippets: work around problems with late binding of snippet parameters in GraphBuilderPlugins. ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/NewObjectSnippets.java Changeset: 658efd741fa6 Author: Josef Eisl Date: 2015-03-17 17:29 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/658efd741fa6 BenchmarkCounters: make thread-safe and refactoring. ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/debug/BenchmarkCounters.java Changeset: eab99dc3134c Author: Josef Eisl Date: 2015-03-17 17:19 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/eab99dc3134c Introduce BenchmarkCounterFactory. + graal/com.oracle.graal.lir/src/com/oracle/graal/lir/gen/BenchmarkCounterFactory.java Changeset: 22b14fba2e99 Author: Josef Eisl Date: 2015-03-17 17:19 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/22b14fba2e99 Make LIRGeneratorTool a BenchmarkCounterFactory. ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/gen/LIRGenerator.java ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/gen/LIRGeneratorTool.java Changeset: d1b9c58e17ce Author: Josef Eisl Date: 2015-03-16 16:35 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/d1b9c58e17ce AMD64Assembler: introduce addq(AMD64Address, Register). ! graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64Assembler.java Changeset: 1fed7073f288 Author: Josef Eisl Date: 2015-03-17 17:18 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp. + graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotCounterOp.java + graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotCounterOp.java + graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotCounterOp.java Changeset: 3bc0ac89fa5a Author: Josef Eisl Date: 2015-03-17 17:19 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/3bc0ac89fa5a {AMD64,SPARC}HotSpotLIRGenerator: implement createBenchmarkCounter(). ! graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotLIRGenerator.java Changeset: d8e7f4eaaa8b Author: Josef Eisl Date: 2015-03-16 17:36 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/d8e7f4eaaa8b Make DynamicCounterNode LIRLowerable. ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/debug/BenchmarkCounters.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/DefaultHotSpotLoweringProvider.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/debug/DynamicCounterNode.java Changeset: 94289b44c934 Author: Josef Eisl Date: 2015-03-16 17:15 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/94289b44c934 Add BenchmarkCounterFactory to PostAllocationOptimizationContext. ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/ControlFlowOptimizer.java ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/EdgeMoveOptimizer.java ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/NullCheckOptimizer.java ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/RedundantMoveElimination.java ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/PostAllocationOptimizationPhase.java Changeset: 32e3d3e53230 Author: Josef Eisl Date: 2015-03-16 17:23 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/32e3d3e53230 Add MoveProfiling. ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/PostAllocationOptimizationStage.java + graal/com.oracle.graal.lir/src/com/oracle/graal/lir/profiling/MoveProfiling.java Changeset: d27ca0a54e36 Author: Josef Eisl Date: 2015-03-16 16:37 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/d27ca0a54e36 LIRPhaseSuite: add copy(). ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LIRPhaseSuite.java Changeset: 34372ac20f0b Author: Josef Eisl Date: 2015-03-16 16:38 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/34372ac20f0b LIRSuites: add copy constructor. ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/phases/LIRSuites.java Changeset: fc1e46a702a1 Author: Josef Eisl Date: 2015-03-16 18:19 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/fc1e46a702a1 Do not include MoveProfiling phases in stub compilation. ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/Stub.java Changeset: 6575b4e3f629 Author: Tom Rodriguez Date: 2015-03-16 15:46 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/6575b4e3f629 Don't force resolution for unloaded field types ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaFieldImpl.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotUnresolvedJavaType.java Changeset: c278c8c727aa Author: Tom Rodriguez Date: 2015-03-16 15:51 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/c278c8c727aa More checks that InductionVariable.direction is valid ! graal/com.oracle.graal.loop/src/com/oracle/graal/loop/CountedLoopInfo.java ! graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopEx.java Changeset: df0608c34899 Author: Tom Rodriguez Date: 2015-03-16 16:38 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/df0608c34899 Don't walk out of loop when estimating unswitch benefits ! graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopEx.java Changeset: 7366593c0610 Author: Tom Rodriguez Date: 2015-03-16 17:37 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/7366593c0610 Make the native initialization path for Graal more robust ! src/share/vm/graal/graalRuntime.cpp ! src/share/vm/graal/graalRuntime.hpp Changeset: ea280aa54d58 Author: Tom Rodriguez Date: 2015-03-17 11:22 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/ea280aa54d58 Fix arg limit on Mac ! mxtool/mx.py Changeset: 815a87264cbb Author: Tom Rodriguez Date: 2015-03-17 11:23 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/815a87264cbb Merge - graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderConfiguration.java - graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderContext.java - graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPlugin.java - graal/com.oracle.graal.java/src/com/oracle/graal/java/InvocationPlugins.java Changeset: 842918052c50 Author: Thomas Wuerthinger Date: 2015-03-18 01:45 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/842918052c50 Add memory proxy support in the new MemoryScheduleVerification. ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/MemoryScheduleVerification.java Changeset: 470fb57cfb31 Author: Thomas Wuerthinger Date: 2015-03-18 01:46 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/470fb57cfb31 Merge. Changeset: 72afcc30c4a0 Author: Christian Humer Date: 2015-03-18 02:17 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/72afcc30c4a0 Truffle: truffle compilation might result in a CancellationException. ! graal/com.oracle.graal.truffle.hotspot/src/com/oracle/graal/truffle/hotspot/HotSpotTruffleRuntime.java Changeset: 575d7607f827 Author: Christian Humer Date: 2015-03-18 02:15 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/575d7607f827 Truffle: implemented new -G:+PrintTruffleExpansionHistogram tool. ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCompilerOptions.java + graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/debug/HistogramInlineInvokePlugin.java From doug.simon at oracle.com Thu Mar 19 02:00:07 2015 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Thu, 19 Mar 2015 02:00:07 +0000 Subject: hg: graal/graal: 21 new changesets Message-ID: <201503190200.t2J207hr003280@aojmv0008> Changeset: b6af1acf00d6 Author: Josef Eisl Date: 2015-03-18 11:30 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/b6af1acf00d6 BenchmarkCounters: add option to turn of number grouping separators. ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/debug/BenchmarkCounters.java Changeset: bf342f564500 Author: Gilles Duboscq Date: 2015-03-17 16:13 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/bf342f564500 GuardsStage: add areDeoptsFixed helper method ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/DefaultHotSpotLoweringProvider.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/StructuredGraph.java Changeset: c37e10bb3aa7 Author: Gilles Duboscq Date: 2015-03-18 14:36 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/c37e10bb3aa7 Remove TailDuplicationPhase ! graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/GraalOptions.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/HighTier.java - graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/TailDuplicationPhase.java ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/info/MultiTypeGuardInlineInfo.java Changeset: fa11aa10bf2c Author: Gilles Duboscq Date: 2014-10-08 15:27 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/fa11aa10bf2c Implement foldStamp for Integer to Float conversions ! graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/type/IntegerStamp.java Changeset: 9aa9db862403 Author: Gilles Duboscq Date: 2014-10-08 16:20 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/9aa9db862403 Implement foldStamp for Float to Integer ops ! graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/type/FloatStamp.java Changeset: 6303a7a525c5 Author: Gilles Duboscq Date: 2015-03-18 15:14 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/6303a7a525c5 Add assert in FloatStamp ! graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/type/FloatStamp.java Changeset: f599ac162bb7 Author: Gilles Duboscq Date: 2015-03-18 15:51 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/f599ac162bb7 CanonicalizerPhase: can not use Debug.handle without a corresponding scope/sandbox ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/CanonicalizerPhase.java Changeset: c7caa3f463e3 Author: Gilles Duboscq Date: 2015-03-18 15:58 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/c7caa3f463e3 FloatStamp.Abs.foldStamp support known-NaN input ! graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/type/FloatStamp.java Changeset: bcfca701c935 Author: Stefan Anzinger Date: 2015-03-17 18:57 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/bcfca701c935 [SPARC] Set lower plugin count estimate for SPARC backend ! graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBackendFactory.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackendFactory.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotGraphBuilderPlugins.java Changeset: da997cdfb0d8 Author: Stefan Anzinger Date: 2015-03-18 13:53 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/da997cdfb0d8 Merge Changeset: 4fe66c16e942 Author: Stefan Anzinger Date: 2015-03-18 15:23 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/4fe66c16e942 [SPARC] (Re)move SPARCScratchRegister into the SPARCMacroAssembler to force usage only during assembly. ! graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCMacroAssembler.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackend.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotCounterOp.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotDeoptimizeCallerOp.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotJumpToExceptionHandlerInCallerOp.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotLIRGenerator.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCArithmetic.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCControlFlow.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCMove.java - graal/com.oracle.graal.sparc/src/com/oracle/graal/sparc/SPARCScratchRegister.java ! graal/com.oracle.graal.truffle.hotspot.sparc/src/com/oracle/graal/truffle/hotspot/sparc/SPARCOptimizedCallTargetInstumentationFactory.java Changeset: ed3e144ced29 Author: Stefan Anzinger Date: 2015-03-18 16:39 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/ed3e144ced29 Merge ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackend.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotDeoptimizeCallerOp.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotJumpToExceptionHandlerInCallerOp.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotLIRGenerator.java ! graal/com.oracle.graal.lir.sparc/src/com/oracle/graal/lir/sparc/SPARCControlFlow.java - graal/com.oracle.graal.sparc/src/com/oracle/graal/sparc/SPARCScratchRegister.java Changeset: 5119e7f07d93 Author: Tom Rodriguez Date: 2015-03-17 19:21 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/5119e7f07d93 Log dequeue of methods from CompileQueue ! src/share/vm/compiler/compileBroker.cpp ! src/share/vm/compiler/compileBroker.hpp ! src/share/vm/runtime/advancedThresholdPolicy.cpp Changeset: 077c16efeb6d Author: Tom Rodriguez Date: 2015-03-17 19:21 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/077c16efeb6d Add option to print CompileQueue occupancy from LogCompilation output ! src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/LogCompilation.java ! src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/LogParser.java + src/share/tools/LogCompilation/src/com/sun/hotspot/tools/compiler/TaskEvent.java Changeset: f2bdbfe9201b Author: Tom Rodriguez Date: 2015-03-17 19:21 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/f2bdbfe9201b Experimentally disallow Graal compiling itself in tiered ! src/share/vm/graal/graalCompiler.cpp ! src/share/vm/graal/graalGlobals.hpp ! src/share/vm/runtime/advancedThresholdPolicy.cpp ! src/share/vm/runtime/simpleThresholdPolicy.inline.hpp Changeset: a3ffdf6ec408 Author: Tom Rodriguez Date: 2015-03-17 19:24 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/a3ffdf6ec408 Relax asserts in ArrayEqualsNodes ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/ArrayEqualsNode.java Changeset: 6a0692faf9fd Author: Tom Rodriguez Date: 2015-03-18 10:01 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/6a0692faf9fd Ignore -Xbatch when the thread is in the middle of class loading ! src/share/vm/compiler/compileBroker.cpp Changeset: f73a6e260e0c Author: Tom Rodriguez Date: 2015-03-18 10:07 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/f73a6e260e0c Merge - graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/TailDuplicationPhase.java - graal/com.oracle.graal.sparc/src/com/oracle/graal/sparc/SPARCScratchRegister.java Changeset: efa840053649 Author: Tom Rodriguez Date: 2015-03-18 11:38 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/efa840053649 Properly handle Guard usages during on stack replacement ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/phases/OnStackReplacementPhase.java Changeset: 212566f9cd69 Author: Gilles Duboscq Date: 2015-03-18 20:17 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/212566f9cd69 Dom-based ConditionalElimination: fix fliped check in processConditionAnchor ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/DominatorConditionalEliminationPhase.java Changeset: b94503d3840c Author: Doug Simon Date: 2015-03-18 21:01 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/b94503d3840c removed logic for estimating invocation plugin count ! graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/InvocationPlugins.java ! graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBackendFactory.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackendFactory.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotGraphBuilderPlugins.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotInvocationPlugins.java From christian.wimmer at oracle.com Fri Mar 20 01:26:56 2015 From: christian.wimmer at oracle.com (Christian Wimmer) Date: Thu, 19 Mar 2015 18:26:56 -0700 Subject: Recording and slides of Graal tutorial Message-ID: <550B7760.1090404@oracle.com> Hi, The screen recording as well as the slides of my 3-hour tutorial on Graal (delivered at the CGO conference in February) are now available: https://wiki.openjdk.java.net/display/Graal/Publications+and+Presentations Topics covered: * Key distinguishing features of Graal, * Introduction to the Graal IR: basic properties, instructions, and optimization phases * Speculative optimizations: first-class support for optimistic optimizations and deoptimization * Graal API: separation of the compiler from the VM * Snippets: expressing high-level semantics in low-level Java code * Compiler intrinsics: use all your hardware instructions with Graal * Using Graal for static analysis * Custom compilations with Graal: integration of the compiler with an application or library * Graal as a compiler for dynamic programming languages in the Truffle framework -Christian From doug.simon at oracle.com Fri Mar 20 02:00:09 2015 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Fri, 20 Mar 2015 02:00:09 +0000 Subject: hg: graal/graal: 21 new changesets Message-ID: <201503200200.t2K20AeM013853@aojmv0008> Changeset: 59c2d62927f7 Author: Gilles Duboscq Date: 2015-03-19 10:28 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/59c2d62927f7 Canonicalizer: tryCanonicalize: return early if the custom canonicalizer has simplified the node away ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/CanonicalizerPhase.java Changeset: b3a2e8e564ad Author: Thomas Wuerthinger Date: 2015-03-18 21:36 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/b3a2e8e564ad Fix a bug in the schedule phase and tighten asserts. ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/SchedulePhase.java Changeset: 5ee90d1bf6cd Author: Thomas Wuerthinger Date: 2015-03-18 21:36 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/5ee90d1bf6cd Merge. Changeset: a252927dfbfd Author: Thomas Wuerthinger Date: 2015-03-18 23:26 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/a252927dfbfd Fix an issue when the result of canonicalization is appended in the graph builder. Introduce GraphBuilderPhase#recursiveAppend. ! graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Node.java ! graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/GraphBuilderContext.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/AbstractBytecodeParser.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/StandardGraphBuilderPlugins.java Changeset: a9145e7b14b4 Author: Thomas Wuerthinger Date: 2015-03-18 23:26 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/a9145e7b14b4 Merge. Changeset: 69215066602a Author: Thomas Wuerthinger Date: 2015-03-19 11:22 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/69215066602a Merge. Changeset: c39d8bafd342 Author: Thomas Wuerthinger Date: 2015-03-19 11:53 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/c39d8bafd342 Guard constant folding with !ImmutableCode. ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotGraphBuilderPlugins.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassGetClassLoader0Node.java Changeset: 517cbecdc20f Author: Doug Simon Date: 2015-03-18 11:46 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/517cbecdc20f factored out assertion checks around application of an InvocationPlugin and added a check that all StateSplit nodes added by a plugin have a non-null frame state ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java Changeset: cd38af126abf Author: Doug Simon Date: 2015-03-18 12:39 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/cd38af126abf use cheaper test for whether or not a method has a substitution ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningUtil.java Changeset: 3a1ce0aeb829 Author: Doug Simon Date: 2015-03-19 12:46 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/3a1ce0aeb829 added support for checking nodes added to the graph by an Invocation plugin and used this to check that only legal constants are added under ImmutableCode ! graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/InvocationPlugins.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotInvocationPlugins.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/phases/AheadOfTimeVerificationPhase.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java Changeset: e018185695f6 Author: Doug Simon Date: 2015-03-19 12:46 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/e018185695f6 removed overly strict assertions in InstanceOfDynamicNode constructor ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/InstanceOfDynamicNode.java ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/StandardMethodSubstitutionsTest.java Changeset: 812fc403db8c Author: Doug Simon Date: 2015-03-19 12:47 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/812fc403db8c Merge. ! graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/InvocationPlugins.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotInvocationPlugins.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java - graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/TailDuplicationPhase.java - graal/com.oracle.graal.sparc/src/com/oracle/graal/sparc/SPARCScratchRegister.java Changeset: 999430bcc941 Author: Thomas Wuerthinger Date: 2015-03-19 15:38 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/999430bcc941 Small fix for memory schedule verification. The begin node is not always the first node in the block if it is at the same time also the end node. ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/MemoryScheduleVerification.java Changeset: 71040f48cc34 Author: Gilles Duboscq Date: 2015-03-19 19:27 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/71040f48cc34 TraceDeoptimization: print compiler and compile_id ! src/share/vm/runtime/deoptimization.cpp Changeset: 9b669776bf8a Author: Doug Simon Date: 2015-03-19 22:31 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/9b669776bf8a added null checking for the receiver when inlining or applying an InvocationPlugin during graph parsing ! graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/GraphBuilderContext.java ! graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/InvocationPlugin.java ! graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/InvocationPlugins.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotGraphBuilderPlugins.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/AbstractBytecodeParser.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/HIRFrameStateBuilder.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GuardingPiNode.java ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/UnsafeSubstitutionsTest.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/StandardGraphBuilderPlugins.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/TruffleGraphBuilderPlugins.java Changeset: 51cbcbc3eac8 Author: Tom Rodriguez Date: 2015-03-19 17:22 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/51cbcbc3eac8 Only report snippet cache overflow once ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java Changeset: 841ab4da4dd8 Author: Tom Rodriguez Date: 2015-03-19 17:23 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/841ab4da4dd8 Improve assertion message ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/DeadCodeEliminationPhase.java Changeset: 9bd252b8e3ad Author: Tom Rodriguez Date: 2015-03-19 17:25 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/9bd252b8e3ad Check for null installedCode when reporting events ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilationTask.java Changeset: 8964b0b777b7 Author: Tom Rodriguez Date: 2015-03-19 17:48 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/8964b0b777b7 Reduce amount of work done by Node.verify by default ! graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Graph.java ! graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Node.java Changeset: a5ee3e32dc62 Author: Tom Rodriguez Date: 2015-03-19 18:03 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/a5ee3e32dc62 Don't let NoClassDefFoundError leak when reflectively looking up Method ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaMethodImpl.java Changeset: ccdcd530a3ec Author: Tom Rodriguez Date: 2015-03-19 18:03 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/ccdcd530a3ec Add support for multithreaded CTW ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompileTheWorld.java From doug.simon at oracle.com Sat Mar 21 02:00:08 2015 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Sat, 21 Mar 2015 02:00:08 +0000 Subject: hg: graal/graal: 16 new changesets Message-ID: <201503210200.t2L208mR014250@aojmv0008> Changeset: dba496fc044a Author: Gilles Duboscq Date: 2015-03-20 10:11 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/dba496fc044a LoopFragment: Proxy input may be null ! graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopFragment.java Changeset: 30ad420c16fd Author: Doug Simon Date: 2015-03-20 16:05 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/30ad420c16fd removed Receiver.isNullConstant() since InvocationPlugins will never be applied if the receiver is the null constant ! graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/InvocationPlugins.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotGraphBuilderPlugins.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/StandardGraphBuilderPlugins.java Changeset: 46dde3e92715 Author: Roland Schatz Date: 2015-03-20 17:59 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/46dde3e92715 Restructure AMD64 LIR classes. ! graal/com.oracle.graal.compiler.amd64/src/com/oracle/graal/compiler/amd64/AMD64LIRGenerator.java ! graal/com.oracle.graal.compiler.amd64/src/com/oracle/graal/compiler/amd64/AMD64NodeLIRBuilder.java + graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBinaryConsumer.java - graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotCompareConstOp.java - graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotCompareMemoryConstOp.java - graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotComparePatchOp.java ! graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java + graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Binary.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64BinaryCommutativeOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64BinaryConstOp.java + graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64BinaryConsumer.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64BinaryMemoryOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64BinaryOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64BinaryPatchOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64CompareConstOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64CompareMemoryConstOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64CompareMemoryOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64CompareOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64MulConstOp.java ! graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64MulDivOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64RegStackConstOp.java ! graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64ShiftOp.java + graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Unary.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64UnaryMOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64UnaryMROp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64UnaryMemoryOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64UnaryRMOp.java Changeset: f259c81821ef Author: Roland Schatz Date: 2015-03-20 19:09 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/f259c81821ef Simplify code generation for AMD64 memory access instructions. ! graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64Assembler.java ! graal/com.oracle.graal.compiler.amd64/src/com/oracle/graal/compiler/amd64/AMD64LIRGenerator.java ! graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBinaryConsumer.java ! graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java ! graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotMove.java ! graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Move.java Changeset: f7b3b0c5c3e5 Author: Andreas Woess Date: 2015-03-20 15:53 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/f7b3b0c5c3e5 Truffle: ValueProfile should extend NodeCloneable ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/ValueProfile.java Changeset: a0971187a38a Author: Andreas Woess Date: 2015-03-20 15:59 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/a0971187a38a Truffle: always check type in UnsafeNodeField ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/NodeUtil.java Changeset: cd59085cf0d8 Author: Andreas Woess Date: 2015-03-20 17:08 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/cd59085cf0d8 Truffle: remove Node#onAdopt() hook ! CHANGELOG.md - graal/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/OnAdoptTest.java ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/Node.java Changeset: 596f6f9a7412 Author: Christian Humer Date: 2015-03-20 18:59 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/596f6f9a7412 Truffle: make loop node implementation exchangable for graal runtime versions. + graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/DefaultLoopNodeFactory.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/GraalTruffleRuntime.java + graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/LoopNodeFactory.java + graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PrioritizedServiceProvider.java Changeset: 2727a2be2391 Author: Christian Humer Date: 2015-03-20 19:00 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/2727a2be2391 Truffle: simplify loop node implementation. ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/OptimizedLoopNode.java ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultLoopNode.java ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/LoopNode.java Changeset: 4cd28f6e3485 Author: Christian Humer Date: 2015-03-20 19:00 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/4cd28f6e3485 Truffle: refactor trivial node count calculation and expose and API that enables to use it for Node subtrees. ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/DefaultTruffleSplittingStrategy.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/DefaultTruffleSplittingStrategyNew.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/OptimizedCallTarget.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleInlining.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/debug/AbstractDebugCompilationListener.java Changeset: f792b4270cb1 Author: Christian Humer Date: 2015-03-20 19:00 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/f792b4270cb1 Truffle: simplify inAtomicBlock assertion. ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/nodes/Node.java Changeset: ec6093a28cf3 Author: Christian Humer Date: 2015-03-20 19:00 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/ec6093a28cf3 Truffle: use compare functions for MethodStatistics. ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/debug/HistogramInlineInvokePlugin.java Changeset: 933bfa4995c8 Author: Christian Humer Date: 2015-03-20 22:09 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/933bfa4995c8 Truffle: some tweaks to the PrintTruffleExpansionHistogram. ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/debug/HistogramInlineInvokePlugin.java Changeset: e07cd1f09a9d Author: Doug Simon Date: 2015-03-20 23:17 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/e07cd1f09a9d GraphBuilderConfiguration.copy() should do what it's javadoc says ! graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/GraphBuilderConfiguration.java Changeset: bd7a66d0e37a Author: Doug Simon Date: 2015-03-20 23:18 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/bd7a66d0e37a removed left over temporary code ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/UnsafeSubstitutionsTest.java Changeset: a8d664e10e4f Author: Doug Simon Date: 2015-03-20 23:19 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/a8d664e10e4f removed unused IntegerSubExactNode node intrinsics ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/arithmetic/IntegerSubExactNode.java From doug.simon at oracle.com Sun Mar 22 02:00:10 2015 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Sun, 22 Mar 2015 02:00:10 +0000 Subject: hg: graal/graal: 5 new changesets Message-ID: <201503220200.t2M20Fma000546@aojmv0008> Changeset: b5516d27d657 Author: Thomas Wuerthinger Date: 2015-03-20 18:33 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/b5516d27d657 Fix dependencies in IGV NetBeans project. Contributed-by: Michael Haupt ! src/share/tools/IdealGraphVisualizer/FilterWindow/nbproject/build-impl.xml ! src/share/tools/IdealGraphVisualizer/FilterWindow/nbproject/genfiles.properties ! src/share/tools/IdealGraphVisualizer/Graal/nbproject/build-impl.xml ! src/share/tools/IdealGraphVisualizer/Graal/nbproject/genfiles.properties ! src/share/tools/IdealGraphVisualizer/Graal/nbproject/project.xml ! src/share/tools/IdealGraphVisualizer/SelectionCoordinator/nbproject/build-impl.xml ! src/share/tools/IdealGraphVisualizer/SelectionCoordinator/nbproject/genfiles.properties ! src/share/tools/IdealGraphVisualizer/nbproject/platform.properties ! src/share/tools/IdealGraphVisualizer/nbproject/project.properties Changeset: 3c78119de0cd Author: Thomas Wuerthinger Date: 2015-03-21 15:41 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/3c78119de0cd Layout and display improvements and bug fixes for IdealGraphVisualizer. ! src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/InputEdge.java ! src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/Properties.java ! src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/serialization/BinaryParser.java ! src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/serialization/Parser.java ! src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/serialization/Printer.java ! src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/serialization/graphdocument.xsd ! src/share/tools/IdealGraphVisualizer/Graal/src/com/sun/hotspot/igv/graal/filters/GraalEdgeColorFilter.java - src/share/tools/IdealGraphVisualizer/Graal/src/com/sun/hotspot/igv/graal/filters/beginend.filter - src/share/tools/IdealGraphVisualizer/Graal/src/com/sun/hotspot/igv/graal/filters/framestatelocks.filter + src/share/tools/IdealGraphVisualizer/Graal/src/com/sun/hotspot/igv/graal/filters/reduceEdges.filter ! src/share/tools/IdealGraphVisualizer/Graal/src/com/sun/hotspot/igv/graal/layer.xml ! src/share/tools/IdealGraphVisualizer/Graph/src/com/sun/hotspot/igv/graph/Diagram.java ! src/share/tools/IdealGraphVisualizer/Graph/src/com/sun/hotspot/igv/graph/Figure.java ! src/share/tools/IdealGraphVisualizer/HierarchicalLayout/src/com/sun/hotspot/igv/hierarchicallayout/HierarchicalLayoutManager.java ! src/share/tools/IdealGraphVisualizer/Layout/src/com/sun/hotspot/igv/layout/LayoutManager.java ! src/share/tools/IdealGraphVisualizer/Util/src/com/sun/hotspot/igv/util/ColorIcon.java ! src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/DiagramScene.java ! src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/DiagramViewModel.java ! src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/EditorTopComponent.java ! src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/widgets/FigureWidget.java ! src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/widgets/LineWidget.java ! src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/widgets/OutputSlotWidget.java ! src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/widgets/SlotWidget.java Changeset: 414c068bd862 Author: Thomas Wuerthinger Date: 2015-03-21 15:41 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/414c068bd862 Merge. - graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotCompareConstOp.java - graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotCompareMemoryConstOp.java - graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotComparePatchOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64BinaryCommutativeOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64BinaryConstOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64BinaryMemoryOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64BinaryOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64BinaryPatchOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64CompareConstOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64CompareMemoryConstOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64CompareMemoryOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64CompareOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64MulConstOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64RegStackConstOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64UnaryMOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64UnaryMROp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64UnaryMemoryOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64UnaryRMOp.java - graal/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/OnAdoptTest.java Changeset: 5f15e5f844d6 Author: Andreas Woess Date: 2015-03-21 23:47 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/5f15e5f844d6 IGV: fix bug in layout node comparator ! src/share/tools/IdealGraphVisualizer/HierarchicalLayout/src/com/sun/hotspot/igv/hierarchicallayout/HierarchicalLayoutManager.java Changeset: 9912bc54ec0f Author: Andreas Woess Date: 2015-03-22 00:12 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/9912bc54ec0f IGV: also color KillingBegin nodes orange ! src/share/tools/IdealGraphVisualizer/Graal/src/com/sun/hotspot/igv/graal/filters/color.filter From doug.simon at oracle.com Mon Mar 23 02:00:07 2015 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Mon, 23 Mar 2015 02:00:07 +0000 Subject: hg: graal/graal: 9 new changesets Message-ID: <201503230200.t2N207Qo002995@aojmv0008> Changeset: 9a7ede0d673b Author: Doug Simon Date: 2015-03-22 12:29 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/9a7ede0d673b avoid unnecessary copying in NodeList.toArray(A[] a) ! graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeList.java Changeset: 4187aa9d6a10 Author: Doug Simon Date: 2015-03-22 12:30 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/4187aa9d6a10 factored out common code in HotSpotCryptoSubstitutionTest ! graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/HotSpotCryptoSubstitutionTest.java Changeset: 053c1f9daed1 Author: Doug Simon Date: 2015-03-22 16:33 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/053c1f9daed1 support disassembling a subrange of a bytecode method ! graal/com.oracle.graal.java/src/com/oracle/graal/java/BytecodeDisassembler.java Changeset: bca124e6ad58 Author: Doug Simon Date: 2015-03-22 17:03 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/bca124e6ad58 fixed bug in NodeList.toArray() ! graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeList.java Changeset: aaf5039e56d7 Author: Doug Simon Date: 2015-03-22 17:04 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/aaf5039e56d7 made partial intrinsification work (i.e., intrinsics that call the original method to handle slow/uncommon paths) ! graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/HotSpotCryptoSubstitutionTest.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotConstantReflectionProvider.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotInlineInvokePlugin.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/HotSpotSubstitutions.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/ForeignCallStub.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/SnippetStub.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/AbstractBytecodeParser.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/HIRFrameStateBuilder.java ! graal/com.oracle.graal.jtt/src/com/oracle/graal/jtt/lang/Math_sin.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/Replacements.java ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningUtil.java ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/ObjectAccessTest.java ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/PointerTest.java ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/ReplacementsParseTest.java ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/WordTest.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/BoxingSnippets.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/GraphKit.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsImpl.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/Snippet.java Changeset: 9af92bb0dd71 Author: Thomas Wuerthinger Date: 2015-03-21 16:10 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/9af92bb0dd71 Small comment fix. ! src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/widgets/SlotWidget.java Changeset: 486cba140d2b Author: Thomas Wuerthinger Date: 2015-03-21 16:22 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/486cba140d2b Fix IGV small layout bug. ! src/share/tools/IdealGraphVisualizer/HierarchicalLayout/src/com/sun/hotspot/igv/hierarchicallayout/HierarchicalLayoutManager.java Changeset: 58f2aad37d0e Author: Thomas Wuerthinger Date: 2015-03-23 00:26 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/58f2aad37d0e Further improvements to IGV. Make displayed names of nodes shorter. ! graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/NamedLocationIdentity.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ConstantNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/EndNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FrameState.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GuardProxyNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MemoryPhiNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ParameterNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/StartNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ValuePhiNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ValueProxyNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/AddLocationNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ConstantLocationNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/IndexedLocationNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/LoadFieldNode.java ! src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/serialization/BinaryParser.java ! src/share/tools/IdealGraphVisualizer/HierarchicalLayout/src/com/sun/hotspot/igv/hierarchicallayout/HierarchicalLayoutManager.java Changeset: 7072d9d4aa13 Author: Thomas Wuerthinger Date: 2015-03-23 00:26 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/7072d9d4aa13 Merge. From doug.simon at oracle.com Mon Mar 23 21:19:24 2015 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Mon, 23 Mar 2015 21:19:24 +0000 Subject: hg: graal/graal: 17 new changesets Message-ID: <201503232119.t2NLJUSt023823@aojmv0008> Changeset: 43661c648060 Author: Doug Simon Date: 2015-03-23 11:02 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/43661c648060 moved non-HotSpot specific inlining functionality into non-HotSpot specific location ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotReplacementsImpl.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotGraphBuilderPlugins.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotInlineInvokePlugin.java + graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultInlineInvokePlugin.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsImpl.java Changeset: e8a0a61526b2 Author: Doug Simon Date: 2015-03-23 13:36 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/e8a0a61526b2 added support for refining the tasks run by 'mx gate' (e.g., 'mx gate -t Economy' will only run tasks whose title contains the substring 'Economy') ! mx/mx_graal.py Changeset: 0e7bb9cced6b Author: Doug Simon Date: 2015-03-23 14:18 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/0e7bb9cced6b ignore forced MethodSubstitutions during graph builder inlining (it breaks economy compiler configuration) ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsImpl.java Changeset: 5aa0cb2914f8 Author: Doug Simon Date: 2015-03-23 14:31 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/5aa0cb2914f8 fixed pylint issue ! mx/mx_graal.py Changeset: 422e60a2f4b9 Author: Stefan Anzinger Date: 2015-03-23 15:58 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/422e60a2f4b9 Implement dynamic instruction counters on assembly level ! graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCAssembler.java + graal/com.oracle.graal.asm.sparc/src/com/oracle/graal/asm/sparc/SPARCInstructionCounter.java ! graal/com.oracle.graal.asm/src/com/oracle/graal/asm/Assembler.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/target/Backend.java ! graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBackend.java ! graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotCounterOp.java ! graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerationResult.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackend.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotCounterOp.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotLIRGenerationResult.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotBackend.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotCounterOp.java + graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotInstructionProfiling.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotSuitesProvider.java ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/gen/LIRGenerationResult.java ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/gen/LIRGenerationResultBase.java ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/profiling/MoveProfiling.java Changeset: 220c494e5088 Author: Stefan Anzinger Date: 2015-03-23 16:11 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/220c494e5088 Merge ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java - graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotCompareConstOp.java - graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotCompareMemoryConstOp.java - graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotComparePatchOp.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotInlineInvokePlugin.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64BinaryCommutativeOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64BinaryConstOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64BinaryMemoryOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64BinaryOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64BinaryPatchOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64CompareConstOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64CompareMemoryConstOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64CompareMemoryOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64CompareOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64MulConstOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64RegStackConstOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64UnaryMOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64UnaryMROp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64UnaryMemoryOp.java - graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64UnaryRMOp.java - graal/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/OnAdoptTest.java - src/share/tools/IdealGraphVisualizer/Graal/src/com/sun/hotspot/igv/graal/filters/beginend.filter - src/share/tools/IdealGraphVisualizer/Graal/src/com/sun/hotspot/igv/graal/filters/framestatelocks.filter Changeset: 1671d9111c47 Author: Christian Humer Date: 2015-03-23 20:04 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/1671d9111c47 Truffle-DSL: fixed wrong type for implicit type cast elimination. ! graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/NodeGenFactory.java Changeset: 2d51a92a301a Author: Doug Simon Date: 2015-03-23 20:57 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/2d51a92a301a added helper methods to GraphBuilderContext for common operation combinations ! graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/GraphBuilderContext.java ! graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/LoadFieldPlugin.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotGraphBuilderPlugins.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotLoadFieldPlugin.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotLoadIndexedPlugin.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotWordOperationPlugin.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultGenericInvocationPlugin.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/StandardGraphBuilderPlugins.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/WordOperationPlugin.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/TruffleGraphBuilderPlugins.java Changeset: 83539d28f95c Author: Tom Rodriguez Date: 2015-03-20 17:26 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/83539d28f95c Fixed help text and add CompileTheWorldThreads flag ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompileTheWorld.java Changeset: b47d7ebcfa4e Author: Tom Rodriguez Date: 2015-03-20 17:26 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/b47d7ebcfa4e Don't bother cloning assumptions array ! graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/Assumptions.java Changeset: 426e45c75771 Author: Tom Rodriguez Date: 2015-03-20 17:26 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/426e45c75771 Properly accumulate assumptions ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedObjectTypeImpl.java Changeset: 3819bcdde898 Author: Tom Rodriguez Date: 2015-03-23 10:27 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/3819bcdde898 Merge - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotInlineInvokePlugin.java - src/share/tools/IdealGraphVisualizer/Graal/src/com/sun/hotspot/igv/graal/filters/beginend.filter - src/share/tools/IdealGraphVisualizer/Graal/src/com/sun/hotspot/igv/graal/filters/framestatelocks.filter Changeset: 30769a7dc619 Author: Tom Rodriguez Date: 2015-03-23 10:28 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/30769a7dc619 Add missing org.openide.awt dependency to IGV ! src/share/tools/IdealGraphVisualizer/Bytecodes/nbproject/project.xml ! src/share/tools/IdealGraphVisualizer/FilterWindow/nbproject/genfiles.properties ! src/share/tools/IdealGraphVisualizer/FilterWindow/nbproject/project.xml ! src/share/tools/IdealGraphVisualizer/Graal/nbproject/genfiles.properties ! src/share/tools/IdealGraphVisualizer/Util/nbproject/project.xml Changeset: 9a3c19db3015 Author: Tom Rodriguez Date: 2015-03-23 10:29 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/9a3c19db3015 Fix time reporting for mx gate -t foo ! mx/mx_graal.py Changeset: 8ea3dde07ff7 Author: Tom Rodriguez Date: 2015-03-23 12:20 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/8ea3dde07ff7 Transfer proxies when splitting IfNode ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java Changeset: dab7f071220a Author: Tom Rodriguez Date: 2015-03-23 12:21 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/dab7f071220a Wait until all classes are loaded before compiling in multithreaded CTW ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompileTheWorld.java Changeset: ae0e4453df73 Author: Tom Rodriguez Date: 2015-03-23 13:33 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/ae0e4453df73 Merge From doug.simon at oracle.com Mon Mar 23 21:23:16 2015 From: doug.simon at oracle.com (Doug Simon) Date: Mon, 23 Mar 2015 22:23:16 +0100 Subject: Attempting to reproduce 'mx gate' failures is now easier In-Reply-To: <201503232119.t2NLJUSt023823@aojmv0008> References: <201503232119.t2NLJUSt023823@aojmv0008> Message-ID: > Changeset: e8a0a61526b2 > Author: Doug Simon > Date: 2015-03-23 13:36 +0100 > URL: http://hg.openjdk.java.net/graal/graal/rev/e8a0a61526b2 > > added support for refining the tasks run by 'mx gate' (e.g., 'mx gate -t Economy' will only run tasks whose title contains the substring 'Economy') From doug.simon at oracle.com Tue Mar 24 02:00:07 2015 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Tue, 24 Mar 2015 02:00:07 +0000 Subject: hg: graal/graal: avoid creation of scopes if -G:Time, -G:Meter and -G:TrackMemUse all have null or empty values and no other debug scope based options are given (e.g., -G:Log, -G:Dump, etc) Message-ID: <201503240200.t2O208rx013793@aojmv0008> Changeset: e7e868a42b3f Author: Doug Simon Date: 2015-03-23 22:32 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/e7e868a42b3f avoid creation of scopes if -G:Time, -G:Meter and -G:TrackMemUse all have null or empty values and no other debug scope based options are given (e.g., -G:Log, -G:Dump, etc) ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalDebugConfig.java ! graal/com.oracle.graal.debug/src/com/oracle/graal/debug/Debug.java ! graal/com.oracle.graal.debug/src/com/oracle/graal/debug/internal/MemUseTrackerImpl.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotGraalRuntime.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotOptions.java From doug.simon at oracle.com Wed Mar 25 02:00:08 2015 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Wed, 25 Mar 2015 02:00:08 +0000 Subject: hg: graal/graal: 7 new changesets Message-ID: <201503250200.t2P208RJ026186@aojmv0008> Changeset: 926850b25c65 Author: Tom Rodriguez Date: 2015-03-23 15:45 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/926850b25c65 Restore old CTW output format ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompileTheWorld.java Changeset: 3cbb0846337c Author: Doug Simon Date: 2015-03-24 11:36 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/3cbb0846337c added -G:CompileTheWorldMethodFilter option ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/MethodFilter.java ! graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/CompileTheWorldTest.java ! graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/MemoryUsageBenchmark.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompileTheWorld.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotGraalRuntime.java Changeset: fa9d90e73569 Author: Doug Simon Date: 2015-03-24 11:56 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/fa9d90e73569 check whether a StateSplit node being added via GraphBuilderContext has a null stateAfter before setting one ! graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/GraphBuilderContext.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java Changeset: af1e4c16b00f Author: Doug Simon Date: 2015-03-24 12:01 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/af1e4c16b00f suppress menubar and dock when running ctw on Mac ! mx/mx_graal.py Changeset: 4b6965a278cf Author: Stefan Anzinger Date: 2015-03-24 14:36 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/4b6965a278cf Fix allocation counter issue where the counters sometimes gives way too high values for allocated bytes ! graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64Assembler.java ! graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotCounterOp.java Changeset: eebf140fa6e4 Author: Christian Wirth Date: 2015-03-24 17:19 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/eebf140fa6e4 syncronize the access to Source.allSources. Should fix random crashes we experienced before. ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/source/Source.java Changeset: cef214c6d74a Author: Christian Wirth Date: 2015-03-24 17:33 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/cef214c6d74a extract methods to avoid code duplication ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/FrameWithoutBoxing.java ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/impl/DefaultVirtualFrame.java From doug.simon at oracle.com Thu Mar 26 02:00:08 2015 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Thu, 26 Mar 2015 02:00:08 +0000 Subject: hg: graal/graal: 9 new changesets Message-ID: <201503260200.t2Q209mK028527@aojmv0008> Changeset: d8275b3e1bd3 Author: Roland Schatz Date: 2015-03-25 15:24 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/d8275b3e1bd3 Do node intrinsification and word type rewriting only during replacement parsing. ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultGenericInvocationPlugin.java Changeset: dc3c886e3cca Author: Gilles Duboscq Date: 2015-03-25 16:31 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/dc3c886e3cca Add test to check that DominatorConditionalEliminationPhase rewires ConditionAnchorNodes properly ! graal/com.oracle.graal.graph.test/src/com/oracle/graal/graph/test/matchers/NodeIterableContains.java + graal/com.oracle.graal.graph.test/src/com/oracle/graal/graph/test/matchers/NodeIterableCount.java ! graal/com.oracle.graal.graph.test/src/com/oracle/graal/graph/test/matchers/NodeIterableIsEmpty.java + graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/ConditionAnchoringTest.java ! mx/suite.py Changeset: 3bda2c03d089 Author: Gilles Duboscq Date: 2015-03-25 16:15 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/3bda2c03d089 Add scope with the schedule in EffectsPhase ! graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/EffectsPhase.java Changeset: 87419b0d9bfb Author: Gilles Duboscq Date: 2015-03-25 16:16 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/87419b0d9bfb BinaryGraphPrinter: if a schedule is available, also print he node-to-blocks mapping in addition to the block-to-nodes ! graal/com.oracle.graal.printer/src/com/oracle/graal/printer/BinaryGraphPrinter.java Changeset: 104304a54b0c Author: Tom Rodriguez Date: 2015-03-25 11:47 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/104304a54b0c Support CTW in product for graal ! src/share/vm/graal/graalCompiler.cpp ! src/share/vm/graal/graalCompiler.hpp ! src/share/vm/prims/jni.cpp ! src/share/vm/runtime/globals.hpp Changeset: d3b3a094df52 Author: Tom Rodriguez Date: 2015-03-25 11:47 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/d3b3a094df52 Alway print final CTW messages ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompileTheWorld.java Changeset: 33b1be0d91fc Author: Tom Rodriguez Date: 2015-03-25 11:48 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/33b1be0d91fc Add option to filter DebugValueSummary by map name ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalDebugConfig.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/DebugValuesPrinter.java Changeset: c5c8193325fa Author: Tom Rodriguez Date: 2015-03-25 11:48 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/c5c8193325fa Only report debug values for CTW threads by default ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompileTheWorld.java Changeset: 4d119424b4ce Author: Tom Rodriguez Date: 2015-03-25 11:48 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/4d119424b4ce Add CTW of rt.jar to gate ! mx/mx_graal.py From christian.thalinger at oracle.com Thu Mar 26 16:07:11 2015 From: christian.thalinger at oracle.com (Christian Thalinger) Date: Thu, 26 Mar 2015 09:07:11 -0700 Subject: RFR: remove ASM dependency In-Reply-To: References: <76BA493A-D705-4B40-A2FC-7F09EA0586DF@oracle.com> <0F681270-4324-4363-9FDD-ACB618A88CAE@oracle.com> Message-ID: <0F935947-E02B-4B9B-83D5-EE671E0C150B@oracle.com> Totally forgot about this one. Can I push it? > On Dec 30, 2014, at 1:41 AM, Bernhard Urban wrote: > > what is the version in the JDK? is it likely to be changed? > > -Bernhard > > On Dec 30, 2014 4:30 AM, "Christian Thalinger" > wrote: > > > On Dec 29, 2014, at 3:58 PM, Christian Thalinger > wrote: > > > > This patch replaces the only use of org.objectweb.asm with jdk.internal.org.objectweb.asm and removes the ASM dependency. > > > > Seems patches are not enabled on this list. Here is the patch inlined: > > diff -r 7ff41ad072ef graal/com.oracle.graal.jtt/src/com/oracle/graal/jtt/except/UntrustedInterfaces.java > --- a/graal/com.oracle.graal.jtt/src/com/oracle/graal/jtt/except/UntrustedInterfaces.java Tue Dec 30 02:21:15 2014 +0100 > +++ b/graal/com.oracle.graal.jtt/src/com/oracle/graal/jtt/except/UntrustedInterfaces.java Mon Dec 29 19:23:25 2014 -0800 > @@ -23,7 +23,7 @@ > package com.oracle.graal.jtt.except; > > import org.junit.*; > -import org.objectweb.asm.*; > +import jdk.internal.org.objectweb.asm.*; > > import com.oracle.graal.jtt.*; > > @@ -45,20 +45,20 @@ public class UntrustedInterfaces extends > * public void setField() { > * field = new TestConstant(); > * } > - * > + * > * public void setStaticField() { > * staticField = new TestConstant(); > * } > - * > + * > * public int callMe(CallBack callback) { > * return callback.callBack(new TestConstant()); > * } > - * > + * > * public TestInterface get() { > * return new TestConstant(); > * } > * } > - * > + * > * private static final class TestConstant implements TestInterface { > * public int method() { > * return 42; > diff -r 7ff41ad072ef mx/suite.py > --- a/mx/suite.py Tue Dec 30 02:21:15 2014 +0100 > +++ b/mx/suite.py Mon Dec 29 19:23:25 2014 -0800 > @@ -139,21 +139,6 @@ suite = { > ], > }, > > - "ASM" : { > - "path" : "lib/asm-5.0.3.jar", > - "urls" : [ > - "http://lafo.ssw.uni-linz.ac.at/graal-external-deps/asm-5.0.3.jar ", > - "https://search.maven.org/remotecontent?filepath=org/ow2/asm/asm/5.0.3/asm-5.0.3.jar ", > - ], > - "sha1" : "dcc2193db20e19e1feca8b1240dbbc4e190824fa", > - "sourcePath" : "lib/asm-5.0.3-sources.jar", > - "sourceSha1" : "f0f24f6666c1a15c7e202e91610476bd4ce59368", > - "sourceUrls" : [ > - "http://lafo.ssw.uni-linz.ac.at/graal-external-deps/asm-5.0.3-sources.jar ", > - "https://search.maven.org/remotecontent?filepath=org/ow2/asm/asm/5.0.3/asm-5.0.3-sources.jar ", > - ], > - }, > - > "JAVA_ALLOCATION_INSTRUMENTER" : { > "path" : "lib/java-allocation-instrumenter.jar", > "sourcePath" : "lib/java-allocation-instrumenter.jar", > @@ -947,7 +932,6 @@ suite = { > "sourceDirs" : ["src"], > "dependencies" : [ > "com.oracle.graal.compiler.test", > - "ASM", > ], > "checkstyle" : "com.oracle.graal.graph", > "javaCompliance" : "1.8", > From doug.simon at oracle.com Thu Mar 26 20:07:30 2015 From: doug.simon at oracle.com (Doug Simon) Date: Thu, 26 Mar 2015 21:07:30 +0100 Subject: RFR: remove ASM dependency In-Reply-To: <0F935947-E02B-4B9B-83D5-EE671E0C150B@oracle.com> References: <76BA493A-D705-4B40-A2FC-7F09EA0586DF@oracle.com> <0F681270-4324-4363-9FDD-ACB618A88CAE@oracle.com> <0F935947-E02B-4B9B-83D5-EE671E0C150B@oracle.com> Message-ID: <96A53D48-DDB5-43AB-97C6-E177D6304A09@oracle.com> Looks good to me - push it. > On Mar 26, 2015, at 5:07 PM, Christian Thalinger wrote: > > Totally forgot about this one. Can I push it? > >> On Dec 30, 2014, at 1:41 AM, Bernhard Urban wrote: >> >> what is the version in the JDK? is it likely to be changed? >> >> -Bernhard >> >> On Dec 30, 2014 4:30 AM, "Christian Thalinger" > wrote: >> >>> On Dec 29, 2014, at 3:58 PM, Christian Thalinger > wrote: >>> >>> This patch replaces the only use of org.objectweb.asm with jdk.internal.org.objectweb.asm and removes the ASM dependency. >>> >> >> Seems patches are not enabled on this list. Here is the patch inlined: >> >> diff -r 7ff41ad072ef graal/com.oracle.graal.jtt/src/com/oracle/graal/jtt/except/UntrustedInterfaces.java >> --- a/graal/com.oracle.graal.jtt/src/com/oracle/graal/jtt/except/UntrustedInterfaces.java Tue Dec 30 02:21:15 2014 +0100 >> +++ b/graal/com.oracle.graal.jtt/src/com/oracle/graal/jtt/except/UntrustedInterfaces.java Mon Dec 29 19:23:25 2014 -0800 >> @@ -23,7 +23,7 @@ >> package com.oracle.graal.jtt.except; >> >> import org.junit.*; >> -import org.objectweb.asm.*; >> +import jdk.internal.org.objectweb.asm.*; >> >> import com.oracle.graal.jtt.*; >> >> @@ -45,20 +45,20 @@ public class UntrustedInterfaces extends >> * public void setField() { >> * field = new TestConstant(); >> * } >> - * >> + * >> * public void setStaticField() { >> * staticField = new TestConstant(); >> * } >> - * >> + * >> * public int callMe(CallBack callback) { >> * return callback.callBack(new TestConstant()); >> * } >> - * >> + * >> * public TestInterface get() { >> * return new TestConstant(); >> * } >> * } >> - * >> + * >> * private static final class TestConstant implements TestInterface { >> * public int method() { >> * return 42; >> diff -r 7ff41ad072ef mx/suite.py >> --- a/mx/suite.py Tue Dec 30 02:21:15 2014 +0100 >> +++ b/mx/suite.py Mon Dec 29 19:23:25 2014 -0800 >> @@ -139,21 +139,6 @@ suite = { >> ], >> }, >> >> - "ASM" : { >> - "path" : "lib/asm-5.0.3.jar", >> - "urls" : [ >> - "http://lafo.ssw.uni-linz.ac.at/graal-external-deps/asm-5.0.3.jar ", >> - "https://search.maven.org/remotecontent?filepath=org/ow2/asm/asm/5.0.3/asm-5.0.3.jar ", >> - ], >> - "sha1" : "dcc2193db20e19e1feca8b1240dbbc4e190824fa", >> - "sourcePath" : "lib/asm-5.0.3-sources.jar", >> - "sourceSha1" : "f0f24f6666c1a15c7e202e91610476bd4ce59368", >> - "sourceUrls" : [ >> - "http://lafo.ssw.uni-linz.ac.at/graal-external-deps/asm-5.0.3-sources.jar ", >> - "https://search.maven.org/remotecontent?filepath=org/ow2/asm/asm/5.0.3/asm-5.0.3-sources.jar ", >> - ], >> - }, >> - >> "JAVA_ALLOCATION_INSTRUMENTER" : { >> "path" : "lib/java-allocation-instrumenter.jar", >> "sourcePath" : "lib/java-allocation-instrumenter.jar", >> @@ -947,7 +932,6 @@ suite = { >> "sourceDirs" : ["src"], >> "dependencies" : [ >> "com.oracle.graal.compiler.test", >> - "ASM", >> ], >> "checkstyle" : "com.oracle.graal.graph", >> "javaCompliance" : "1.8", >> > From doug.simon at oracle.com Fri Mar 27 02:00:08 2015 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Fri, 27 Mar 2015 02:00:08 +0000 Subject: hg: graal/graal: 11 new changesets Message-ID: <201503270200.t2R2081h000550@aojmv0008> Changeset: 39c0ccfcd070 Author: Roland Schatz Date: 2015-03-25 16:55 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/39c0ccfcd070 Allow InputTypes that are not Value in snippets. ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotGraphBuilderPlugins.java + graal/com.oracle.graal.nodeinfo/src/com/oracle/graal/nodeinfo/StructuralInput.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultGenericInvocationPlugin.java Changeset: 975ffde6d791 Author: Roland Schatz Date: 2015-03-26 13:55 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/975ffde6d791 Verify that InputType is in allowedUsageTypes for @NodeIntrinsic methods returning a StructuralInput. ! graal/com.oracle.graal.replacements.verifier/src/com/oracle/graal/replacements/verifier/NodeIntrinsicVerifier.java Changeset: af467bd30ff3 Author: Roland Schatz Date: 2015-03-26 15:17 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/af467bd30ff3 Unit test for InputTypes in snippets. + graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/SubstitutionsTest.java Changeset: 66dbc66d5609 Author: Roland Schatz Date: 2015-03-26 15:34 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/66dbc66d5609 Rewire usages of MemoryAnchorNode in FloatingReadPhase. + graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/MemoryAnchorNode.java ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/FloatingReadPhase.java - graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/MemoryAnchorNode.java Changeset: e87754e57be7 Author: twisti Date: 2015-03-26 13:51 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/e87754e57be7 Remove external ASM dependency. ! graal/com.oracle.graal.jtt/src/com/oracle/graal/jtt/except/UntrustedInterfaces.java ! mx/suite.py Changeset: bbf53b35292e Author: Doug Simon Date: 2015-03-26 11:38 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/bbf53b35292e added Checkstyle rule to forbid use of old synchronized classes such as StringBuffer, Vector, Hashtable and Stack ! graal/com.oracle.graal.graph/.checkstyle_checks.xml ! graal/com.oracle.truffle.api/.checkstyle_checks.xml ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/source/Source.java Changeset: c38296febf23 Author: Doug Simon Date: 2015-03-26 11:39 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/c38296febf23 don't process Word operations unless parsing a snippet or intrinsic ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultGenericInvocationPlugin.java ! graal/com.oracle.graal.word/src/com/oracle/graal/word/WordTypes.java Changeset: f137f1974f60 Author: Doug Simon Date: 2015-03-26 17:06 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/f137f1974f60 removed uses of StringBuffer, Hashtable and Stack ! graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/MetaUtil.java ! graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/UnsafeAccess.java ! graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/CompressedOopTest.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java ! graal/com.oracle.graal.jtt/src/com/oracle/graal/jtt/optimize/Switch02.java ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/DominatorConditionalEliminationPhase.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java Changeset: 01290be48def Author: Doug Simon Date: 2015-03-26 17:06 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/01290be48def Merge. ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultGenericInvocationPlugin.java - graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/MemoryAnchorNode.java Changeset: b2e8b26f5040 Author: Doug Simon Date: 2015-03-26 21:58 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/b2e8b26f5040 removed uses of StringBuffer ! graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/CompressedOopTest.java ! graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/MemoryUsageBenchmark.java Changeset: b9041d4e91c5 Author: Doug Simon Date: 2015-03-26 22:26 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/b9041d4e91c5 Merge. From doug.simon at oracle.com Sat Mar 28 02:00:08 2015 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Sat, 28 Mar 2015 02:00:08 +0000 Subject: hg: graal/graal: 8 new changesets Message-ID: <201503280200.t2S208OK006597@aojmv0008> Changeset: c1f116cd4b67 Author: Tom Rodriguez Date: 2015-03-27 00:41 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/c1f116cd4b67 Speed up debug info generation for virtual objects ! graal/com.oracle.graal.api.code/src/com/oracle/graal/api/code/DebugInfo.java ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/LIRFrameState.java ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/SimpleInfopointOp.java ! src/share/vm/code/scopeDesc.cpp ! src/share/vm/graal/graalCodeInstaller.cpp ! src/share/vm/graal/graalCodeInstaller.hpp ! src/share/vm/graal/graalJavaAccess.hpp Changeset: 8470e81631f8 Author: Doug Simon Date: 2015-03-27 13:29 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/8470e81631f8 converted all @MacroSubstitution uses to InvocationPlugins ! graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/GraphBuilderContext.java ! graal/com.oracle.graal.graphbuilderconf/src/com/oracle/graal/graphbuilderconf/InvocationPlugin.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotReplacementsImpl.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotGraphBuilderPlugins.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotInvocationPlugins.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotMethodHandleAccessProvider.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotWordOperationPlugin.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassCastNode.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassGetClassLoader0Node.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassGetComponentTypeNode.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassGetModifiersNode.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassGetSuperclassNode.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassIsArrayNode.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassIsInterfaceNode.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassIsPrimitiveNode.java + graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassQueryNode.java + graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ResolvedMethodHandleCallTargetNode.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CallSiteSubstitutions.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CallSiteTargetNode.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/HotSpotClassSubstitutions.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/MethodHandleNode.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ObjectCloneNode.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ObjectSubstitutions.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ReflectionGetCallerClassNode.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/ReflectionSubstitutions.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/SystemIdentityHashCodeNode.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/SystemSubstitutions.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/arraycopy/ArrayCopyNode.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java - graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/SelfReplacingMethodCallTargetNode.java ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningUtil.java ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/ReplacementsParseTest.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/DefaultGenericInvocationPlugin.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/MathSubstitutionsX86.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/StandardGraphBuilderPlugins.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/WordOperationPlugin.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/BasicArrayCopyNode.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/BasicObjectCloneNode.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/MacroNode.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/MacroStateSplitNode.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/MathPowNode.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/PureFunctionMacroNode.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleReplacements.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/AssumptionNode.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/asserts/NeverInlineMacroNode.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/asserts/NeverPartOfCompilationNode.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/typesystem/CustomizedUnsafeLoadMacroNode.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/typesystem/CustomizedUnsafeStoreMacroNode.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/typesystem/UnsafeTypeCastMacroNode.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/CompilerAssertsSubstitutions.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/OptimizedAssumptionSubstitutions.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/TruffleGraphBuilderPlugins.java Changeset: 116c600253e5 Author: Doug Simon Date: 2015-03-27 14:03 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/116c600253e5 allow unqualified nested class names in the class part of a MethodFilter pattern ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/MethodFilter.java Changeset: 97dbe2c74073 Author: Doug Simon Date: 2015-03-27 14:03 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/97dbe2c74073 don't push MethodHandleNodes with void return type to the stack ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotInvocationPlugins.java Changeset: 8af4e7e0ac9f Author: Gilles Duboscq Date: 2015-03-27 14:09 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/8af4e7e0ac9f Make IGV more robust when parsing block information ! src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/InputBlock.java ! src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/serialization/BinaryParser.java Changeset: 1d52d1e08a75 Author: Gilles Duboscq Date: 2015-03-27 15:33 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/1d52d1e08a75 IGV: Update Graal color filter ! src/share/tools/IdealGraphVisualizer/Graal/src/com/sun/hotspot/igv/graal/filters/color.filter Changeset: a1d73b4fd139 Author: Gilles Duboscq Date: 2015-03-27 15:37 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/a1d73b4fd139 Truffle FastPE: recompute loop freqencies once BranchProbabilities have had a chance to canonicalize ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java Changeset: b7477f2df553 Author: Doug Simon Date: 2015-03-27 16:04 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/b7477f2df553 removed MacroSubstitution and its related machinery ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotHostBackend.java - graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/MacroSubstitution.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/Replacements.java ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/InliningUtil.java ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/info/AbstractInlineInfo.java ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/info/elem/Inlineable.java - graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/info/elem/InlineableMacroNode.java - graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/CallsiteHolderDummy.java ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/InliningData.java ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/MethodInvocation.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsImpl.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCacheImpl.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleReplacements.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/phases/ReplaceIntrinsicsPhase.java From doug.simon at oracle.com Sun Mar 29 01:00:08 2015 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Sun, 29 Mar 2015 01:00:08 +0000 Subject: hg: graal/graal: 9 new changesets Message-ID: <201503290100.t2T108MK014949@aojmv0008> Changeset: d22307a9a025 Author: Thomas Wuerthinger Date: 2015-03-27 15:43 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/d22307a9a025 Small fixes to IGV layout. ! src/share/tools/IdealGraphVisualizer/HierarchicalLayout/src/com/sun/hotspot/igv/hierarchicallayout/HierarchicalLayoutManager.java Changeset: eea134855f85 Author: Thomas Wuerthinger Date: 2015-03-27 17:02 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/eea134855f85 Merge. - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotInlineInvokePlugin.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassGetClassLoader0Node.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassGetComponentTypeNode.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassGetModifiersNode.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassGetSuperclassNode.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassIsArrayNode.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassIsInterfaceNode.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ClassIsPrimitiveNode.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/CallSiteSubstitutions.java - graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/SelfReplacingMethodCallTargetNode.java - graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/MacroSubstitution.java - graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/info/elem/InlineableMacroNode.java - graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/walker/CallsiteHolderDummy.java - graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/MemoryAnchorNode.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/AssumptionNode.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/asserts/NeverInlineMacroNode.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/typesystem/CustomizedUnsafeLoadMacroNode.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/typesystem/CustomizedUnsafeStoreMacroNode.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/nodes/typesystem/UnsafeTypeCastMacroNode.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/CompilerAssertsSubstitutions.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/substitutions/OptimizedAssumptionSubstitutions.java Changeset: c816aca2a3db Author: Thomas Wuerthinger Date: 2015-03-28 17:35 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/c816aca2a3db Remove old version of partial evaluation. ! graal/com.oracle.graal.truffle.hotspot/src/com/oracle/graal/truffle/hotspot/HotSpotTruffleRuntime.java ! graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/ConditionAnchoringTest.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCache.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCacheImpl.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCompilerImpl.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCompilerOptions.java Changeset: 4042339df317 Author: Thomas Wuerthinger Date: 2015-03-28 20:25 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/4042339df317 Improve coloring and filters in IGV. ! graal/com.oracle.graal.printer/src/com/oracle/graal/printer/BinaryGraphPrinter.java - src/share/tools/IdealGraphVisualizer/Graal/src/com/sun/hotspot/igv/graal/filters/cfg.filter ! src/share/tools/IdealGraphVisualizer/Graal/src/com/sun/hotspot/igv/graal/filters/color.filter - src/share/tools/IdealGraphVisualizer/Graal/src/com/sun/hotspot/igv/graal/filters/edgeColor.filter - src/share/tools/IdealGraphVisualizer/Graal/src/com/sun/hotspot/igv/graal/filters/noframestate.filter + src/share/tools/IdealGraphVisualizer/Graal/src/com/sun/hotspot/igv/graal/filters/removeFloating.filter + src/share/tools/IdealGraphVisualizer/Graal/src/com/sun/hotspot/igv/graal/filters/removeState.filter - src/share/tools/IdealGraphVisualizer/Graal/src/com/sun/hotspot/igv/graal/filters/slots.filter ! src/share/tools/IdealGraphVisualizer/Graal/src/com/sun/hotspot/igv/graal/layer.xml ! src/share/tools/IdealGraphVisualizer/ServerCompiler/src/com/sun/hotspot/igv/servercompiler/layer.xml Changeset: deab98a89238 Author: Thomas Wuerthinger Date: 2015-03-28 20:36 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/deab98a89238 Add a color filter based on stamp types. ! src/share/tools/IdealGraphVisualizer/Graal/src/com/sun/hotspot/igv/graal/filters/stampColor.filter < src/share/tools/IdealGraphVisualizer/Graal/src/com/sun/hotspot/igv/graal/filters/color.filter ! src/share/tools/IdealGraphVisualizer/Graal/src/com/sun/hotspot/igv/graal/layer.xml Changeset: bc61e6801712 Author: Thomas Wuerthinger Date: 2015-03-28 20:37 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/bc61e6801712 Fix project dependencies. ! mx/suite.py Changeset: d26957b22f4c Author: Thomas Wuerthinger Date: 2015-03-28 21:23 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/d26957b22f4c Remove unused import. ! graal/com.oracle.graal.printer/src/com/oracle/graal/printer/BinaryGraphPrinter.java Changeset: 66c5fcf494e0 Author: Thomas Wuerthinger Date: 2015-03-28 21:28 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/66c5fcf494e0 Add missing static imports. ! graal/com.oracle.graal.truffle.test/src/com/oracle/graal/truffle/test/ConditionAnchoringTest.java Changeset: 555952599be9 Author: Thomas Wuerthinger Date: 2015-03-28 21:48 +0100 URL: http://hg.openjdk.java.net/graal/graal/rev/555952599be9 Fix suites. ! mx/suite.py From doug.simon at oracle.com Mon Mar 30 01:00:09 2015 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Mon, 30 Mar 2015 01:00:09 +0000 Subject: hg: graal/graal: 9 new changesets Message-ID: <201503300100.t2U109NR014511@aojmv0008> Changeset: 78f1d68ab6a5 Author: Thomas Wuerthinger Date: 2015-03-29 16:09 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/78f1d68ab6a5 Relax verification of floating read node. ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/FloatingReadNode.java Changeset: 758c2bd9bc0d Author: Thomas Wuerthinger Date: 2015-03-29 16:12 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/758c2bd9bc0d Fix javadoc. ! graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/TriState.java Changeset: 8b8000382402 Author: Thomas Wuerthinger Date: 2015-03-29 18:45 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/8b8000382402 Small fix in memory schedule verification. ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/schedule/MemoryScheduleVerification.java Changeset: 8a5bda229627 Author: Thomas Wuerthinger Date: 2015-03-29 18:51 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/8a5bda229627 Rename method to avoid clashes. ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ConditionalEliminationTest1.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ConditionalEliminationTest3.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ConditionalEliminationTest4.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ConditionalEliminationTest5.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ConditionalEliminationTest6.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ConditionalEliminationTest9.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ConditionalEliminationTestBase.java Changeset: a21dd6860791 Author: Thomas Wuerthinger Date: 2015-03-29 18:57 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/a21dd6860791 Fix for succeeding stamps of IntegerBelowNode. ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerBelowNode.java Changeset: 171b650a46ee Author: Thomas Wuerthinger Date: 2015-03-29 18:59 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/171b650a46ee Fix for succeeding stamps of IntegerLessThanNode. ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerLessThanNode.java Changeset: 745e0fbcbdaf Author: Thomas Wuerthinger Date: 2015-03-29 20:14 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/745e0fbcbdaf Remove iterative inlining phase. ! graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/GraalOptions.java - graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ea/IterativeInliningTest.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/HighTier.java - graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/IterativeInliningPhase.java ! graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PartialEscapePhase.java Changeset: cc3131ff7ce2 Author: Thomas Wuerthinger Date: 2015-03-29 20:51 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/cc3131ff7ce2 Remove GraphCache option. ! graal/com.oracle.graal.compiler.common/src/com/oracle/graal/compiler/common/GraalOptions.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/BoxingEliminationTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/CheckGraalInvariants.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/DegeneratedLoopsTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/FinalizableSubclassTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/GraalCompilerTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/GuardEliminationCornerCasesTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/InfopointReasonTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/InvokeExceptionTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/InvokeHintsTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/LockEliminationTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/LongNodeChainTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/MemoryScheduleTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/MonitorGraphTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/backend/BackendTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ea/EATestBase.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ea/EarlyReadEliminationTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ea/PEAReadEliminationTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ea/PoorMansEATest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/inlining/InliningTest.java ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/tutorial/InvokeGraal.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java ! graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/AheadOfTimeCompilationTest.java ! graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/WriteBarrierAdditionTest.java ! graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/WriteBarrierVerificationTest.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilationTask.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nfi/HotSpotNativeFunctionInterface.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/stubs/Stub.java ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/inlining/info/elem/InlineableGraph.java ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/tiers/HighTierContext.java ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/ArraysSubstitutionsTest.java ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/BitOpNodesTest.java ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/EdgesTest.java ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/MethodSubstitutionTest.java ! graal/com.oracle.graal.replacements.test/src/com/oracle/graal/replacements/test/PointerTest.java ! graal/com.oracle.graal.truffle.hotspot/src/com/oracle/graal/truffle/hotspot/HotSpotTruffleRuntime.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCompilerImpl.java Changeset: 2dbfa1ed5efa Author: Thomas Wuerthinger Date: 2015-03-30 00:54 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/2dbfa1ed5efa Reduce usages of fixed node probability cache. ! graal/com.oracle.graal.compiler.test/src/com/oracle/graal/compiler/test/ea/PartialEscapeAnalysisTest.java ! graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopEx.java ! graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopPolicies.java ! graal/com.oracle.graal.loop/src/com/oracle/graal/loop/LoopsData.java ! graal/com.oracle.graal.loop/src/com/oracle/graal/loop/phases/LoopPeelingPhase.java ! graal/com.oracle.graal.loop/src/com/oracle/graal/loop/phases/LoopSafepointEliminationPhase.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/cfg/ControlFlowGraph.java ! graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/ProfileCompiledMethodsPhase.java ! graal/com.oracle.graal.phases/src/com/oracle/graal/phases/graph/FixedNodeProbabilityCache.java ! graal/com.oracle.graal.printer/src/com/oracle/graal/printer/BinaryGraphPrinter.java From doug.simon at oracle.com Tue Mar 31 01:02:06 2015 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Tue, 31 Mar 2015 01:02:06 +0000 Subject: hg: graal/graal: 28 new changesets Message-ID: <201503310102.t2V127P4022538@aojmv0008> Changeset: aa8e0e2c5751 Author: Josef Eisl Date: 2015-03-30 10:08 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/aa8e0e2c5751 StandardOp.NoOp: assert that the right instruction is #replaced. ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/StandardOp.java Changeset: 32e2857bb2bb Author: Josef Eisl Date: 2015-03-30 10:47 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/32e2857bb2bb AMD64HotSpotLIRGenerator: insert RescueSlotDummyOp only in #beforeRegisterAllocation. ! graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java Changeset: bd3246bc0aaa Author: Josef Eisl Date: 2015-03-30 10:57 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/bd3246bc0aaa AMD64HotSpotLIRGenerator.RescueSlotDummyOp: add javadoc. ! graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotLIRGenerator.java Changeset: a875af927be8 Author: Doug Simon Date: 2015-03-30 11:59 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/a875af927be8 HotSpotLoadFieldPlugin no longer checks InlineDuringParsing ! graal/com.oracle.graal.hotspot.test/src/com/oracle/graal/hotspot/test/AheadOfTimeCompilationTest.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotLoadFieldPlugin.java Changeset: a7ee2e1f0d4e Author: Lukas Stadler Date: 2015-03-30 13:59 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/a7ee2e1f0d4e remove UnboxNodes without usages (if object is non-null) ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnboxNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/type/StampTool.java Changeset: 405257253e59 Author: Lukas Stadler Date: 2015-03-30 14:01 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/405257253e59 ExactClassValueProfile: do not create isInstance check for generic (object) profiles ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/ExactClassValueProfile.java Changeset: 126ab00f859c Author: Lukas Stadler Date: 2015-03-30 14:02 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/126ab00f859c refactor PrimitiveValueProfile to omit object equality comparison in the profiled case ! graal/com.oracle.truffle.api/src/com/oracle/truffle/api/utilities/PrimitiveValueProfile.java Changeset: a8b979f7dcef Author: Lukas Stadler Date: 2015-03-30 14:02 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/a8b979f7dcef handle indexed loads and unboxing in PEA read elimination ! graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PEReadEliminationBlockState.java ! graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/PEReadEliminationClosure.java Changeset: e167fbc14714 Author: Josef Eisl Date: 2015-03-30 14:23 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/e167fbc14714 lsra.Interval: fix setRegisterPriority(). ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/alloc/lsra/Interval.java Changeset: 5b62fbf5f290 Author: Andreas Woess Date: 2015-03-30 14:26 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/5b62fbf5f290 PartialEvaluator: method handle inlining now handled by HotSpotInvocationPlugins ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/PartialEvaluator.java Changeset: 826a51b9c5d1 Author: Andreas Woess Date: 2015-03-30 14:28 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/826a51b9c5d1 remove TruffleReplacements - graal/com.oracle.graal.truffle.hotspot/src/com/oracle/graal/truffle/hotspot/HotSpotTruffleReplacements.java ! graal/com.oracle.graal.truffle.hotspot/src/com/oracle/graal/truffle/hotspot/HotSpotTruffleRuntime.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/GraalTruffleRuntime.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleReplacements.java Changeset: 8529bfcef6f5 Author: Roland Schatz Date: 2015-03-30 16:51 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/8529bfcef6f5 Correctly re-wire memory edges in snippets. ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/InstanceOfSnippetsTemplates.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/SnippetTemplate.java Changeset: 5a42f9b582c6 Author: Josef Eisl Date: 2015-03-30 15:38 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/5a42f9b582c6 AMD64Assembler: introduce DEC and incrementq/decrementq macros for AMD64Addresses. ! graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64Assembler.java ! graal/com.oracle.graal.asm.amd64/src/com/oracle/graal/asm/amd64/AMD64MacroAssembler.java Changeset: 82246de10a9f Author: Josef Eisl Date: 2015-03-30 17:31 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/82246de10a9f Add IncrementDecrementMacroTest. + graal/com.oracle.graal.asm.amd64.test/src/com/oracle/graal/asm/amd64/test/IncrementDecrementMacroTest.java Changeset: e6235961d404 Author: Josef Eisl Date: 2015-03-30 17:00 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/e6235961d404 AssemblerTest: add method and code cache provider to scope to enable dumping. ! graal/com.oracle.graal.asm.test/src/com/oracle/graal/asm/test/AssemblerTest.java Changeset: e4bb07ed276c Author: Josef Eisl Date: 2015-03-30 15:38 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/e4bb07ed276c AMD64HotSpotCounterOp: use incrementq macro. ! graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotCounterOp.java Changeset: 00decb5cd984 Author: Thomas Wuerthinger Date: 2015-03-30 17:56 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/00decb5cd984 Fix for IfNode below than canonicalization. ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java Changeset: 0b2bd777d933 Author: Thomas Wuerthinger Date: 2015-03-30 17:57 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/0b2bd777d933 Merge. - graal/com.oracle.graal.truffle.hotspot/src/com/oracle/graal/truffle/hotspot/HotSpotTruffleReplacements.java - graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleReplacements.java Changeset: 2c86be269fad Author: Thomas Wuerthinger Date: 2015-03-30 18:46 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/2c86be269fad Merge. Changeset: 5ea03a00828a Author: Doug Simon Date: 2015-03-30 17:49 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/5ea03a00828a allow direct call derived from constant MethodHandle if JDK version >= 1.8.0_60 ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/ResolvedMethodHandleCallTargetNode.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/MethodHandleNode.java Changeset: 1048511c6bcc Author: Doug Simon Date: 2015-03-30 17:50 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/1048511c6bcc added extension points for creating GraphBuilder plugins ! graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBackendFactory.java ! graal/com.oracle.graal.hotspot.sparc/src/com/oracle/graal/hotspot/sparc/SPARCHotSpotBackendFactory.java Changeset: 1bc27c390bce Author: Doug Simon Date: 2015-03-30 17:51 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/1bc27c390bce add InlineIntrinsicsDuringParsing option with a default value of true ! graal/com.oracle.graal.java/src/com/oracle/graal/java/AbstractBytecodeParser.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/ReplacementsImpl.java ! graal/com.oracle.graal.replacements/src/com/oracle/graal/replacements/nodes/ArrayEqualsNode.java Changeset: 5ba6a770b0c6 Author: Doug Simon Date: 2015-03-30 17:58 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/5ba6a770b0c6 Merge. Changeset: bba03da2b86b Author: Doug Simon Date: 2015-03-30 20:43 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/bba03da2b86b EconomyHighTier must apply CanonicalizerPhase ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/EconomyHighTier.java Changeset: 47ae36e2af46 Author: Doug Simon Date: 2015-03-30 20:45 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/47ae36e2af46 Merge. Changeset: c7c799f40c1e Author: Christian Humer Date: 2015-03-30 22:52 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/c7c799f40c1e Truffle: cache compiling flag in OptimizedCallTarget to speed up check in the interpreter; ! graal/com.oracle.graal.truffle.hotspot/src/com/oracle/graal/truffle/hotspot/HotSpotTruffleRuntime.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/OptimizedCallTarget.java Changeset: 3844fb65016c Author: Christian Humer Date: 2015-03-30 22:52 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/3844fb65016c SL: repeating node should implement SLStatementNode for a proper toString implementation. ! graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/SLStatementNode.java ! graal/com.oracle.truffle.sl/src/com/oracle/truffle/sl/nodes/controlflow/SLRepeatingNode.java Changeset: e8e55ebcf069 Author: Christian Humer Date: 2015-03-31 02:16 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/e8e55ebcf069 Truffle: implement language agnostic OSR support. + graal/com.oracle.graal.truffle.test/sl/TestOSR.sl ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/DefaultLoopNodeFactory.java + graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/OptimizedOSRLoopNode.java ! graal/com.oracle.graal.truffle/src/com/oracle/graal/truffle/TruffleCompilerOptions.java From renzetorensma at gmail.com Tue Mar 31 10:29:00 2015 From: renzetorensma at gmail.com (Renze Torensma) Date: Tue, 31 Mar 2015 12:29:00 +0200 Subject: Difference @NodeChild and Node.@Child annotations Message-ID: <92B0B2AE-91A4-4BD3-9FC4-005DB73A1264@gmail.com> Hi, I was wondering what?s the difference between the @NodeChild annotation used for example in the SLBinaryNode and the @Child annotation used for example in the SLRootNode? Renze From christian.humer at gmail.com Tue Mar 31 14:35:38 2015 From: christian.humer at gmail.com (Christian Humer) Date: Tue, 31 Mar 2015 16:35:38 +0200 Subject: FW: Difference @NodeChild and Node.@Child annotations In-Reply-To: <047c01d06bac$e16ba6e0$a442f4a0$@gmail.com> References: <92B0B2AE-91A4-4BD3-9FC4-005DB73A1264@gmail.com> <047c01d06bac$e16ba6e0$a442f4a0$@gmail.com> Message-ID: <049501d06bbf$f585b310$e0911930$@gmail.com> Missed to add graal-dev in cc. Hi Renze, The @Child annotation is part of the Truffle API. It marks a field to contain a child node. This annotation is useful for the language agnostic mechanism to traverse the AST and to replace Nodes in the AST. On top of the Truffle API there is Truffle DSL[1]. Truffle DSL is an embedded domain specific language built on top of the Truffle API to simplify the development of certain patterns of Truffle interpreters. Internally it generates Java source code that uses the Truffle API. Nodes declared solely with the Truffle API and nodes declared using the Truffle DSL are mixed in most of the guest language implementations. The @NodeChild annotation is part of Truffle DSL and represents a child node declaration there. As opposed to the @Child annotation it is used on Java classes instead of Java fields and provides some additional meta-data for the DSL. Internally the DSL generates Java fields annotated with the @Child annotation. Most of the reasons why this separation was necessary recently disappeared. So it's possible that we will see these two concepts converge in the future. I hope this answers your question. - Christian Humer [1] http://lafo.ssw.uni-linz.ac.at/papers/2014_GPCE_TruffleDSL.pdf -----Original Message----- From: graal-dev [mailto:graal-dev-bounces at openjdk.java.net] On Behalf Of Renze Torensma Sent: Dienstag, 31. M?rz 2015 12:29 To: graal-dev at openjdk.java.net Subject: Difference @NodeChild and Node. at Child annotations Hi, I was wondering what?s the difference between the @NodeChild annotation used for example in the SLBinaryNode and the @Child annotation used for example in the SLRootNode? Renze From renzetorensma at gmail.com Tue Mar 31 16:05:20 2015 From: renzetorensma at gmail.com (Renze Torensma) Date: Tue, 31 Mar 2015 18:05:20 +0200 Subject: Difference @NodeChild and Node.@Child annotations In-Reply-To: <049501d06bbf$f585b310$e0911930$@gmail.com> References: <92B0B2AE-91A4-4BD3-9FC4-005DB73A1264@gmail.com> <047c01d06bac$e16ba6e0$a442f4a0$@gmail.com> <049501d06bbf$f585b310$e0911930$@gmail.com> Message-ID: <0C192AD9-D8A1-4510-B920-4AE8CAD7EC94@gmail.com> Thanks that?s a really clear answer! Renze > On 31 mrt. 2015, at 16:35, Christian Humer wrote: > > Missed to add graal-dev in cc. > > Hi Renze, > > The @Child annotation is part of the Truffle API. It marks a field to contain a child node. This annotation is useful for the language agnostic mechanism to traverse the AST and to replace Nodes in the AST. > > On top of the Truffle API there is Truffle DSL[1]. Truffle DSL is an embedded domain specific language built on top of the Truffle API to simplify the development of certain patterns of Truffle interpreters. Internally it generates Java source code that uses the Truffle API. Nodes declared solely with the Truffle API and nodes declared using the Truffle DSL are mixed in most of the guest language implementations. The @NodeChild annotation is part of Truffle DSL and represents a child node declaration there. As opposed to the @Child annotation it is used on Java classes instead of Java fields and provides some additional meta-data for the DSL. Internally the DSL generates Java fields annotated with the @Child annotation. > > Most of the reasons why this separation was necessary recently disappeared. So it's possible that we will see these two concepts converge in the future. > > I hope this answers your question. > > - Christian Humer > > [1] http://lafo.ssw.uni-linz.ac.at/papers/2014_GPCE_TruffleDSL.pdf > > > -----Original Message----- > From: graal-dev [mailto:graal-dev-bounces at openjdk.java.net] On Behalf Of Renze Torensma > Sent: Dienstag, 31. M?rz 2015 12:29 > To: graal-dev at openjdk.java.net > Subject: Difference @NodeChild and Node. at Child annotations > > Hi, > > I was wondering what?s the difference between the @NodeChild annotation used for example in the SLBinaryNode and the @Child annotation used for example in the SLRootNode? > > Renze > >