Commit Graph

136 Commits

Author SHA1 Message Date
Emanuel Peter
9057b35033 8306922: IR verification fails because IR dump is chopped up
Reviewed-by: chagedorn, thartmann
2023-06-26 06:11:32 +00:00
Quan Anh Mai
947f14977a 8308444: LoadStoreNode::result_not_used() is too conservative
Reviewed-by: kvn, thartmann
2023-06-15 16:00:18 +00:00
Vladimir Kozlov
0038491abd 8309978: [x64] Fix useless padding
Reviewed-by: chagedorn, thartmann, shade
2023-06-15 15:32:45 +00:00
Roberto Castañeda Lozano
3fa776d66a 8302673: [SuperWord] MaxReduction and MinReduction should vectorize for int
Co-authored-by: Jatin Bhateja <jbhateja@openjdk.org>
Reviewed-by: epeter, kvn
2023-06-05 07:08:33 +00:00
Emanuel Peter
22a9a86be0 8309268: C2: "assert(in_bb(n)) failed: must be" after JDK-8306302
Reviewed-by: rcastanedalo, kvn, thartmann
2023-06-05 06:43:13 +00:00
Jasmine Karthikeyan
fb0b1f0c23 8051725: Improve expansion of Conv2B nodes in the middle-end
Reviewed-by: thartmann, qamai, sviswanathan
2023-05-30 14:11:12 +00:00
Emanuel Peter
beb75e651f 8306302: C2 Superword fix: use VectorMaskCmp and VectorBlend instead of CMoveVF/D
Reviewed-by: fgao, jbhateja
2023-05-24 07:00:27 +00:00
Roberto Castañeda Lozano
1be80a4445 8287087: C2: perform SLP reduction analysis on-demand
Reviewed-by: epeter, jbhateja, thartmann
2023-04-27 09:39:53 +00:00
Roland Westrelin
8ecb5dfa34 8305781: compiler/c2/irTests/TestVectorizationMultiInvar.java failed with "IRViolationException: There were one or multiple IR rule failures."
Reviewed-by: thartmann, kvn
2023-04-18 08:54:55 +00:00
Roland Westrelin
6b2a86a65e 8300257: C2: vectorization fails on some simple Memory Segment loops
Reviewed-by: kvn, thartmann
2023-04-07 12:51:44 +00:00
Fei Gao
dea9db2d0a 8305055: IR check fails on some aarch64 platforms
Reviewed-by: epeter, thartmann
2023-03-31 09:15:24 +00:00
Christian Hagedorn
c466cdf973 8299546: C2: MulLNode::mul_ring() wrongly returns bottom type due to casting errors with large numbers
Reviewed-by: iveresov, kvn, qamai
2023-03-14 14:57:47 +00:00
Jasmine K
8e41bf222f 8303238: Create generalizations for existing LShift ideal transforms
Reviewed-by: redestad, thartmann
2023-03-13 11:10:42 +00:00
Roland Westrelin
dc523a58a6 8300258: C2: vectorization fails on simple ByteBuffer loop
Co-authored-by: Emanuel Peter <epeter@openjdk.org>
Reviewed-by: epeter, kvn
2023-03-09 08:00:24 +00:00
Tobias Hartmann
94eda53d98 8201516: DebugNonSafepoints generates incorrect information
Reviewed-by: kvn, roland
2023-03-07 06:59:23 +00:00
Roland Westrelin
6b07243f56 8301630: C2: 8297933 broke type speculation in some cases
Reviewed-by: chagedorn, thartmann
2023-03-01 09:36:22 +00:00
Roland Westrelin
2a8ae2ff1c 8300256: C2: vectorization is sometimes skipped on loops where it would succeed
Reviewed-by: kvn, thartmann
2023-02-01 09:48:54 +00:00
Damon Fenacci
e1893976d5 8296403: [TESTBUG] IR test runner methods in TestLongRangeChecks.java invoke wrong test methods
Reviewed-by: thartmann, chagedorn, jiefu
2023-01-20 08:16:28 +00:00
Emanuel Peter
6fea233e22 8299960: Speed up test/hotspot/jtreg/compiler/c2/irTests/TestVectorizeURShiftSubword.java
Reviewed-by: thartmann, chagedorn, fgao
2023-01-16 09:17:31 +00:00
Roland Westrelin
88bfe4d3bf 8297724: Loop strip mining prevents some empty loops from being eliminated
Reviewed-by: kvn, thartmann
2022-12-21 14:46:57 +00:00
Gui Cao
33d955ad6e 8298345: Fix another two C2 IR matching tests for RISC-V
Reviewed-by: fyang, dzhang, fjiang
2022-12-09 12:43:47 +00:00
Fei Gao
4458de95f8 8297172: Fix some issues of auto-vectorization of Long.bitCount/numberOfTrailingZeros/numberOfLeadingZeros()
Reviewed-by: kvn, thartmann
2022-12-06 09:35:27 +00:00
Aleksey Shipilev
eab0ada3a1 8296545: C2 Blackholes should allow load optimizations
Reviewed-by: kvn, vlivanov
2022-12-05 12:00:30 +00:00
Feilong Jiang
227364d592 8297953: Fix several C2 IR matching tests for RISC-V
Reviewed-by: fyang, chagedorn
2022-12-02 12:48:42 +00:00
Zhiqiang Zang
fd910f77bc 8297384: Add IR tests for existing idealizations of arithmetic nodes
Reviewed-by: chagedorn
2022-11-25 08:17:44 +00:00
Christian Hagedorn
f829b5a73f 8280378: [IR Framework] Support IR matching for different compile phases
Reviewed-by: kvn, rcastanedalo
2022-11-01 15:41:09 +00:00
Jie Fu
754bd53137 8296030: compiler/c2/irTests/TestVectorizeTypeConversion.java fails with release VMs after JDK-8291781
Reviewed-by: chagedorn
2022-10-28 12:46:32 +00:00
SuperCoder79
cf5546b3ac 8291336: Add ideal rule to convert floating point multiply by 2 into addition
Reviewed-by: qamai, thartmann, chagedorn
2022-10-28 10:04:38 +00:00
Fei Gao
4b89fce083 8291781: assert(!is_visited) failed: visit only once with -XX:+SuperWordRTDepCheck
Reviewed-by: thartmann
2022-10-28 07:27:02 +00:00
Igor Veresov
58a7141a0d 8295066: Folding of loads is broken in C2 after JDK-8242115
Reviewed-by: kvn, thartmann
2022-10-26 20:45:26 +00:00
Fei Gao
490fcd0c25 8293833: Error mixing types with -XX:+UseCMoveUnconditionally -XX:+UseVectorCmov
Reviewed-by: chagedorn, kvn
2022-10-18 02:00:53 +00:00
Zhiqiang Zang
5dd851d872 8281453: New optimization: convert ~x into -1-x when ~x is used in an arithmetic expression
Reviewed-by: kvn
2022-10-06 22:15:20 +00:00
Fei Gao
aa48705ddd 8289422: Fix and re-enable vector conditional move
Reviewed-by: thartmann, kvn
2022-09-27 01:24:17 +00:00
Fei Gao
ec2629c052 8275275: AArch64: Fix performance regression after auto-vectorization on NEON
Reviewed-by: aph, xgong
2022-09-13 03:13:38 +00:00
Roland Westrelin
77e21c57ce 8290529: C2: assert(BoolTest(btest).is_canonical()) failure
Reviewed-by: kvn, thartmann
2022-09-02 13:35:11 +00:00
Bhavana Kilambi
6b2184e8d1 8290248: Implement MaxINode::Ideal transformation
Reviewed-by: kvn, thartmann
2022-08-05 01:51:34 +00:00
Aleksey Shipilev
dc74ea21f1 8291048: x86: compiler/c2/irTests/TestAutoVectorization2DArray.java fails with lower SSE
Reviewed-by: kvn, jiefu
2022-07-27 16:58:49 +00:00
Jie Fu
4a4d8ed83b 8289801: [IR Framework] Add flags to whitelist which can be used to simulate a specific machine setup like UseAVX
Reviewed-by: kvn, xgong, thartmann
2022-07-18 22:49:17 +00:00
Coleen Phillimore
e7795851d2 8271707: migrate tests to use jdk.test.whitebox.WhiteBox
Reviewed-by: lmesnik, dholmes
2022-07-08 15:55:14 +00:00
Roland Westrelin
cbaf6e807e 8288022: c2: Transform (CastLL (AddL into (AddL (CastLL when possible
Reviewed-by: thartmann, kvn
2022-07-06 11:36:12 +00:00
Xin Liu
31e50f2c76 8286104: use aggressive liveness for unstable_if traps
Reviewed-by: kvn, thartmann
2022-06-30 03:59:42 +00:00
Jesper Wilhelmsson
7039c6616a Merge 2022-06-20 19:38:49 +00:00
Emanuel Peter
302a6c068d 8287801: Fix test-bugs related to stress flags
Reviewed-by: chagedorn, thartmann
2022-06-20 14:29:06 +00:00
Christian Hagedorn
ed714af854 8288564: C2: LShiftLNode::Ideal produces wrong result after JDK-8278114
Reviewed-by: kvn, iveresov, thartmann
2022-06-20 06:47:40 +00:00
Fei Gao
a1795901ee 8283091: Support type conversion between different data sizes in SLP
Reviewed-by: kvn, sviswanathan
2022-06-16 02:40:59 +00:00
Roland Westrelin
dae4c493e4 8286197: C2: Optimize MemorySegment shape in int loop
Reviewed-by: kvn, thartmann
2022-06-10 08:17:26 +00:00
Christian Hagedorn
b647a1259b 8286940: [IR Framework] Allow IR tests to build and use Whitebox without -DSkipWhiteBoxInstall=true
Reviewed-by: kvn, thartmann
2022-06-07 08:37:12 +00:00
Fei Gao
24fe8ad74c 8283307: Vectorize unsigned shift right on signed subword types
Reviewed-by: jiefu, pli, sviswanathan, kvn
2022-06-06 02:02:10 +00:00
Quan Anh Mai
c1db70d827 8285973: x86_64: Improve fp comparison and cmove for eq/ne
Reviewed-by: kvn, sviswanathan
2022-05-24 00:15:54 +00:00
Aleksey Shipilev
9c2548414c 8286339: compiler/c2/irTests/TestEnumFinalFold.java fails if Enum/String methods are not inlined
Reviewed-by: thartmann, jiefu
2022-05-11 05:29:11 +00:00
Aleksey Shipilev
080f3c5d8a 8286190: Add test to verify constant folding for Enum fields
Reviewed-by: kvn, thartmann
2022-05-06 16:32:02 +00:00
Roland Westrelin
fa1ca98fff 8281429: PhiNode::Value() is too conservative for tripcount of CountedLoop
Reviewed-by: thartmann, kvn
2022-05-06 08:24:33 +00:00
Jie Fu
1f9f8738f3 8285980: Several tests in compiler/c2/irTests miss @requires vm.compiler2.enabled
Reviewed-by: thartmann
2022-05-02 10:38:31 +00:00
Fei Gao
df7fba1cda 8284981: Support the vectorization of some counting-down loops in SLP
Reviewed-by: roland, kvn
2022-04-30 07:39:16 +00:00
Roland Westrelin
e98ac23553 8285793: C2: optimization of mask checks in counted loops fail in the presence of cast nodes
Reviewed-by: kvn, thartmann
2022-04-29 11:19:27 +00:00
Aleksey Shipilev
5629c7555f 8284848: C2: Compiler blackhole arguments should be treated as globally escaping
Reviewed-by: kvn, thartmann
2022-04-28 08:32:44 +00:00
Roland Westrelin
32593df392 8279888: Local variable independently used by multiple loops can interfere with loop optimizations
Co-authored-by: Claes Redestad <redestad@openjdk.org>
Reviewed-by: thartmann, kvn
2022-04-25 09:30:00 +00:00
Aleksey Shipilev
ce8db2c403 8285394: Compiler blackholes can be eliminated due to stale ciMethod::intrinsic_id()
Reviewed-by: kvn, dlong
2022-04-22 17:11:34 +00:00
Zhiqiang Zang
c7755b815d 8283094: Add Ideal transformation: x + (con - y) -> (x - y) + con
Reviewed-by: kvn, thartmann
2022-04-13 16:01:10 +00:00
Pengfei Li
741be46138 8183390: Fix and re-enable post loop vectorization
Reviewed-by: roland, thartmann, kvn
2022-04-05 23:50:13 +00:00
Roland Westrelin
14c20bc0e0 8283187: C2: loop candidate for superword not always unrolled fully if superword fails
Reviewed-by: thartmann, chagedorn
2022-03-24 12:53:44 +00:00
Roland Westrelin
85628a871d 8282592: C2: assert(false) failed: graph should be schedulable
Reviewed-by: chagedorn, thartmann
2022-03-22 10:34:33 +00:00
Roland Westrelin
ea9eeea8ff 8281322: C2: always construct strip mined loop initially (even if strip mining is disabled)
Reviewed-by: chagedorn, thartmann
2022-03-14 13:59:13 +00:00
Ahmed Muhsin
5f3d4032f3 8272735: Add missing SubL node transformations
Reviewed-by: thartmann, chagedorn
2022-03-14 09:05:53 +00:00
Roland Westrelin
ef266d77b6 8278296: Generalize long range check transformation
Reviewed-by: jrose, thartmann
2022-03-07 16:26:19 +00:00
Roland Westrelin
2c5d266f9f 8282045: When loop strip mining fails, safepoints are removed from loop anyway
Reviewed-by: thartmann, chagedorn
2022-03-01 14:43:05 +00:00
John Tortugo
efd3967b54 8267265: Use new IR Test Framework to create tests for C2 Ideal transformations
Reviewed-by: chagedorn
2022-02-28 10:01:24 +00:00
Roland Westrelin
69e390a0e8 8262721: Add Tests to verify single iteration loops are properly optimized
Reviewed-by: neliasso, chagedorn, kvn
2022-02-09 10:18:27 +00:00
Roland Westrelin
19f877981e 8278784: C2: Refactor PhaseIdealLoop::remix_address_expressions() so it operates on longs
Reviewed-by: chagedorn, thartmann
2022-01-21 07:32:08 +00:00
Zhiqiang Zang
0bf95a1a73 8279607: Existing optimization "~x+1" -> "-x" can be generalized to "~x+c" -> "(c-1)-x".
Reviewed-by: thartmann, kvn
2022-01-20 07:38:04 +00:00
Aleksey Shipilev
645b38d586 8280089: compiler/c2/irTests/TestIRAbs.java fails on some arches
Reviewed-by: jiefu, thartmann, chagedorn, fgao
2022-01-18 12:13:44 +00:00
Fei Gao
c6196662b8 8276673: Optimize abs operations in C2 compiler
Reviewed-by: thartmann, jiefu
2022-01-17 02:16:45 +00:00
Roland Westrelin
8d1a1e83f4 8278228: C2: Improve identical back-to-back if elimination
Reviewed-by: chagedorn, kvn
2022-01-10 07:52:18 +00:00
Jie Fu
6a42fbaf9b 8279258: Auto-vectorization enhancement for two-dimensional array operations
Reviewed-by: neliasso, kvn
2022-01-07 00:04:51 +00:00
Zhiqiang Zang
f326305396 8278114: New addnode ideal optimization: converting "x + x" into "x << 1"
Reviewed-by: kvn, redestad
2022-01-05 00:38:59 +00:00
Roland Westrelin
06206c7199 8278949: Cleanups for 8277850
Co-authored-by: John R Rose <jrose@openjdk.org>
Reviewed-by: kvn, jrose
2021-12-20 10:00:14 +00:00
Zhiqiang Zang
f6fbb5a80c 8278471: Remove unreached rules in AddNode::IdealIL
Reviewed-by: jiefu, kvn
2021-12-16 03:57:29 +00:00
Vladimir Kozlov
a1dfe57249 8276455: C2: iterative EA
Reviewed-by: iveresov, neliasso, roland
2021-12-14 19:24:13 +00:00
Roland Westrelin
b3faecf739 8276116: C2: optimize long range checks in int counted loops
Reviewed-by: kvn
2021-12-08 21:33:33 +00:00
Roland Westrelin
8af3b27ce9 8277850: C2: optimize mask checks in counted loops
Reviewed-by: kvn, thartmann
2021-12-08 16:39:24 +00:00
MeryKitty
f3eb5014aa 8276162: Optimise unsigned comparison pattern
Reviewed-by: thartmann, kvn
2021-11-16 14:09:53 +00:00
Nick Gasson
3934fe54b4 8275847: Scheduling fails with "too many D-U pinch points" on small method
Reviewed-by: thartmann, kvn
2021-11-08 06:40:49 +00:00
sunguoyun
87b926ebb7 8275086: compiler/c2/irTests/TestPostParseCallDevirtualization.java fails when compiler1 is disabled
Reviewed-by: iveresov
2021-11-03 05:51:18 +00:00
Roland Westrelin
82f4aacb42 8259609: C2: optimize long range checks in long counted loops
Co-authored-by: John R Rose <jrose@openjdk.org>
Reviewed-by: thartmann, jrose
2021-10-26 15:53:37 +00:00
Christian Hagedorn
3953e0774c 8271459: C2: Missing NegativeArraySizeException when creating StringBuilder with negative capacity
Reviewed-by: roland, thartmann, neliasso
2021-10-05 07:02:06 +00:00
Tobias Hartmann
4866eaa997 8273409: Receiver type narrowed by CCP does not always trigger post-parse call devirtualization
Reviewed-by: vlivanov, neliasso
2021-09-09 13:44:05 +00:00