Z peephole: Remove unnecessary L(L)GFR - #7393
Conversation
4f0d814 to
8a85f5f
Compare
|
Passing internal jdk11 sanity.functional, sanity.system, and sanity.openjdk tests: https://hyc-runtimes-jenkins.swg-devops.com/view/OpenJ9%20-%20Personal/job/Pipeline-Build-Test-Personal/23145/ A few failures in internal jdk8 tests, I'm currently investigating to see if they are related: http://vmfarm.rtp.raleigh.ibm.com/build_info.php?build_id=74326 |
|
Rebased and retried the internal jdk8 tests (http://vmfarm.rtp.raleigh.ibm.com/build_info.php?build_id=74679). There were no failures, so I'm taking this PR off of draft. |
|
@r30shah fyi |
|
@r30shah : Please review |
r30shah
left a comment
There was a problem hiding this comment.
I apologize @Spencer-Comin, this fell out of my radar. Just finished the review. Overall looks OK to me, posted some minon concerns I had in review.
A 32 bit load instruction followed by a zero/sign extend instruction can be replaced with an equivalent load and zero/sign extend instruction. Signed-off-by: Spencer Comin <spencer.comin@ibm.com>
869a377 to
abc02df
Compare
|
Jenkins build zos,zlinux |
|
Jenkins build zos,zlinux Previous testing from early August passed, but running again. |
A 32 bit load instruction followed by a zero/sign extend instruction can be replaced with an equivalent load and zero/sign extend instruction.
Here are all the replacements done by this peephole:
LGFR R1,R1LLGFR R1,R1L R1,M1*LGF R1,M1*LLGF R1,M1*LH R1,M1*LGH R1,M1*LLH R1,M1*LLGH R1,M1*LB R1,M1*LGB R1,M1*LLC R1,M1*LLGC R1,M1*XR R1,R1XGR R1,R1XGR R1,R1IILF R1,I1LGFI R1,I1LLILF R1,I1LHI R1,I1LGHI R1,I1LLILF R1,I2**LR R1,R2LGFR R1,R2LLGFR R1,R2LGR R1,R2LGFR R1,R2LLGFR R1,R2*
M1is an arbitrary memory reference**
I2isI1sign extended from 16 to 32 bits