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

XMLWordPrintable

    • Type: Bug
    • Resolution: Fixed
    • Priority: P4
    • 1.4.0
    • Affects Version/s: 1.3.1_01
    • Component/s: 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

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

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: