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

C2 should remove unused leaf / pure runtime calls

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Unresolved
    • Icon: P3 P3
    • tbd
    • 25
    • hotspot

      We got several reports in the past like JDK-8349523 and JDK-6440430 that C2 does not remove leaf / pure runtime calls when the result is not used. We should add this capability to C2.

      Suggestion by Quan Anh Mai:
      What do you think about using a general-purpose CallPureNode that represents a call not reading or writing external modifiable states? Apart from ModF and ModD, there are several other nodes that may benefit from this such as the trigonometric functions, svml calls, etc. A CallPureNode does not have input and output control or memory, which makes it more susceptible to GVN and deadcode elimination, as well as allowing it to be more freely scheduled.

      https://github.com/openjdk/jdk/pull/22786#issuecomment-2585016091

            mchevalier Marc Chevalier
            tweidmann Theo Weidmann (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated: