159 Commits

Author SHA1 Message Date
Goetz Lindenmaier
f9a0d6a4b5 8028401: PPC (part 117): Improve usability of adlc and format() functionality
Add additional, more verbose syntax checks in adlc. Fix printing constant's problem in format().

Reviewed-by: kvn
2013-11-15 12:01:00 -08:00
Goetz Lindenmaier
12b298218d 8003854: PPC64 (part 115): Introduce PostallocExpand that expands nodes after register allocation
Added ability in C2 to expand mach nodes to several mach nodes after register allocation

Reviewed-by: kvn
2013-11-14 19:24:59 -08:00
Vladimir Kozlov
39b0e57fdd Merge 2013-11-05 17:38:04 -08:00
Rickard Bäckman
615376fb9b 8026844: Various Math functions needs intrinsification
Reviewed-by: kvn, twisti
2013-10-18 10:41:56 +02:00
Niclas Adlertz
3838ed7b68 8022783: Nashorn test fails with: assert(!def_outside->member(r))
Enables private copies of inputs for recent spill copies as well

Reviewed-by: kvn, twisti
2013-10-18 10:50:17 +02:00
Rickard Bäckman
441f1d74cf 8024924: Intrinsify java.lang.Math.addExact
Reviewed-by: kvn, twisti
2013-09-27 08:39:19 +02:00
Goetz Lindenmaier
34c8023949 8024922: PPC64 (part 116): Extend adlc to generate fields into nodes
Similar to specifying functions returning constants (as ins_avoid_back_to_back()) adlc now accepts specifications with prefix ins_field_xxx(tp) and adds field xxx of type tp to the node.

Reviewed-by: kvn
2013-09-19 17:31:42 +02:00
Niclas Adlertz
a0a141a9d9 Merge 2013-09-05 10:39:10 +02:00
Lois Foltan
fca9e37c80 8021954: VM SIGSEGV during classloading on MacOS; hs_err_pid file produced
Declare all user-defined operator new()s within Hotspot code with the empty throw() exception specification

Reviewed-by: coleenp, twisti, dholmes, hseigel, dcubed, kvn, ccheung
2013-08-29 18:56:29 -04:00
Niclas Adlertz
be8c8aac48 8023691: Create interface for nodes in class Block
Create public methods for accessing the nodes in a block

Reviewed-by: kvn, roland
2013-08-26 12:50:23 +02:00
Vladimir Kozlov
ed85bb1853 Merge 2013-07-19 13:32:53 -07:00
David Chase
94609df5da 8017578: Hotspot compilation error with latest Studio compiler
Make the destructor virtual (note more non-compiler hotspot errors occur downstream)

Reviewed-by: kvn, twisti
2013-07-09 08:56:04 -04:00
Vladimir Kozlov
7509ebea00 Merge 2013-06-27 13:04:51 -07:00
Vladimir Kozlov
b390a2d8e3 Merge 2013-06-21 15:56:24 -07:00
Goetz Lindenmaier
0522ce7a17 8016586: PPC64 (part 3): basic changes for PPC64
Added #includes needed for ppc64 port. Renamed _MODEL_ppc to _MODEL_ppc_32 and renamed corresponding old _ppc files to _ppc_32.

Reviewed-by: dholmes, kvn
2013-06-20 16:30:44 -07:00
Niclas Adlertz
9129e6dc2b 8016157: During CTW: C2: assert(!def_outside->member(r)) failed: Use of external LRG overlaps the same LRG defined in this block
Disable rematerialization for negD node

Reviewed-by: kvn, roland
2013-06-14 01:19:56 +02:00
Dean Long
9c966207ef Merge 2013-04-24 21:11:02 -04:00
Goetz Lindenmaier
3f42e9e118 8003853: specify offset of IC load in java_to_interp stub
Refactored code to allow platform-specific differences

Reviewed-by: dlong, twisti
2013-04-24 20:55:28 -04:00
Christian Thalinger
337a9c1432 8015266: fix some -Wsign-compare warnings in adlc
Reviewed-by: kvn
2013-05-30 08:37:08 -07:00
Niclas Adlertz
340226f16a 8006016: Memory leak at hotspot/src/share/vm/adlc/output_c.cpp
Reviewed-by: kvn, roland
2013-04-05 11:09:43 +02:00
Niclas Adlertz
5548661d72 8006014: Memory leak in hotspot/src/share/vm/adlc/dfa.cpp
Reviewed-by: kvn, roland
2013-04-04 09:30:06 +02:00
Niclas Adlertz
0f3a43e318 8006008: Memory leak in hotspot/src/share/vm/adlc/archDesc.cpp
Reviewed-by: roland, kvn
2013-04-04 09:18:47 +02:00
Roland Westrelin
c84424d4af 8007722: C2: "assert(tp->base() != Type::AnyPtr) failed: not a bare pointer" at machnode.cpp:376
GetAndSetP's MachNode should capture bottom type.

Reviewed-by: kvn
2013-02-26 12:18:30 +01:00
Mikael Vidstedt
eaa663b241 8007403: Incorrect format arguments in adlparse.cpp
Reviewed-by: kvn, twisti
2013-02-04 10:28:39 -08:00
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
Christian Thalinger
34733bb83c 8003250: SPARC: move MacroAssembler into separate file
Reviewed-by: jrose, kvn
2012-12-06 09:57:41 -08:00
Goetz Lindenmaier
f28ac57f94 8000592: Improve adlc usability
Several changes to adlc to improve its usability

Reviewed-by: kvn
2012-10-09 16:09:31 -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
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
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
9c3545d4fb 7200233: C2: can't use expand rules for vector instruction rules
Added missed _bottom_type set in ArchDesc::defineExpand() and missed vector nodes in MatchRule::is_vector().

Reviewed-by: twisti, roland, dlong
2012-09-25 10:41:15 -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
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
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
Krystal Mok
529b370174 7174218: remove AtomicLongCSImpl intrinsics
Reviewed-by: kvn, twisti
2012-06-12 14:31:44 -07: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
Roland Westrelin
07d9df5a7f 7090968: Allow adlc register class to depend on runtime conditions
Allow reg_class definition as a function.

Reviewed-by: kvn, never
2011-11-22 09:45:57 +01:00
Roland Westrelin
9d8e44db59 7077312: Provide a CALL effect for instruct declaration in the ad file
Abstracted way to declare that the MachNode has the effect of a call (kills caller save registers, preserves callee save registers)

Reviewed-by: twisti, never
2011-09-14 09:22:51 +02:00
Christian Thalinger
81c085a1e2 7003454: order constants in constant table by number of references in code
Reviewed-by: kvn, never, bdelsart
2011-11-16 01:39:50 -08:00
Roland Westrelin
8ae50d45a4 7096010: c2: running with +PrintOptoAssembly crashes the VM when $constanttablebase is used
ADLC generates code to prepare the register string to be printed in a char array but then calls print without the char array as an argument.

Reviewed-by: never
2011-09-30 13:47:26 +02:00
Kurt Miller
95c56a472b 7089790: integrate bsd-port changes
Co-authored-by: Greg Lewis <glewis@eyesbeyond.com>
Co-authored-by: Jung-uk Kim <jkim@freebsd.org>
Co-authored-by: Christos Zoulas <christos@zoulas.com>
Co-authored-by: Landon Fuller <landonf@plausible.coop>
Co-authored-by: The FreeBSD Foundation <board@freebsdfoundation.org>
Co-authored-by: Michael Franz <mvfranz@gmail.com>
Co-authored-by: Roger Hoover <rhoover@apple.com>
Co-authored-by: Alexander Strange <astrange@apple.com>
Reviewed-by: kvn, twisti, jrose
2011-09-25 16:03:29 -07:00
Vladimir Kozlov
90651b2666 7079329: Adjust allocation prefetching for T4
On T4 2 BIS instructions should be issued to prefetch 64 bytes

Reviewed-by: iveresov, phh, twisti
2011-08-16 16:59:46 -07:00
Vladimir Kozlov
080f790edc 7079317: Incorrect branch's destination block in PrintoOptoAssembly output
Save/restore label and block in scratch_emit_size()

Reviewed-by: never
2011-08-16 11:53:57 -07:00
Vladimir Kozlov
ac99f413d7 7063629: use cbcond in C2 generated code on T4
Use new short branch instruction in C2 generated code.

Reviewed-by: never
2011-08-11 12:08:11 -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
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
48c1293916 7063628: Use cbcond on T4
Add new short branch instruction to Hotspot sparc assembler.

Reviewed-by: never, twisti, jrose
2011-07-21 11:25:07 -07:00
Tom Rodriguez
d23654d851 7061101: adlc should complain about mixing block and expression forms of ins_encode
Reviewed-by: kvn
2011-07-06 09:27:54 -07:00