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

C2: Verify Location::{oop,normal} types in PhaseOutput::FillLocArray

    XMLWordPrintable

Details

    • Enhancement
    • Resolution: Fixed
    • P4
    • 20
    • 20
    • hotspot
    • b16

    Description

      I have been debugging a weird issue in C2/deopt, and wanted to have stronger asserts in critical paths. One such place is `PhaseOutput::FillLocArray`, which emits `Location::normal` on unconditional `else` branch. `Location::normal` is described as "Ints, floats, double halves". I think we would be better off verifying the types explicitly. Same goes for `Location::oop`, which we can also verify.

      Aside: In fact, I suspect the whole `Regalloc::is_oop` business can go away, and we can rely on reg types to sense if we are dealing with oops here, but that looks like a change with some unexpected effects, so I would like to do that separately, see JDK-8293845.

      Attachments

        Issue Links

          Activity

            People

              shade Aleksey Shipilev
              shade Aleksey Shipilev
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: