[ https://issues.apache.org/jira/browse/HARMONY-3652?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12489382
]
Mikhail Fursov commented on HARMONY-3652:
-----------------------------------------
I found that the problem is not with I8Lowerer but with branch-translation(BTR) pass.
BTR relocates MOV instructions and can break CMP+Jcc pattern.
I8Lowerer does not expect that there are other insts between CMP and Jcc and fails.
The patch fixes the problem in BTR and fixes some critical bugs found in ControlFlowGraph.cpp
revealed by testing of this patch.
> [drlvm][jit][opt] I8Lowerer produces code that does not pass internal verification
> ----------------------------------------------------------------------------------
>
> Key: HARMONY-3652
> URL: https://issues.apache.org/jira/browse/HARMONY-3652
> Project: Harmony
> Issue Type: Bug
> Components: DRLVM
> Reporter: Mikhail Fursov
>
> I8Lowerer produces code that does not pass internal verification.
> public class Test {
>
> public static void main(String[] args) throws Exception {
> System.out.println(new Hello().foo(10).buf);
> }
> String buf ="";
> public Test foo(long l) {
> boolean flag = false;
> if (l >= 20L) {
> flag = true;
> }
> if(flag || l >= 10L) {
> int k = (int)(l / 11L);
> writeDigits(k, flag);
> }
> return this;
> }
> void writeDigits(int i, boolean flag) {
> buf+=i;
> }
> }
> This bug is a blocker for jscience3.3 (http://jscience.org, JSR275) test-suite.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
|