From jim.duey at gmail.com Tue May 1 06:40:28 2012 From: jim.duey at gmail.com (Jim Duey) Date: Tue, 01 May 2012 08:40:28 -0500 Subject: Porting Graal to Clojure Message-ID: <4F9FE7CC.2050505@gmail.com> For anyone interested, I've started porting Graal to Clojure. (Clojure is a Lisp that runs on the JVM.) Here's my first blog post that describes parsing a method's bytecode into basic blocks. http://www.clojure.net/2012/05/01/New-Project/ On of the things I'm trying to show is the difference between typical OOP style and Functional Programming style. I'd love to hear any comments anyone would have. Jim From thomas.wuerthinger at oracle.com Wed May 2 17:37:51 2012 From: thomas.wuerthinger at oracle.com (Thomas Wuerthinger) Date: Wed, 02 May 2012 17:37:51 -0700 Subject: Porting Graal to Clojure In-Reply-To: <4F9FE7CC.2050505@gmail.com> References: <4F9FE7CC.2050505@gmail.com> Message-ID: <4FA1D35F.3040700@oracle.com> Looks interesting! Functional programming will probably in particular be nice for some of the stateless optimization phases (e.g., ReadEliminationPhase). At some point we were also experimenting with node predicates for querying and filtering compiler nodes (see class NodePredicates), but we've not yet come to a conclusion on how such a predicate API should look like. - thomas On 01.05.2012 06:40, Jim Duey wrote: > For anyone interested, I've started porting Graal to Clojure. (Clojure > is a Lisp that runs on the JVM.) > > Here's my first blog post that describes parsing a method's bytecode > into basic blocks. > > http://www.clojure.net/2012/05/01/New-Project/ > > On of the things I'm trying to show is the difference between typical > OOP style and Functional Programming style. I'd love to hear any > comments anyone would have. > > Jim From doug.simon at oracle.com Sat May 5 18:04:10 2012 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Sun, 06 May 2012 01:04:10 +0000 Subject: hg: graal/graal: 88 new changesets Message-ID: <20120506010859.98D7747173@hg.openjdk.java.net> Changeset: 558ea5229886 Author: Lukas Stadler Date: 2012-04-23 10:43 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/558ea5229886 (temporarily) make non-empty liveIn set a bailout again ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/LinearScan.java Changeset: a44b5ebb28a0 Author: Doug Simon Date: 2012-04-23 10:27 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/a44b5ebb28a0 moved loop safepoint insertion from graph building to just before scheduling, removing the need for safepoint elimination ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java + graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/LoopSafepointInsertionPhase.java - graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/SafepointPollingEliminationPhase.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java Changeset: 7689999f0ea6 Author: Doug Simon Date: 2012-04-23 11:10 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/7689999f0ea6 improved disassembly comments for out-of-line stubs ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/target/amd64/AMD64DeoptimizationStub.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/target/amd64/AMD64LIRGenerator.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/target/amd64/AMD64XirOp.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/target/amd64/HotSpotAMD64Backend.java ! graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64Arithmetic.java ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/LIR.java ! graal/com.oracle.graal.lir/src/com/oracle/graal/lir/asm/TargetMethodAssembler.java Changeset: e72dd6533eb9 Author: Doug Simon Date: 2012-04-23 15:42 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/e72dd6533eb9 documented importance of nmethod::_graal_compiled_method wrt code unloading and GC ! src/share/vm/code/nmethod.hpp Changeset: 290b3025b66f Author: Doug Simon Date: 2012-04-23 15:49 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/290b3025b66f added support for disassembling code after installation (so that the result of patching and relocation can be seen) ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilationTask.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotTargetMethod.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/CompilerToVM.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/CompilerToVMImpl.java + graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotCodeInfo.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotCompiledMethod.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java ! graal/com.oracle.graal.printer/src/com/oracle/graal/printer/CFGPrinterObserver.java + graal/com.oracle.max.cri/src/com/oracle/max/cri/ri/RiCodeInfo.java ! graal/com.oracle.max.cri/src/com/oracle/max/cri/ri/RiRuntime.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/graalCompilerToVM.cpp ! src/share/vm/graal/graalJavaAccess.hpp Changeset: d0877209410d Author: Doug Simon Date: 2012-04-23 15:49 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/d0877209410d Merge. Changeset: 1767613f8a4a Author: Doug Simon Date: 2012-04-23 21:27 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/1767613f8a4a fixed regression: loop safepoints cannot be placed inside snippets ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/LoopSafepointInsertionPhase.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/LoopEndNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/SafepointNode.java ! graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/Snippets.java Changeset: 74dfa6f86879 Author: Lukas Stadler Date: 2012-04-24 13:04 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/74dfa6f86879 removed last remaining references to vmEntries and vmExits ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/Compiler.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilerImpl.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilerThread.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotTargetMethod.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/logging/Logger.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/package-info.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotCompiledMethod.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotConstantPool.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotMethodData.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotMethodResolvedImpl.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotTypePrimitive.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotTypeResolvedImpl.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotXirGenerator.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/server/CompilationServer.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/server/InvocationSocket.java ! src/share/vm/classfile/vmSymbols.hpp ! src/share/vm/graal/graalVMToCompiler.cpp ! src/share/vm/graal/graalVMToCompiler.hpp Changeset: 96e52f0c0785 Author: Lukas Stadler Date: 2012-04-24 13:13 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/96e52f0c0785 fix for last changeset ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilerThread.java Changeset: 71e00437d0a8 Author: Doug Simon Date: 2012-04-24 16:04 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/71e00437d0a8 enhanced debug filter to be a comma-separated list of glob or substring terms + graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/DebugFilter.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotDebugConfig.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/MethodFilter.java Changeset: 8fed6a3d692a Author: Lukas Stadler Date: 2012-04-24 17:10 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/8fed6a3d692a use RiResolvedType in VirtualObjectNode ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/VirtualObjectNode.java Changeset: de6a7d640ef2 Author: Lukas Stadler Date: 2012-04-24 17:11 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/de6a7d640ef2 use @Data in NewArrayNode subclasses ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewArrayNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewObjectArrayNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewTypeArrayNode.java Changeset: 8dd6165d7b73 Author: Lukas Stadler Date: 2012-04-24 17:11 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/8dd6165d7b73 compute returnStamp on demand in MethodCallTargetNode ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/MethodCallTargetNode.java Changeset: f0a5e50756ea Author: Lukas Stadler Date: 2012-04-24 17:12 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/f0a5e50756ea use @Data in FixedNode and ControlSplitNode ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ControlSplitNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FixedNode.java Changeset: 0d1e7d2dcba9 Author: Lukas Stadler Date: 2012-04-24 17:14 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/0d1e7d2dcba9 use @Data in NewInstanceNode and ArithmeticNode ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/ArithmeticNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewInstanceNode.java Changeset: dcb4695e3bb0 Author: Lukas Stadler Date: 2012-04-24 17:16 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/dcb4695e3bb0 ReadHubNode result is non-null ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ReadHubNode.java Changeset: e96c8d2925da Author: Lukas Stadler Date: 2012-04-24 17:17 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/e96c8d2925da let NodeClass.getDebugProperties handle arrays and doubles ! graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeClass.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotTypeResolvedImpl.java Changeset: d30314b667eb Author: Lukas Stadler Date: 2012-04-24 17:22 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/d30314b667eb Merge Changeset: 6519cf82d390 Author: Lukas Stadler Date: 2012-04-24 18:13 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/6519cf82d390 remove on more vmExits instance ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilerImpl.java Changeset: 82e606f9ba69 Author: Lukas Stadler Date: 2012-04-25 11:24 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/82e606f9ba69 add RiGraphCache interface ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/graph/GraphCache.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/EscapeAnalysisPhase.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/InliningPhase.java Changeset: 5dbc738b8e3e Author: Lukas Stadler Date: 2012-04-25 11:33 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/5dbc738b8e3e add missing file + graal/com.oracle.graal.nodes/src/com/oracle/graal/cri/RiGraphCache.java Changeset: 796917d3bfc9 Author: Lukas Stadler Date: 2012-04-25 11:33 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/796917d3bfc9 move cached graph eviction out of GraalCompiler ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilationTask.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/Compiler.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilerImpl.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/cri/GraalRuntime.java Changeset: 2baec1384f2d Author: Gilles Duboscq Date: 2012-04-25 11:38 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/2baec1384f2d Do not remove empty diamond shape if there are guards in any of the branches and evacuate any other anchored values ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java Changeset: 2cf9e7d965d6 Author: Gilles Duboscq Date: 2012-04-25 12:00 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/2cf9e7d965d6 Properly escape glob pattern when transforming to regex ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/MethodFilter.java Changeset: 31fc6b6c0425 Author: Gilles Duboscq Date: 2012-04-25 12:01 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/31fc6b6c0425 Pass -v argument to SPECjvm2008 harness ! mx/commands.py Changeset: 60e658e50fce Author: Gilles Duboscq Date: 2012-04-25 12:01 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/60e658e50fce Merge Changeset: 1e3d4518813e Author: Lukas Stadler Date: 2012-04-25 12:13 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/1e3d4518813e don't remove empty if - merge constructs if there are guards depending on the BeginNodes ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java Changeset: 05217985063f Author: Lukas Stadler Date: 2012-04-25 12:15 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/05217985063f removed clear and removeGraph from the RiGraphCache interface ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/graph/GraphCache.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/cri/RiGraphCache.java Changeset: 0ebd9cfdc11f Author: Lukas Stadler Date: 2012-04-25 13:02 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/0ebd9cfdc11f removed @Data annotation ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/InliningPhase.java ! graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Node.java ! graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeClass.java ! graal/com.oracle.graal.graph/test/com/oracle/graal/graph/test/TestNode.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/ArrayCopySnippets.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ConstantNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ControlSplitNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/DeoptimizeNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FixedGuardNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FixedNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GuardNode.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/LocalNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/LoopEndNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/PhiNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ValueNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ValueProxyNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/ArithmeticNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/CompareNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/ConvertNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/NormalizeCompareNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/NullCheckNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/AccessNode.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/FloatingAccessNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/IndexedLocationNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/LocationNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/LookupSwitchNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/RuntimeCallNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/TableSwitchNode.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/UnsafeCastNode.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/AccessFieldNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AccessIndexedNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AccessMonitorNode.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/InstanceOfNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/IsTypeNode.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/NewInstanceNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewMultiArrayNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewObjectArrayNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/NewTypeArrayNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/TypeCheckNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/VirtualObjectFieldNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/VirtualObjectNode.java ! graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/nodes/MathIntrinsicNode.java Changeset: f1585764a3da Author: Lukas Stadler Date: 2012-04-25 13:03 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/f1585764a3da Merge ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java Changeset: 23ea81293bd5 Author: Lukas Stadler Date: 2012-04-25 13:33 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/23ea81293bd5 let NodeClass.valueEqual handle long fields ! graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeClass.java Changeset: 55bf72fafc41 Author: Lukas Stadler Date: 2012-04-25 14:34 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/55bf72fafc41 (preliminary) logging to file (-G:LogFile=asdf.txt) ! graal/com.oracle.graal.debug/src/com/oracle/graal/debug/Debug.java ! graal/com.oracle.graal.debug/src/com/oracle/graal/debug/DebugConfig.java ! graal/com.oracle.graal.debug/src/com/oracle/graal/debug/internal/DebugScope.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilerThread.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotDebugConfig.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java Changeset: 31110c447ad2 Author: Doug Simon Date: 2012-04-26 12:38 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/31110c447ad2 fixed bug in XIR for checkcast & instanceof: klassOop of hint object was not being used so compare always failed ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilationTask.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotXirGenerator.java Changeset: 6a7b16cc142d Author: Gilles Duboscq Date: 2012-04-26 13:57 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/6a7b16cc142d Update the coloring filter for IGV ! src/share/tools/IdealGraphVisualizer/Graal/src/com/sun/hotspot/igv/graal/filters/color.filter ! visualizer/Graal/src/com/sun/hotspot/igv/graal/filters/color.filter Changeset: 527ff42e0b26 Author: Gilles Duboscq Date: 2012-04-26 13:59 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/527ff42e0b26 In canonicalizer, when cleaning node with no usages, use a better definition of 'floating' node ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/CanonicalizerPhase.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/util/GraphUtil.java Changeset: 654318af685d Author: Gilles Duboscq Date: 2012-04-26 13:59 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/654318af685d Merge Changeset: 2558ff0945f8 Author: Lukas Stadler Date: 2012-04-25 14:57 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/2558ff0945f8 small change to scope log output ! graal/com.oracle.graal.debug/src/com/oracle/graal/debug/internal/DebugScope.java Changeset: 820fce52a244 Author: Lukas Stadler Date: 2012-04-26 14:18 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/820fce52a244 moved GraphCache to platform specific part, solved class unloading problem (see comments in HotSpotGraphCache.java) - graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/graph/GraphCache.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilationTask.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/Compiler.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilerImpl.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java + graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotGraphCache.java Changeset: 19ed2e2391a0 Author: Lukas Stadler Date: 2012-04-26 14:19 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/19ed2e2391a0 Merge Changeset: 31fd58477e44 Author: Lukas Stadler Date: 2012-04-26 14:27 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/31fd58477e44 get rid of compiler warning in jtt.loop.LoopLastIndexOf ! graal/com.oracle.graal.jtt/src/com/oracle/graal/jtt/loop/LoopLastIndexOf.java Changeset: 46fb141ae20f Author: Lukas Stadler Date: 2012-04-26 14:35 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/46fb141ae20f Merge Changeset: f8fc624c07a7 Author: Lukas Stadler Date: 2012-04-27 11:15 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/f8fc624c07a7 add leafGraphId to AccessFieldNode ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/SafeReadNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/SafeWriteNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnboxNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AccessFieldNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/LoadFieldNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/StoreFieldNode.java Changeset: be1a8ff480db Author: Lukas Stadler Date: 2012-04-27 11:16 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/be1a8ff480db Visualizer: display long properties correctly, "!InstanceOf" for negated InstanceOfNodes ! graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeClass.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/InstanceOfNode.java Changeset: 474ae8316c5a Author: Lukas Stadler Date: 2012-04-27 11:16 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/474ae8316c5a set exactType only if object is known to be non-null ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/type/StampFactory.java Changeset: 8ab14908fb3c Author: Doug Simon Date: 2012-04-27 13:12 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/8ab14908fb3c undid fix for non-issue in checkcast/instanceof XIR snippets ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotXirGenerator.java Changeset: 8ac40aed34bf Author: Christian Wimmer Date: 2012-04-27 12:04 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/8ac40aed34bf Consistent output of inlining decisions. Make all inlining decisions be printable using -G:Log=InliningDecisions ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/InliningPhase.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/util/InliningUtil.java Changeset: c8c234c05877 Author: Christian Wimmer Date: 2012-04-27 12:05 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/c8c234c05877 Call large method that contains only assertions under assert-statements to avoid call in product mode. ! graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeBitMap.java Changeset: b5cd7bc05695 Author: Christian Wimmer Date: 2012-04-27 12:56 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/b5cd7bc05695 Method entry counters: Enable the flag to collect an execution profile of compiled methods and their callers. This allows to, e.g., detect methods that should be inlined because they are called frequently. ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalOptions.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/LIRGenerator.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/CompilerToVM.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/CompilerToVMImpl.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java + graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/counters/MethodEntryCounters.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotMethodResolvedImpl.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/target/amd64/HotSpotAMD64Backend.java ! src/share/vm/graal/graalCompilerToVM.cpp Changeset: 38a5a8615f2d Author: Lukas Stadler Date: 2012-04-30 10:11 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/38a5a8615f2d turn off graph caching ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalOptions.java Changeset: e79727f1b3d0 Author: Doug Simon Date: 2012-04-30 13:16 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/e79727f1b3d0 rename: AMD64LIRLowerable -> LIRGenLowerable + graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/target/LIRGenLowerable.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/target/amd64/AMD64LIRGenerator.java - graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/target/amd64/AMD64LIRLowerable.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/InstanceOfNode.java ! graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/nodes/MathIntrinsicNode.java Changeset: 12c63380e7ff Author: Doug Simon Date: 2012-04-30 13:25 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/12c63380e7ff removed empty javadoc for generated serialVersionUID fields ! graal/com.oracle.graal.graph/src/com/oracle/graal/graph/GraalInternalError.java ! graal/com.oracle.graal.graph/src/com/oracle/graal/graph/VerificationError.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilerObject.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotTargetMethod.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotVMConfig.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotExceptionHandler.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotField.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotMethod.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotMethodData.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotMethodUnresolved.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotProfilingInfo.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotSignature.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotType.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotTypePrimitive.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/server/ReplacingStreams.java ! graal/com.oracle.max.cri/src/com/oracle/max/cri/ci/CiDebugInfo.java ! graal/com.oracle.max.cri/src/com/oracle/max/cri/ci/CiRegister.java ! graal/com.oracle.max.cri/src/com/oracle/max/cri/ci/CiTargetMethod.java ! graal/com.oracle.max.cri/src/com/oracle/max/cri/ri/RiTypeProfile.java Changeset: 7f038eb09d91 Author: Doug Simon Date: 2012-04-30 13:34 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/7f038eb09d91 rename and generalize: LIRGeneratorTool.emitCallToRuntime(CiRuntimeCall, ...) -> LIRGeneratorTool.emitCall(Object target, CiKind returnKind, CiKind[] parameterKinds, ...) ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/LIRGenerator.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/target/amd64/AMD64LIRGenerator.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/UnwindNode.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/LIRGeneratorTool.java Changeset: bb6c9818cd03 Author: Doug Simon Date: 2012-04-30 13:52 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/bb6c9818cd03 the phase plan used whether compiling via HotSpotRuntime.compileMethod() or VMToCompilerImpl.compileMethod() is now the same ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompiler.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java Changeset: 414c439ddec9 Author: Doug Simon Date: 2012-04-30 14:13 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/414c439ddec9 documented the reason for the NodeClassSnippets being written ! graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/NodeClassSnippets.java Changeset: f8ea2735ec4f Author: Doug Simon Date: 2012-04-30 15:41 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/f8ea2735ec4f added toString() method to StructuredGraph ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/StructuredGraph.java Changeset: a53162ca8219 Author: Doug Simon Date: 2012-04-30 20:15 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/a53162ca8219 introduced HotSpotKlassOop type to convey a klassOop value from the compiler to the C++ code instead of relying on the C++ code automagically converting a HotSpotTypeResolvedImpl value to a klassOop + graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotKlassOop.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotType.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotTypePrimitive.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotTypeResolved.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotTypeResolvedImpl.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotTypeUnresolved.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotXirGenerator.java ! graal/com.oracle.max.cri/src/com/oracle/max/cri/ri/RiType.java ! src/share/vm/classfile/systemDictionary.hpp ! src/share/vm/classfile/vmSymbols.hpp ! src/share/vm/graal/graalCodeInstaller.cpp ! src/share/vm/graal/graalJavaAccess.hpp Changeset: 28577a53d3a7 Author: Doug Simon Date: 2012-04-30 20:26 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/28577a53d3a7 added address and offset to description of a compiled Java frame in a hs_err stack dump ! src/share/vm/runtime/frame.cpp Changeset: e4e02131c58b Author: Doug Simon Date: 2012-04-30 20:28 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/e4e02131c58b log file (i.e. -G:LogFile=log.txt option) now used for TTY output as well ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilerThread.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotDebugConfig.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompiler.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java ! graal/com.oracle.max.criutils/src/com/oracle/max/criutils/TTY.java Changeset: 7ceb3f3671b9 Author: Doug Simon Date: 2012-04-30 20:40 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/7ceb3f3671b9 removed XIR support for arraycopy ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotXirGenerator.java ! graal/com.oracle.max.cri/src/com/oracle/max/cri/xir/RiXirGenerator.java Changeset: 678f31e9724e Author: Doug Simon Date: 2012-05-01 10:53 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/678f31e9724e added -G:+CheckcastCounters to profile the paths taken through a compiled checkcast ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalOptions.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/OptimisticOptimizations.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotXirGenerator.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java ! graal/com.oracle.max.cri/src/com/oracle/max/cri/xir/CiXirAssembler.java Changeset: 6e346160f104 Author: Doug Simon Date: 2012-05-01 18:35 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/6e346160f104 replaced magic constants with GraalOptions.CheckcastMaxHints and GraalOptions.InstanceOfMaxHints ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalOptions.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java Changeset: 71157e8ea13b Author: Thomas Wuerthinger Date: 2012-05-01 15:20 -0700 URL: http://hg.openjdk.java.net/graal/graal/rev/71157e8ea13b Clean up. Removed unused UnscheduleNodes iterator. - graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/debug/package-info.java - graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/schedule/UnscheduleNodes.java Changeset: b1de7c9ab0e0 Author: Doug Simon Date: 2012-05-02 11:31 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/b1de7c9ab0e0 expanded analysis of compiled checkcast code paths ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotXirGenerator.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/TemplateFlag.java ! graal/com.oracle.max.cri/src/com/oracle/max/cri/xir/RiXirGenerator.java Changeset: ecc2b68344de Author: Lukas Stadler Date: 2012-05-02 12:59 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/ecc2b68344de turn off priority compilation queue ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalOptions.java ! src/share/vm/runtime/globals.hpp Changeset: 439ca5ecc7dc Author: Doug Simon Date: 2012-05-02 14:39 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/439ca5ecc7dc types profiles are now sorted in descending order of each profiled type's probability ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/util/InliningUtil.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotMethodData.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotMethodResolvedImpl.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java ! graal/com.oracle.max.cri/src/com/oracle/max/cri/ri/RiTypeProfile.java Changeset: f536a459c2d3 Author: Lukas Stadler Date: 2012-05-02 14:45 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/f536a459c2d3 re-enable graph caching and the priority compilation queue ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalOptions.java ! src/share/vm/runtime/globals.hpp Changeset: a49538b9073f Author: Lukas Stadler Date: 2012-05-02 14:47 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/a49538b9073f change PiNode to anchor on any FixedNode, not only BeginNodes ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/PiNode.java Changeset: 17a84768b1cd Author: Lukas Stadler Date: 2012-05-02 14:53 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/17a84768b1cd fix canonicalization of InstanceOfNode ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/InstanceOfNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/type/StampFactory.java Changeset: e8f80481326d Author: Lukas Stadler Date: 2012-05-02 14:55 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/e8f80481326d use PiNodes instead of CheckCastNodes to pin inlining receivers, remove emitCode flag ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/LIRGenerator.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/util/InliningUtil.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/NullCheckNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastNode.java Changeset: 4fb83c633fce Author: Lukas Stadler Date: 2012-05-02 14:56 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/4fb83c633fce changes to canonicalizer log output ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/CanonicalizerPhase.java Changeset: 1fbc4a08d029 Author: Lukas Stadler Date: 2012-05-02 15:08 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/1fbc4a08d029 Merge ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/util/InliningUtil.java Changeset: 77809963c5cc Author: Lukas Stadler Date: 2012-05-02 16:32 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/77809963c5cc test case for the InstanceOfNode canonicalizer fix + graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/InstanceOfCanonicalizerTest.java Changeset: 20c14eb46238 Author: Doug Simon Date: 2012-05-02 17:09 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/20c14eb46238 added GraalOptions.CheckcastMinHintHitProbability to better guide use of hints for checkcasts ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalOptions.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotXirGenerator.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java Changeset: f47c770756e6 Author: Doug Simon Date: 2012-05-02 18:04 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/f47c770756e6 moved RiResolvedMethod.dumpProfile() to CiUtil.profileAsString() ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotMethodResolved.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotMethodResolvedImpl.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java ! graal/com.oracle.max.cri/src/com/oracle/max/cri/ci/CiUtil.java ! graal/com.oracle.max.cri/src/com/oracle/max/cri/ri/RiResolvedMethod.java Changeset: 00803ae428d2 Author: Doug Simon Date: 2012-05-02 18:23 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/00803ae428d2 fixed bug in use of CheckcastMinHintHitProbability ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java Changeset: 4c3d953f8131 Author: Doug Simon Date: 2012-05-03 13:39 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/4c3d953f8131 added mechanism (enabled by -G:PICache and -G:PiFilter) for saving/loading method profiling info to/from disk ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalOptions.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotMethodResolvedImpl.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotProfilingInfo.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotXirGenerator.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java ! graal/com.oracle.max.cri/src/com/oracle/max/cri/ci/CiUtil.java ! graal/com.oracle.max.cri/src/com/oracle/max/cri/ri/RiProfilingInfo.java ! graal/com.oracle.max.cri/src/com/oracle/max/cri/ri/RiTypeProfile.java ! graal/com.oracle.max.criutils/src/com/oracle/max/criutils/BaseProfilingInfo.java + graal/com.oracle.max.criutils/src/com/oracle/max/criutils/JniMangle.java + graal/com.oracle.max.criutils/src/com/oracle/max/criutils/SnapshotProfilingInfo.java Changeset: a60d1ed97bd0 Author: Gilles Duboscq Date: 2012-04-27 12:14 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/a60d1ed97bd0 Fix a peeling-escape analysis related problem that was causin LinearScan bailouts (merge virtual chains when merging ends of the peeled code) LiveIn problems in LinearScan are back to GraalInternalError ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/LinearScan.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/LoopTransformDataResolver.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/SuperBlock.java Changeset: 158a230b4331 Author: Gilles Duboscq Date: 2012-04-27 12:14 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/158a230b4331 Merge Changeset: 077ec9468516 Author: Gilles Duboscq Date: 2012-04-27 13:13 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/077ec9468516 rename CiKind.toUnboxedJavaClass to toBoxedJavaClass ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/BoxingEliminationPhase.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotCompiledMethod.java ! graal/com.oracle.max.cri/src/com/oracle/max/cri/ci/CiKind.java Changeset: de571c017f61 Author: Gilles Duboscq Date: 2012-05-03 11:05 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/de571c017f61 Merge Changeset: 5698355398e3 Author: Gilles Duboscq Date: 2012-05-03 15:19 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/5698355398e3 Fix merge Fix benign -esa problem around escape analysed peeling ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/SuperBlock.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/EscapeAnalysisPhase.java Changeset: 4471a30a9728 Author: Gilles Duboscq Date: 2012-05-03 15:19 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/4471a30a9728 Merge Changeset: 85103daaf504 Author: Gilles Duboscq Date: 2012-05-03 15:43 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/85103daaf504 Fix : There can be proxies in the virtual chain ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/SuperBlock.java Changeset: a704936a25b7 Author: Gilles Duboscq Date: 2012-05-04 12:08 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/a704936a25b7 Fix : in peeling, while merging early exits, transfer all anchored nodes from the exit to the merge ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/SuperBlock.java Changeset: eafa1f3ad48f Author: Gilles Duboscq Date: 2012-05-04 12:08 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/eafa1f3ad48f Add verification in NullCheckNode and AccessFieldNode Remove useless debug properties from IsTypeNode ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/NullCheckNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AccessFieldNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/IsTypeNode.java Changeset: 37055c1c549a Author: Doug Simon Date: 2012-05-04 16:38 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/37055c1c549a removed product and debug configurations from hotspot CDT project config ! hotspot/.cproject Changeset: a250ca83684e Author: Doug Simon Date: 2012-05-04 16:52 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/a250ca83684e extended canonicalization so that a caller can specify a CiConstant value is an immutable object or array ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/CanonicalizerPhase.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/InliningPhase.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/types/PropagateTypeCachePhase.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/CanonicalizerTool.java Changeset: 8b5ef24da264 Author: Doug Simon Date: 2012-05-04 16:54 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/8b5ef24da264 canonicalize load from a compile-constant, immutable array ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/LoadIndexedNode.java From miguelalfredo.garcia at epfl.ch Mon May 7 05:57:23 2012 From: miguelalfredo.garcia at epfl.ch (Garcia Gutierrez Miguel Alfredo) Date: Mon, 7 May 2012 12:57:23 +0000 Subject: what can we expect from invokeExact() Message-ID: <7E4228B446372948BBB2916FC53FA49E235DA0C5@REXMB.intranet.epfl.ch> Hi, Right now the Scala compiler doesn't rely on invokedynamic but some brainstorming is underway as sketched next. Any Graal-specific insights are welcome. Two sources of slowdown for us are: (a) "The Inlining Problem" as described by Cliff Clik [1] (b) "datatype-agnostic bytecode" (think of arithmetic on boxed primitives and you'll be pretty close, the primitives don't change in any given invocation as they can in JavaScript, but can change across invocations) Regarding the first problem, a candidate solution involves emitting code to pass a MethodHandler object rather than a scala.Function object: the invokeExact() would hopefully be inlined , all while avoiding autoboxing (because the signature for the invokeExact() refers to primitive types if any). For (b) again MethodHandler, as described at - https://groups.google.com/d/msg/jvm-languages/eEp3Z8tS8wo/KDJVFz6ZFm0J The approach "sketched" above has the HUGE HUGE HUGE advantage that no separate compilation scheme would be needed for Graal, or at most a few annotations that Graal could understand to optimize beyond what traditional HotSpot does (and yet get respectable performance from non-Graal HotSpot). Questions: (Q1) Without hints, "inlining" a MH invokeExact() gets reduced to an invokevirtual on the target method, right? But that target method itself is not "inlined"? Or is it? (Q2) Tracing. We've read the paper "Trace-based compilation for the Java HotSpot virtual machine" [2] and wonder how Graal goes about it (for example, regarding "The Inlining Problem") regards, Miguel http://lampwww.epfl.ch/~magarcia/ScalaCompilerCornerReloaded [1] http://www.azulsystems.com/blog/cliff/2011-04-04-fixing-the-inlining-problem [2] Trace-based compilation for the Java HotSpot virtual machine Christian H?ubl, Hanspeter M?ssenb?ck http://dl.acm.org/citation.cfm?id=2093176&CFID=81110431&CFTOKEN=26096476 -- Miguel Garcia Swiss Federal Institute of Technology EPFL - IC - LAMP1 - INR 328 - Station 14 CH-1015 Lausanne - Switzerland http://lamp.epfl.ch/~magarcia/ From forax at univ-mlv.fr Mon May 7 07:44:10 2012 From: forax at univ-mlv.fr (=?ISO-8859-1?Q?R=E9mi_Forax?=) Date: Mon, 07 May 2012 16:44:10 +0200 Subject: what can we expect from invokeExact() In-Reply-To: <7E4228B446372948BBB2916FC53FA49E235DA0C5@REXMB.intranet.epfl.ch> References: <7E4228B446372948BBB2916FC53FA49E235DA0C5@REXMB.intranet.epfl.ch> Message-ID: <4FA7DFBA.5040709@univ-mlv.fr> About the "inlining problem", first there is an OSR problem, the way hotspot implements OSR is broken, when you discover that a loop is hot, instead of trying to compile the inner-loop, the idea is to compile the method and then jump in the middle of the inner-loop using a special supplementary entry point generated just for that. You will have a problem because you may have no runtime data on the code executed after the loop, instead of generating a call to the interpreter just after the loop, you have often enough information if you just propagate the ones you gather from the analysis of the method above the loop (more on that below), so the idea is to try to continue to analyze the code until or you reach a return or you reach a branch or a call that require runtime informations that are not available. Now the "inlining" problem, the inner loop contains a polymorphic call and because the method is used by a lot of different callsites so you have a type profile pollution, i.e the method call is indeed magamorphic. The idea here is to go backward. Instead of just compiling the method, the inline algorithm should be able to back following the stack and try to compile the caller method and inline the method containing the hot loop. And so on until or there is too much node, or there is no megamorphic call anymore because the declaration of the lambda and it's call are in the same inlining horizon thus can be replaced by the escape analysis. If there is still some polymorphic calls, it's interesting to include profiling code in the generated code to be able to gather new runtime profile with less garbage because the code will be less shared. cheers, R?mi On 05/07/2012 02:57 PM, Garcia Gutierrez Miguel Alfredo wrote: > Hi, > > Right now the Scala compiler doesn't rely on invokedynamic but some brainstorming is underway as sketched next. Any Graal-specific insights are welcome. > > Two sources of slowdown for us are: > > (a) "The Inlining Problem" as described by Cliff Clik [1] > > (b) "datatype-agnostic bytecode" (think of arithmetic on boxed primitives and you'll be pretty close, the primitives don't change in any given invocation as they can in JavaScript, but can change across invocations) > > Regarding the first problem, a candidate solution involves emitting code to pass a MethodHandler object rather than a scala.Function object: the invokeExact() would hopefully be inlined , all while avoiding autoboxing (because the signature for the invokeExact() refers to primitive types if any). > > For (b) again MethodHandler, as described at > - https://groups.google.com/d/msg/jvm-languages/eEp3Z8tS8wo/KDJVFz6ZFm0J > > The approach "sketched" above has the HUGE HUGE HUGE advantage that no separate compilation scheme would be needed for Graal, or at most a few annotations that Graal could understand to optimize beyond what traditional HotSpot does (and yet get respectable performance from non-Graal HotSpot). > > Questions: > > (Q1) Without hints, "inlining" a MH invokeExact() gets reduced to an invokevirtual on the target method, right? But that target method itself is not "inlined"? Or is it? > > (Q2) Tracing. We've read the paper "Trace-based compilation for the Java HotSpot virtual machine" [2] and wonder how Graal goes about it (for example, regarding "The Inlining Problem") > > regards, > > Miguel > http://lampwww.epfl.ch/~magarcia/ScalaCompilerCornerReloaded > > > [1] http://www.azulsystems.com/blog/cliff/2011-04-04-fixing-the-inlining-problem > > [2] Trace-based compilation for the Java HotSpot virtual machine > Christian H?ubl, Hanspeter M?ssenb?ck > http://dl.acm.org/citation.cfm?id=2093176&CFID=81110431&CFTOKEN=26096476 > > > -- > Miguel Garcia > Swiss Federal Institute of Technology > EPFL - IC - LAMP1 - INR 328 - Station 14 > CH-1015 Lausanne - Switzerland > http://lamp.epfl.ch/~magarcia/ > > From miguelalfredo.garcia at epfl.ch Mon May 7 12:50:53 2012 From: miguelalfredo.garcia at epfl.ch (Garcia Gutierrez Miguel Alfredo) Date: Mon, 7 May 2012 19:50:53 +0000 Subject: per-instance inlining hint for MethodHandle Message-ID: <7E4228B446372948BBB2916FC53FA49E235DA29C@REXMB.intranet.epfl.ch> It appears that the most effective way to deal with MethodHandle instance (to inline or not to inline) would be for each MH instance to carry a marker emitted by the static compiler, to indicate ForceInlining. In the case of Scala, such facility would be instrumental to achieving both goals of "lambdas-without-autoboxing", "runtime specialization to primitive types", and straight line code. And yes, Java would also benefit from that facility, too :) Miguel http://lampwww.epfl.ch/~magarcia/ScalaCompilerCornerReloaded -- Miguel Garcia Swiss Federal Institute of Technology EPFL - IC - LAMP1 - INR 328 - Station 14 CH-1015 Lausanne - Switzerland http://lamp.epfl.ch/~magarcia/ From doug.simon at oracle.com Sat May 12 18:04:06 2012 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Sun, 13 May 2012 01:04:06 +0000 Subject: hg: graal/graal: 35 new changesets Message-ID: <20120513010604.DB98F472C6@hg.openjdk.java.net> Changeset: 4bfdf8cf87af Author: Doug Simon Date: 2012-05-07 11:08 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/4bfdf8cf87af added thread name to debug info message ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotDebugConfig.java Changeset: 6cc970203f30 Author: Doug Simon Date: 2012-05-07 11:34 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/6cc970203f30 moved creation of a RiCodeInfo to the runtime side of the CRI ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilationTask.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilerImpl.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilerObject.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/CompilerToVM.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/CompilerToVMImpl.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotKlassOop.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java ! graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/CompiledMethodTest.java + graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/GraalAccess.java - graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/GraalRuntimeAccess.java ! graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/GraphTest.java ! graal/com.oracle.max.cri/src/com/oracle/max/cri/ri/RiRuntime.java Changeset: dec5a35ddbe2 Author: Doug Simon Date: 2012-05-07 11:40 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/dec5a35ddbe2 lowering checkcasts with Java snippets (incomplete) ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/target/LIRGenLowerable.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/util/InliningUtil.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/bridge/VMToCompilerImpl.java + graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/TypeCheckSlowPath.java + graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/CheckCastSnippets.java + graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/LowerCheckCastPhase.java + graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/target/amd64/AMD64TypeCheckSlowPathOp.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java ! graal/com.oracle.graal.printer/src/com/oracle/graal/printer/IdealGraphPrinterDumpHandler.java ! graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/Snippet.java ! graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/Snippets.java + graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/LowerCheckCastTest.java Changeset: d42425beb1d1 Author: Doug Simon Date: 2012-05-08 15:52 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/d42425beb1d1 pulled AbstractStateSplit into FixedWithNextNode and made it no longer implement StateSplit. StateSplit is now implemented only by nodes that really have side effects. ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/InsertStateAfterPlaceholderPhase.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java - graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/AbstractStateSplit.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/BeginNode.java + graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/BeginStateSplitNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FixedWithNextNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FrameState.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/LoopExitNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MergeNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/StateSplit.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/StructuredGraph.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/AbstractCallNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/AccessNode.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/MembarNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/SafeAccessNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/SafeWriteNode.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/extended/WriteMemoryCheckpointNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/WriteNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AccessArrayNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AccessFieldNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AccessMonitorNode.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/ExceptionObjectNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/LoadFieldNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/LoadIndexedNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/RegisterFinalizerNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/StoreFieldNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/StoreIndexedNode.java Changeset: 1d760684d958 Author: Doug Simon Date: 2012-05-08 16:10 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/1d760684d958 expanded formatting of array CiConstants to show contents of the array ! graal/com.oracle.max.cri/src/com/oracle/max/cri/ci/CiKind.java Changeset: 827854645d6c Author: Doug Simon Date: 2012-05-08 20:17 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/827854645d6c separated the notion of has-side-effect from may-have-frame-state ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/BeginStateSplitNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FixedWithNextNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeWithExceptionNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/StateSplit.java Changeset: 33b8603f180d Author: Doug Simon Date: 2012-05-08 21:32 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/33b8603f180d lowering checkcasts with Java snippets ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/InsertStateAfterPlaceholderPhase.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/util/InliningUtil.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/CheckCastSnippets.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/LowerCheckCastPhase.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/SafeAccessNode.java ! graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/Snippet.java ! graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/Snippets.java ! graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/LowerCheckCastTest.java Changeset: 67e63e8dcbd2 Author: Doug Simon Date: 2012-05-08 22:51 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/67e63e8dcbd2 build JaCoCo exclude list by scanning for snippets ! mx/commands.py Changeset: 7cf71c7961c6 Author: Doug Simon Date: 2012-05-09 16:21 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/7cf71c7961c6 if -G:Dump option is used, the compiler queues are given 5 seconds to finish any pending tasks (including graph dumping) before the VM exits ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java Changeset: a4218dd1b157 Author: Doug Simon Date: 2012-05-09 16:39 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/a4218dd1b157 added javadoc to GuardNode ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GuardNode.java Changeset: 2e9a5365dfb0 Author: Doug Simon Date: 2012-05-09 22:21 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/2e9a5365dfb0 moved conversion of type profiles into hints for type check instructions from front end to lowering phase ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalOptions.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/LIRGenerator.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/target/Backend.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/target/amd64/AMD64LIRGenerator.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/util/Util.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotMethodData.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotXirGenerator.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/LowerCheckCastPhase.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/target/amd64/HotSpotAMD64Backend.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.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/TypeCheckNode.java ! graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/LowerCheckCastTest.java ! graal/com.oracle.max.cri/src/com/oracle/max/cri/ri/RiTypeProfile.java ! graal/com.oracle.max.cri/src/com/oracle/max/cri/xir/RiXirGenerator.java ! graal/com.oracle.max.cri/src/com/oracle/max/cri/xir/XirSite.java + graal/com.oracle.max.criutils/src/com/oracle/max/criutils/TypeCheckHints.java Changeset: 5229911d3970 Author: Doug Simon Date: 2012-05-09 22:35 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/5229911d3970 removed TypeCheckNode ! 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/TypeCheckNode.java Changeset: 3fd6b0ab1146 Author: Doug Simon Date: 2012-05-10 00:33 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/3fd6b0ab1146 created StartNode and DispatchBeginNode for clearer visualization of these special nodes in the visualizer ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/BeginStateSplitNode.java + graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/DispatchBeginNode.java + graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/StartNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/StructuredGraph.java Changeset: 4485e0edd1af Author: Doug Simon Date: 2012-05-10 00:36 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/4485e0edd1af made CheckCastNode be a FixedNode instead of a BooleanNode ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/SnippetIntrinsificationPhase.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/types/PropagateTypeCachePhase.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/LowerCheckCastPhase.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastNode.java ! graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/LowerCheckCastTest.java Changeset: 53cc37c27b04 Author: Doug Simon Date: 2012-05-11 10:13 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/53cc37c27b04 used more specific BeginNode subclass where appropriate ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/util/InliningUtil.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeWithExceptionNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/StructuredGraph.java Changeset: 6ed04fb6affd Author: Doug Simon Date: 2012-05-11 10:57 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/6ed04fb6affd rename: megamorph -> megamorphic ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/LIRGenerator.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/util/InliningUtil.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/Invoke.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 Changeset: 3035b6b881d9 Author: Doug Simon Date: 2012-05-11 11:26 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/3035b6b881d9 removed stateAfter field from FixedWithNextNode - now only StateSplit implementations have this field ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/InsertStateAfterPlaceholderPhase.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java + graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/AbstractStateSplit.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/BeginNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/BeginStateSplitNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FixedWithNextNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/InvokeNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ScheduledNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/AbstractCallNode.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/MembarNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/SafeWriteNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnsafeStoreNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/WriteMemoryCheckpointNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/WriteNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AccessMonitorNode.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/ExceptionObjectNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/RegisterFinalizerNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/StoreFieldNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/StoreIndexedNode.java Changeset: bfc9aeb1264c Author: Doug Simon Date: 2012-05-11 11:27 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/bfc9aeb1264c synchronized mxtool with Maxine ! mxtool/mx.py Changeset: 9a5608ce6743 Author: Doug Simon Date: 2012-05-11 11:56 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/9a5608ce6743 added javadoc to ValueProxyNode ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ValueProxyNode.java Changeset: 333b0089a909 Author: Doug Simon Date: 2012-05-11 11:57 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/333b0089a909 slightly better implementation of NodeIterable.isEmpty() ! graal/com.oracle.graal.graph/src/com/oracle/graal/graph/iterators/NodeIterable.java Changeset: c862951e769d Author: Doug Simon Date: 2012-05-11 12:20 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/c862951e769d moved checkcast lowering into LoweringPhase and added -G:HIRLowerCheckcast option to enable it (disabled by default) as it is not yet stable ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalOptions.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/LoweringPhase.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/util/InliningUtil.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotDebugConfig.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/LowerCheckCastPhase.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/cri/CiLoweringTool.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastNode.java ! graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/Snippets.java ! graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/FloatingReadTest.java Changeset: 8be0c73cf118 Author: Doug Simon Date: 2012-05-11 14:11 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/8be0c73cf118 made graph marking stateless (in the graph) to ensure recursive marking is safe ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/CanonicalizerPhase.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/InliningPhase.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/util/InliningUtil.java ! graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Graph.java Changeset: 88cd108e0164 Author: Lukas Stadler Date: 2012-05-09 10:42 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/88cd108e0164 canonicalize more integer operations: (a+1)+2 to a+3 and (a*2)*2 to a*4 ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerAddNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerMulNode.java Changeset: d6057d00e450 Author: Lukas Stadler Date: 2012-05-09 10:43 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/d6057d00e450 add field name to AccessFieldNodes in visualizer ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AccessFieldNode.java Changeset: 1436de7b7cab Author: Lukas Stadler Date: 2012-05-09 12:10 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/1436de7b7cab cull unnecessary framestates at merges ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalOptions.java + graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/CullFrameStatesPhase.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/InliningPhase.java Changeset: c7f92c6246ba Author: Lukas Stadler Date: 2012-05-09 12:11 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/c7f92c6246ba Merge - graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/AbstractStateSplit.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AccessFieldNode.java - graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/GraalRuntimeAccess.java Changeset: 31ec401eb592 Author: Lukas Stadler Date: 2012-05-10 14:24 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/31ec401eb592 Merge ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalOptions.java Changeset: 19e5dc8d0891 Author: Lukas Stadler Date: 2012-05-11 14:39 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/19e5dc8d0891 alphabetically sort debug values for Metric and Time ! graal/com.oracle.graal.debug/src/com/oracle/graal/debug/internal/DebugValue.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java Changeset: b6aaf6de4053 Author: Lukas Stadler Date: 2012-05-11 15:17 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/b6aaf6de4053 use dependencies collection instead of explicit guard fields (because that's all that guards are: additional dependencies) ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/FloatingReadPhase.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/ReadEliminationPhase.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/AnchorNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FixedGuardNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ValueNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatingNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/AccessNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/FloatingAccessNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/FloatingReadNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/SafeReadNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/SafeWriteNode.java Changeset: e4321a9bc0cb Author: Lukas Stadler Date: 2012-05-11 15:17 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/e4321a9bc0cb use exactType and assumptions to canonicalize ReadHubNode ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ReadHubNode.java Changeset: 612b4f099362 Author: Lukas Stadler Date: 2012-05-11 15:26 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/612b4f099362 disable frame state culling ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalOptions.java Changeset: f66a1ed4562a Author: Lukas Stadler Date: 2012-05-11 15:59 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/f66a1ed4562a let StampFactory.orTypes use RiResolvedType.leastCommonAncestor ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/type/StampFactory.java Changeset: 5097f21f6c2b Author: Lukas Stadler Date: 2012-05-11 16:00 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/5097f21f6c2b add a new simple CheckCast elimination phase ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalOptions.java + graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/CheckCastEliminationPhase.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ValueNode.java Changeset: 3f9895797ff4 Author: Lukas Stadler Date: 2012-05-11 16:02 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/3f9895797ff4 Merge ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalOptions.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/CheckCastEliminationPhase.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/InliningPhase.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java - graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/LowerCheckCastPhase.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/SafeWriteNode.java Changeset: 9b44497fef98 Author: Lukas Stadler Date: 2012-05-11 16:38 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/9b44497fef98 fix for IsTypeNode canonicalization ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/CheckCastEliminationPhase.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilationTask.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/IsTypeNode.java From doug.simon at oracle.com Sat May 19 18:04:45 2012 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Sun, 20 May 2012 01:04:45 +0000 Subject: hg: graal/graal: 20 new changesets Message-ID: <20120520010558.4D6CA4740B@hg.openjdk.java.net> Changeset: afb983c25aa0 Author: Doug Simon Date: 2012-05-11 16:58 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/afb983c25aa0 changed semantics of -G:HIRLowerCheckcast slightly ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalOptions.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java Changeset: fc1943f18fef Author: Doug Simon Date: 2012-05-14 21:51 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/fc1943f18fef fixed bug in returning array values from CompilerToVMImpl.executeCompiledMethodVarargs ! src/share/vm/graal/graalCompilerToVM.cpp Changeset: c3de4d2988c7 Author: Doug Simon Date: 2012-05-14 21:52 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/c3de4d2988c7 added test for checkcasts inserted by lowering of storeindexed instructions ! graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/LowerCheckCastTest.java Changeset: a3d6ea4241e5 Author: Doug Simon Date: 2012-05-14 22:05 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/a3d6ea4241e5 made lowering repeat processing of fixed nodes until no new fixed nodes are added before lowering floating nodes ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/LoweringPhase.java Changeset: 17cddac1f2da Author: Doug Simon Date: 2012-05-14 22:06 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/17cddac1f2da fixed bug in compiled call to slow typecheck stub in VM enabled HIR lowering of all checkcasts by default ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalOptions.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/util/InliningUtil.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/TypeCheckSlowPath.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/CheckCastSnippets.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/target/amd64/AMD64TypeCheckSlowPathOp.java Changeset: c976c744c802 Author: Doug Simon Date: 2012-05-14 22:07 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/c976c744c802 Merge. Changeset: 028c9ce0fc0f Author: Doug Simon Date: 2012-05-15 10:03 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/028c9ce0fc0f added support for -G:+CheckcastCounters in checkcast snippets ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/util/InliningUtil.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotXirGenerator.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/ArrayCopySnippets.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/CheckCastSnippets.java + graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/DirectObjectStoreNode.java + graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/DirectStoreNode.java + graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/GetObjectAddressNode.java Changeset: 332a3c0d7b3b Author: Lukas Stadler Date: 2012-05-15 11:07 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/332a3c0d7b3b remove array length input from LoadIndexedNode and StoreIndexedNode ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AccessIndexedNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/LoadIndexedNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/StoreIndexedNode.java Changeset: 80127e4a1742 Author: Lukas Stadler Date: 2012-05-15 14:22 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/80127e4a1742 remove Condition.OF and Condition.NOF ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/target/amd64/AMD64LIRGenerator.java ! graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64ControlFlow.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/CompareNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/Condition.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/LIRGeneratorTool.java ! graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/ConditionTest.java ! graal/com.oracle.max.asm/src/com/oracle/max/asm/target/amd64/AMD64Assembler.java Changeset: c574c4540791 Author: Lukas Stadler Date: 2012-05-15 14:29 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/c574c4540791 small fix for Condition.OF/NOF removal ! graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64ControlFlow.java Changeset: 873a1fb5b349 Author: Lukas Stadler Date: 2012-05-15 20:13 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/873a1fb5b349 look at the probability of IfNodes during ComputeLinearScanOrder ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/alloc/ComputeLinearScanOrder.java Changeset: 136e9e8daf3d Author: Lukas Stadler Date: 2012-05-15 20:14 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/136e9e8daf3d changes to Condition: more canonicalization support, foldCondition always returns a result ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/Condition.java Changeset: ae759e820ce7 Author: Lukas Stadler Date: 2012-05-15 20:24 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/ae759e820ce7 AMD64LIRGenerator: reorder compare operands to prevent unnecessary loads of constants ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/target/amd64/AMD64LIRGenerator.java Changeset: 80ae8033fe01 Author: Gilles Duboscq Date: 2012-05-14 16:16 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/80ae8033fe01 Perform compiler oracle should_not_inline check before heuristic checks ! src/share/vm/opto/bytecodeInfo.cpp Changeset: af76b75d5928 Author: Gilles Duboscq Date: 2012-05-14 16:16 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/af76b75d5928 Merge Changeset: fc3efebea409 Author: Gilles Duboscq Date: 2012-05-15 16:26 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/fc3efebea409 Some SuperBlock cleanup ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/LoopTransformUtil.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/SuperBlock.java Changeset: 206df7b3e022 Author: Gilles Duboscq Date: 2012-05-15 16:26 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/206df7b3e022 better compile commands for JTTs (compile all methods from jtt except run* methods) ! mx/commands.py Changeset: 128b3f574991 Author: Gilles Duboscq Date: 2012-05-15 16:27 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/128b3f574991 Merge Changeset: bb47fd6a6290 Author: Gilles Duboscq Date: 2012-05-16 13:24 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/bb47fd6a6290 When removing inputs from phi nodes, kill unused values ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MergeNode.java Changeset: 098c5eba749d Author: Gilles Duboscq Date: 2012-05-16 13:24 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/098c5eba749d Merge From doug.simon at oracle.com Sat May 26 18:04:41 2012 From: doug.simon at oracle.com (doug.simon at oracle.com) Date: Sun, 27 May 2012 01:04:41 +0000 Subject: hg: graal/graal: 37 new changesets Message-ID: <20120527010649.B005A47554@hg.openjdk.java.net> Changeset: d3dec1a05a80 Author: Lukas Stadler Date: 2012-05-22 11:11 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/d3dec1a05a80 fix bug in FloatingReadPhase that leads to wrong ordering of phi inputs on memory phis ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/FloatingReadPhase.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/PhiNode.java Changeset: 79f12805362b Author: Gilles Duboscq Date: 2012-05-18 15:48 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/79f12805362b Use iterative lowering instead of manually applying lowering ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/LoweringPhase.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java Changeset: bd5624f04067 Author: Gilles Duboscq Date: 2012-05-18 15:49 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/bd5624f04067 do not canonicalize scaled indexedlocation nodes if target is not available ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/IndexedLocationNode.java Changeset: 791eb4f85b29 Author: Gilles Duboscq Date: 2012-05-18 15:49 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/791eb4f85b29 Use exact type for check cast canonicalization if available ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/CheckCastNode.java Changeset: 8dc11fe22eb1 Author: Gilles Duboscq Date: 2012-05-21 15:44 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/8dc11fe22eb1 autoGrow option to NodeBitMaps ! graal/com.oracle.graal.graph/src/com/oracle/graal/graph/NodeBitMap.java Changeset: 3c16d338888e Author: Gilles Duboscq Date: 2012-05-22 11:36 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/3c16d338888e Merge Canonicalizer and GVN Phases Change input change tracking to a more generic callback ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/CanonicalizerPhase.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/types/PropagateTypeCachePhase.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/util/InliningUtil.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: 44c378aa4c47 Author: Gilles Duboscq Date: 2012-05-22 11:37 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/44c378aa4c47 Merge Changeset: ce2398984e39 Author: Gilles Duboscq Date: 2012-05-22 11:57 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/ce2398984e39 make ValueAnchorNode able to anchor multiple values, use dependencies for anchored values ! graal/com.oracle.graal.graph/src/com/oracle/graal/graph/iterators/NodeIterable.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ValueAnchorNode.java Changeset: 4e9723f38034 Author: Gilles Duboscq Date: 2012-05-22 12:10 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/4e9723f38034 Anchor guards of read nodes when floating them ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/FloatingReadPhase.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FixedNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FixedWithNextNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ValueAnchorNode.java Changeset: b26a95cf8e3d Author: Gilles Duboscq Date: 2012-05-22 13:30 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/b26a95cf8e3d Keep UsagesDroppedNodes in canonicalizer ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/CanonicalizerPhase.java Changeset: 068cc464e0cf Author: Lukas Stadler Date: 2012-05-22 14:57 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/068cc464e0cf add snapshot() call in MergeNode.removeEnd to fix concurrent modification problem ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/MergeNode.java Changeset: 0364a2a874b8 Author: Lukas Stadler Date: 2012-05-22 16:19 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/0364a2a874b8 changes towards a canonical representation of comparisons: * new createNullCheckGuard helper method on CiLoweringTool * replaced NullCheckNode with IsNullNode * GuardNode and FixedGuardNode can be negated * keep a list of conditions that are true/false in CheckCastEliminationPhase * FixedGuardNode has only one condition * GraphBuilderPhase creates canonical CompareNodes * BooleanNodes can negate their usages * added junit test for canonicalized compares * removed junit test for negated instanceof * added more thorough graph comparison for junit tests * CheckCastEliminationPhase keeps track of conditions that are known to be true/false ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/LIRGenerator.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/CheckCastEliminationPhase.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/ConvertDeoptimizeToGuardPhase.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/EscapeAnalysisPhase.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/LoweringPhase.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/target/amd64/AMD64LIRGenerator.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/types/PropagateTypeCachePhase.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/util/InliningUtil.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/cri/CiLoweringTool.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/BooleanNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ConstantNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FixedGuardNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GuardNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/CompareNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/Condition.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/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/IntegerBelowThanNode.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/IsNullNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/NegateNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/NormalizeCompareNode.java - graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/NullCheckNode.java + graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/ObjectEqualsNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/SafeReadNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/SafeWriteNode.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/IsTypeNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/EscapeOp.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/LIRGeneratorTool.java + graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/Negatable.java ! graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/BoxingEliminationTest.java + graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/CompareCanonicalizerTest.java ! graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/ConditionTest.java ! graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/DegeneratedLoopsTest.java ! graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/GraphTest.java - graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/InstanceOfCanonicalizerTest.java ! graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/InvokeTest.java ! graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/ScalarTypeSystemTest.java ! graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/TypeSystemTest.java Changeset: 3f6496caa1a4 Author: Lukas Stadler Date: 2012-05-22 16:31 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/3f6496caa1a4 Merge ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/LoweringPhase.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/types/PropagateTypeCachePhase.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/util/InliningUtil.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java Changeset: 441cf24df453 Author: Doug Simon Date: 2012-05-22 16:42 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/441cf24df453 correctly handle null for replacements parameter in Graph.addDuplicates() ! graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Graph.java Changeset: 6ec0857cdf46 Author: Doug Simon Date: 2012-05-22 16:44 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/6ec0857cdf46 added support for snippet templates which are snippet graphs specialized by binding a constant to at least one of the snippet's parameters ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/util/InliningUtil.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotKlassOop.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/CheckCastSnippets.java + graal/com.oracle.graal.snippets/src/com/oracle/graal/snippets/SnippetTemplate.java ! graal/com.oracle.max.cri/src/com/oracle/max/cri/ci/CiConstant.java Changeset: 142237644367 Author: Doug Simon Date: 2012-05-22 17:45 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/142237644367 Merge. ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/util/InliningUtil.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java - graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/NullCheckNode.java - graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/InstanceOfCanonicalizerTest.java Changeset: 27536e9982fa Author: Doug Simon Date: 2012-05-23 12:06 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/27536e9982fa added execution of DaCapo_pmd by [server|client]+[product|fastdebug] to the gate ! mx/commands.py Changeset: 0bd1ba69db2a Author: Doug Simon Date: 2012-05-23 12:11 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/0bd1ba69db2a removed double declaration of _vmbuild global variable in gate command ! mx/commands.py Changeset: 50598118cd0a Author: Doug Simon Date: 2012-05-23 14:39 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/50598118cd0a added support for decorator dump scopes so that the visualizers can distinguish between multiple compilations of the same method ! graal/com.oracle.graal.debug/src/com/oracle/graal/debug/DebugDumpScope.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/CompilationTask.java ! graal/com.oracle.graal.printer/src/com/oracle/graal/printer/CFGPrinterObserver.java ! graal/com.oracle.graal.printer/src/com/oracle/graal/printer/IdealGraphPrinterDumpHandler.java Changeset: d7b5cc23945e Author: Doug Simon Date: 2012-05-23 14:42 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/d7b5cc23945e refactored tests to share support for dump-aware compilation + graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/CheckCastTest.java ! graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/CompiledMethodTest.java ! graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/GraphTest.java + graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/InstanceOfTest.java - graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/LowerCheckCastTest.java + graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/TypeCheckTest.java Changeset: 86478955e54c Author: Gilles Duboscq Date: 2012-05-22 14:34 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/86478955e54c C2 doesnt seem to like the should_reexecute() assert ! src/share/vm/runtime/vframeArray.cpp Changeset: 1d63466ba795 Author: Gilles Duboscq Date: 2012-05-23 10:09 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/1d63466ba795 Add distinct filter ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/FloatingReadPhase.java + graal/com.oracle.graal.graph/src/com/oracle/graal/graph/iterators/DistinctPredicatedProxyNodeIterator.java ! graal/com.oracle.graal.graph/src/com/oracle/graal/graph/iterators/FilteredNodeIterable.java ! graal/com.oracle.graal.graph/src/com/oracle/graal/graph/iterators/NodeIterable.java ! graal/com.oracle.graal.graph/src/com/oracle/graal/graph/iterators/PredicatedProxyNodeIterator.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ValueAnchorNode.java Changeset: 16c27447923c Author: Gilles Duboscq Date: 2012-05-23 11:55 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/16c27447923c Merge - graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/NullCheckNode.java - graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/InstanceOfCanonicalizerTest.java Changeset: 451327d8543b Author: Gilles Duboscq Date: 2012-05-23 15:27 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/451327d8543b Merge - graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/LowerCheckCastTest.java Changeset: f46fee826f7f Author: Gilles Duboscq Date: 2012-05-23 15:28 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/f46fee826f7f Enable fastdebug server configuration in gate ! mx/commands.py Changeset: 4fc3a8040430 Author: Doug Simon Date: 2012-05-24 12:11 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/4fc3a8040430 improved InstanceOfTest ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/CheckCastSnippets.java ! graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/InstanceOfTest.java Changeset: ecba62805b64 Author: Doug Simon Date: 2012-05-24 15:18 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/ecba62805b64 removed obsolete code in LoweringPhase ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/LoweringPhase.java Changeset: ab31310d4af9 Author: Lukas Stadler Date: 2012-05-25 10:35 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/ab31310d4af9 CiKind.minValue and CiKind.maxValue for integer types ! graal/com.oracle.max.cri/src/com/oracle/max/cri/ci/CiKind.java Changeset: 2fac5abf145f Author: Lukas Stadler Date: 2012-05-25 10:36 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/2fac5abf145f documentation on CiFrame.leafGraphId ! graal/com.oracle.max.cri/src/com/oracle/max/cri/ci/CiFrame.java Changeset: 141817e206d4 Author: Lukas Stadler Date: 2012-05-25 11:35 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/141817e206d4 changes to the dependencies and stamp system: * dependencies can only be of type ValueNode * exactType is a boolean flag, not a separate RiResolvedType * use different Stamp subclasses for IntegerStamp, FloatStamp, ObjectStamp and GenericStamp * use different stamp for nodes that can be a target for dependencies * use different PhiNode constructors for value- and non-value-Phis * use correct stamps for ExceptionObjectNode and CurrentThread ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/gen/LIRGenerator.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/LoopTransformDataResolver.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/loop/SuperBlock.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/BoxingEliminationPhase.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/CheckCastEliminationPhase.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/EscapeAnalysisPhase.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/FloatingReadPhase.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/InsertStateAfterPlaceholderPhase.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/LoweringPhase.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/types/PropagateTypeCachePhase.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/types/TypeFeedbackCache.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/util/InliningUtil.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/CurrentThread.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/TailcallNode.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/nodes/WriteBarrier.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/DirectObjectStoreNode.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/DirectStoreNode.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/IntrinsifyArrayCopyPhase.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/FrameStateBuilder.java ! graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/cri/CiLoweringTool.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/AnchorNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/BeginNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/BooleanNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/CallTargetNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/DeoptimizeNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/EndNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FixedGuardNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FixedNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/FixedWithNextNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/GuardNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/IfNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/LocalNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/PhiNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ReturnNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/SafepointNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/UnwindNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/ValueNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/CompareNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/FloatingNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerBelowThanNode.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/IsNullNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/FloatingAccessNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/FloatingReadNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/LocationNode.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/ReadHubNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/SafeReadNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/SafeWriteNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/SwitchNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnsafeCastNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/UnsafeStoreNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ValueAnchorNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/WriteMemoryCheckpointNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/WriteNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/AccessMonitorNode.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/ExceptionObjectNode.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/IsTypeNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/LoadFieldNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/LoadIndexedNode.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/NewObjectArrayNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/RegisterFinalizerNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/StoreFieldNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/java/StoreIndexedNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/EscapeOp.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/types/ObjectTypeFeedbackStore.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/types/ScalarTypeFeedbackStore.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/types/TypeCanonicalizable.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/types/TypeFeedbackChanged.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/types/TypeQuery.java + graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/type/FloatStamp.java + graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/type/GenericStamp.java + graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/type/IntegerStamp.java + graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/type/ObjectStamp.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/type/Stamp.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/type/StampFactory.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/VirtualObjectFieldNode.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/virtual/VirtualObjectNode.java Changeset: 0368c19fc175 Author: Lukas Stadler Date: 2012-05-25 11:44 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/0368c19fc175 Merge ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/FloatingReadPhase.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/LoweringPhase.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/util/InliningUtil.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ValueAnchorNode.java - graal/com.oracle.graal.tests/src/com/oracle/graal/compiler/tests/LowerCheckCastTest.java Changeset: 645534f5e4ab Author: Gilles Duboscq Date: 2012-05-24 16:22 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/645534f5e4ab Transmit null check flag from fixed to floating read nodes remove obsolete Lower flag ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalCompiler.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalOptions.java ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/FloatingReadPhase.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java Changeset: fafab5f0507d Author: Gilles Duboscq Date: 2012-05-25 12:16 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/fafab5f0507d Fix findDuplicate for nodes with no inputs ! graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Graph.java Changeset: 78a6f682326f Author: Gilles Duboscq Date: 2012-05-25 13:21 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/78a6f682326f Canonicalize away ValueAnchors that only anchor a begin node ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ValueAnchorNode.java Changeset: f67b71c0e9e5 Author: Gilles Duboscq Date: 2012-05-25 13:21 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/f67b71c0e9e5 Merge Changeset: 56f4afcf71f7 Author: Gilles Duboscq Date: 2012-05-25 13:22 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/56f4afcf71f7 Merge ! graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/FloatingReadPhase.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java ! graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/extended/ValueAnchorNode.java Changeset: e1f45fcddb49 Author: Thomas Wuerthinger Date: 2012-05-25 20:23 +0200 URL: http://hg.openjdk.java.net/graal/graal/rev/e1f45fcddb49 Elimination of unused methods in the CRI. ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotTargetMethod.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/CompilerToVM.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/CompilerToVMImpl.java ! graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/ri/HotSpotRuntime.java ! graal/com.oracle.max.cri/src/com/oracle/max/cri/ri/RiRuntime.java ! src/share/vm/graal/graalCompilerToVM.cpp