64 Commits

Author SHA1 Message Date
Vladimir Kozlov
78034a3d3b 7117282: assert(base == NULL || t_adr->isa_rawptr() || !phase->type(base)
Delay memory node transformation until the memory is processed.

Reviewed-by: iveresov, never
2011-12-02 21:37:19 -08:00
Vladimir Kozlov
8d2ee23293 6890673: Eliminate allocations immediately after EA
Try to eliminate allocations and related locks immediately after escape analysis.

Reviewed-by: never
2011-11-16 09:13:57 -08:00
Vladimir Kozlov
09b7902e14 7107042: assert(no_dead_loop) failed: dead loop detected
Use dead nodes elimination code in PhaseIdealLoop before executing EA.

Reviewed-by: never, twisti
2011-11-09 07:25:51 -08:00
Vladimir Kozlov
47e357e16f 7081933: Use zeroing elimination optimization for large array
Don't zero new typeArray during runtime call if the allocation is followed by arraycopy into it.

Reviewed-by: twisti
2011-09-26 10:24:05 -07:00
Christian Thalinger
1038fed51d 7071709: JSR 292: switchpoint invalidation should be pushed not pulled
Reviewed-by: never
2011-09-02 04:28:59 -07:00
Roland Westrelin
b543a07b9a 7074017: Introduce MemBarAcquireLock/MemBarReleaseLock nodes for monitor enter/exit code paths
Replace MemBarAcquire/MemBarRelease nodes on the monitor enter/exit code paths with new MemBarAcquireLock/MemBarReleaseLock nodes

Reviewed-by: kvn, twisti
2011-08-02 18:36:40 +02:00
Vladimir Kozlov
6d0283ed8e Merge 2011-04-29 11:15:30 -07:00
Vladimir Kozlov
abc5f94df7 7026700: regression in 6u24-rev-b23: Crash in C2 compiler in PhaseIdealLoop::build_loop_late_post
Memory slices should be always created for non-static fields after allocation

Reviewed-by: never
2011-04-20 18:29:35 -07:00
Jon Masamitsu
b6e631d446 Merge 2011-04-08 14:19:50 -07:00
Tom Rodriguez
aac4647e6e 7032963: StoreCM shouldn't participate in store elimination
Reviewed-by: kvn
2011-04-05 19:14:03 -07:00
Vladimir Kozlov
0493606cdd 7032696: Fix for 7029152 broke VM
StrIntrinsicNode::Ideal() should not optimize memory during Parse.

Reviewed-by: jrose, never
2011-03-31 13:22:34 -07:00
Vladimir Kozlov
3ecb9f51df 7029152: Ideal nodes for String intrinsics miss memory edge optimization
In Ideal() method of String intrinsics nodes look for TypeAryPtr::CHARS memory slice if memory is MergeMem. Do not unroll a loop with String intrinsics code.

Reviewed-by: never
2011-03-30 12:08:49 -07:00
John Coomes
fe899cc10d 6962931: move interned strings out of the perm gen
Reviewed-by: never, coleenp, ysr, jwilhelm
2011-03-22 13:36:33 -07:00
Vladimir Kozlov
a74bc73598 6942326: x86 code in string_indexof() could read beyond reserved heap space
Copy small (<8) strings on stack if str+16 crosses a page boundary and load from stack into XMM. Back up pointer when loading string's tail.

Reviewed-by: never
2011-02-26 12:10:54 -08:00
Vladimir Kozlov
afa5d117b7 6812217: Base memory of MergeMem node violates assert during killing expanded AllocateArray node
The assert in MergeMemNode::memory_at() misses the case when address is TOP.

Reviewed-by: never
2011-02-24 10:28:20 -08:00
Tom Rodriguez
532dec3797 7002666: eclipse CDT projects crash with compressed oops
Reviewed-by: kvn, twisti
2010-12-01 10:16:31 -08:00
Stefan Karlsson
8006fe8f75 6989984: Use standard include model for Hospot
Replaced MakeDeps and the includeDB files with more standardized solutions.

Reviewed-by: coleenp, kvn, kamg
2010-11-23 13:22:55 -08:00
Vladimir Kozlov
7cc55737b6 6916062: assert(_inserts <= _insert_limit,"hash table overflow") in NodeHash::hash_insert
Missing check for not empty worklist when puting memory node back on worklist and expecting address type update.

Reviewed-by: never
2010-09-30 18:31:45 -07:00
Tom Rodriguez
f4b4eae617 6982537: Crash in Node*step_through_mergemem
Reviewed-by: kvn
2010-09-22 13:01:12 -07:00
Tom Rodriguez
84aedee955 6969586: OptimizeStringConcat: SIGSEGV in LoadNode::Value()
Reviewed-by: kvn
2010-08-30 17:27:35 -07:00
Vladimir Kozlov
21f481e5dd 6959430: Make sure raw loads have control edge
Check that raw loads have control edge

Reviewed-by: never, twisti
2010-06-15 18:07:27 -07:00
Erik Trimble
ba7c173659 6941466: Oracle rebranding changes for Hotspot repositories
Change all the Sun copyrights to Oracle copyright

Reviewed-by: ohair
2010-05-27 19:08:38 -07: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
9db2092b1b 6892658: C2 should optimize some stringbuilder patterns
Reviewed-by: kvn, twisti
2009-11-12 09:24:21 -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
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
ca3a3504be 6711117: Assertion in 64bit server vm (flat != TypePtr::BOTTOM,"cannot alias-analyze an untyped ptr")
Delay a memory node transformation if its control or address on IGVN worklist.

Reviewed-by: never
2009-04-07 19:04:24 -07:00
Changpeng Fang
c0d62ad9e6 6761600: Use sse 4.2 in intrinsics
Use SSE 4.2 in intrinsics for String.{compareTo/equals/indexOf} and Arrays.equals.

Reviewed-by: kvn, never, jrose
2009-03-31 14:07:08 -07:00
Christian Thalinger
89cea91c48 6797305: Add LoadUB and LoadUI opcode class
Add a LoadUB (unsigned byte) and LoadUI (unsigned int) opcode class so we have these load optimizations in the first place and do not need to handle them in the matcher.

Reviewed-by: never, kvn
2009-03-09 03:17:11 -07:00
Christian Thalinger
05d1de7727 6810672: Comment typos
I have collected some typos I have found while looking at the code.

Reviewed-by: kvn, never
2009-02-27 13:27:09 -08:00
Vladimir Kozlov
73e8e582ba 6807084: AutoBox elimination is broken with compressed oops
Add checks for DecodeN nodes into AutoBox elimination code.

Reviewed-by: never
2009-02-18 13:53:42 -08:00
Vladimir Kozlov
681eb89b31 Merge 2009-02-17 14:30:24 -08:00
Tom Rodriguez
275a0bfb42 6793828: G1: invariant: queues are empty when activated
Reviewed-by: jrose, kvn
2009-02-05 11:42:10 -08:00
Christian Thalinger
3b8452da93 6796746: rename LoadC (char) opcode class to LoadUS (unsigned short)
Renaming LoadC to LoadUS would round up the planned introduction of LoadUB and LoadUI.

Reviewed-by: phh, kvn
2009-01-26 16:22:12 +01:00
Tom Rodriguez
a3d528cc30 6791132: bad control in autobox split code
Reviewed-by: kvn
2009-01-13 11:43:20 -08:00
Vladimir Kozlov
7aae40a95f 6462850: generate biased locking code in C2 ideal graph
Inline biased locking code in C2 ideal graph during macro nodes expansion

Reviewed-by: never
2008-11-07 09:29:38 -08:00
Chuck Rasbold
eee15b163e 6711100: 64bit fastdebug server vm crashes with assert(_base == Int,"Not an Int")
Insert CastII nodes to narrow type of load_array_length() node

Reviewed-by: never, kvn
2008-09-17 08:29:17 -07:00
Vladimir Kozlov
37306315b2 6736417: Fastdebug C2 crashes in StoreBNode::Ideal
The result of step_through_mergemem() and remove_dead_region() is not checked in some cases.

Reviewed-by: never
2008-08-27 09:15:46 -07:00
Vladimir Kozlov
897278fce0 6731641: assert(m->adr_type() == mach->adr_type(),"matcher should not change adr type")
Fixed few addP node type and narrow oop type problems.

Reviewed-by: rasbold, never
2008-08-01 10:06:45 -07:00
Vladimir Kozlov
50c4a23cac 6726999: nsk/stress/jck12a/jck12a010 assert(n != null,"Bad immediate dominator info.")
Escape Analysis fixes.

Reviewed-by: never, rasbold
2008-07-28 17:12:52 -07:00
Vladimir Kozlov
fae39068e8 6723160: Nightly failure: Error: meet not symmetric
Add missing _instance_id settings and other EA fixes.

Reviewed-by: rasbold
2008-07-16 16:04:39 -07:00
Erik Trimble
2d6f42d18c Merge 2008-07-11 01:14:44 -07:00
Xiomara Jayasena
c96a95c4b8 6719955: Update copyright year
Update copyright year for files that have been modified in 2008

Reviewed-by: ohair, tbell
2008-07-02 12:55:16 -07:00
Vladimir Kozlov
4213e62fb7 6716441: error in meet with +DoEscapeAnalysis
Set instance_id to InstanceBot for InstPtr->meet(AryPtr) when types are not related.

Reviewed-by: jrose, never
2008-06-26 13:34:00 -07:00
Vladimir Kozlov
a671e7c7b5 6710487: More than half of JDI Regression tests hang with COOPs in -Xcomp mode
Remove DecodeNNode::decode() and EncodePNode::encode() methods.

Reviewed-by: rasbold, never
2008-06-24 10:43:29 -07:00
Vladimir Kozlov
6978df8f5d 6714406: Node::dominates() does not always check for TOP
Add missed checks for TOP and missed checks for non-dominating cases

Reviewed-by: rasbold, jrose, never
2008-06-13 15:08:56 -07:00
Chuck Rasbold
2e672ac9bf 6695049: (coll) Create an x86 intrinsic for Arrays.equals
Intrinsify java/util/Arrays.equals(char[], char[])

Reviewed-by: kvn, never
2008-05-29 16:22:09 -07:00
Vladimir Kozlov
a1f50998ae 6705887: Compressed Oops: generate x64 addressing and implicit null checks with narrow oops
Generate addresses and implicit null checks with narrow oops to avoid decoding.

Reviewed-by: jrose, never
2008-05-29 12:04:14 -07:00
Vladimir Kozlov
76035424de 6703890: Compressed Oops: add LoadNKlass node to generate narrow oops (32-bits) compare instructions
Add LoadNKlass and CMoveN nodes, use CmpN and ConN nodes to generate narrow oops compare instructions.

Reviewed-by: never, rasbold
2008-05-21 13:46:23 -07:00