You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Egor Pasko (JIRA)" <ji...@apache.org> on 2007/07/16 23:16:04 UTC

[jira] Created: (HARMONY-4476) [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats

[drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats
--------------------------------------------------------------------------------------------------------------------------------------------------------

                 Key: HARMONY-4476
                 URL: https://issues.apache.org/jira/browse/HARMONY-4476
             Project: Harmony
          Issue Type: Improvement
          Components: DRLVM
         Environment: all
            Reporter: Egor Pasko


Creating two Inequality Graphs makes it difficult to make sure the graph looks like the right one. This issue proposes to create two-state InequalityGraph. One state shall represent the upper-bound problem, the other -- lower-bound. Constraints arising from statements like "a=b", "a=b+const" are the same in both states of the graph, whereas constraints arising from statements like "if (a < b)" are different (basically, the edges change direction to the opposite and negate their length)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Assigned: (HARMONY-4476) [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats

Posted by "Egor Pasko (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-4476?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Egor Pasko reassigned HARMONY-4476:
-----------------------------------

    Assignee: Egor Pasko

> [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats
> --------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4476
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4476
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: all
>            Reporter: Egor Pasko
>            Assignee: Egor Pasko
>         Attachments: 0001-Two-state-Inequality-Graph-with-ABCD-Stats-option.txt, 0002-uint32-ids-for-IOpndProxy.txt, igraph.png
>
>
> Creating two Inequality Graphs makes it difficult to make sure the graph looks like the right one. This issue proposes to create two-state InequalityGraph. One state shall represent the upper-bound problem, the other -- lower-bound. Constraints arising from statements like "a=b", "a=b+const" are the same in both states of the graph, whereas constraints arising from statements like "if (a < b)" are different (basically, the edges change direction to the opposite and negate their length)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HARMONY-4476) [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats

Posted by "Egor Pasko (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-4476?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Egor Pasko updated HARMONY-4476:
--------------------------------

    Attachment: igraph.png

Inequality Graph printed to png via "dot -Tpng". Shows both upper- and lower- bound problems on the same picture. blue=upper, red=lower, black=both

> [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats
> --------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4476
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4476
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: all
>            Reporter: Egor Pasko
>         Attachments: 0001-Two-state-Inequality-Graph-with-ABCD-Stats-option.txt, igraph.png
>
>
> Creating two Inequality Graphs makes it difficult to make sure the graph looks like the right one. This issue proposes to create two-state InequalityGraph. One state shall represent the upper-bound problem, the other -- lower-bound. Constraints arising from statements like "a=b", "a=b+const" are the same in both states of the graph, whereas constraints arising from statements like "if (a < b)" are different (basically, the edges change direction to the opposite and negate their length)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HARMONY-4476) [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats

Posted by "Egor Pasko (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HARMONY-4476?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12513055 ] 

Egor Pasko commented on HARMONY-4476:
-------------------------------------

some statistics for DaCapo hlsqldb:
all methods:
-Xem:server_static 157 out of 1884 checks eliminated (8%)

hottest methods:
-Xem:server 10 out of 103 checks eliminated (10%)

Though, the original paper claims that about 45% of checks are eliminated on the specJVM benchmark (AFAIR), (but the paper does not take integer overflows into account)

I believe, our numbers can be improved somewhat. (ldfield thread privatization ("hvn"), "peel", "loop versioning")

> [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats
> --------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4476
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4476
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: all
>            Reporter: Egor Pasko
>         Attachments: 0001-Two-state-Inequality-Graph-with-ABCD-Stats-option.txt, igraph.png
>
>
> Creating two Inequality Graphs makes it difficult to make sure the graph looks like the right one. This issue proposes to create two-state InequalityGraph. One state shall represent the upper-bound problem, the other -- lower-bound. Constraints arising from statements like "a=b", "a=b+const" are the same in both states of the graph, whereas constraints arising from statements like "if (a < b)" are different (basically, the edges change direction to the opposite and negate their length)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HARMONY-4476) [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats

Posted by "Egor Pasko (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HARMONY-4476?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12513615 ] 

Egor Pasko commented on HARMONY-4476:
-------------------------------------

Pavel, I am willing to fix it according to your remarks

> [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats
> --------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4476
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4476
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: all
>            Reporter: Egor Pasko
>         Attachments: 0001-Two-state-Inequality-Graph-with-ABCD-Stats-option.txt, igraph.png
>
>
> Creating two Inequality Graphs makes it difficult to make sure the graph looks like the right one. This issue proposes to create two-state InequalityGraph. One state shall represent the upper-bound problem, the other -- lower-bound. Constraints arising from statements like "a=b", "a=b+const" are the same in both states of the graph, whereas constraints arising from statements like "if (a < b)" are different (basically, the edges change direction to the opposite and negate their length)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HARMONY-4476) [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats

Posted by "Mikhail Fursov (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HARMONY-4476?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12514598 ] 

Mikhail Fursov commented on HARMONY-4476:
-----------------------------------------

"BTW, what do I need to do to assign an issue to myself?"
Click "Assign this issue (to me)" link?


> [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats
> --------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4476
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4476
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: all
>            Reporter: Egor Pasko
>         Attachments: 0001-Two-state-Inequality-Graph-with-ABCD-Stats-option.txt, 0002-uint32-ids-for-IOpndProxy.txt, igraph.png
>
>
> Creating two Inequality Graphs makes it difficult to make sure the graph looks like the right one. This issue proposes to create two-state InequalityGraph. One state shall represent the upper-bound problem, the other -- lower-bound. Constraints arising from statements like "a=b", "a=b+const" are the same in both states of the graph, whereas constraints arising from statements like "if (a < b)" are different (basically, the edges change direction to the opposite and negate their length)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HARMONY-4476) [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats

Posted by "Egor Pasko (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HARMONY-4476?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12513052 ] 

Egor Pasko commented on HARMONY-4476:
-------------------------------------

the attached graph is NOT generated for BidirectionalBubbleSort (as one might guess from the class name), it is for the following code:
  void sort(int a[]) throws Exception {
    int j;
    int limit = a.length;
    int st = -1;
    while (st < limit) {
      st++;
      limit--;
      for (j = st; j < limit; j++) {
          System.out.println(a[j + 1]);
      }
    }
  }

And the graph is basically given to show how beautiful it is now :)

> [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats
> --------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4476
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4476
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: all
>            Reporter: Egor Pasko
>         Attachments: 0001-Two-state-Inequality-Graph-with-ABCD-Stats-option.txt, igraph.png
>
>
> Creating two Inequality Graphs makes it difficult to make sure the graph looks like the right one. This issue proposes to create two-state InequalityGraph. One state shall represent the upper-bound problem, the other -- lower-bound. Constraints arising from statements like "a=b", "a=b+const" are the same in both states of the graph, whereas constraints arising from statements like "if (a < b)" are different (basically, the edges change direction to the opposite and negate their length)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HARMONY-4476) [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats

Posted by "Egor Pasko (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-4476?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Egor Pasko updated HARMONY-4476:
--------------------------------

    Attachment: 0002-uint32-ids-for-IOpndProxy.txt

uint64 -> uint32, cannot even remember, why I wrote them as uint64..
comment fixed as well

both patches in the queue need to be committed

> [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats
> --------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4476
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4476
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: all
>            Reporter: Egor Pasko
>         Attachments: 0001-Two-state-Inequality-Graph-with-ABCD-Stats-option.txt, 0002-uint32-ids-for-IOpndProxy.txt, igraph.png
>
>
> Creating two Inequality Graphs makes it difficult to make sure the graph looks like the right one. This issue proposes to create two-state InequalityGraph. One state shall represent the upper-bound problem, the other -- lower-bound. Constraints arising from statements like "a=b", "a=b+const" are the same in both states of the graph, whereas constraints arising from statements like "if (a < b)" are different (basically, the edges change direction to the opposite and negate their length)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HARMONY-4476) [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats

Posted by "Egor Pasko (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HARMONY-4476?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12514865 ] 

Egor Pasko commented on HARMONY-4476:
-------------------------------------

a-ha, so, there should be "Assign this issue" link! So, I need to find someone who can enable this link for me
thanks :)

> [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats
> --------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4476
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4476
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: all
>            Reporter: Egor Pasko
>         Attachments: 0001-Two-state-Inequality-Graph-with-ABCD-Stats-option.txt, 0002-uint32-ids-for-IOpndProxy.txt, igraph.png
>
>
> Creating two Inequality Graphs makes it difficult to make sure the graph looks like the right one. This issue proposes to create two-state InequalityGraph. One state shall represent the upper-bound problem, the other -- lower-bound. Constraints arising from statements like "a=b", "a=b+const" are the same in both states of the graph, whereas constraints arising from statements like "if (a < b)" are different (basically, the edges change direction to the opposite and negate their length)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HARMONY-4476) [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats

Posted by "Egor Pasko (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HARMONY-4476?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12514565 ] 

Egor Pasko commented on HARMONY-4476:
-------------------------------------

BTW, what do I need to do to assign an issue to myself?

> [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats
> --------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4476
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4476
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: all
>            Reporter: Egor Pasko
>         Attachments: 0001-Two-state-Inequality-Graph-with-ABCD-Stats-option.txt, 0002-uint32-ids-for-IOpndProxy.txt, igraph.png
>
>
> Creating two Inequality Graphs makes it difficult to make sure the graph looks like the right one. This issue proposes to create two-state InequalityGraph. One state shall represent the upper-bound problem, the other -- lower-bound. Constraints arising from statements like "a=b", "a=b+const" are the same in both states of the graph, whereas constraints arising from statements like "if (a < b)" are different (basically, the edges change direction to the opposite and negate their length)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HARMONY-4476) [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats

Posted by "Egor Pasko (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HARMONY-4476?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12513056 ] 

Egor Pasko commented on HARMONY-4476:
-------------------------------------

PS: now I am much more confident that ABCD works in the way it is supposed to.

> [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats
> --------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4476
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4476
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: all
>            Reporter: Egor Pasko
>         Attachments: 0001-Two-state-Inequality-Graph-with-ABCD-Stats-option.txt, igraph.png
>
>
> Creating two Inequality Graphs makes it difficult to make sure the graph looks like the right one. This issue proposes to create two-state InequalityGraph. One state shall represent the upper-bound problem, the other -- lower-bound. Constraints arising from statements like "a=b", "a=b+const" are the same in both states of the graph, whereas constraints arising from statements like "if (a < b)" are different (basically, the edges change direction to the opposite and negate their length)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HARMONY-4476) [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats

Posted by "Pavel Ozhdikhin (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HARMONY-4476?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12513434 ] 

Pavel Ozhdikhin commented on HARMONY-4476:
------------------------------------------

reg.test passed except 2 failures which failed today on CC runs as well. So the check on win32 is clean.


> [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats
> --------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4476
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4476
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: all
>            Reporter: Egor Pasko
>         Attachments: 0001-Two-state-Inequality-Graph-with-ABCD-Stats-option.txt, igraph.png
>
>
> Creating two Inequality Graphs makes it difficult to make sure the graph looks like the right one. This issue proposes to create two-state InequalityGraph. One state shall represent the upper-bound problem, the other -- lower-bound. Constraints arising from statements like "a=b", "a=b+const" are the same in both states of the graph, whereas constraints arising from statements like "if (a < b)" are different (basically, the edges change direction to the opposite and negate their length)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HARMONY-4476) [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats

Posted by "Pavel Ozhdikhin (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HARMONY-4476?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12513425 ] 

Pavel Ozhdikhin commented on HARMONY-4476:
------------------------------------------

"Build test" passed on Win32 (DRLVM debug build), now running VM regression tests...

> [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats
> --------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4476
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4476
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: all
>            Reporter: Egor Pasko
>         Attachments: 0001-Two-state-Inequality-Graph-with-ABCD-Stats-option.txt, igraph.png
>
>
> Creating two Inequality Graphs makes it difficult to make sure the graph looks like the right one. This issue proposes to create two-state InequalityGraph. One state shall represent the upper-bound problem, the other -- lower-bound. Constraints arising from statements like "a=b", "a=b+const" are the same in both states of the graph, whereas constraints arising from statements like "if (a < b)" are different (basically, the edges change direction to the opposite and negate their length)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (HARMONY-4476) [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats

Posted by "Egor Pasko (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-4476?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Egor Pasko resolved HARMONY-4476.
---------------------------------

    Resolution: Fixed

committed at r565011

> [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats
> --------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4476
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4476
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: all
>            Reporter: Egor Pasko
>            Assignee: Egor Pasko
>         Attachments: 0001-Two-state-Inequality-Graph-with-ABCD-Stats-option.txt, 0002-uint32-ids-for-IOpndProxy.txt, igraph.png
>
>
> Creating two Inequality Graphs makes it difficult to make sure the graph looks like the right one. This issue proposes to create two-state InequalityGraph. One state shall represent the upper-bound problem, the other -- lower-bound. Constraints arising from statements like "a=b", "a=b+const" are the same in both states of the graph, whereas constraints arising from statements like "if (a < b)" are different (basically, the edges change direction to the opposite and negate their length)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HARMONY-4476) [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats

Posted by "Egor Pasko (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HARMONY-4476?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12513509 ] 

Egor Pasko commented on HARMONY-4476:
-------------------------------------

I wrote the script for analysis:

echo checks:
cat $1 | awk '{print $8}'  | perl -e 'BEGIN{$s=0;} while ($x = <>) { $s += $x; } print "$s\n";'

echo removed:
cat $1 | awk '{print $10}' | perl -e 'BEGIN{$s=0;} while ($x = <>) { $s += $x; } print "$s\n";'

> [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats
> --------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4476
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4476
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: all
>            Reporter: Egor Pasko
>         Attachments: 0001-Two-state-Inequality-Graph-with-ABCD-Stats-option.txt, igraph.png
>
>
> Creating two Inequality Graphs makes it difficult to make sure the graph looks like the right one. This issue proposes to create two-state InequalityGraph. One state shall represent the upper-bound problem, the other -- lower-bound. Constraints arising from statements like "a=b", "a=b+const" are the same in both states of the graph, whereas constraints arising from statements like "if (a < b)" are different (basically, the edges change direction to the opposite and negate their length)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Closed: (HARMONY-4476) [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats

Posted by "Egor Pasko (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-4476?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Egor Pasko closed HARMONY-4476.
-------------------------------


> [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats
> --------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4476
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4476
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: all
>            Reporter: Egor Pasko
>            Assignee: Egor Pasko
>         Attachments: 0001-Two-state-Inequality-Graph-with-ABCD-Stats-option.txt, 0002-uint32-ids-for-IOpndProxy.txt, igraph.png
>
>
> Creating two Inequality Graphs makes it difficult to make sure the graph looks like the right one. This issue proposes to create two-state InequalityGraph. One state shall represent the upper-bound problem, the other -- lower-bound. Constraints arising from statements like "a=b", "a=b+const" are the same in both states of the graph, whereas constraints arising from statements like "if (a < b)" are different (basically, the edges change direction to the opposite and negate their length)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (HARMONY-4476) [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats

Posted by "Egor Pasko (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HARMONY-4476?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Egor Pasko updated HARMONY-4476:
--------------------------------

    Attachment: 0001-Two-state-Inequality-Graph-with-ABCD-Stats-option.txt

the patch attached

also implemented option: -XX:jit.arg.dump_abcd_stats=true that dumps ABCD stats (total vs. eliminated) to "bounds_checks.log" file.

amount of checks removed: is the same (tested on DaCapo hsqldb, the only benchmark I could run without problems)
tests from HARMONY-2141,  HARMONY-2144, HARMONY-2147 pass as previously

the code is more readable, adds all PI instructions first (to both states of the graph) then marks upper- and lower- redundant checks using this graph. The dot file dumped for the graph depicts upper-only edges in blue color and lower-only in red. Both-states checks are default color (black).

could anybody please run 'build test' on windows just to make sure I did not break something? I do not have windows yet :)

if you find it difficult to apply, let me know, I will merge it quickly into the newest version

> [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats
> --------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4476
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4476
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: all
>            Reporter: Egor Pasko
>         Attachments: 0001-Two-state-Inequality-Graph-with-ABCD-Stats-option.txt
>
>
> Creating two Inequality Graphs makes it difficult to make sure the graph looks like the right one. This issue proposes to create two-state InequalityGraph. One state shall represent the upper-bound problem, the other -- lower-bound. Constraints arising from statements like "a=b", "a=b+const" are the same in both states of the graph, whereas constraints arising from statements like "if (a < b)" are different (basically, the edges change direction to the opposite and negate their length)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (HARMONY-4476) [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats

Posted by "Pavel Ozhdikhin (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HARMONY-4476?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12513223 ] 

Pavel Ozhdikhin commented on HARMONY-4476:
------------------------------------------

Egor, I've looked through your patch. Not very deep though, just a generic view.
The code now indeed became more readable! The new graph printing looks nice too.

I have a copule of comments/questions regarding your patch and ABCD implementation in general:

---
classic_abcd.cpp:
Typo in the comment ("constraints"):
    // constrints (edges) rather than old ones;

---
This code:
    static const uint64 min_const_opnd = (min_ssa_opnd) * 3;
    ...
    setID((uint32)min_const_opnd + id);
looks potentially unsafe to me due to type conversion and possible overflow. There should be at least an assert checking that there is no overflow. It's better to be jitrino_assert to fire on release as well.

I've successfully built DRLVM on Win32 with your patch. I also can't run DaCapo on debug build in server_static mode - recent commit for a new BC mapping has broken this. This will be fixed soon.

On release build I ran into verifier issue (this is also a recent change). With verifier disabled I finally managed to run jython, got some info on bounds check but was too lazy to write a script to sum up the results - just made sure something is optimized.

Now I'm running "build test" on win32 and get back with the results later.


> [drlvm][jit][opt][abcd] Two-state Inequality Graph for both Lower and Upper problems, to ensure correctness and simplify the code, ability to dump stats
> --------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-4476
>                 URL: https://issues.apache.org/jira/browse/HARMONY-4476
>             Project: Harmony
>          Issue Type: Improvement
>          Components: DRLVM
>         Environment: all
>            Reporter: Egor Pasko
>         Attachments: 0001-Two-state-Inequality-Graph-with-ABCD-Stats-option.txt, igraph.png
>
>
> Creating two Inequality Graphs makes it difficult to make sure the graph looks like the right one. This issue proposes to create two-state InequalityGraph. One state shall represent the upper-bound problem, the other -- lower-bound. Constraints arising from statements like "a=b", "a=b+const" are the same in both states of the graph, whereas constraints arising from statements like "if (a < b)" are different (basically, the edges change direction to the opposite and negate their length)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.