Skip to content
  1. May 12, 2012
  2. Apr 20, 2012
  3. Mar 28, 2012
    • Akira Hatanaka's avatar
      Emit all directives except for ".cprestore" during asm printing rather than emit · 34ee3ff8
      Akira Hatanaka authored
      them as machine instructions. Directives ".set noat" and ".set at" are now
      emitted only at the beginning and end of a function except in the case where
      they are emitted to enclose .cpload with an immediate operand that doesn't fit
      in 16-bit field or unaligned load/stores.
      
      Also, make the following changes:
      - Remove function isUnalignedLoadStore and use a switch-case statement to
        determine whether an instruction is an unaligned load or store.
      
      - Define helper function CreateMCInst which generates an instance of an MCInst
        from an opcode and a list of operands.
      
      llvm-svn: 153552
      34ee3ff8
  4. Mar 17, 2012
  5. Mar 05, 2012
  6. Feb 28, 2012
  7. 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
  8. Feb 17, 2012
  9. Jan 25, 2012
  10. Dec 02, 2011
    • Nick Lewycky's avatar
      Move global variables in TargetMachine into new TargetOptions class. As an API · 50f02cb2
      Nick Lewycky authored
      change, now you need a TargetOptions object to create a TargetMachine. Clang
      patch to follow.
      
      One small functionality change in PTX. PTX had commented out the machine
      verifier parts in their copy of printAndVerify. That now calls the version in
      LLVMTargetMachine. Users of PTX who need verification disabled should rely on
      not passing the command-line flag to enable it.
      
      llvm-svn: 145714
      50f02cb2
  11. Nov 15, 2011
  12. Nov 14, 2011
  13. Nov 11, 2011
  14. Nov 07, 2011
  15. Aug 12, 2011
  16. Jul 19, 2011
  17. Jun 07, 2011
    • Akira Hatanaka's avatar
      Coding style fixes. · 15506787
      Akira Hatanaka authored
      - Fix indentation.
      - Move comments.
      - Fit lines in 80 columns.
      - Remove dead code.
      
      llvm-svn: 132724
      15506787
    • Akira Hatanaka's avatar
      Add test case for C++ exception handling and fix the following mistakes in... · 08b7a779
      Akira Hatanaka authored
      Add test case for C++ exception handling and fix the following mistakes in MipsFrameLowering::emitPrologue:
      
      - cfi directives are not inserted at the right location or in the right order.
      - The source MachineLocation for the cfi directive that changes the cfa register
        to $fp should be MachineLocation::VirtualFP.
      - A PROLOG_LABEL that marks the beginning of cfi_offset directives for
        callee-saved register is emitted even when no callee-saved registers are
        saved.
      - When a callee-saved double precision register is saved, two cfi_offset
        directives, one for each of the paired single precision registers, should be
        emitted.
       
       
      
      llvm-svn: 132703
      08b7a779
  18. Jun 02, 2011
  19. May 26, 2011
  20. May 25, 2011
  21. May 24, 2011
  22. May 23, 2011
    • Akira Hatanaka's avatar
      Change StackDirection from StackGrowsUp to StackGrowsDown. · f9e5750f
      Akira Hatanaka authored
      The following improvements are accomplished as a result of applying this patch:
      - Fixed frame objects' offsets (relative to either the virtual frame pointer or
        the stack pointer) are set before instruction selection is completed. There is
        no need to wait until Prologue/Epilogue Insertion is run to set them.
      - Calculation of final offsets of fixed frame objects is straightforward. It is
        no longer necessary to assign negative offsets to fixed objects for incoming
        arguments in order to distinguish them from the others.
      - Since a fixed object has its relative offset set during instruction
        selection, there is no need to conservatively set its alignment to 4.
      - It is no longer necessary to reorder non-fixed frame objects in 
        MipsFrameLowering::adjustMipsStackFrame.
      
      llvm-svn: 131915
      f9e5750f
  23. May 21, 2011
  24. May 20, 2011
  25. Apr 15, 2011
  26. Apr 07, 2011
  27. Mar 04, 2011
  28. Jan 18, 2011
  29. Jan 13, 2011
  30. Jan 10, 2011
  31. Nov 18, 2010
Loading