History log of /openjdk10/hotspot/src/share/vm/opto/loopnode.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>


# 12818:e939acda146e 30-May-2017 vlivanov

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


# 12149:6214eb051a30 28-Sep-2016 rasbold

8166742: SIGFPE in C2 Loop IV elimination
Reviewed-by: kvn


# 11735:286ad75013e2 25-Jul-2016 roland

8161147: jvm crashes when -XX:+UseCountedLoopSafepoints is enabled
Summary: don't convert loop with safepoint on the backedge to Counted loop
Reviewed-by: kvn


# 11525:c23bf7df628c 20-Jun-2016 thartmann

8159715: Fix for 8072422 is incorrect
Summary: Fixed several issues introduced by 8072422.
Reviewed-by: zmajo, kvn


# 10995:ccfc68592c92 18-Apr-2016 mcberg

8153998: Masked vector post loops
Summary: Masked vectorization for post loops to execute in a single iteration in place of fixup scalar loops which used to take many iterations to complete work for user loops.
Reviewed-by: twisti, kvn


# 10810:1b2d19e6b14d 07-Apr-2016 bharadwaj

Merge


# 10806:7010ee970bfb 05-Apr-2016 mcberg

8151573: Multiversioning for range check elimination
Summary: range check elimination in post loops
Reviewed-by: kvn


# 10801:a1e41855499b 03-Apr-2016 zmajo

8072422: Cleanup: Remove some unused flags/code in loop optimizations
Summary: Remove unused flags, change test using them.
Reviewed-by: kvn, twisti


# 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


# 10509:bcf5a0a5731b 21-Mar-2016 zmajo

8148754: C2 loop unrolling fails due to unexpected graph shape
Summary: Check if graph shape is appropriate for optimization, bail out optimization if not.
Reviewed-by: kvn, twisti, shade, dnsimon


# 10074:796b8077f6e6 03-Feb-2016 roland

8147645: get_ctrl_no_update() code is wrong
Summary: Array.fill intrinsification code doesn't mark replaced control as dead
Reviewed-by: kvn


# 10006:d9d0a63499ce 11-Jan-2016 thartmann

8146629: Make phase->is_IterGVN() accessible from Node::Identity and Node::Value
Summary: Change arguments of Node::Identity() and Node::Value() from PhaseTransform* to PhaseGVN*.
Reviewed-by: kvn, roland


# 10004:c8b709902e0e 11-Jan-2016 roland

8145322: Code generated from unsafe loops can be slightly improved
Summary: improve code generated from checkIndex and unsafe loops
Reviewed-by: kvn, thartmann


# 9806:21689239c407 21-Dec-2015 thartmann

8144487: PhaseIdealLoop::build_and_optimize() must restore major_progress flag if skip_loop_opts is true
Summary: Restore the major_progress flag before calling igvn.optimize().
Reviewed-by: kvn


# 9772:a6eb7b850dbd 10-Dec-2015 vlivanov

8144935: C2: safepoint is pruned from a non-counted loop
Reviewed-by: roland


# 9750:d84a55e7aaf8 04-Dec-2015 aeriksso

6869327: Add new C2 flag to keep safepoints in counted loops.
Reviewed-by: kvn, shade


# 9468:af5d7716ac09 16-Nov-2015 roland

8042997: Make intrinsic some or all check index/range methods
Summary: Objects.checkIndex() intrinsic
Reviewed-by: vlivanov, shade


# 9462:231763c1883e 11-Nov-2015 twisti

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


# 9283:f31349f1215e 03-Nov-2015 thartmann

8141132: JEP 254: Compact Strings
Summary: Adopt a more space-efficient internal representation for strings.
Reviewed-by: alanb, bdelsart, coleenp, iklam, jiangli, jrose, kevinw, naoto, pliden, roland, smarks, twisti
Contributed-by: Brent Christian <brent.christian@oracle.com>, Vivek Deshpande <vivek.r.deshpande@intel.com>, Tobias Hartmann <tobias.hartmann@oracle.com>, Charlie Hunt <charlie.hunt@oracle.com>, Vladimir Kozlov <vladimir.kozlov@oracle.com>, Roger Riggs <roger.riggs@oracle.com>, Xueming Shen <xueming.shen@oracle.com>, Aleksey Shipilev <aleksey.shipilev@oracle.com>, Sandhya Viswanathan <sandhya.viswanathan@intel.com>


# 8968:a5ae3454a758 14-Sep-2015 thartmann

8135252: IdealLoopTree::dump_head() prints negative trip count
Summary: IdealLoopTree::dump_head() should not cast float to int.
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


# 8829:af60f1cb36f2 10-Aug-2015 kvn

8011858: Use Compile::live_nodes() instead of Compile::unique() in appropriate places
Reviewed-by: kvn, vlivanov
Contributed-by: vlad.ureche@gmail.com


# 8724:a97452742de1 14-Jul-2015 kvn

8085932: Fixing bugs in detecting memory alignments in SuperWord
Reviewed-by: kvn
Contributed-by: jan.civlin@intel.com


# 8688:94403236f303 10-Jul-2015 kvn

8129920: Vectorized loop unrolling
Summary: optimize loop opts for vectorizible loops.
Reviewed-by: kvn, roland


# 8601:9251516ec93d 16-Jun-2015 mcberg

8080325: SuperWord loop unrolling analysis
Summary: Determine loop unroll factor based on supported vectors sizes.
Reviewed-by: roland, 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


# 7870:f1b92b73e6aa 17-Feb-2015 iveresov

8072753: Nondeterministic wrong answer on arithmetic
Summary: Check for overflow when inverting the loop during the counted loop conversion
Reviewed-by: kvn


# 7590:fd55c0f2c200 19-Dec-2014 vlivanov

8067338: compiler/debug/TraceIterativeGVN.java segfaults
Reviewed-by: kvn


# 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


# 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


# 6412:53a41e7cbe05 09-May-2014 drchase

8037816: Fix for 8036122 breaks build with Xcode5/clang
Summary: Repaired or selectively disabled offending formats; future-proofed with additional checking
Reviewed-by: kvn, jrose, stefank


# 6393:bd1a985905ed 02-May-2014 kvn

8039298: assert(base == NULL || t_adr->isa_rawptr() || !phase->type(base)->higher_equal(TypePtr::NULL_PTR))
Summary: Convert the assert into the runtime check to skip IGVN optimizations for problematic memory nodes. Eliminate dead nodes more aggressively.
Reviewed-by: twisti, iveresov


# 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


# 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


# 4802:f2110083203d 10-Jun-2013 sla

8005849: JEP 167: Event-Based JVM Tracing
Reviewed-by: acorn, coleenp, sla
Contributed-by: Karen Kinnear <karen.kinnear@oracle.com>, Bengt Rutisson <bengt.rutisson@oracle.com>, Calvin Cheung <calvin.cheung@oracle.com>, Erik Gahlin <erik.gahlin@oracle.com>, Erik Helin <erik.helin@oracle.com>, Jesper Wilhelmsson <jesper.wilhelmsson@oracle.com>, Keith McGuigan <keith.mcguigan@oracle.com>, Mattias Tobiasson <mattias.tobiasson@oracle.com>, Markus Gronlund <markus.gronlund@oracle.com>, Mikael Auno <mikael.auno@oracle.com>, Nils Eliasson <nils.eliasson@oracle.com>, Nils Loodin <nils.loodin@oracle.com>, Rickard Backman <rickard.backman@oracle.com>, Staffan Larsen <staffan.larsen@oracle.com>, Stefan Karlsson <stefan.karlsson@oracle.com>, Yekaterina Kantserova <yekaterina.kantserova@oracle.com>


# 4433:30f42e691e70 26-Mar-2013 kvn

8004640: C2 assert failure in memnode.cpp: NULL+offs not RAW address
Summary: always transform AddP nodes in IdealKit by calling _gvn.transform().
Reviewed-by: roland, twisti


# 4154:8b3da8d14c93 11-Feb-2013 roland

7197327: 40% regression on 8 b41 comp 8 b40 on specjvm2008.mpegaudio on oob
Summary: Add support for expensive nodes.
Reviewed-by: kvn


# 3722:377508648226 08-Oct-2012 vlivanov

8000313: C2 should use jlong for 64bit values
Summary: Replace all occurrences of long with jlong in C2 code.
Reviewed-by: kvn, twisti


# 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


# 3588:0acd345fd810 29-Aug-2012 kvn

7160161: Missed safepoint in non-Counted loop
Summary: Do not remove safepoints during peeling optimization.
Reviewed-by: twisti


# 3566:006050192a5a 20-Aug-2012 kvn

6340864: Implement vectorization optimizations in hotspot-server
Summary: Added asm encoding and mach nodes for vector arithmetic instructions on x86.
Reviewed-by: roland


# 3447:8c92982cbbc4 15-Jun-2012 kvn

7119644: Increase superword's vector size up to 256 bits
Summary: Increase vector size up to 256-bits for YMM AVX registers on x86.
Reviewed-by: never, twisti, roland


# 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


# 3054:f457154eee8b 29-Jan-2012 brutisso

7140882: Don't return booleans from methods returning pointers
Summary: Changed "return false" to "return NULL"
Reviewed-by: dholmes, rottenha
Contributed-by: dbhole@redhat.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


# 2876:1bd45abaa507 16-Nov-2011 kvn

6890673: Eliminate allocations immediately after EA
Summary: Try to eliminate allocations and related locks immediately after escape analysis.
Reviewed-by: never


# 2873:e8fdaf4a66cb 10-Nov-2011 kvn

7110586: C2 generates incorrect results
Summary: Exact limit of empty loop calculated incorrectly.
Reviewed-by: iveresov, 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


# 2700:2c24ef16533d 09-Sep-2011 kvn

7035946: Up to 15% regression on JDK 7 b136 vs b135 on specjvm2008.crypto.rsa on x64
Summary: Revert changes which caused regression.
Reviewed-by: never


# 2613:6987871cfb9b 10-Aug-2011 kvn

7077439: Possible reference through NULL in loopPredicate.cpp:726
Summary: Use cl->is_valid_counted_loop() check.
Reviewed-by: never


# 2608:c96c3eb1efae 29-Jul-2011 kvn

7068051: SIGSEGV in PhaseIdealLoop::build_loop_late_post
Summary: Removed predicate cloning from loop peeling optimization and from split fall-in paths.
Reviewed-by: never


# 2544:aacaff365100 20-Jun-2011 kvn

7052494: Eclipse test fails on JDK 7 b142
Summary: Keep 'ne' test in Counted loop when we can't guarantee during compilation that init < limit.
Reviewed-by: never


# 2442:bad7ecd0b6ed 04-May-2011 kvn

5091921: Sign flip issues in loop optimizer
Summary: Fix integer overflow problem in the code generated by loop optimizer.
Reviewed-by: never


# 2312:3af54845df98 08-Apr-2011 kvn

7004555: Add new policy for one iteration loops
Summary: Add new policy for one iteration loops (mostly formal pre- loops).
Reviewed-by: never


# 2292:08eb13460b3a 02-Apr-2011 kvn

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


# 2250:1927db75dd85 27-Mar-2011 never

7024475: loop doesn't terminate when compiled
Reviewed-by: kvn


# 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


# 2120:194c9fdee631 07-Feb-2011 kvn

7017240: C2: native memory leak in nsk/regression/b4675027 on windows-x86 in comp mode with G1
Summary: Add ResourceMark into PhaseIdealLoop::build_and_optimize().
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


# 1683:d6f45b55c972 27-Aug-2010 never

4809552: Optimize Arrays.fill(...)
Reviewed-by: kvn


# 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


# 1172:b2b6a9bf6238 12-Jan-2010 cfang

6894779: Loop Predication for Loop Optimizer in C2
Summary: Loop predication implementation
Reviewed-by: never, kvn


# 1083:8b22f86d1740 02-Dec-2009 cfang

6901572: JVM 1.6.16 crash on loops: assert(has_node(i),"")
Summary: Skip the secondary induction variable handling if it is dead
Reviewed-by: never, kvn


# 921:046932b72aa2 14-Aug-2009 never

6862956: PhaseIdealLoop should have a CFG verification mode
Reviewed-by: kvn, twisti


# 681:fbde8ec322d0 31-Mar-2009 cfang

6761600: Use sse 4.2 in intrinsics
Summary: Use SSE 4.2 in intrinsics for String.{compareTo/equals/indexOf} and Arrays.equals.
Reviewed-by: kvn, never, jrose


# 628:7bb995fbd3c0 12-Mar-2009 trims

Merge


# 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


# 579:0fbdb4381b99 09-Mar-2009 xdono

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


# 558:3b5ac9e7e6ea 26-Jan-2009 twisti

6796746: rename LoadC (char) opcode class to LoadUS (unsigned short)
Summary: Renaming LoadC to LoadUS would round up the planned introduction of LoadUB and LoadUI.
Reviewed-by: phh, 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


# 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


# 235:9c2ecc2ffb12 11-Jul-2008 trims

Merge


# 222:2a1a77d3458f 24-Jun-2008 never

6718676: putback for 6604014 is incomplete
Reviewed-by: kvn, jrose


# 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


# 169:9148c65abefc 29-May-2008 rasbold

6695049: (coll) Create an x86 intrinsic for Arrays.equals
Summary: Intrinsify java/util/Arrays.equals(char[], char[])
Reviewed-by: kvn, never


# 39:76256d272075 06-Mar-2008 kvn

6667612: (Escape Analysis) disable loop cloning if it has a scalar replaceable allocation
Summary: Cloning an allocation will not allow scalar replacement since memory operations could not be associated with one allocation.
Reviewed-by: rasbold


# 17:ff5961f4c095 05-Dec-2007 never

6395208: Elide autoboxing for calls to HashMap.get(int) and HashMap.get(long)
Reviewed-by: kvn, rasbold


# 0:a61af66fc99e 30-Nov-2007 duke

Initial load