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

IGV: Clean up the "Final Code" graph to match the blocks from assembly/OptoAssembly

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Unresolved
    • Icon: P4 P4
    • tbd
    • 17
    • hotspot

      There are currently more blocks shown in the "Final Code" graph than actually present in the assembly/OptoAssembly output which is confusing.

      Example:
      Assembly/OptoAssembly: B2 -> B21
      045 B2: # out( B21 B3 ) <- in( B1 ) Freq: 0.999999
      045 cmpl R13, R9
      048 jge B21 P=0.019608 C=102.000000
      ....
      18a B21: # out( N266 ) <- in( B2 B20 B17 ) Freq: 0.999993
      18a vzeroupper

      IGV: B2 -> no block -> B41 -> no block -> B21
      (see attached final_phase_IGV.png)

      The idea of this RFE is to make the "Final Code" graph in the IGV more similar to the assembly/OptoAssembly in terms of blocks.

      Maybe we could do something similar in IdealGraphPrinter::print() as in PhaseOutput::dump_asm_on() where we only print blocks that are not connectors (call to block->is_connector()) to get rid of the additional blocks. We could then filter out all uninteresting nodes as in [1].

      This leaves the question if we should use this new view just as an option to switch to and keep to the old view or if we should completely replace it with the new "assembly/OptoAssembly" like view. Based on my experience/usage, I opt for the latter. I usually try to map the assembly/OptoAssembly output to the "Final Code" graph in the IGV and then start to go backwards to earlier graphs from there. The additional blocks are more confusing than helping.

      [1] https://github.com/openjdk/jdk/blob/3a21e1df7004e2c19b312163ea31ffb20069870f/src/hotspot/share/opto/output.cpp#L3548-L3557

            Unassigned Unassigned
            chagedorn Christian Hagedorn
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: