Skip to content
  1. May 25, 2012
  2. Mar 05, 2012
  3. Feb 28, 2012
  4. 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
  5. Feb 17, 2012
  6. Jun 28, 2011
  7. Apr 15, 2011
Loading