Volker Simonis
d3f3c32282
8255742: PrintInlining as compiler directive doesn't print virtual calls
...
Reviewed-by: thartmann, kvn
2020-12-03 18:02:05 +00:00
Vladimir Kozlov
6c9482eef5
8257561: Some code is not vectorized after 8251925 and 8250607
...
Reviewed-by: chagedorn, vlivanov, thartmann
2020-12-03 17:02:04 +00:00
Tobias Hartmann
129c37700f
8257594: C2 compiled checkcast of non-null object triggers endless deoptimization/recompilation cycle
...
Reviewed-by: roland, vlivanov
2020-12-03 13:42:19 +00:00
Xin Liu
ce496cbda5
8257190: simplify PhaseIdealLoop constructors
...
Currently, C2 has 3 private constructors of PhaseIdealLoop as follows. a-b are for verification. only c is for real loop optimizations.
a. PhaseIdealLoop( PhaseIterGVN &igvn)
b. PhaseIdealLoop(PhaseIterGVN &igvn, const PhaseIdealLoop *verify_me)
c. PhaseIdealLoop(PhaseIterGVN &igvn, LoopOptsMode mode)
I propose 3 changes to simplify them.
1. add assertion in the constructor c. C2 shouldn't use mode = LoopOptsVerify for it.
2. merge a and b into one constructor.
3. make the merged verification ctor only for debug builds.
Reviewed-by: thartmann, kvn
2020-12-01 23:50:53 +00:00
Patric Hedlin
e3d0f27031
8257231: assert(!is_mcall || (call_returns[block->_pre_order] <= (uint) current_offset))
...
Reviewed-by: shade, chagedorn
2020-12-01 14:16:41 +00:00
Claes Redestad
2966d0d334
8257223: C2: Optimize RegMask::is_bound
...
Reviewed-by: kvn, neliasso
2020-12-01 13:18:32 +00:00
Christian Hagedorn
aa2d36f6de
8256807: C2: Not marking stores correctly as mismatched in string opts
...
Reviewed-by: vlivanov, roland, thartmann
2020-12-01 10:11:39 +00:00
Roland Westrelin
3d460bd295
8256655: rework long counted loop handling
...
Reviewed-by: kvn, thartmann, vlivanov
2020-12-01 07:30:51 +00:00
Tobias Hartmann
353e791a18
8257398: Enhance debug output in Type::check_symmetrical
...
Reviewed-by: vlivanov, chagedorn
2020-12-01 07:02:48 +00:00
Ioi Lam
f48737c7b3
8256254: Convert vmIntrinsics::ID to enum class
...
Reviewed-by: redestad, kvn
2020-12-01 05:35:29 +00:00
Per Liden
e3abe51a31
8257418: C2: Rename barrier data member in MemNode and LoadStoreNode
...
Reviewed-by: vlivanov
2020-11-30 14:15:43 +00:00
Vladimir Ivanov
337d7bce03
8257165: C2: Improve box elimination for vector masks and shuffles
...
Reviewed-by: kvn, thartmann
2020-11-30 10:36:38 +00:00
Vladimir Ivanov
4e55d0f31e
8257057: C2: Improve safepoint processing during vector scalarization pass
...
Reviewed-by: kvn, thartmann
2020-11-30 10:30:47 +00:00
Claes Redestad
9bcd2695c3
8257221: C2: RegMask::is_bound_set split set handling broken since JDK-8221404
...
Reviewed-by: kvn, neliasso
2020-11-30 08:18:32 +00:00
Vladimir Kozlov
816e8f83b8
8256999: Add C2 intrinsic for Reference.refersTo and PhantomReference::refersTo
...
Reviewed-by: pliden, vlivanov, rkennke, eosterlund, shade
2020-11-29 20:27:01 +00:00
Aleksey Shipilev
9a468d8599
8256757: Incorrect MachCallRuntimeNode::ret_addr_offset() for CallLeafNoFP on x86_32
...
Reviewed-by: jiefu, kvn
2020-11-27 06:47:30 +00:00
Claes Redestad
2d30a10138
8257069: C2: Clarify and sanity test RegMask/RegMaskIterator
...
Reviewed-by: jvernee, kvn
2020-11-26 13:42:55 +00:00
Nils Eliasson
cfb175dfdf
8256508: Improve CompileCommand flag
...
Reviewed-by: redestad, kvn
2020-11-25 14:20:35 +00:00
Christian Hagedorn
7aed9b65d0
8256016: Dacapo24H.java failed with "assert(false) failed: unscheduable graph"
...
Reviewed-by: kvn, vlivanov
2020-11-25 14:00:40 +00:00
Jatin Bhateja
0d91f0a1df
8252848: Optimize small primitive arrayCopy operations through partial inlining using AVX-512 masked instructions
...
Reviewed-by: neliasso, kvn
2020-11-25 06:08:19 +00:00
Tobias Hartmann
1c4c99eae2
8256823: C2 compilation fails with "assert(isShiftCount(imm8 >> 1)) failed: illegal shift count"
...
Reviewed-by: vlivanov, kvn, chagedorn
2020-11-24 16:52:13 +00:00
Claes Redestad
fa3cfcd0cd
8256883: C2: Add a RegMask iterator
...
Reviewed-by: kvn, pliden, eosterlund
2020-11-24 14:35:51 +00:00
Claes Redestad
f55ae9595e
8256858: C2: Devirtualize PhaseIterGVN-specific methods
...
Reviewed-by: kvn, thartmann
2020-11-24 14:33:47 +00:00
Maurizio Cimadamore
0fb31dbf3a
8254231: Implementation of Foreign Linker API (Incubator)
...
Reviewed-by: coleenp, ihse, dholmes, vlivanov
2020-11-23 11:00:38 +00:00
Claes Redestad
b450e7c1c5
8256827: C2: Avoid reallocations by pre-sizing lists in post_allocate_copy_removal
...
Reviewed-by: kvn, thartmann
2020-11-23 10:18:40 +00:00
Christian Hagedorn
e4a32bea9f
8251925: C2: RenaissanceStressTest fails with assert(!had_error): bad dominance
...
Reviewed-by: kvn, thartmann
2020-11-23 08:37:09 +00:00
Vladimir Ivanov
41c05876bc
8255367: C2: Deoptimization during vector box construction is broken
...
Reviewed-by: thartmann, kvn
2020-11-20 21:16:34 +00:00
jasontatton-aws
b99fd4c7d6
8033441: print line numbers with -XX:+PrintOptoAssembly
...
Reviewed-by: jiefu, thartmann
2020-11-20 12:51:47 +00:00
Roberto Castañeda Lozano
eb35ade9a0
6232281: -XX:-UseLoopSafepoints causes assert(v_false,"Parse::remove_useless_nodes missed this node")
...
Check for nodes missed by remove_useless_nodes() only if PhaseRemoveUseless has
actually been run. This makes it possible to use -XX:-UseLoopSafepoints without
crashing trivially, although implicit assumptions in other parts of C2 about the
existence of loop safepoints might lead to more subtle failures for more complex
methods.
Reviewed-by: neliasso, thartmann, kvn
2020-11-20 12:06:36 +00:00
Tobias Hartmann
f504f419d3
8256385: C2: fatal error: modified node is not on IGVN._worklist
...
Reviewed-by: chagedorn, roland
2020-11-18 11:53:25 +00:00
Tobias Hartmann
5bcf898b97
8256478: C2 compilation fails with assert(t1->isa_long()) failed: Type must be a long
...
Reviewed-by: roland, chagedorn, kvn
2020-11-18 11:52:47 +00:00
Claes Redestad
f7f3447496
8256453: C2: Reduce State footprint
...
Reviewed-by: neliasso, kvn
2020-11-18 10:31:13 +00:00
Dongbo He
ef3ddb1d03
8255448: Fastdebug JVM crashes with Vector API when PrintAssembly is turned on
...
Co-authored-by: Huang Wang <wanghuang3@huawei.com>
Reviewed-by: vlivanov
2020-11-18 01:10:11 +00:00
Claes Redestad
654ad27418
8256392: C2: Various Node cleanups
...
Reviewed-by: neliasso, thartmann, vlivanov
2020-11-17 12:24:42 +00:00
Roland Westrelin
a7422ac2f4
8255150: Add utility methods to check long indexes and ranges
...
Co-authored-by: Paul Sandoz <psandoz@openjdk.org>
Reviewed-by: jvernee, dlong, vlivanov
2020-11-17 10:37:27 +00:00
Tobias Hartmann
6d878565f8
8256325: Remove duplicate asserts in PhaseMacroExpand::expand_macro_nodes
...
Reviewed-by: shade, redestad
2020-11-17 09:37:36 +00:00
Claes Redestad
1228517261
8256274: C2: Optimize copying of the shared type dictionary
...
Reviewed-by: neliasso, kvn
2020-11-17 07:15:04 +00:00
Eric Liu
30a2ad5501
8254872: Optimize Rotate on AArch64
...
Reviewed-by: aph, kvn
2020-11-17 01:55:09 +00:00
Claes Redestad
6e35bcbf03
8256205: Simplify compiler calling convention handling
...
Reviewed-by: kvn, neliasso
2020-11-16 19:39:36 +00:00
Aleksey Shipilev
b4d0186718
8253525: Implement getInstanceSize/sizeOf intrinsics
...
Reviewed-by: kvn, sspitsyn
2020-11-13 08:20:11 +00:00
Roland Westrelin
ea576ddbd4
8254887: C2: assert(cl->trip_count() > 0) failed: peeling a fully unrolled loop
...
Reviewed-by: chagedorn, thartmann
2020-11-13 08:19:33 +00:00
Claes Redestad
19bade0280
8256238: Remove Matcher::pass_original_key_for_aes
...
Reviewed-by: thartmann, chagedorn
2020-11-12 14:21:24 +00:00
Claes Redestad
f7685a4639
8256203: Simplify RegMask::Empty
...
Reviewed-by: thartmann, chagedorn
2020-11-12 14:20:48 +00:00
Roland Westrelin
70c7b1d93c
8250607: C2: Filter type in PhiNode::Value() for induction variables of trip-counted integer loops
...
Reviewed-by: chagedorn, thartmann
2020-11-12 14:15:40 +00:00
Ioi Lam
2f06893a29
8252526: Remove excessive inclusion of jvmti.h and jvmtiExport.hpp
...
Reviewed-by: ihse, kbarrett
2020-11-12 01:45:27 +00:00
Corey Ashford
ccb48b7203
8248188: Add IntrinsicCandidate and API for Base64 decoding
...
8248188: Add IntrinsicCandidate and API for Base64 decoding, add Power64LE intrinsic implementation.
This patch set encompasses the following commits:
Adds a new intrinsic candidate to the java.lang.Base64 class - decodeBlock(), and provides a flexible API for the intrinsic. The API is similar to the existing encodeBlock intrinsic.
Adds the code in HotSpot to check and martial the new intrinsic's arguments to the arch-specific intrinsic implementation.
Adds a Power64LE-specific implementation of the decodeBlock intrinsic.
Adds a JMH microbenchmark for both Base64 encoding and encoding.
Enhances the JTReg hotspot intrinsic "TestBase64.java" regression test to more fully test both decoding and encoding.
Reviewed-by: rriggs, mdoerr, kvn
2020-11-11 21:31:07 +00:00
Martin Doerr
436019b8bb
8256166: [C2] Registers get confused on Big Endian after 8221404
...
Reviewed-by: redestad, thartmann
2020-11-11 15:28:09 +00:00
Roberto Castañeda Lozano
432c387e21
8254317: C2: Resource consumption of ConvI2LNode::Ideal() grows exponentially
...
Prevent exponential number of calls to ConvI2LNode::Ideal() when AddIs are used
multiple times by other AddIs in the optimization ConvI2L(AddI(x, y)) ->
AddL(ConvI2L(x), ConvI2L(y)). This is achieved by (1) reusing existing ConvI2Ls
if possible rather than eagerly creating new ones and (2) postponing the
optimization of newly created ConvI2Ls. Remove hook node solution introduced in
8217359, since this is subsumed by (2). Use phase->is_IterGVN() rather than
can_reshape to check if ConvI2LNode::Ideal() is called within iterative GVN, for
clarity. Add regression tests that cover different shapes and sizes of AddI
subgraphs, implicitly checking (by not timing out) that there is no
combinatorial explosion.
Co-authored-by: Vladimir Ivanov <vlivanov@openjdk.org>
Reviewed-by: vlivanov, kvn
2020-11-11 10:18:36 +00:00
Claes Redestad
6ae5e5b6b7
8221404: C2: Convert RegMask and IndexSet to use uintptr_t
...
Reviewed-by: kvn, thartmann
2020-11-10 16:48:21 +00:00
Jie Fu
a1d4b9f35b
8256009: Remove src/hotspot/share/adlc/Test/i486.ad
...
Reviewed-by: shade, thartmann
2020-11-10 13:49:01 +00:00