Uploaded image for project: 'JikesRVM'
  1. RVM-1083

Remove scratch fields from the optimizing compiler IR

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Medium
    • Resolution: Fixed
    • Affects Version/s: 3.1.3
    • Fix Version/s: 3.1.4
    • Component/s: Compiler: Optimizing
    • Labels:
      None
    • Environment:

      All

      Description

      Several classes in the optimizing compiler currently provide scratch fields that optimizations can use to save data. This approach has serious drawbacks (e.g. waste of space, data is not close to the computation, possibility of overwriting data, ...). We should remove all scratch fields from the IR classes and rewrite all affected parts of the opt compiler to save data in separate data structures, e.g. in the compiler phase objects or in the IR object.

      The following scratch fields have already been removed during work on this issue:
      BURS_TreeNode.scratchObject
      BasicBlock.scratch
      BasicBlock.scratchObject
      DF_AbstractCell.scratch
      DF_Equation.scratch
      GraphElement.scratch
      GraphElement.scratchObject
      Instruction.scratch
      Instruction.scratchObject
      Register.scratch
      Register.scratchObject
      RegisterOperand.info
      RegisterOperand.scratchObject (renamed because it had a single responsibility after refactoring)
      SpaceEffGraphNode.scratch
      SpaceEffGraphNode.scratchObject
      SpaceEffGraphEdge.scratch (renamed due to not being a scratch field)

        Attachments

          Activity

            People

            • Assignee:
              ebrangs Erik Brangs
              Reporter:
              ebrangs Erik Brangs
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: