Nils Eliasson
2f9e32256d
Merge
2015-11-13 13:31:48 +01:00
Christian Thalinger
6896030b96
8140424: don't prefix developer and notproduct flag variables with CONST_ in product builds
...
Reviewed-by: goetz, stefank
2015-11-11 16:32:17 -10:00
Vladimir Kozlov
6ed8c23581
8141624: Limit calculation of pre loop during super word optimization is wrong
...
Reviewed-by: vlivanov, kvn
2015-11-10 21:36:35 -08:00
Michael C Berg
e86e38619e
8140779: Code generation fixes for avx512
...
Assembler refactoring. Abstract away instruction attributes.
Reviewed-by: kvn, roland, iveresov
2015-11-09 11:26:41 -08:00
Jesper Wilhelmsson
1a5787d42e
Merge
2015-11-05 19:31:57 +01:00
Jan Civlin
0485593fbc
8139340: SuperWord enhancement to support vector conditional move (CMovVD) on Intel AVX cpu
...
Emit vector conditional moves
Reviewed-by: kvn
2015-10-26 19:33:31 -07:00
Nils Eliasson
5a5faf94bf
8137167: JEP165: Compiler Control: Implementation task
...
Compiler Control JEP
Reviewed-by: roland, twisti, zmajo, simonis
2015-10-20 18:07:28 +02:00
Goetz Lindenmaier
83b3b21342
8139040: Fix initializations before ShouldNotReachHere() etc. and enable -Wuninitialized on linux
...
Reviewed-by: stuefe, coleenp, roland
2015-10-22 13:07:10 -04:00
Dean Long
344a9becee
Merge
2015-10-17 19:40:30 -04:00
Jesper Wilhelmsson
7078962b9c
Merge
2015-10-15 13:28:22 +02:00
Jesper Wilhelmsson
e75e2e04f7
Merge
2015-10-07 01:03:24 +02:00
Felix Yang
12cba200a3
8138583: aarch64: add support for vectorizing fabs/fneg
...
Reviewed-by: aph, roland
2015-09-30 04:35:39 -04:00
Jan Civlin
115afda88e
8136725: Provide utility for creation a counted loop reserve copy (clone)
...
Make it easier to revert to the original loop should that be needed
Reviewed-by: kvn
2015-10-09 12:17:58 -07:00
David Lindholm
1e71f67736
8080775: Better argument formatting for assert() and friends
...
Reviewed-by: kbarrett, pliden
2015-09-29 11:02:08 +02:00
Roland Westrelin
f8abd0e843
8136820: Generate better code for some Unsafe addressing patterns
...
Reshape address computation to move invariant part out of loops
Reviewed-by: kvn
2015-09-17 16:53:42 +02:00
Tobias Hartmann
f298249547
8134739: compiler/loopopts/superword/TestVectorizationWithInvariant crashes in loop opts
...
Bail out of superword optimization if loop was removed (i.e., if zero-trip Opaque1Node was removed).
Reviewed-by: kvn, roland
2015-09-17 08:08:47 +02:00
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