Skip to content
  1. Mar 27, 2012
  2. Mar 26, 2012
  3. Mar 21, 2012
  4. Mar 17, 2012
  5. Mar 11, 2012
  6. Mar 10, 2012
  7. Mar 09, 2012
  8. Mar 08, 2012
  9. Mar 05, 2012
  10. Mar 04, 2012
  11. Mar 01, 2012
  12. Feb 28, 2012
  13. Feb 27, 2012
  14. Feb 25, 2012
  15. Feb 24, 2012
    • Akira Hatanaka's avatar
      Add an option to use a virtual register as the global base register instead of · b049aef2
      Akira Hatanaka authored
      reserving a physical register ($gp or $28) for that purpose.
      
      This will completely eliminate loads that restore the value of $gp after every
      function call, if the register allocator assigns a callee-saved register, or
      eliminate unnecessary loads if it assigns a temporary register. 
      
      example:
      
      .cpload $25       // set $gp.
      ...
      .cprestore 16     // store $gp to stack slot 16($sp).
      ...
      jalr $25          // function call. clobbers $gp.
      lw $gp, 16($sp)   // not emitted if callee-saved reg is chosen.
      ...
      lw $2, 4($gp)
      ...
      jalr $25          // function call.
      lw $gp, 16($sp)   // not emitted if $gp is not live after this instruction.
      ...
      
      llvm-svn: 151402
      b049aef2
Loading