Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8283890

Changes in CFG file format break C1Visualizer

    XMLWordPrintable

    Details

    • Subcomponent:
    • Introduced In Version:
      18
    • Resolved In Build:
      b17

      Description

      A change in the CFG file format introduced by JDK-8277496 makes the log file unreadable by the C1Visualizer tool.

      The change adds a new line in the CFG file "(block has no end, cannot print successors)" that the C1Visualizer tool is not able to parse:

      begin_cfg
        name "BlockListBuilder virtual void java.lang.Object.<init>()"
        begin_block
          name "B0"
          from_bci 0
          to_bci -1
          predecessors
          (block has no end, cannot print successors). <====
          xhandlers
          flags "std"
        end_block
      end_cfg

      There's no fundamental reason to provide the "no end block" information in the log file, instead a line tagged "successors" with an empty set of successors would be sufficient and would not break the C1Visualizer:

      begin_cfg
        name "BlockListBuilder virtual void java.lang.Object.<init>()"
        begin_block
          name "B0"
          from_bci 0
          to_bci -1
          predecessors
          successors <==============
          xhandlers
          flags "std"
        end_block
      end_cfg


      The C1Visualizer tool is not maintained anymore, so fixing it is not an option.
      An alternative solution would be to use a script to "fix" log files before opening them with the C1Visualizer, but it seems to add an unnecessary step in the process.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              fparain Frederic Parain
              Reporter:
              fparain Frederic Parain
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: