History log of /openjdk10/hotspot/src/share/vm/opto/loopopts.cpp
Revision Date Author Comments
# 13254:c044f8d03932 05-Jul-2017 jwilhelm

8182299: Enable disabled clang warnings, build on OSX 10 + Xcode 8
8182656: Make the required changes in GC code to build on OSX 10 + Xcode 8
8182657: Make the required changes in Runtime code to build on OSX 10 + Xcode 8
8182658: Make the required changes in Compiler code to build on OSX 10 + Xcode 8
Reviewed-by: jwilhelm, ehelin, phh
Contributed-by: phh <hohensee@amazon.com>, jwilhelm <jesper.wilhelmsson@oracle.com>


# 13178:ff6eb4e7a7f0 21-Jun-2017 jwilhelm

Merge


# 13156:55fd09ef3eda 09-Jun-2017 thartmann

8181741: C2 compilation fails with "assert(i<_max) failed: oob"
Summary: PhaseIdealLoop should not use type() or type_or_null().
Reviewed-by: roland, kvn


# 12818:e939acda146e 30-May-2017 vlivanov

8179882: C2: Stale control info after cast node elimination during loop optimization pass
Reviewed-by: kvn, roland


# 10762:ea81fe138932 03-Apr-2016 jprovino

8132524: Missing includes to resourceArea.hpp
Summary: Files that use ResourceMark are missing the include of resourceArea.hpp
Reviewed-by: tschatzl, jwilhelm


# 10229:a63cf6a69972 10-Feb-2016 roland

8149543: range check CastII nodes should not be split through Phi
Summary: splitting range check CastIIs through loop induction Phi prevents further optimizations
Reviewed-by: kvn, mcberg


# 10227:894c8b63e200 02-Feb-2016 roland

8143542: C2 doesn't eliminate identical checks
Summary: Two identical Ifs back to back can be merged
Reviewed-by: kvn


# 10029:bfb7a8a004de 18-Jan-2016 thartmann

6675699: need comprehensive fix for unconstrained ConvI2L with narrowed type
Summary: Emit CastII to make narrow ConvI2L dependent on the corresponding range check.
Reviewed-by: kvn, roland


# 10000:9e17d9e4b59f 11-Dec-2015 roland

8139771: Eliminating CastPP nodes at Phis when they all come from a unique input may cause crash
Summary: Lost dependency when CastPP at Phis are eliminate
Reviewed-by: kvn


# 9462:231763c1883e 11-Nov-2015 twisti

8140424: don't prefix developer and notproduct flag variables with CONST_ in product builds
Reviewed-by: goetz, stefank


# 9452:8faaeb9dbb96 09-Nov-2015 roland

8137168: Replace IfNode with a new RangeCheckNode for range checks
Summary: new RangeCheckNode to enable optimization of explicit library level range checks
Reviewed-by: kvn, thartmann


# 9209:ae64ff428e18 26-Oct-2015 iveresov

8139340: SuperWord enhancement to support vector conditional move (CMovVD) on Intel AVX cpu
Summary: Emit vector conditional moves
Reviewed-by: kvn
Contributed-by: jan.civlin@intel.com


# 9033:df910cc4b9ea 17-Sep-2015 roland

8136820: Generate better code for some Unsafe addressing patterns
Summary: reshape address computation to move invariant part out of loops
Reviewed-by: kvn


# 9029:7c288547a709 22-Sep-2015 roland

8136926: phi == NULL assert in PhaseIdealLoop::try_move_store_after_loop
Summary: multiple phis on same slice are possible in a loop
Reviewed-by: kvn, mcberg


# 9013:43451068d53c 15-Sep-2015 roland

8136461: PhaseIdealLoop::try_move_store_before_loop() may bypass early loop exit
Summary: PhaseIdealLoop::try_move_store_before_loop() needs to check for early loop exit before candidate Stores
Reviewed-by: kvn


# 8895:2e70148efaa5 25-Aug-2015 roland

8134288: compiler/runtime/6859338/Test6859338.java crashes in PhaseIdealLoop::try_move_store_after_loop
Summary: Store nodes may not have a control if used to update profiling
Reviewed-by: kvn


# 8860:fe311de64c61 29-Jul-2015 roland

8080289: Intermediate writes in a loop not eliminated by optimizer
Summary: Move Stores out of loop (after or before) when possible
Reviewed-by: kvn, vlivanov


# 8483:8dcc6e989b05 15-May-2015 vlivanov

8079135: C2 disables some optimizations when a large number of unique nodes exist
Reviewed-by: kvn


# 8348:2032f163aec9 05-May-2015 kvn

8076284: Improve vectorization of parallel streams
Summary: Improve vectorization of java/util/stream/Streams$RangeIntSpliterator::forEachRemaining() method and enable loop vectorization in a given method on demand.
Reviewed-by: kvn
Contributed-by: jan.civlin@intel.com


# 8168:f5fae6f265e2 17-Mar-2015 roland

8073480: C2 should optimize explicit range checks
Summary: explicit range checks should be recognized by C2
Reviewed-by: kvn, vlivanov


# 7534:e78fa38ad3a3 04-Dec-2014 roland

8048170: Test closed/java/text/Normalizer/ConformanceTest.java failed
Summary: PhaseIdealLoop::split_if_with_blocks_post() shoulnd't reorder range checks adjusted by range check smearing
Reviewed-by: kvn, jrose


# 7448:7dd010c9fab1 24-Nov-2014 vlivanov

8058148: MaxNodeLimit and LiveNodeCountInliningCutoff
Reviewed-by: kvn, roland


# 6837:ae45df3285c9 05-Aug-2014 thartmann

8054033: Remove unused references to Compile*
Summary: Removed unused references to Compile* missed by JDK-8034812.
Reviewed-by: kvn, roland


# 6820:c1d7ba5b5d45 25-Jul-2014 thartmann

8040213: C2 does not put all modified nodes on IGVN worklist
Summary: Verification code is added that checks if modified nodes are put on the IGVN worklist and modified nodes are processed by 'PhaseIterGVN::transform_old()'
Reviewed-by: kvn, jrose


# 6577:455be7c3df86 12-Jun-2014 kvn

8046516: Segmentation fault in JVM (easily reproducible)
Summary: Place new nodes on the previous loop exit in reorg_offsets().
Reviewed-by: roland


# 6562:3cb509208318 09-Jun-2014 kvn

8046275: Fastdebug build failing on jdk9/hs/ control jobs after pulling some hs-comp changes
Summary: Add missing check for Opaque nodes from loop predicates in clone_loop().
Reviewed-by: iveresov


# 6546:3533da0f7728 02-Jun-2014 thartmann

8034812: remove IDX_INIT macro hack in Node class
Summary: The IDX_INIT macro used by Node::Node(...) to retrieve the Compile object is removed and replaced by a call to Compile::current(). The Node constructor, new operator and all calls to it are adapted accordingly.
Reviewed-by: kvn, jrose, iveresov, goetz


# 6309:218bc7e588be 15-Apr-2014 kvn

8039050: Crash in C2 compiler at Node::rematerialize
Summary: Added missing calls to record_for_igvn() in loop opts. Added verification of def-use domination.
Reviewed-by: iveresov


# 6219:12cd03f831d8 01-Apr-2014 morris

8001532: C2 node files refactoring
Summary: Split C2 node files into cast, convert, countbits, intrinsic, move, narrowptr and opaquenode classes
Reviewed-by: kvn, morris


# 6049:cd5d10655495 22-Jan-2014 rbackman

8027754: Enable loop optimizations for loops with MathExact inside
Reviewed-by: kvn, iveresov


# 5937:5ec7dace41a6 24-Jan-2014 roland

8027422: assert(_gvn.type(obj)->higher_equal(tjp)) failed: cast_up is no longer needed
Summary: type methods shouldn't always operate on speculative part
Reviewed-by: kvn, twisti


# 5776:de6a9e811145 24-Dec-2013 mikael

8029233: Update copyright year to match last edit in jdk8 hotspot repository for 2013
Summary: Copyright year updated for files modified during 2013
Reviewed-by: twisti, iveresov


# 5666:f675976a61e7 12-Nov-2013 rbackman

8028198: SIGSEGV in PhaseIdealLoop::build_loop_late_post
Reviewed-by: iveresov, kvn


# 5546:3213ba4d3dff 18-Oct-2013 roland

8024069: replace_in_map() should operate on parent maps
Summary: type information gets lost because replace_in_map() doesn't update parent maps
Reviewed-by: kvn, twisti


# 5356:c9ccd7b85f20 27-Sep-2013 rbackman

8024924: Intrinsify java.lang.Math.addExact
Reviewed-by: kvn, twisti


# 4719:1682bec79205 22-May-2013 kvn

8014811: loopTransform.cpp assert(cmp_end->in(2) == limit) failed
Summary: Stop current iteration of loop opts if partial_peel() failed and it created node clones outside processed loop.
Reviewed-by: roland


# 4339:3b9368710f08 19-Mar-2013 morris

8008811: [parfait] Null pointer deference in hotspot/src/share/vm/opto/loopopts.cpp
Summary: add guarantee() checks
Reviewed-by: kvn


# 3880:2aff40cb4703 27-Nov-2012 bharadwaj

7092905: C2: Keep track of the number of dead nodes
Summary: keep an (almost) accurate running count of the reachable (live) flow graph nodes.
Reviewed-by: kvn, twisti, jrose, vlivanov


# 3729:d804e148cff8 12-Oct-2012 kvn

Merge


# 3724:8e47bac5643a 09-Oct-2012 roland

7054512: Compress class pointers after perm gen removal
Summary: support of compress class pointers in the compilers.
Reviewed-by: kvn, twisti


# 3718:b9a9ed0f8eeb 09-Oct-2012 mikael

7197424: update copyright year to match last edit in jdk8 hotspot repository
Summary: Update copyright year to 2012 for relevant files
Reviewed-by: dholmes, coleenp


# 3680:e626685e9f6c 27-Sep-2012 kvn

7193318: C2: remove number of inputs requirement from Node's new operator
Summary: Deleted placement new operator of Node - node(size_t, Compile *, int).
Reviewed-by: kvn, twisti
Contributed-by: bharadwaj.yadavalli@oracle.com


# 3412:5e990493719e 12-Jun-2012 kvn

7173340: C2: code cleanup: use PhaseIterGVN::replace_edge(Node*, int, Node*) where applicable
Summary: replace frequent C2 optimizer code patterns with new methods calls
Reviewed-by: kvn, twisti
Contributed-by: vladimir.x.ivanov@oracle.com


# 2973:c8d8e124380c 12-Jan-2012 kvn

7064302: JDK7 build 147 crashed after testing my java 6-compiled web app
Summary: Don't split CMove node if it's control edge is different from split region.
Reviewed-by: never


# 2825:670a74b863fc 09-Nov-2011 kvn

7107042: assert(no_dead_loop) failed: dead loop detected
Summary: Use dead nodes elimination code in PhaseIdealLoop before executing EA.
Reviewed-by: never, twisti


# 2808:d8cb48376797 26-Oct-2011 kvn

7097546: Optimize use of CMOVE instructions
Summary: Avoid CMove in a loop if possible. May generate CMove if it could be moved outside a loop.
Reviewed-by: never


# 2603:4e761e7e6e12 26-Jul-2011 kvn

7070134: Hotspot crashes with sigsegv from PorterStemmer
Summary: Do not move data nodes which are attached to a predicate test to a dominating test.
Reviewed-by: never


# 2378:273b56978029 26-Apr-2011 kvn

7039586: test/java/util/Collections/Rotate.java failing with hs21-b09
Summary: A predicate should not be moved in partial peel optimization since it will invalidate jvm state of its uncommon trap.
Reviewed-by: never


# 2315:6c97c830fb6f 09-Apr-2011 jrose

Merge


# 2292:08eb13460b3a 02-Apr-2011 kvn

7004535: Clone loop predicate during loop unswitch
Summary: Clone loop predicate for clonned loops
Reviewed-by: never


# 2273:1d1603768966 05-Apr-2011 trims

7010070: Update all 2010 Oracle-changed OpenJDK files to have the proper copyright dates - second pass
Summary: Update the copyright to be 2010 on all changed files in OpenJDK
Reviewed-by: ohair


# 2230:9dc311b8473e 21-Mar-2011 kvn

7008866: Missing loop predicate for loop with multiple entries
Summary: Add predicates when loop head bytecode is parsed instead of when back branch bytecode is parsed.
Reviewed-by: never


# 1879:f95d63e2154a 23-Nov-2010 stefank

6989984: Use standard include model for Hospot
Summary: Replaced MakeDeps and the includeDB files with more standardized solutions.
Reviewed-by: coleenp, kvn, kamg


# 1541:6027dddc26c6 28-Jun-2010 kvn

6677629: PhaseIterGVN::subsume_node() should call hash_delete() and add_users_to_worklist()
Summary: Use replace_node() method instead of subsume_node().
Reviewed-by: jrose, never


# 1472:c18cbe5936b8 27-May-2010 trims

6941466: Oracle rebranding changes for Hotspot repositories
Summary: Change all the Sun copyrights to Oracle copyright
Reviewed-by: ohair


# 1254:4ee1c645110e 09-Feb-2010 kvn

6924097: assert((_type == Type::MEMORY) == (_adr_type != 0),"adr_type for memory phis only")
Summary: Use PhiNode::make_blank(r, n) method to construct the phi.
Reviewed-by: never


# 866:18f526145aea 29-Jul-2009 trims

Merge


# 850:fd50a67f97d1 15-Jul-2009 never

6860469: remix_address_expressions sets incorrect control causing crash in split_if_with_block_post
Reviewed-by: never, kvn
Contributed-by: yamauchi@google.com, rasbold@google.com


# 844:bd02caa94611 28-Jul-2009 xdono

6862919: Update copyright year
Summary: Update copyright for files that have been modified in 2009, up to 07/09
Reviewed-by: tbell, ohair


# 834:0f2d888530e7 02-Jul-2009 cfang

6855164: SIGSEGV during compilation of method involving loop over CharSequence.
Summary: Don not split a block if it contains a FastLockNode with a PhiNode input.
Reviewed-by: kvn, never


# 605:98cb887364d3 27-Feb-2009 twisti

6810672: Comment typos
Summary: I have collected some typos I have found while looking at the code.
Reviewed-by: kvn, never


# 401:ee8f06bfb27c 03-Oct-2008 never

6743188: incomplete fix for 6700047 C2 failed in idom_no_update
Reviewed-by: rasbold, kvn


# 367:194b8e3a2fc4 17-Sep-2008 never

6384206: Phis which are later unneeded are impairing our ability to inline based on static types
Reviewed-by: rasbold, jrose


# 318:60bc5071073f 02-Sep-2008 never

6738933: assert with base pointers must match with compressed oops enabled
Reviewed-by: kvn, rasbold


# 293:c3e045194476 01-Aug-2008 kvn

6731641: assert(m->adr_type() == mach->adr_type(),"matcher should not change adr type")
Summary: fixed few addP node type and narrow oop type problems.
Reviewed-by: rasbold, never


# 253:b0fe4deeb9fb 28-Jul-2008 kvn

6726999: nsk/stress/jck12a/jck12a010 assert(n != null,"Bad immediate dominator info.")
Summary: Escape Analysis fixes.
Reviewed-by: never, rasbold


# 251:020a0b730379 25-Jul-2008 never

6700047: C2 failed in idom_no_update
Summary: partial peeling shouldn't place clones into loop
Reviewed-by: kvn


# 235:9c2ecc2ffb12 11-Jul-2008 trims

Merge


# 223:1dd146f17531 26-Jun-2008 kvn

6716441: error in meet with +DoEscapeAnalysis
Summary: Set instance_id to InstanceBot for InstPtr->meet(AryPtr) when types are not related.
Reviewed-by: jrose, never


# 216:8d191a7697e2 20-Jun-2008 kvn

6715633: when matching a memory node the adr_type should not change
Summary: verify the adr_type of a mach node was not changed
Reviewed-by: rasbold, never


# 196:d1605aabd0a1 02-Jul-2008 xdono

6719955: Update copyright year
Summary: Update copyright year for files that have been modified in 2008
Reviewed-by: ohair, tbell


# 164:c436414a719e 21-May-2008 kvn

6703890: Compressed Oops: add LoadNKlass node to generate narrow oops (32-bits) compare instructions
Summary: Add LoadNKlass and CMoveN nodes, use CmpN and ConN nodes to generate narrow oops compare instructions.
Reviewed-by: never, rasbold


# 108:a761c2d3b76a 09-Apr-2008 rasbold

6684385: Loop unswitching crashes without LoopNode
Summary: Without LoopNode, exit early from loop unswitching and partial peeling
Reviewed-by: kvn, never, sgoldman


# 69:8bb88f9877e5 19-Mar-2008 never

6659207: access violation in CompilerThread0
Summary: split_thru_phi produces top on a non-dead path
Reviewed-by: kvn, rasbold, sgoldman


# 64:b8f5ba577b02 13-Mar-2008 kvn

6673473: (Escape Analysis) Add the instance's field information to PhiNode
Summary: Avoid an infinite generation of instance's field values Phi nodes.
Reviewed-by: never


# 35:e2ae28d2ce91 29-Feb-2008 kvn

6667588: Don't generate duplicated CMP for float/double values
Summary: float CMove generation add duplicated CMPF if there are more then one Move depending on the condition.
Reviewed-by: jrose, never, rasbold


# 0:a61af66fc99e 30-Nov-2007 duke

Initial load