665 Commits

Author SHA1 Message Date
Tom Rodriguez
72d0f638c7 6849984: Value methods for platform dependent math functions constant fold incorrectly
Reviewed-by: kvn, twisti
2010-01-15 11:53:33 -08:00
Y. Srinivas Ramakrishna
331512606a 6896647: card marks can be deferred too long
Deferred card marks are now flushed during the gc prologue. Parallel[Scavege,OldGC] and SerialGC no longer defer card marks generated by COMPILER2 as a result of ReduceInitialCardMarks. For these cases, introduced a diagnostic option to defer the card marks, only for the purposes of testing and diagnostics. CMS and G1 continue to defer card marks. Potential performance concern related to single-threaded flushing of deferred card marks in the gc prologue will be addressed in the future.

Reviewed-by: never, johnc
2010-01-13 15:26:39 -08:00
Changpeng Fang
815db4fcba 6894779: Loop Predication for Loop Optimizer in C2
Loop predication implementation

Reviewed-by: never, kvn
2010-01-12 14:37:35 -08:00
John R Rose
48bd193a36 Merge 2010-01-08 18:27:20 -08:00
John R Rose
6fbdf208fc 6912063: inlining parameters need to be adjusted for some uses of the JVM
Put all inline-related switches into product mode, to allow tuning by dynamic language implementors.

Reviewed-by: twisti, kvn
2010-01-08 13:58:49 -08:00
Vladimir Kozlov
eca996c10f 6910484: incorrect integer optimization (loosing and op-r in a given example)
Remove AND operation only if mask is equal to shift.

Reviewed-by: never
2010-01-08 09:51:24 -08:00
Kevin Brown
7548b8eed5 6915110: IfNode::up_one_dom moves beyond RootNode bug in src/share/vm/opto/ifnode.cpp
Check RootNode before check Loop in IfNode::up_one_dom().

Reviewed-by: never
2010-01-08 09:42:31 -08:00
Christian Thalinger
e5fb2ad1c4 6914206: change way of permission checking for generated MethodHandle adapters
Put generated MH adapter in InvokeDynamic/MethodHandle classes to be able to indentify them easily in the compiler.

Reviewed-by: kvn, never, jrose
2010-01-08 11:09:46 +01:00
Vladimir Kozlov
8da8433a6f 6912517: JIT bug compiles out (and stops running) code that needs to be run. Causes NPE
Add missing check that value is used in memory expression in instructions with embedded load.

Reviewed-by: never, jrose
2010-01-07 16:26:31 -08:00
Tom Rodriguez
98449cf2c2 6914300: ciEnv should export all well known classes
Reviewed-by: kvn, twisti
2010-01-06 14:22:39 -08:00
Christian Thalinger
47f2433a58 6893268: additional dynamic language related optimizations in C2
C2 needs some additional optimizations to be able to handle MethodHandle invokes and invokedynamic instructions at the best performance.

Reviewed-by: kvn, never
2010-01-05 15:21:25 +01:00
Christian Thalinger
375527d84e 6829187: compiler optimizations required for JSR 292
C2 implementation for invokedynamic support.

Reviewed-by: kvn, never
2010-01-05 13:05:58 +01:00
Vladimir Kozlov
9be2e29930 6913075: EA identifies escape state incorrectly after 6895383 fix
EA incorrectly identifies escape state of an allocation passed as call argument.

Reviewed-by: never
2010-01-04 15:21:09 -08:00
Christian Thalinger
caf28727eb 6893081: method handle & invokedynamic code needs additional cleanup (post 6815692, 6858164)
During the work for 6829187 we have fixed a number of basic bugs which are logically grouped with 6815692 and 6858164 but which must be reviewed and pushed separately.

Reviewed-by: kvn, never
2010-01-04 18:38:08 +01:00
Vladimir Kozlov
00f583219f 6896727: nsk/logging/LoggingPermission/LoggingPermission/logperm002 fails with G1, EscapeAnalisys
Move instance store's memory users to corresponding memory slices when updating its memory edge.

Reviewed-by: never
2009-12-09 19:50:14 -08:00
Vladimir Kozlov
9f5ca0249d 6895383: JCK test throws NPE for method compiled with Escape Analysis
Add missing checks for MemBar nodes in EA.

Reviewed-by: never
2009-12-09 16:40:45 -08:00
Tom Rodriguez
dfbb0bf3e2 6908167: jbb2005, OptimizeStringConcat causes assert in EA
Reviewed-by: kvn
2009-12-08 16:27:21 -08:00
Changpeng Fang
8a9580b1a1 6901572: JVM 1.6.16 crash on loops: assert(has_node(i),"")
Skip the secondary induction variable handling if it is dead

Reviewed-by: never, kvn
2009-12-02 13:29:00 -08:00
Changpeng Fang
a3b6bcb4a8 6904191: OptimizeStringConcat should be product instead of experimental
Make OptimizeStringConcat a product VM option(contributed by never)

Reviewed-by: never
2009-11-25 12:09:02 -08:00
Tom Rodriguez
9db2092b1b 6892658: C2 should optimize some stringbuilder patterns
Reviewed-by: kvn, twisti
2009-11-12 09:24:21 -08:00
Vladimir Kozlov
39a98bab1d 6902036: WorldWind asserts on escape.cpp:1153: assert(addr->is_AddP(),"AddP required")
Remove the assert.

Reviewed-by: twisti
2009-11-19 14:32:23 -08:00
Tom Rodriguez
1fb2423873 6892079: live value must not be garbage failure after fix for 6854812
Reviewed-by: kvn
2009-11-11 23:39:17 -08:00
Vladimir Kozlov
c5744bd138 6896352: CTW fails hotspot/src/share/vm/opto/escape.cpp:1155
Always call C->get_alias_index(phase->type(address)) during parsing.

Reviewed-by: never
2009-11-04 14:43:50 -08:00
Vladimir Kozlov
9c1321eed3 6896370: CTW fails share/vm/opto/matcher.cpp:1475 "duplicating node that's already been matched"
Move DecodeN code outside the memory nodes only code.

Reviewed-by: never
2009-11-04 14:16:20 -08:00
Changpeng Fang
e3b5580ecc 6852078: HSX 14/16 in jdk 5.0: api/javax_management api/org_omg jck tests crashes or make tnameserv crash
Disable SuperWord optimization for unsafe read/write

Reviewed-by: kvn, phh
2009-10-30 10:12:52 -07:00
Changpeng Fang
c1eacdef5a Merge 2009-10-29 08:49:31 -07:00
Vladimir Kozlov
022d690049 6892186: SA does not dump debug info for scalar replaced objects
Implement scalar replaced objects debug info dump in SA.

Reviewed-by: twisti
2009-10-21 09:15:33 -07:00
Antonios Printezis
e57cedc5ed Merge 2009-10-20 11:28:25 -07:00
Changpeng Fang
35ca20c546 Merge 2009-10-16 14:08:44 -07:00
Y. Srinivas Ramakrishna
928ac69fcd 6888898: CMS: ReduceInitialCardMarks unsafe in the presence of cms precleaning
6889757: G1: enable card mark elision for initializing writes from compiled code (ReduceInitialCardMarks)

Defer the (compiler-elided) card-mark upon a slow-path allocation until after the store  and before the next subsequent safepoint; G1 now answers yes to can_elide_tlab_write_barriers().

Reviewed-by: jcoomes, kvn, never
2009-10-16 02:05:46 -07:00
Vladimir Kozlov
998bcbaf4b 6889300: assert(i != k || is_new || i->outcnt() > 0, "don't return dead nodes")
PhiNode::Ideal() should return TOP for Phi node with no users.

Reviewed-by: never, jrose
2009-10-13 22:32:31 -07:00
Vladimir Kozlov
9a22acef05 6889656: assert(lo_lrg->lo_degree() || !lo_no_simplify,"Live range was lo-degree before coalesce
Restore the original code: uint i = _hi_degree.

Reviewed-by: never, jrose
2009-10-13 20:54:13 -07:00
John Coomes
7e76feaf42 6888953: some calls to function-like macros are missing semicolons
Reviewed-by: pbk, kvn
2009-10-11 16:19:25 -07:00
Erik Trimble
8cea3ed3b4 Merge 2009-10-09 15:18:52 -07:00
Tom Rodriguez
9b306d03ee 6885584: A particular class structure causes large allocation spike for jit
Reviewed-by: kvn
2009-10-07 15:38:37 -07:00
Vladimir Kozlov
ba951dbf36 6875959: CTW fails hotspot/src/share/vm/opto/reg_split.cpp:1087
To break spill ties choose bound live range over unbound to free register or one with smaller cost to spill.

Reviewed-by: never, jrose
2009-10-07 12:43:50 -07:00
Vladimir Kozlov
7e942d79d0 6883468: C2 compiler enters infinite loop in PhaseIterGVN::transform
Avoid ideal transformation ping-pong between AddPNode::Ideal() and CastX2PNode::Ideal().

Reviewed-by: cfang
2009-09-25 13:26:02 -07:00
Erik Trimble
652ccb8d21 Merge 2009-09-25 12:17:06 -07:00
Xiomara Jayasena
15f08eb80e 6884624: Update copyright year
Update copyright for files that have been modified in 2009 through Septermber

Reviewed-by: tbell, ohair
2009-09-22 14:06:10 -07:00
Vladimir Kozlov
25296d001b 6820514: meet not symmetric failure in ctw
Add missing instance_id meet.

Reviewed-by: never
2009-09-18 09:57:47 -07:00
Tom Rodriguez
7437f0b825 6854812: 6.0_14-b08 crashes with a SIGSEGV
Reviewed-by: kvn, twisti
2009-09-16 11:06:10 -07:00
John R Rose
47c425506d Merge 2009-09-15 22:50:12 -07:00
John R Rose
e261aecad8 6863023: need non-perm oops in code cache for JSR 292
Make a special root-list for those few nmethods which might contain non-perm oops.

Reviewed-by: twisti, kvn, never, jmasa, ysr
2009-09-15 21:53:47 -07:00
Vladimir Kozlov
c89a572b3e 6879362: assert(!klass_is_exact(),"only non-exact klass")
Do nothing for AddP node which has type not related to the type of allocated object.

Reviewed-by: never
2009-09-15 19:03:39 -07:00
Changpeng Fang
1cf5b7ae11 6879921: CTW failure jdk6_18/hotspot/src/share/vm/utilities/globalDefinitions.cpp:268
Filter out non-primitives before deciding whether two ops can be packed

Reviewed-by: kvn, never
2009-09-15 11:09:34 -07:00
Vladimir Kozlov
243514d483 6827605: new String intrinsics may prevent EA scalar replacement
6875866: Intrinsic for String.indexOf() is broken on x86 with SSE4.2

Modify String intrinsic methods to pass char[] pointers instead of string oops.

Reviewed-by: never
2009-09-14 12:14:20 -07:00
Changpeng Fang
c492f4cde5 6877254: Server vm crashes with no branches off of store slice" when run with CMS and UseSuperWord(default)
Design StoreCMNode::Ideal to promote its oopStore input if the input is a MergeMem node

Reviewed-by: kvn, never
2009-09-14 09:49:54 -07:00
Vladimir Kozlov
e0519e7bbd 6880053: assert(alloc_obj->as_CheckCastPP()->type() != TypeInstPtr::NOTNULL)
Removed second CheckCastPP and use MembarCPUOrder after arraycopy to cloned object.

Reviewed-by: never
2009-09-10 18:18:06 -07:00
Vladimir Kozlov
515f68b637 6880574: C2 assert in escape.cpp:445 on linux-amd64
Look through chained AddP nodes in get_addp_base().

Reviewed-by: jrose
2009-09-10 10:36:24 -07:00
Vladimir Kozlov
f0f6f93143 6880052: SIGSEGV in GraphKit::null_check_common()
Check that a klass is not NULL before the is_loaded() call.

Reviewed-by: never
2009-09-08 16:56:31 -07:00