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

Improve C1 register allocator logging and debugging support

    XMLWordPrintable

    Details

    • Type: Enhancement
    • Status: Resolved
    • Priority: P4
    • Resolution: Fixed
    • Affects Version/s: 16
    • Fix Version/s: 16
    • Component/s: hotspot
    • Labels:
    • Subcomponent:
    • Resolved In Build:
      b13

      Description

      In the process of understanding and tracing back the problem of JDK-8249603, I used some additional debugging and logging code. In this RFE, I want to add this code and some additional enhancements to simplify the debugging of another C1 register allocator bug in the future.

      Summary:
      - find_interval(number): Can be called like that from gdb anywhere to find an interval with the given number.
      - Interval::print_children()/print_parent(): Useful when debugging with gdb to quickly show the split children and parent.
      - LinearScan::print_reg_num(number): Prints the register or stack location for this register number. This is useful in some places (logging with TraceLinearScanLevel set) where it just printed a number which first had to be manually looked up in other logs.

      Possible future work (not covered in this RFE):
      - The TraceLinearScanLevel flag is too generic and prints a lot of things (especially at level 4). It would be useful to split it into separate flags to only print a subset of the entire linear scan register allocator algorithm or a specific part but with more details.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              chagedorn Christian Hagedorn
              Reporter:
              chagedorn Christian Hagedorn
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: