906 Commits

Author SHA1 Message Date
Vladimir Ivanov
b1d745897b 8000313: C2 should use jlong for 64bit values
Replace all occurrences of long with jlong in C2 code.

Reviewed-by: kvn, twisti
2012-10-08 13:02:13 -07:00
Vladimir Ivanov
822deb6ee6 7177003: C1: LogCompilation support
Add LogCompilation support in C1 - both client and tiered mode.

Reviewed-by: twisti, kvn
2012-10-05 18:57:10 -07:00
Vladimir Kozlov
8d8d00ff00 7199742: A lot of C2 OSR compilations of the same method's bci
Don't clone head of OSR loop.

Reviewed-by: jrose, twisti
2012-10-02 14:49:21 -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
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
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
03d65ced3e 7198606: Improve VM optimization
Remove incorrect code in OptimizeFill optimization.

Reviewed-by: roland, twisti
2012-09-19 13:58:31 -07:00
Vladimir Kozlov
da65cc4532 7160161: Missed safepoint in non-Counted loop
Do not remove safepoints during peeling optimization.

Reviewed-by: twisti
2012-08-29 13:02:40 -07:00
Christian Thalinger
40c1bd4242 7192406: JSR 292: C2 needs exact return type information for invokedynamic and invokehandle call sites
Reviewed-by: kvn
2012-08-28 15:24:39 -07:00
Tao Mao
447e7065d2 6677625: Move platform specific flags from globals.hpp to globals_<arch>.hpp
Reviewed-by: kvn, dholmes, coleenp
2012-08-27 15:17:17 -07:00
Vladimir Kozlov
f0d08c04f1 7148109: C2 compiler consumes too much heap resources
Add split_arena to allocate temporary arrays in PhaseChaitin::Split() and free them on method's exit.

Reviewed-by: twisti
2012-08-27 09:46:38 -07:00
Vladimir Kozlov
fbcc3da64f 7192965: assert(is_aligned_sets(size)) failed: mask is not aligned, adjacent sets
Change pair check to vector check in RA bias coloring code.

Reviewed-by: jrose, twisti
2012-08-23 09:13:16 -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
Christian Thalinger
a14e902e92 7192167: JSR 292: C1 has old broken code which needs to be removed
Reviewed-by: kvn, roland, jrose
2012-08-21 10:48:50 -07:00
Vladimir Kozlov
04c6a7ce10 7190310: Inlining WeakReference.get(), and hoisting $referent may lead to non-terminating loops
In C2 add software membar after load from Reference.referent field to prevent commoning of loads across safepoint since GC can change its value. In C1 always generate Reference.get() intrinsic.

Reviewed-by: roland, twisti, dholmes, johnc
2012-08-20 09:58:58 -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
Christian Thalinger
c9fb0d52ee Merge 2012-08-10 15:50:49 -07:00
Christian Thalinger
e409ee94ae 7188276: JSR 292: assert(ct == T_OBJECT) failed: rt=T_OBJECT, ct=13
Reviewed-by: kvn, jrose
2012-08-01 14:44:26 -07:00
Vladimir Kozlov
5e05a0d592 7187454: stack overflow in C2 compiler thread on Solaris x86
Added new FormatBufferResource class to use thread's resource area for error message buffer.

Reviewed-by: twisti
2012-07-30 09:49:25 -07:00
Christian Thalinger
b9eb5785cc 7187290: nightly failures after JSR 292 lazy method handle update
Reviewed-by: kvn, twisti
2012-07-27 16:14:15 -07:00
Christian Thalinger
12901d0e5b 7023639: JSR 292 method handle invocation needs a fast path for compiled code
6984705: JSR 292 method handle creation should not go through JNI

Remove assembly code for JDK 7 chained method handles

Co-authored-by: John Rose <john.r.rose@oracle.com>
Co-authored-by: Michael Haupt <michael.haupt@oracle.com>
Reviewed-by: jrose, twisti, kvn, mhaupt
2012-07-24 10:51:00 -07:00
Jiangli Zhou
67f97ee6eb Merge 2012-07-24 13:16:26 -04:00
Vladimir Kozlov
310ad38a4b Merge 2012-07-16 19:50:52 -07:00
Dean Long
62ce00b4ca 7147464: Java crashed while executing method with over 8k of dneg operations
Replace recursive method with iterative

Reviewed-by: kvn, twisti
2012-07-16 15:31:18 -04:00
Vladimir Kozlov
27e9d6f36d 7123926: Some CTW test crash: !_control.contains(ctrl)
Don't eliminate Integer::toString() call node during String concatenation optimization if it has several uses.

Reviewed-by: twisti
2012-07-13 17:48:26 -07:00
Vladimir Kozlov
59bb4ea7cc Merge 2012-07-12 14:19:15 -07:00
Vlaidmir Ivanov
e2fc7f742c 7181658: CTW: assert(t->meet(t0) == t) failed: Not monotonic
Use uncast node equivalence checks in CmpUNode::sub.

Reviewed-by: kvn, twisti
2012-07-11 14:50:30 -07:00
Vladimir Kozlov
761e0b221d 7180769: assert(tboth->klass_is_exact()) failed: klass should be exact
Use class exactness as part of the condition for class compare optimization instead of assert.

Reviewed-by: twisti, roland
2012-07-02 12:59:43 -07:00
Roland Westrelin
3511594d3c 7177917: Failed test java/lang/Math/PowTests.java
When c2 intrinsifies pow/exp, it should never inline the java implementations.

Reviewed-by: kvn
2012-07-02 09:58:06 +02:00
Alejandro Murillo
fad2bafa7b Merge 2012-06-29 17:04:39 -07:00
Coleen Phillimore
135f315eaa Merge 2012-07-02 13:11:28 -04:00
Zhengyu Gu
a39b17624a 6995781: Native Memory Tracking (Phase 1)
7151532: DCmd for hotspot native memory tracking

Implementation of native memory tracking phase 1, which tracks VM native memory usage, and related DCmd

Reviewed-by: acorn, coleenp, fparain
2012-06-28 17:03:16 -04:00
Lana Steuck
b126348850 Merge 2012-06-26 10:27:11 -07:00
Vladimir Kozlov
8c4cefaa96 7179138: Incorrect result with String concatenation optimization
Check for and skip diamond shaped NULL check code for the result of toString()

Reviewed-by: twisti, roland
2012-06-26 09:06:16 -07:00
Vladimir Kozlov
6bc673930f 7178280: Failed new vector regression tests
When looking for the same value in an other register check that all parts of that register has the same value.

Reviewed-by: johnc, twisti
2012-06-22 10:40:48 -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
Christian Thalinger
ed2051c861 7157365: jruby/bench.bench_timeout crashes with JVM internal error
Reviewed-by: jrose, kvn
2012-06-18 15:17:30 -07:00
Roland Westrelin
118f552a6e 7174363: Arrays.copyOfRange leads to VM crash with -Xcomp -server if executed by testing framework
Arrays.copyOfRange(original, from, to) with from > original.length tries to do a copy with a negative length.

Reviewed-by: kvn, twisti
2012-06-18 09:52:31 +02: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
Krystal Mok
529b370174 7174218: remove AtomicLongCSImpl intrinsics
Reviewed-by: kvn, twisti
2012-06-12 14:31:44 -07:00
Vlaidmir Ivanov
e67db1b150 7169782: C2: SIGSEGV in LShiftLNode::Ideal(PhaseGVN*, bool)
Keep intermediate node alive till the end of the graph construction using dummy hook node trick

Reviewed-by: kvn, twisti
2012-06-12 09:47:23 -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
Abhijit Saha
aacc740523 Merge 2012-06-07 12:30:02 -07:00
Krystal Mok
a9ea68bd3f 7170463: C2 should recognize "obj.getClass() == A.class" code pattern
Optimize this code pattern obj.getClass() == A.class.

Reviewed-by: jrose, kvn
2012-05-25 07:53:11 -07:00
Abhijit Saha
1c1f4add53 Merge 2012-05-21 14:56:33 -07:00
Krystal Mok
100eb2036d 7170053: crash in C2 when using -XX:+CountCompiledCalls
Reviewed-by: kvn, twisti
2012-05-18 12:20:24 -07:00
Roland Westrelin
b305cf722e 7133857: exp() and pow() should use the x87 ISA on x86
Use x87 instructions to implement exp() and pow() in interpreter/c1/c2.

Reviewed-by: kvn, never, twisti
2012-05-15 10:10:23 +02:00