Michael Berg
e75f5a5cde
8135028: support for vectorizing double precision sqrt
...
Reviewed-by: kvn, twisti
2015-09-09 10:34:17 -07:00
Goetz Lindenmaier
ad601cca0c
8131676: Fix warning 'negative int converted to unsigned' after 8085932
...
Also fix 64-bit constant added in 8076276.
Reviewed-by: kvn
2015-07-16 14:18:13 +02:00
Jan Civlin
2a4f18ccbd
8085932: Fixing bugs in detecting memory alignments in SuperWord
...
Reviewed-by: kvn
2015-07-14 09:55:22 -07:00
Vladimir Kozlov
b5284a93ce
8129920: Vectorized loop unrolling
...
Optimize loop opts for vectorizible loops.
Reviewed-by: kvn, roland
2015-07-10 11:59:09 -07:00
Vladimir Kozlov
d71bb8c72b
8129893: 8129094 fix is incomplete
...
Move old and add new primitive type check.
Reviewed-by: iveresov
2015-06-30 12:12:18 -07:00
Vladimir Kozlov
d62598136b
8129094: assert(is_java_primitive(bt)) failed: only primitive type vectors
...
Ignored non-primitive type memory operation regardless its (or its inputs) control.
Reviewed-by: roland, mcberg
2015-06-18 11:09:29 -07:00
Michael Berg
7c7b91845f
8080325: SuperWord loop unrolling analysis
...
Determine loop unroll factor based on supported vectors sizes.
Reviewed-by: roland, kvn
2015-06-16 16:10:36 -07:00
Roland Westrelin
a3c77df5f1
8077504: Unsafe load can loose control dependency and cause crash
...
Node::depends_only_on_test() should return false for Unsafe loads
Reviewed-by: kvn, adinn
2015-05-21 13:54:07 +02:00
Tobias Hartmann
e113dfc652
8079343: Crash in PhaseIdealLoop with "assert(!had_error) failed: bad dominance"
...
C2 should not try to vectorize loops with loop variant vector base address.
Reviewed-by: kvn
2015-05-11 07:44:46 +02:00
Tobias Hartmann
43a5abc876
8078497: C2's superword optimization causes unaligned memory accesses
...
Prevent vectorization of memory operations with different invariant offsets if unaligned memory accesses are not allowed.
Reviewed-by: kvn
2015-05-08 12:19:17 +02:00
Jan Civlin
c7d33de202
8076284: Improve vectorization of parallel streams
...
Improve vectorization of java/util/stream/Streams$RangeIntSpliterator::forEachRemaining() method and enable loop vectorization in a given method on demand.
Reviewed-by: kvn
2015-05-05 12:33:57 -07:00
Michael C Berg
a880f3d139
8078563: Restrict reduction optimization
...
Reviewed-by: kvn, twisti
2015-04-29 15:34:04 -07:00
Vladimir Kozlov
81bb7521bd
8076523: assert(((ABS(iv_adjustment_in_bytes) % elt_size) == 0)) fails in superword.cpp
...
Check that offset % mem_oper_size == 0 when alignment is verified during vectorization.
Reviewed-by: iveresov
2015-04-02 17:16:39 -07:00
Michael C Berg
9e55e44c85
8074981: Integer/FP scalar reduction optimization
...
Add scalar reduction optimization to C2 to take advantage of vector instructions in modern x86 CPUs.
Reviewed-by: kvn, twisti
2015-04-01 18:07:50 -07:00
Vladimir Kozlov
7764490363
8052081: Optimize generated by C2 code for Intel's Atom processor
...
Allow to execute vectorization and crc32 optimization on Atom. Enable UseFPUForSpilling by default on x86.
Reviewed-by: roland
2014-08-05 15:02:10 -07:00
Tobias Hartmann
70a55eac34
8054033: Remove unused references to Compile*
...
Removed unused references to Compile* missed by JDK-8034812.
Reviewed-by: kvn, roland
2014-08-05 09:58:52 +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
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
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
Niclas Adlertz
94a86285a7
8010500: [parfait] Possible null pointer dereference at hotspot/src/share/vm/opto/loopnode.hpp
...
Added NULL check for loopnode() in get_pre_loop_end()
Reviewed-by: kvn, roland
2014-02-26 07:46:46 +01:00
Mikael Vidstedt
a0da47fd66
8029233: Update copyright year to match last edit in jdk8 hotspot repository for 2013
...
Copyright year updated for files modified during 2013
Reviewed-by: twisti, iveresov
2013-12-24 11:48:39 -08:00
Vladimir Kozlov
656949d014
8004867: VM crashing with assert "share/vm/opto/node.hpp:357 - assert(i < _max) failed: oob"
...
Added few checks and early bailout from Superword optimization to avoid such cases in a future.
Reviewed-by: roland, twisti
2013-02-18 16:47:15 -08:00
Vladimir Kozlov
fc84b11227
8001635: assert(in_bb(n)) failed: must be
...
Added missed check that Load node is in processed loop block.
Reviewed-by: twisti
2012-10-26 11:48:04 -07:00
Vladimir Kozlov
a9c2b6a900
8001183: incorrect results of char vectors right shift operaiton
...
Do vector right shift operation for small int types only after loads
Reviewed-by: jrose, dlong
2012-10-23 13:06:37 -07:00
Vladimir Ivanov
6674423523
7199654: Remove LoadUI2LNode
...
Removed LoadUI2L node from Ideal nodes, use match rule in .ad files instead.
Reviewed-by: kvn
2012-10-09 12:40:05 -07:00
Vladimir Kozlov
e8332c76e9
7201026: add vector for shift count
...
Add generation of vectors for scalar shift count.
Reviewed-by: roland, twisti, dlong
2012-10-02 12:25:13 -07: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
Vladimir Kozlov
973fdc81a1
7200264: 7192963 changes disabled shift vectors
...
Replaced is_vector_use() call with explicit check for vector shift's count.
Reviewed-by: twisti, roland, dlong, vlivanov
2012-09-25 15:48:17 -07:00
Vladimir Kozlov
25f18c20d9
7199010: incorrect vector alignment
...
Fixed vectors alignment when several arrays are accessed in one loop.
Reviewed-by: roland, twisti
2012-09-19 16:50:26 -07:00
Vladimir Kozlov
811c047ec1
7196199: java/text/Bidi/Bug6665028.java failed: Bidi run count incorrect
...
Save whole XMM/YMM registers in safepoint interrupt handler.
Reviewed-by: roland, twisti
2012-09-17 19:39:07 -07:00
Vladimir Kozlov
cbfca3259c
7192963: assert(_in[req-1] == this) failed: Must pass arg count to 'new'
...
Fixed Pack node generation. Not vectorize shift instructions if count is not the same for all shifts and if count is vector.
Reviewed-by: twisti
2012-08-22 11:55:40 -07:00
Vladimir Kozlov
ef4102148a
7192964: assert(false) failed: bad AD file
...
Shifts with loop variant counts "a[i]=1<<b[i];" should not be vectorized since hw does not support it.
Reviewed-by: twisti
2012-08-21 14:50:02 -07:00
Vladimir Kozlov
e3c3c8527e
6340864: Implement vectorization optimizations in hotspot-server
...
Added asm encoding and mach nodes for vector arithmetic instructions on x86.
Reviewed-by: roland
2012-08-20 09:07:21 -07:00
Vladimir Kozlov
b5b10846c2
7177923: SIGBUS on sparc in compiled code for java.util.Calendar.clear()
...
Disable vectorization of a memory access with more elements per vector than one which is used for alignment on sparc
Reviewed-by: twisti
2012-06-19 15:12:56 -07: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
Vlaidmir Ivanov
dd85e2f356
7173340: C2: code cleanup: use PhaseIterGVN::replace_edge(Node*, int, Node*) where applicable
...
Replace frequent C2 optimizer code patterns with new methods calls
Reviewed-by: kvn, twisti
2012-06-12 16:23:31 -07:00
Vladimir Kozlov
904f53db88
7160610: Unknown Native Code compilation issue
...
When constructing input vector use type of vector's operation which use it since element's sizes should match.
Reviewed-by: never, twisti
2012-05-07 12:37:46 -07:00
Vladimir Kozlov
52f678435a
7077439: Possible reference through NULL in loopPredicate.cpp:726
...
Use cl->is_valid_counted_loop() check.
Reviewed-by: never
2011-08-10 14:06:57 -07:00
Vladimir Kozlov
18329266ea
7069452: Cleanup NodeFlags
...
Remove flags which duplicate information in Node::NodeClasses.
Reviewed-by: never
2011-07-27 17:28:36 -07:00
Vladimir Kozlov
00eca5e982
7004535: Clone loop predicate during loop unswitch
...
Clone loop predicate for clonned loops
Reviewed-by: never
2011-04-02 10:54:15 -07: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
448b83e288
6677629: PhaseIterGVN::subsume_node() should call hash_delete() and add_users_to_worklist()
...
Use replace_node() method instead of subsume_node().
Reviewed-by: jrose, never
2010-06-28 14:54:39 -07:00
Tom Rodriguez
154ae789ef
6958485: fix for 6879921 was insufficient
...
Reviewed-by: kvn
2010-06-07 14:17:01 -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
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
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
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
Changpeng Fang
457be8ad49
6876276: assert(!is_visited,"visit only once")
...
Schedule the superword loads based on dependence constraints
Reviewed-by: kvn, never
2009-08-31 08:31:45 -07:00
Changpeng Fang
fface2e4ca
6636138: UseSuperWord enabled failure
...
Fixed SuperWord scheduling of memory operations.
Reviewed-by: kvn, never
2009-03-24 12:19:47 -07:00
Erik Trimble
8d6035660e
Merge
2009-03-12 18:16:36 -07:00