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

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

XMLWordPrintable

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

      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.

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

              Created:
              Updated:
              Resolved: