Skip to content
  1. Jan 21, 2011
  2. Jan 20, 2011
  3. Jan 19, 2011
  4. Jan 18, 2011
  5. Jan 14, 2011
  6. Jan 13, 2011
  7. Jan 10, 2011
  8. Jan 08, 2011
  9. Jan 07, 2011
    • David Greene's avatar
      · 2f7cf7fc
      David Greene authored
      Rename lisp-like functions as suggested by Gabor Greif as loooong time
      ago.  This is both easier to learn and easier to read.
      
      llvm-svn: 123001
      2f7cf7fc
  10. Dec 24, 2010
  11. Dec 23, 2010
  12. Dec 21, 2010
  13. Dec 17, 2010
  14. Dec 16, 2010
  15. Dec 15, 2010
    • Bob Wilson's avatar
      Add a Neon intrinsic test generator. · 9168a4f1
      Bob Wilson authored
      This is still a WIP.  It's already good enough to expose a few bugs, though.
      
      llvm-svn: 121868
      9168a4f1
    • Bob Wilson's avatar
      Fix Neon intrinsic immediate range checking for some double-register operands. · 276f1ca8
      Bob Wilson authored
      Some quad-register intrinsics with lane operands only take a double-register
      operand for the vector containing the lane.  The valid range of lane numbers
      is then half as big as you would expect from the quad-register type.
      Note: This currently has no effect because those intrinsics are now handled
      entirely in the header file using __builtin_shufflevector, which does its own
      range checking, but I want to use this for generating tests.
      
      llvm-svn: 121867
      276f1ca8
    • Chris Lattner's avatar
      various cleanups to tblgen, patch by Garrison Venn! · 89dcb687
      Chris Lattner authored
      llvm-svn: 121837
      89dcb687
    • Mikhail Glushenkov's avatar
      llvmc: make switch options ZeroOrMore by default. · 9f9b7051
      Mikhail Glushenkov authored
      llvm-svn: 121822
      9f9b7051
    • Jakob Stoklund Olesen's avatar
      Introduce TargetRegisterInfo::getOverlaps(Reg), returning a list of all · 757f0e37
      Jakob Stoklund Olesen authored
      registers that alias Reg, including itself. This is almost the same as the
      existing getAliasSet() method, except for the inclusion of Reg.
      
      The name matches the reflexive TRI::regsOverlap(x, y) relation.
      
      It is very common to do stuff to a register and all its aliases:
      
        stuff(Reg)
        for (const unsigned *Alias = TRI->getAliasSet(Reg); *Alias; ++Alias)
          stuff(*Alias);
      
      That can now be written as the simpler:
      
        for (const unsigned *Alias = TRI->getOverlaps(Reg); *Alias; ++Alias)
          stuff(*Alias);
      
      This change requires a bit more constant space for the alias lists because Reg
      is included and because the empty alias list cannot be shared any longer.
      
      If the getAliasSet method is eventually removed, this space can be reclaimed by
      sharing overlap lists. For instance, %rax and %eax have identical overlap sets.
      
      llvm-svn: 121800
      757f0e37
  16. Dec 14, 2010
    • Jim Grosbach's avatar
      509dc2a7
    • Bill Wendling's avatar
      The tLDR et al instructions were emitting either a reg/reg or reg/imm · 092a7bdf
      Bill Wendling authored
      instruction based on the t_addrmode_s# mode and what it returned. There is some
      obvious badness to this. In particular, it's hard to do MC-encoding when the
      instruction may change out from underneath you after the t_addrmode_s# variable
      is finally resolved.
      
      The solution is to revert a long-ago change that merged the reg/reg and reg/imm
      versions. There is the addition of several new addressing modes. They no longer
      have extraneous operands associated with them. I.e., if it's reg/reg we don't
      have to have a dummy zero immediate tacked on to the SDNode.
      
      There are some obvious cleanups here, which will happen shortly.
      
      llvm-svn: 121747
      092a7bdf
    • Owen Anderson's avatar
      Second attempt at make Thumb2 LEAs pseudos. This time, perform the lowering... · 6d375e56
      Owen Anderson authored
      Second attempt at make Thumb2 LEAs pseudos.  This time, perform the lowering much later, which makes the entire
      process cleaner.
      
      llvm-svn: 121735
      6d375e56
    • Bob Wilson's avatar
      Remove the rest of the *_sfp Neon instruction patterns. · 651eaa02
      Bob Wilson authored
      Use the same COPY_TO_REGCLASS approach as for the 2-register *_sfp instructions.
      This change made a big difference in the code generated for the
      CodeGen/Thumb2/cross-rc-coalescing-2.ll test: The coalescer is still doing
      a fine job, but some instructions that were previously moved outside the loop
      are not moved now.  It's using fewer VFP registers now, which is generally
      a good thing, so I think the estimates for register pressure changed and that
      affected the LICM behavior.  Since that isn't obviously wrong, I've just
      changed the test file.  This completes the work for Radar 8711675.
      
      llvm-svn: 121730
      651eaa02
  17. Dec 13, 2010
Loading