894 Commits

Author SHA1 Message Date
Vladimir Kozlov
56cea022c9 8035605: Expand functionality of PredictedIntrinsicGenerator
Allow several predicates and separate intrinsic methods per one intrinsified (virtual) method.

Reviewed-by: roland
2014-06-10 12:28:06 -07:00
Roland Westrelin
2838bcc3bf 8026796: Make replace_in_map() on parent maps generic
Propagate node replacements along control flow edges to callers

Reviewed-by: kvn, vlivanov
2014-06-10 13:37:16 +02:00
Vladimir Ivanov
ea0470002e 8033626: assert(ex_map->jvms()->same_calls_as(_exceptions->jvms())) failed: all collected exceptions must come from the same place
Reviewed-by: kvn, roland
2014-06-10 10:00:59 +00:00
Vladimir Kozlov
0853423f46 8046275: Fastdebug build failing on jdk9/hs/ control jobs after pulling some hs-comp changes
Add missing check for Opaque nodes from loop predicates in clone_loop().

Reviewed-by: iveresov
2014-06-09 15:42:31 -07:00
Rickard Bäckman
8bd4b5624c 8030976: Untaken paths should be more vigorously pruned at highest optimization level
Reviewed-by: roland, vlivanov
2014-05-22 13:42:44 +02:00
Igor Veresov
ddffd7c3f1 8044496: 8034812 broke build with clang
Remove superfluous clang-diagnostic-pop

Reviewed-by: kvn, drchase
2014-06-02 07:26:52 -10:00
Roland Westrelin
bdb8050bbf 8043413: REGRESSION: Hotspot causes segmentation fault in jdk8ux, but not in jdk7ux
Long series of lambda form calls trigger stack overflow in c2

Reviewed-by: kvn, vlivanov
2014-06-02 10:01:15 +02:00
Tobias Hartmann
2a0815a55e 8034812: remove IDX_INIT macro hack in Node class
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
2014-06-02 08:07:29 +02:00
Albert Noll
a3b9ebba8d 8011646: SEGV in compiled code with loop predication
Remove control edge of load node to ensure that castPP removal sets the control edge correctly

Reviewed-by: kvn, roland
2014-05-30 06:50:38 +02:00
Roland Westrelin
ee80d81323 8043638: Multiple compilation attempts break LogCompulation, lead to confusing PrintInlining output
Dumps inlining only for last compilation attempt. Fix LogCompilation tool so it handles multiple compilation attempts.

Reviewed-by: vlivanov, kvn
2014-05-26 14:27:01 +02:00
Christian Thalinger
67ad89efd5 Merge 2014-05-22 16:26:05 -07:00
Coleen Phillimore
024bb79ec8 Merge 2014-05-17 19:34:38 -04:00
Yuri Gaevsky
cc3c656cf1 8025580: Temporary flags: UseNewReflection and ReflectionWrapResolutionErrors
The fix removes all UseNewReflection/ReflectionWrapResolutionErrors occurrences/logic and adds them into the list of obsolete_jvm_flags in arguments.cpp.

Reviewed-by: coleenp, hseigel
2014-05-15 17:38:50 -04:00
Christian Thalinger
115d44f61b Merge 2014-05-15 11:35:26 -07:00
Coleen Phillimore
388434f387 Merge 2014-05-12 09:47:57 -04:00
David Chase
305ec3bd3f 8037816: Fix for 8036122 breaks build with Xcode5/clang
Repaired or selectively disabled offending formats; future-proofed with additional checking

Reviewed-by: kvn, jrose, stefank
2014-05-09 16:50:54 -04:00
Christian Thalinger
12a085f587 Merge 2014-05-16 14:38:42 -07:00
Vladimir Kozlov
6bfc0288f3 8042786: Proper fix for 8032566
Check for overflow cases in range checks and collapse it if we can.

Reviewed-by: jrose, iveresov
2014-05-16 12:05:14 -07:00
Zhengyu Gu
adcde492fa 8041415: remove port.{cpp,hpp} files
Hotspot should use standard headers and types

Reviewed-by: coleenp, kvn
2014-05-07 06:03:31 -07:00
Tobias Hartmann
85296fec28 8036851: volatile double accesses are not explicitly atomic in C2
The C2 structure is adapted to distinguish between volatile and non-volatile double accesses.

Reviewed-by: twisti, kvn
2014-05-06 09:17:57 +02:00
Tobias Hartmann
ded0d16e25 8042052: assert(t != NULL) failed: must set before get
Added missing call to _gvn.transform to make sure the type of the PhiNode is recorded in the gvn.

Reviewed-by: kvn
2014-05-05 15:10:43 +02:00
Vladimir Kozlov
c909ac41de 8039298: assert(base == NULL || t_adr->isa_rawptr() || !phase->type(base)->higher_equal(TypePtr::NULL_PTR))
Convert the assert into the runtime check to skip IGVN optimizations for problematic memory nodes. Eliminate dead nodes more aggressively.

Reviewed-by: twisti, iveresov
2014-05-02 16:44:54 -07:00
Shrinivas Joshi
c0f886ec65 8035936: SIGBUS in StubRoutines::aesencryptBlock, solaris-sparc
Fix the arbitrary alignment issue in SPARC AES crypto stub routines.

Reviewed-by: kvn, iveresov
2014-04-30 14:14:01 -07:00
Niclas Adlertz
922879d58e 8029302: Performance regression in Math.pow intrinsic
Added special case for x^y where y == 2

Reviewed-by: kvn, roland
2014-04-25 12:48:34 +02:00
Vladimir Kozlov
26de6296e0 8041351: Crash in src/share/vm/opto/loopnode.cpp:3215 - assert(!had_error) failed: bad dominance
Add missing is_mem() check when we collect load nodes in SuperWord::co_locate_pack().

Reviewed-by: iveresov
2014-04-22 17:45:56 -07:00
Richard Reingruber
728ea561aa 8038048: assert(null_obj->escape_state() == PointsToNode::NoEscape,etc) runThese -full
Use correct set_escape_state() method.

Reviewed-by: kvn, iignatyev
2014-04-16 14:49:03 -07:00
Vladimir Kozlov
8badeecc2c 8039050: Crash in C2 compiler at Node::rematerialize
Added missing calls to record_for_igvn() in loop opts. Added verification of def-use domination.

Reviewed-by: iveresov
2014-04-15 14:34:48 -07:00
Roland Westrelin
f5adc57f94 8032410: compiler/uncommontrap/TestStackBangRbp.java times out on Solaris-Sparc V9
Make compiled code bang the stack by the worst case size of the interpreter frame at deoptimization points.

Reviewed-by: twisti, kvn
2014-04-01 09:36:49 +02:00
Albert Noll
bce45e9222 Merge 2014-04-14 09:04:36 +00:00
Albert Noll
e2305182b5 8039425: Code cleanup: PhaseIterGVN::optimize()
This code cleanup aims at improving code readability.

Reviewed-by: kvn, roland
2014-04-14 10:57:07 +02:00
Albert Noll
7e1059b62d 8034216: assert(false) failed: infinite loop in PhaseIterGVN::optimize
Eagerly remove all castPP nodes in PhaseCCP to get type convergence in memnode.

Reviewed-by: kvn, roland
2014-04-11 11:33:00 +02:00
Igor Veresov
e6456ff2a4 8038297: Avoid placing CTI immediately following cbcond instruction on T4
Insert a nop between cbcond and CTI

Reviewed-by: kvn, twisti
2014-04-10 23:15:13 -07:00
Roland Westrelin
522abfc113 8005079: fix LogCompilation for incremental inlining
Report late inlining as part of the rest of the inlining output

Reviewed-by: twisti, kvn
2014-04-10 11:38:12 +02:00
Tobias Hartmann
65d6e6b331 8036898: assert(t != NULL) failed: must set before get
Ignore nodes without a type when checking for speculative types in Compile::remove_speculative_types(...).

Reviewed-by: kvn, roland
2014-04-10 09:26:24 +02:00
Roland Westrelin
eb8588549a 8007988: PrintInlining output is inconsistent with incremental inlining
Fix duplicate and conflicting inlining output

Reviewed-by: kvn, vlivanov
2014-04-09 09:17:43 +02:00
Morris Meyer
6db303a301 8001532: C2 node files refactoring
Split C2 node files into cast, convert, countbits, intrinsic, move, narrowptr and opaquenode classes

Reviewed-by: kvn, morris
2014-04-01 09:05:20 -07:00
Roland Westrelin
fa3b0a8f47 8031755: Type speculation should be used to optimize explicit null checks
Feed profiling data about reference nullness to type speculation.

Reviewed-by: kvn, iveresov
2014-03-31 09:08:53 +02:00
Lutz Schmidt
ac75d4fc2f 8037821: Account for trampoline stubs when estimating code buffer sizes
Take into account space needed for "trampoline code" used by calls on PPC64.

Reviewed-by: kvn
2014-03-25 12:54:21 -07:00
Poonam Bajaj
1516f610a1 6653795: C2 intrinsic for Unsafe.getAddress performs pointer sign extension on 32-bit systems
Native pointers less than 64 bits wide should be extended as an unsigned number.

Reviewed-by: kvn, kevinw
2014-03-24 08:43:10 -07:00
Vladimir Kozlov
97a51c5c2a 8031320: Use Intel RTM instructions for locks
Use RTM for inflated locks and stack locks.

Reviewed-by: iveresov, twisti, roland, dcubed
2014-03-20 17:49:27 -07:00
Igor Veresov
54db2c2d61 8032463: VirtualDispatch test timeout with DeoptimizeALot
Introduce code aging for warm method detection

Reviewed-by: kvn, twisti
2014-05-13 11:32:10 -07:00
Igor Veresov
768beb9a23 8031321: Support Intel bit manipulation instructions
Add support for BMI1 instructions

Reviewed-by: kvn, roland
2014-03-12 11:24:26 -07:00
David Chase
a0bb00ac27 Merge 2014-03-11 10:59:26 -07:00
David Chase
13a70d932e 8028037: [parfait] warnings from b114 for hotspot.src.share.vm
Insert null check for one warning; other warning handled in parfait config

Reviewed-by: kvn
2014-03-11 13:38:32 -04:00
Nils Eliasson
f457cabe80 Merge 2014-03-11 11:26:14 -04:00
Igor Veresov
35f1475d20 8025644: java/util/stream/test/org/openjdk/tests/java/util/stream/ToArrayOpTest.java fails with TestData$OfRef): failure java.lang.AssertionError: expected [true] but found [false]
In GraphKit::gen_checkcast() provide only exact superklass to GraphKit::maybe_cast_profiled_receiver()

Reviewed-by: kvn, roland
2014-03-10 11:09:02 -07:00
Vladimir Ivanov
bd8255eaa4 8036667: "assert(adr->is_AddP() && adr->in(AddPNode::Offset)->is_Con()) failed: offset is a constant" with FoldStableValues on
Reviewed-by: kvn
2014-03-06 09:53:14 -08:00
Roland Westrelin
d5ff84f8b3 8032633: Enable type speculation by default
Enable type speculation

Reviewed-by: kvn
2014-03-06 11:11:04 +01:00
Vladimir Ivanov
3ba019c8b2 8035828: Turn on @Stable support in VM
Reviewed-by: jrose, twisti
2014-03-04 02:20:41 -08:00
Aleksey Shipilev
1d10b6813e 8031818: Experimental VM flag for enforcing safe object construction
-XX:+AlwaysSafeConstructors to unconditionally emit the trailing constructor barrier.

Reviewed-by: kvn, roland
2014-03-03 15:31:27 +04:00