Code Monkey home page Code Monkey logo

Comments (3)

hzongaro avatar hzongaro commented on June 7, 2024 1

I took a quick look at this failure, and I believe it's a duplicate of issue #18777. @a7ehuo, may I ask you to confirm that?

from openj9.

pshipton avatar pshipton commented on June 7, 2024

@hzongaro fyi

from openj9.

a7ehuo avatar a7ehuo commented on June 7, 2024

the optimization corresponding to LastOptIndex is partialRedundancyElimination, which is similar to #18777, but it is not the same LastOptIndex.

Different method compiled at different optLevel can have different optimization index.

I'm not able to reproduce this issue locally but I took a look at jit.log.478608.14881.20240306.164801.478608.log. After deadTreeElimination, the volatile load of the field Test.b n42n is buried under a store node: lstorei n47n. This looks the same issue as #18777: there are two side effects under one treetop, which could potentially cause confusion/incorrectness in other passes of the optimizations.

n32n      BBStart <block_6> (freq 5534)                                                       [0x7effd4dbe2d0] bci=[-1,19,20] rc=0 vc=115 vn=- li=-1 udi=- nc=0
n43n      treetop                                                                             [0x7effd4dbe640] bci=[-1,30,20] rc=0 vc=115 vn=- li=-1 udi=- nc=1
n40n        l2f                                                                               [0x7effd4dbe550] bci=[-1,28,20] rc=2 vc=116 vn=- li=- udi=- nc=1
n39n          lsub                                                                            [0x7effd4dbe500] bci=[-1,27,20] rc=1 vc=116 vn=- li=- udi=- nc=2
n36n            lconst 5 (highWordZero X!=0 X>=0 )                                            [0x7effd4dbe410] bci=[-1,20,20] rc=1 vc=116 vn=- li=- udi=- nc=0 flg=0x4104
n38n            lloadi  Test.g J[#428  Shadow +8] [flags 0x604 0x0 ] (cannotOverflow )        [0x7effd4dbe4b0] bci=[-1,24,20] rc=1 vc=116 vn=- li=- udi=- nc=1 flg=0x1000
n37n              aload  <'this' parm LTest;>[#422  Parm] [flags 0x40000107 0x0 ] (X!=0 X>=0 )  [0x7effd4dbe460] bci=[-1,23,20] rc=1 vc=116 vn=- li=- udi=- nc=0 flg=0x104
n44n      treetop                                                                             [0x7effd4dbe690] bci=[-1,30,20] rc=0 vc=117 vn=- li=-1 udi=- nc=1
n42n        floadi  Test.b F[#429  volatile Shadow +28] [flags 0x2605 0x0 ]                   [0x7effd4dbe5f0] bci=[-1,30,20] rc=2 vc=117 vn=- li=- udi=- nc=1
n41n          aload  <'this' parm LTest;>[#422  Parm] [flags 0x40000107 0x0 ] (X!=0 X>=0 )    [0x7effd4dbe5a0] bci=[-1,29,20] rc=1 vc=116 vn=- li=- udi=- nc=0 flg=0x104
n304n     treetop                                                                             [0x7effd4e3dec0] bci=[-1,33,20] rc=0 vc=0 vn=- li=- udi=- nc=1
n45n        fadd                                                                              [0x7effd4dbe6e0] bci=[-1,33,20] rc=2 vc=116 vn=- li=1 udi=- nc=2
n40n          ==>l2f
n42n          ==>floadi
n47n      lstorei  Test.g J[#428  Shadow +8] [flags 0x604 0x0 ]                               [0x7effd4dbe780] bci=[-1,35,20] rc=0 vc=115 vn=- li=-1 udi=- nc=2
n35n        aload  <'this' parm LTest;>[#422  Parm] [flags 0x40000107 0x0 ] (X!=0 X>=0 )      [0x7effd4dbe3c0] bci=[-1,19,20] rc=1 vc=115 vn=- li=- udi=- nc=0 flg=0x104
n46n        f2l                                                                               [0x7effd4dbe730] bci=[-1,34,20] rc=1 vc=115 vn=- li=- udi=- nc=1
n45n          ==>fadd
...
...
<optimization id=34 name=deadTreesElimination method=Test.l()V>
Performing 34: deadTreesElimination
         O^O DEAD TREES ELIMINATION: it is safe to remove volatile field load tree n42n
...
...
n32n      BBStart <block_6> (freq 5534)                                                       [0x7effd4dbe2d0] bci=[-1,19,20] rc=0 vc=200 vn=- li=-1 udi=- nc=0
n43n      treetop                                                                             [0x7effd4dbe640] bci=[-1,30,20] rc=0 vc=200 vn=- li=-1 udi=- nc=1
n40n        l2f                                                                               [0x7effd4dbe550] bci=[-1,28,20] rc=2 vc=200 vn=- li=- udi=- nc=1
n39n          lsub                                                                            [0x7effd4dbe500] bci=[-1,27,20] rc=1 vc=200 vn=- li=- udi=- nc=2
n36n            lconst 5 (highWordZero X!=0 X>=0 )                                            [0x7effd4dbe410] bci=[-1,20,20] rc=1 vc=200 vn=- li=- udi=- nc=0 flg=0x4104
n38n            lloadi  Test.g J[#428  Shadow +8] [flags 0x604 0x0 ] (cannotOverflow )        [0x7effd4dbe4b0] bci=[-1,24,20] rc=1 vc=200 vn=- li=- udi=- nc=1 flg=0x1000
n37n              aload  <'this' parm LTest;>[#422  Parm] [flags 0x40000107 0x0 ] (X!=0 X>=0 )  [0x7effd4dbe460] bci=[-1,23,20] rc=1 vc=200 vn=- li=- udi=- nc=0 flg=0x104
n47n      lstorei  Test.g J[#428  Shadow +8] [flags 0x604 0x0 ]                               [0x7effd4dbe780] bci=[-1,35,20] rc=0 vc=200 vn=- li=-1 udi=- nc=2
n35n        aload  <'this' parm LTest;>[#422  Parm] [flags 0x40000107 0x0 ] (X!=0 X>=0 )      [0x7effd4dbe3c0] bci=[-1,19,20] rc=1 vc=200 vn=- li=- udi=- nc=0 flg=0x104
n46n        f2l                                                                               [0x7effd4dbe730] bci=[-1,34,20] rc=1 vc=200 vn=- li=- udi=- nc=1
n45n          fadd                                                                            [0x7effd4dbe6e0] bci=[-1,33,20] rc=1 vc=200 vn=- li=- udi=- nc=2
n40n            ==>l2f
n42n            floadi  Test.b F[#429  volatile Shadow +28] [flags 0x2605 0x0 ]               [0x7effd4dbe5f0] bci=[-1,30,20] rc=1 vc=200 vn=- li=- udi=- nc=1
n41n              aload  <'this' parm LTest;>[#422  Parm] [flags 0x40000107 0x0 ] (X!=0 X>=0 )  [0x7effd4dbe5a0] bci=[-1,29,20] rc=1 vc=200 vn=- li=- udi=- nc=0 flg=0x104

from openj9.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.