Vladimir Kozlov
9e0c61f822
6896617: Optimize sun.nio.cs.ISO_8859_1$Encode.encodeArrayLoop() on x86
...
Use SSE4.2 and AVX2 instructions for encodeArray intrinsic.
Reviewed-by: roland
2013-01-22 15:34:16 -08:00
Vladimir Kozlov
cfcd28fd9d
8005522: use fast-string instructions on x86 for zeroing
...
Use 'rep stosb' instead of 'rep stosq' when fast-string operations are available.
Reviewed-by: twisti, roland
2013-01-03 15:09:55 -08:00
Vladimir Kozlov
5f132a5ec3
Merge
2012-10-12 09:22:52 -07:00
Roland Westrelin
61eb5a0549
7054512: Compress class pointers after perm gen removal
...
Support of compress class pointers in the compilers.
Reviewed-by: kvn, twisti
2012-10-09 10:11:38 +02:00
Coleen Phillimore
28047d6a0f
8000213: NPG: Should have renamed arrayKlass and typeArrayKlass
...
Capitalize these metadata types (and objArrayKlass)
Reviewed-by: stefank, twisti, kvn
2012-09-29 06:40:00 -04:00
Bharadwaj Yadavalli
d5d2e78faa
7193318: C2: remove number of inputs requirement from Node's new operator
...
Deleted placement new operator of Node - node(size_t, Compile *, int).
Reviewed-by: kvn, twisti
2012-09-27 09:38:42 -07:00
Roland Westrelin
302540691b
7023898: Intrinsify AtomicLongFieldUpdater.getAndIncrement()
...
Use shorter instruction sequences for atomic add and atomic exchange when possible.
Reviewed-by: kvn, jrose
2012-09-20 16:49:17 +02:00
Jon Masamitsu
5c58d27aac
6964458: Reimplement class meta-data storage to use native memory
...
Remove PermGen, allocate meta-data in metaspace linked to class loaders, rewrite GC walking, rewrite and rename metadata to be C++ classes
Co-authored-by: Stefan Karlsson <stefan.karlsson@oracle.com>
Co-authored-by: Mikael Gerdin <mikael.gerdin@oracle.com>
Co-authored-by: Tom Rodriguez <tom.rodriguez@oracle.com>
Reviewed-by: jmasa, stefank, never, coleenp, kvn, brutisso, mgerdin, dholmes, jrose, twisti, roland
2012-09-01 13:25:18 -04:00
Vladimir Kozlov
d1191bb4f4
7119644: Increase superword's vector size up to 256 bits
...
Increase vector size up to 256-bits for YMM AVX registers on x86.
Reviewed-by: never, twisti, roland
2012-06-15 01:25:19 -07:00
Vladimir Kozlov
ae6d0d30f5
7174510: 19 JCK compiler tests fail with C2 error: memNode.cpp:812 - ShouldNotReachHere
...
Add missing check for EncodeP node in MemNode::Ideal_common_DU_postCCP() method.
Reviewed-by: twisti
2012-06-11 14:58:51 -07:00
Vladimir Kozlov
3770ecec6f
7132936: guarantee(t != NULL) failed: must be con
...
Use !higher_equal() check to skip top and values which fit.
Reviewed-by: never
2012-01-24 17:04:51 -08:00
Vladimir Kozlov
5b3f2efc2e
7131302: connode.cpp:205 Error: ShouldNotReachHere()
...
Add Value() methods to short and byte Load nodes to truncate constants which does not fit.
Reviewed-by: jrose
2012-01-20 09:43:06 -08:00
Vladimir Kozlov
791afc42da
7128352: assert(obj_node == obj) failed
...
Compare uncasted object nodes.
Reviewed-by: never
2012-01-10 18:05:38 -08:00
Roland Westrelin
97439fb4ff
7121140: Allocation paths require explicit memory synchronization operations for RMO systems
...
Adds store store barrier after initialization of header and body of objects.
Reviewed-by: never, kvn
2011-12-20 16:56:50 +01:00
Stefan Karlsson
e057d60ca1
7118863: Move sizeof(klassOopDesc) into the *Klass::*_offset_in_bytes() functions
...
Moved sizeof(klassOopDesc), changed the return type to ByteSize and removed the _in_bytes suffix.
Reviewed-by: never, bdelsart, coleenp, jrose
2011-12-07 11:35:03 +01:00
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