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

Introduce identifier TEMP_DEF for effects in adl.

    XMLWordPrintable

Details

    • Enhancement
    • Resolution: Fixed
    • P4
    • 9
    • None
    • hotspot
    • None
    • 9
    • b35

    Backports

      Description


        This effect is similar to USE_DEF, except that a TEMP node will be generated
        that represents the USE.

        With this effect one can express that the def'ed register must be
        different from the used ones corresponding to ins. Currently this is
        already possible by specifying effect TEMP for the operand with effect
        DEF from the match rule.

        Introducing this new identifyer makes the code more readable and
        allows to specify the effect for nodes without match rules.

        An example is an optimized encode node, if the base of the compressed heap
        is 35G aligned, i.e., the shifted narrow oop can be merged with the base by
        an or instruction.
        On PPC we can shift and or with a single instruction:

        decodeN(dst, src):

        mov Rdst = Rbase
        rldimi Rdst = Rdst || (Rsrc << 3)

        As the move is off the critical path, this is superior to do a shift and an add.
        Unfortunately we must guarantee that Rdst != Rsrc. which we do with a TEMP_DEF effect:

        instruct decodeN(iRegPdst dst, iRegNsrc src) %{
          match(Set dst (DecodeN src));
          effect(TEMP_DEF dst);

        Attachments

          Issue Links

            Activity

              People

                goetz Goetz Lindenmaier
                goetz Goetz Lindenmaier
                Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved: