Comments (1)
It looks like there are a pair of System.arraycopy
calls in Test6892265.test()
, and the code after the first call is removed by Value Propagation, as it thinks that an ArrayCopyBNDCHK
operation will fail.
IL before Value Propagation:
n260n istore <auto slot 0>[#361 Auto] [flags 0x3 0x0 ] [ 0x119398100] bci=[-1,413,-] rc=0 vc=35 vn=- li=- udi=- nc=1
n259n iconst 0x20000000 (X!=0 X>=0 ) [ 0x1193980b0] bci=[-1,411,-] rc=4 vc=35 vn=- li=- udi=- nc=0 flg=0x104
n267n treetop [ 0x119398330] bci=[-1,423,-] rc=0 vc=35 vn=- li=- udi=- nc=1
n266n call java/lang/System.arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V[#372 final native static Method] [flags 0x20500 0x0 ] () [ 0x1193982e0] bci=[-1,423,-] rc=1 vc=35 vn=- li=- udi=- nc=5 flg=0x20
n261n aload Test6892265.src2 [I[#365 Static] [flags 0x307 0x0 ] [ 0x119398150] bci=[-1,414,-] rc=1 vc=35 vn=- li=- udi=- nc=0
n262n iconst 0 (X==0 X>=0 X<=0 ) [ 0x1193981a0] bci=[-1,417,-] rc=2 vc=35 vn=- li=- udi=- nc=0 flg=0x302
n263n aload Test6892265.dst2 [I[#366 Static] [flags 0x307 0x0 ] [ 0x1193981f0] bci=[-1,418,-] rc=1 vc=35 vn=- li=- udi=- nc=0
n259n ==>iconst 0x20000000
n265n iconst 1 (X!=0 X>=0 ) [ 0x119398290] bci=[-1,422,-] rc=2 vc=35 vn=- li=- udi=- nc=0 flg=0x104
n274n treetop [ 0x119398560] bci=[-1,435,-] rc=0 vc=35 vn=- li=- udi=- nc=1
n273n call java/lang/System.arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V[#372 final native static Method] [flags 0x20500 0x0 ] () [ 0x119398510] bci=[-1,435,-] rc=1 vc=35 vn=- li=- udi=- nc=5 flg=0x20
n268n aload Test6892265.dst2 [I[#366 Static] [flags 0x307 0x0 ] [ 0x119398380] bci=[-1,426,-] rc=1 vc=35 vn=- li=- udi=- nc=0
n259n ==>iconst 0x20000000
n270n aload Test6892265.src2 [I[#365 Static] [flags 0x307 0x0 ] [ 0x119398420] bci=[-1,430,-] rc=1 vc=35 vn=- li=- udi=- nc=0
n262n ==>iconst 0
n265n ==>iconst 1
n278n treetop [ 0x1193986a0] bci=[-1,442,-] rc=0 vc=35 vn=- li=- udi=- nc=1
n277n icall JITFuzzing/Check.checksum(II)I[#364 static Method] [flags 0x500 0x0 ] [ 0x119398650] bci=[-1,442,-] rc=2 vc=35 vn=- li=- udi=- nc=2
n275n iload Test6892265.CHECKSUM I[#356 Static] [flags 0x303 0x0 ] [ 0x1193985b0] bci=[-1,438,-] rc=1 vc=35 vn=- li=- udi=- nc=0
n259n ==>iconst 0x20000000
n279n istore Test6892265.CHECKSUM I[#356 Static] [flags 0x303 0x0 ] [ 0x1193986f0] bci=[-1,445,-] rc=0 vc=35 vn=- li=- udi=- nc=1
n277n ==>icall
n280n return [ 0x119398740] bci=[-1,448,-] rc=0 vc=35 vn=- li=- udi=- nc=0
n4n BBEnd </block_4> ===== [ 0x1193083a0] bci=[-1,448,-] rc=0 vc=35 vn=- li=- udi=- nc=0
then after Local Value Propagation:
[ 143] 25.5 O^O VALUE PROPAGATION: Changing call call [00000001193982E0] to arraycopy
[ 144] 25.6 O^O VALUE PROPAGATION: Removing rest of block after ArrayCopyBNDCHK [000000011939A4F0]
...
n1n BBStart <block_4> (freq 10000) [ 0x1193082b0] bci=[-1,411,-] rc=0 vc=37 vn=- li=- udi=- nc=0
n260n istore <auto slot 0>[#361 Auto] [flags 0x3 0x0 ] [ 0x119398100] bci=[-1,413,-] rc=0 vc=37 vn=- li=- udi=- nc=1
n259n iconst 0x20000000 (X!=0 X>=0 ) [ 0x1193980b0] bci=[-1,411,-] rc=2 vc=37 vn=- li=- udi=- nc=0 flg=0x104
n369n NULLCHK on n261n [#32] [ 0x11939a310] bci=[-1,414,-] rc=0 vc=37 vn=- li=- udi=- nc=1
n368n arraylength (stride 4) (X>=0 cannotOverflow ) [ 0x11939a2c0] bci=[-1,414,-] rc=2 vc=37 vn=- li=- udi=- nc=1 flg=0x1100
n261n aload Test6892265.src2 [I[#365 Static] [flags 0x307 0x0 ] [ 0x119398150] bci=[-1,414,-] rc=1 vc=37 vn=- li=- udi=- nc=0
n371n NULLCHK on n263n [#32] [ 0x11939a3b0] bci=[-1,418,-] rc=0 vc=37 vn=- li=- udi=- nc=1
n370n arraylength (stride 4) (X>=0 cannotOverflow ) [ 0x11939a360] bci=[-1,418,-] rc=2 vc=37 vn=- li=- udi=- nc=1 flg=0x1100
n263n aload Test6892265.dst2 [I[#366 Static] [flags 0x307 0x0 ] [ 0x1193981f0] bci=[-1,418,-] rc=1 vc=37 vn=- li=- udi=- nc=0
n373n ArrayCopyBNDCHK [#1] [ 0x11939a450] bci=[-1,414,-] rc=0 vc=37 vn=- li=- udi=- nc=2
n372n isub (cannotOverflow ) [ 0x11939a400] bci=[-1,414,-] rc=1 vc=37 vn=- li=- udi=- nc=2 flg=0x1000
n368n ==>arraylength
n265n iconst 1 (X!=0 X>=0 ) [ 0x119398290] bci=[-1,422,-] rc=2 vc=37 vn=- li=- udi=- nc=0 flg=0x104
n262n iconst 0 (X==0 X>=0 X<=0 ) [ 0x1193981a0] bci=[-1,417,-] rc=1 vc=37 vn=- li=- udi=- nc=0 flg=0x302
n375n ArrayCopyBNDCHK [#1] [ 0x11939a4f0] bci=[-1,418,-] rc=0 vc=37 vn=- li=- udi=- nc=2
n374n isub (cannotOverflow ) [ 0x11939a4a0] bci=[-1,418,-] rc=1 vc=37 vn=- li=- udi=- nc=2 flg=0x1000
n370n ==>arraylength
n265n ==>iconst 1
n259n ==>iconst 0x20000000
n376n return [ 0x11939a540] bci=[-1,418,-] rc=0 vc=37 vn=- li=- udi=- nc=0
n4n BBEnd </block_4> ===== [ 0x1193083a0] bci=[-1,448,-] rc=0 vc=36 vn=- li=- udi=- nc=0
I strongly suspect that this is a duplicate of issue #19247.
from openj9.
Related Issues (20)
- AIX builds should set -qarch=pwr7 HOT 2
- obuffer = new byte[minLen];”,minLen = 2147483647,but no throws OutOfMemoryError. HOT 1
- obuffer = new byte[minLen];“,minLen = 2147483647,but no throws OutOfMemoryError. HOT 1
- ” Arrays.fill(newArray, oldCapacity, newArray.length, UNSET);" caused return -9,but other JVMs no this condition. HOT 1
- JDK23 abuild compilation failed due to error: warnings found and -Werror specified in copyright comments HOT 6
- MathLoadTest_autosimd crash Illegal instruction vmState=0x00000000 Compiled_method= HOT 19
- Multiple target patterns error for CMake HOT 7
- CRIU reinitializeForRestore() revisiting HOT 3
- abbs hang Waiting on com/ibm/jtc/test/jltf/threads/pooling/ThreadPool
- cmdLineTester_loopReduction crash Illegal instruction Compiled_method=jit/test/loopReduction/byteMemCpy.test HOT 2
- JdwpAttachTest_1_FAILED com/sun/jdi/JdwpAttachTest.java RuntimeException: ERROR: attach failed but was expected to succeed
- jdk_lang_0_FAILED jdk/lambda/vm/InterfaceAccessFlagsTest.java RuntimeException: IOException encountered during compilation HOT 1
- JDK23 abuild failure jvminit.c:7464: undefined reference to `initializeJFR' HOT 2
- jdk11.0.24+1 requires jtreg version 7.3.1 b1 or higher HOT 2
- ECDHKeyAgreementParamValidation fails in jdk23
- serviceability_jvmti_j9_0_FAILED serviceability/jvmti/vthread/BoundVThreadTest/BoundVThreadTest.java Segmentation error vmState=0x00040000 HOT 2
- JDK23 SharedClasses.SCM01.MultiThreadMultiCL_1_FAILED NumberFormatException: For input string: "-Xdump:system+java:events=throw,filter=java/lang/NullPointerException#java/lang/invoke/BruteArgumentMoverHandle.permuteArguments*" HOT 17
- Consolidate j9vm files to single C++ file HOT 3
- Upgrade minimum acceptable cmake version HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from openj9.