RVM
  1. RVM
  2. RVM-188

BURS in the DaCapo Jython benchmark is more expensive than normal

    Details

    • Type: Improvement Improvement
    • Status: Open Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: 2.9.0, 2.9.0.1, 2.9.1
    • Fix Version/s: 1000
    • Component/s: Compiler: Optimizing
    • Labels:
      None
    • Number of attachments :
      0

      Description

      Profiling DaCapo Jython shows that we at least spend 3.7% of execution time in the opt compiler's BURS instruction selector:

      344.0 (3.6953485873885485%)
      Lorg/jikesrvm/compilers/opt/OPT_NormalBURS;.reachableChild
      (Lorg/jikesrvm/ArchitectureSpecific$OPT_BURS_TreeNode;Lorg/jikesrvm/compilers/opt/OPT_SpaceEffGraphNode;I)Z

      Measuring compilation phase time in DaCapo Jython (-s large -n 3) shows that 74.80% of compilation time is spent in BURS. Compared to other DaCapo benchmarks where BURS accounts for:
      antlr - 12.30%
      bloat - 7.82%
      eclipse - 11.09%
      fop - 10.85%
      hsqldb - 11.20%
      luindex - 9.49%
      lusearch - 10.55%
      pmd - 7.94%
      xalan - 11.02%

        Issue Links

          Activity

          Hide
          Ian Rogers added a comment -

          SPEC JVM '98's ray trace benchmarks also show a greater percentage of execution time spent in BURS:
          _205_raytrace - 34.77%
          _227_mtrt - 40.56%
          compared to:
          _201_compress - 11.13%
          _202_jess - 12.02%
          _209_db - 9.52%
          _213_javac - 12.01%
          _222_mpegaudio - 19.58% (quite high)
          _228_jack - 8.35%

          Show
          Ian Rogers added a comment - SPEC JVM '98's ray trace benchmarks also show a greater percentage of execution time spent in BURS: _205_raytrace - 34.77% _227_mtrt - 40.56% compared to: _201_compress - 11.13% _202_jess - 12.02% _209_db - 9.52% _213_javac - 12.01% _222_mpegaudio - 19.58% (quite high) _228_jack - 8.35%
          Hide
          Ian Rogers added a comment -

          Testing on a different machine shows commit r13517 has lowered the BURS overhead in jython to under 45%. Still very high.

          Show
          Ian Rogers added a comment - Testing on a different machine shows commit r13517 has lowered the BURS overhead in jython to under 45%. Still very high.
          Hide
          Ian Rogers added a comment -

          We may be seeing expensive BURS phases for certain benchmarks as these benchmarks have large basic blocks (but still under our 300 instruction super large limit) and BURS is some what memory hungry.

          Show
          Ian Rogers added a comment - We may be seeing expensive BURS phases for certain benchmarks as these benchmarks have large basic blocks (but still under our 300 instruction super large limit) and BURS is some what memory hungry.
          Hide
          Ian Rogers added a comment -

          r15295 rewrites reachableChild to not use mutual recursion or recurse over a tree, instead it uses work queues. Hopefully we can see a performance improvement in the RVM-658 quarantine regression tests.

          Show
          Ian Rogers added a comment - r15295 rewrites reachableChild to not use mutual recursion or recurse over a tree, instead it uses work queues. Hopefully we can see a performance improvement in the RVM-658 quarantine regression tests.

            People

            • Assignee:
              Unassigned
              Reporter:
              Ian Rogers
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated: