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

Changes in CFG file format break C1Visualizer

XMLWordPrintable

    • 18
    • b17

      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.

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

              Created:
              Updated:
              Resolved: