History log of /openjdk9/hotspot/src/share/vm/opto/node.cpp
Revision Date Author Comments
# 12368:5f3b92e5dd7b 29-Nov-2016 thartmann

8168996: C2 crash at postaloc.cpp:140 : assert(false) failed: unexpected yanked node
Summary: Prevent MemBarAcquire from keeping a LoadNNode alive by adding it to the worklist if it is the only user of a DecodeNNode.
Reviewed-by: kvn


# 11737:72bb9cb86707 27-Jul-2016 dlong

8160742: Node::operator new invokes undefined behavior
Summary: remove obsolete asserts
Reviewed-by: kvn


# 11182:05d358b254ad 29-Apr-2016 roland

8154943: AArch64: redundant address computation instructions with vectorization
Summary: duplicated i2l nodes can be eliminated to optimize redundant address computations
Reviewed-by: kvn, dlong


# 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


# 10348:e3dbb1e46e26 29-Feb-2016 redestad

8150720: Cleanup code around PrintOptoStatistics
Reviewed-by: kvn, shade, vlivanov


# 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


# 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


# 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


# 9994:f6615ec051d9 08-Jan-2016 mdoerr

8146612: C2: Precedence edges specification violated
Reviewed-by: kvn


# 9772:a6eb7b850dbd 10-Dec-2015 vlivanov

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


# 9615:da497ea6c120 01-Dec-2015 zmajo

8129847: Compiling methods generated by Nashorn triggers high memory usage in C2
Summary: Add a new compiler phase, PhaseRenumberLive, that renumbers live nodes.
Reviewed-by: kvn, thartmann, vlivanov, shade


# 9111:a41fe5ffa839 08-Oct-2015 twisti

8136421: JEP 243: Java-Level JVM Compiler Interface
Reviewed-by: ihse, alanb, roland, coleenp, iveresov, kvn, kbarrett


# 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


# 8797:6ad64d95053d 18-Mar-2015 mhaupt

8004073: Implement C2 Ideal node specific dump() method
Summary: add Node::dump_rel() to dump a node and its related nodes (the notion of "related" depends on the node at hand); add Node::dump_comp() to dump a node in compact representation; add Node::dump_rel_comp() to dump a node and its related nodes in compact representation; add the required machinery; extend some C2 IR nodes with compact and related dumping
Reviewed-by: kvn, roland


# 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


# 8285:d11fb4e8a82e 24-Mar-2015 roland

8069191: moving predicate out of loops may cause array accesses to bypass null check
Summary: Remove CastPP nodes only during final graph reshape
Reviewed-by: kvn, jrose


# 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


# 7733:f1340404713a 19-Jan-2015 zmajo

8066312: Add new Node* Node::find_out(int opc) method.
Summary: Added methods find_user_with() and has_user_with() for searching for a particular out type.
Reviewed-by: kvn, jrose


# 7670:c30f76d6f90f 08-Jan-2015 roland

8027626: assert(Opcode() != Op_If || outcnt() == 2) failed: bad if #1
Summary: IGVN encounters IfNode with single projection when optimizing dying subgraph
Reviewed-by: kvn


# 7448:7dd010c9fab1 24-Nov-2014 vlivanov

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


# 6913:7c8d05c88072 18-Aug-2014 thartmann

8048879: "unexpected yanked node" opto/postaloc.cpp:139
Summary: MemBarAcquireNode prevents deletion of dead LoadNNode. Added condition to 'has_special_unique_user' to trigger deletion.
Reviewed-by: kvn, iveresov


# 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


# 6569:e38bb04f030d 10-Jun-2014 roland

8026796: Make replace_in_map() on parent maps generic
Summary: propagate node replacements along control flow edges to callers
Reviewed-by: kvn, vlivanov


# 6548:c93ee08abe42 02-Jun-2014 iveresov

8044496: 8034812 broke build with clang
Summary: Remove superfluous clang-diagnostic-pop
Reviewed-by: kvn, drchase


# 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


# 6019:28f281e8de1d 20-Feb-2014 kvn

Merge


# 6011:45467c53f178 28-Jan-2014 kvn

Merge


# 6010:abec000618bf 28-Jan-2014 kvn

Merge


# 5992:4cdf4f71177d 22-Nov-2013 goetz

8029025: PPC64 (part 203): opto: Move static _in_dump_cnt to Compile object.
Summary: Also introduces the compiler oracle 'option' feature for PrintAssembly.
Reviewed-by: kvn


# 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


# 5920:7907932bdd99 11-Feb-2014 henryjen

8033215: clang: node.cpp:284 IDX_INIT macro use uninitialized field _out
Reviewed-by: twisti, kvn


# 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


# 5191:766fac3395d6 23-Aug-2013 kvn

8012972: Incremental Inlining should support scalar replaced object in debug info
Summary: store in _first_index not absolute index but an index relative to the last (youngest) jvms->_scloff value
Reviewed-by: roland, twisti


# 4676:70120f47d403 09-May-2013 kvn

8014189: JVM crash with SEGV in ConnectionGraph::record_for_escape_analysis()
Summary: Add NULL checks and asserts for Type::make_ptr() returned value.
Reviewed-by: twisti


# 4675:6f3fd5150b67 08-May-2013 kvn

6934604: enable parts of EliminateAutoBox by default
Summary: Resurrected autobox elimination code and enabled part of it by default.
Reviewed-by: roland, twisti


# 4222:6931f425c517 25-Feb-2013 roland

8007294: ReduceFieldZeroing doesn't check for dependent load and can lead to incorrect execution
Summary: InitializeNode::can_capture_store() must check that the captured store doesn't overwrite a memory location that is loaded before the store.
Reviewed-by: kvn


# 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


# 4043:a7114d3d712e 22-Jan-2013 kvn

8005055: pass outputStream to more opto debug routines
Summary: pass the output stream to node->dump() and everything reachable from there
Reviewed-by: kvn
Contributed-by: goetz.lindenmaier@sap.com


# 3935:32164d89fe9c 17-Dec-2012 brutisso

8004845: Catch incorrect usage of new and delete during compile time for value objects and stack objects
Summary: Makes the "new" and "delete" operator of _ValueObj and StackObj private
Reviewed-by: dholmes, coleenp
Contributed-by: erik.helin@oracle.com


# 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


# 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


# 3602:da91efe96a93 01-Sep-2012 coleenp

6964458: Reimplement class meta-data storage to use native memory
Summary: Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes
Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland
Contributed-by: jmasa <jon.masamitsu@oracle.com>, stefank <stefan.karlsson@oracle.com>, mgerdin <mikael.gerdin@oracle.com>, never <tom.rodriguez@oracle.com>


# 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


# 2972:35acf8f0a2e4 10-Jan-2012 kvn

7128352: assert(obj_node == obj) failed
Summary: Compare uncasted object nodes.
Reviewed-by: never


# 2550:e3cbc9ddd434 28-Jun-2011 kvn

7044738: Loop unroll optimization causes incorrect result
Summary: take into account memory dependencies when clonning nodes in clone_up_backedge_goo().
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


# 2250:1927db75dd85 27-Mar-2011 never

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


# 2126:ab42c7e1cf83 10-Feb-2011 kvn

7017746: Regression : C2 compiler crash due to SIGSEGV in PhaseCFG::schedule_early()
Summary: Add TEMP edges (and KILL projections) before duplicated operands are removed in Expand() methods.
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


# 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


# 1409:cff162798819 11-Oct-2009 jcoomes

6888953: some calls to function-like macros are missing semicolons
Reviewed-by: pbk, kvn


# 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


# 305:ab075d07f1ba 27-Aug-2008 kvn

6736417: Fastdebug C2 crashes in StoreBNode::Ideal
Summary: The result of step_through_mergemem() and remove_dead_region() is not checked in some cases.
Reviewed-by: 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


# 193:44a553b2809d 13-Jun-2008 kvn

6714406: Node::dominates() does not always check for TOP
Summary: Add missed checks for TOP and missed checks for non-dominating cases
Reviewed-by: rasbold, jrose, never


# 163:885ed790ecf0 21-May-2008 kvn

6695810: null oop passed to encode_heap_oop_not_null
Summary: fix several problems in C2 related to Escape Analysis and Compressed Oops.
Reviewed-by: never, jrose


# 155:723be81c1212 15-May-2008 kvn

6701887: JDK7 server VM in endless loop in Node::dominates
Summary: The method Node::dominates loops in the dead code which does not have a Region node.
Reviewed-by: jrose, never


# 122:ec73d88d5b43 23-Apr-2008 kamg

Merge


# 119:d1a5218d7eaf 16-Apr-2008 kvn

6686791: Side effect in NumberFormat tests with -server -Xcomp
Summary: Optimization in CmpPNode::sub() removed the valid compare instruction because of false positive answer from detect_dominating_control().
Reviewed-by: jrose, sgoldman


# 113:ba764ed4b6f2 13-Apr-2008 coleenp

6420645: Create a vm that uses compressed oops for up to 32gb heapsizes
Summary: Compressed oops in instances, arrays, and headers. Code contributors are coleenp, phh, never, swamyv
Reviewed-by: jmasa, kamg, acorn, tbell, kvn, rasbold


# 85:f3b3fe64f59f 15-Apr-2008 kvn

6692301: Side effect in NumberFormat tests with -server -Xcomp
Summary: Optimization in CmpPNode::sub() removed the valid compare instruction because of false positive answer from detect_dominating_control().
Reviewed-by: jrose, sgoldman


# 65:99269dbf4ba8 14-Mar-2008 kvn

6674588: (Escape Analysis) Improve Escape Analysis code
Summary: Current EA code has several problems which have to be fixed.
Reviewed-by: jrose, sgoldman


# 40:7c1f32ae4a20 06-Mar-2008 kvn

6670459: Fix Node::dump() performance
Summary: dump full ideal graph takes forever.
Reviewed-by: never, rasbold


# 24:953939ef62ab 20-Feb-2008 kvn

6614330: Node::dump(n) does not print full graph for specified depth.
Summary: A node is not processed in dump_nodes() if it was visited during processing previous inputs.
Reviewed-by: rasbold


# 0:a61af66fc99e 30-Nov-2007 duke

Initial load