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

inefficieny in C1: redundant store to clear vm_result in StubAssembler::call_RT

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P4 P4
    • 1.4.0
    • 1.3.1_01
    • hotspot
    • beta2
    • sparc
    • solaris

      Using the 1.3.1 fcs sources from
        hotspot-1_3_1-pre-fcs-src-b24-solsparc-07_may_2001.zip
      I observe this inefficieny in the client compiler .

      In file c1_Runtime1_sparc.cpp, in the implementation of
      StubAssembler::call_RT there is this code pattern

        if (oop_result1.isValid()) { // get oop result if there is one and reset it in the thread
          get_vm_result (oop_result1);
        }
        Address vm_result_addr(Gthread, 0, JavaThread::vm_result_offset_in_bytes());
        st(G0, vm_result_addr); // REDUNDANT

      If the get_vm_result is executed then the line marked REDUNDANT
      duplicates a store emitted by the implementation of get_vm_result
      in assembler_sparc.cpp



      Tom, this appearo be true. Also, incase of result2. uld take a quicklook at this...
      mohammad.gharahgouzloo@Eng 2001-06-13

            never Tom Rodriguez
            clucasius Carlos Lucasius (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: