Skip to content
  1. Jul 09, 2010
  2. Jul 08, 2010
  3. Jul 07, 2010
  4. Jul 01, 2010
    • Bruno Cardoso Lopes's avatar
      · 05166740
      Bruno Cardoso Lopes authored
      - Add AVX SSE2 Move doubleword and quadword instructions.
      - Add encode bits for VEX_W
      - All 128-bit SSE 1 & SSE2 instructions that are described
        in the .td file now have a AVX encoded form already working.
      
      llvm-svn: 107365
      05166740
  5. Jun 23, 2010
  6. Jun 18, 2010
    • Stuart Hastings's avatar
      Add a DebugLoc parameter to TargetInstrInfo::InsertBranch(). This · 0125b641
      Stuart Hastings authored
      addresses a longstanding deficiency noted in many FIXMEs scattered
      across all the targets.
      
      This effectively moves the problem up one level, replacing eleven
      FIXMEs in the targets with eight FIXMEs in CodeGen, plus one path
      through FastISel where we actually supply a DebugLoc, fixing Radar
      7421831.
      
      llvm-svn: 106243
      0125b641
  7. Jun 09, 2010
  8. Jun 05, 2010
    • Chris Lattner's avatar
      revert r105521, which is breaking the buildbots with stuff like this: · fdd26143
      Chris Lattner authored
      In file included from X86InstrInfo.cpp:16:
      X86GenInstrInfo.inc:2789: error: integer constant is too large for 'long' type
      X86GenInstrInfo.inc:2790: error: integer constant is too large for 'long' type
      X86GenInstrInfo.inc:2792: error: integer constant is too large for 'long' type
      X86GenInstrInfo.inc:2793: error: integer constant is too large for 'long' type
      X86GenInstrInfo.inc:2808: error: integer constant is too large for 'long' type
      X86GenInstrInfo.inc:2809: error: integer constant is too large for 'long' type
      X86GenInstrInfo.inc:2816: error: integer constant is too large for 'long' type
      X86GenInstrInfo.inc:2817: error: integer constant is too large for 'long' type
      
      llvm-svn: 105524
      fdd26143
    • Bruno Cardoso Lopes's avatar
      Initial AVX support for some instructions. No patterns matched · 594fa263
      Bruno Cardoso Lopes authored
      yet, only assembly encoding support.
      
      llvm-svn: 105521
      594fa263
  9. Jun 03, 2010
    • Eric Christopher's avatar
      Add first pass at darwin tls compiler support. · b0e1a458
      Eric Christopher authored
      llvm-svn: 105381
      b0e1a458
    • Jakob Stoklund Olesen's avatar
      Slightly change the meaning of the reMaterialize target hook when the original · a8ad9774
      Jakob Stoklund Olesen authored
      instruction defines subregisters.
      
      Any existing subreg indices on the original instruction are preserved or
      composed with the new subreg index.
      
      Also substitute multiple operands mentioning the original register by using the
      new MachineInstr::substituteRegister() function. This is necessary because there
      will soon be <imp-def> operands added to non read-modify-write partial
      definitions. This instruction:
      
        %reg1234:foo = FLAP %reg1234<imp-def>
      
      will reMaterialize(%reg3333, bar) like this:
      
        %reg3333:bar-foo = FLAP %reg333:bar<imp-def>
      
      Finally, replace the TargetRegisterInfo pointer argument with a reference to
      indicate that it cannot be NULL.
      
      llvm-svn: 105358
      a8ad9774
  10. May 22, 2010
  11. May 06, 2010
  12. Apr 29, 2010
  13. Apr 27, 2010
  14. Apr 26, 2010
  15. Mar 31, 2010
  16. Mar 30, 2010
  17. Mar 25, 2010
    • Jakob Stoklund Olesen's avatar
      Add a late SSEDomainFix pass that twiddles SSE instructions to avoid domain crossings. · 49e121d5
      Jakob Stoklund Olesen authored
      On Nehalem and newer CPUs there is a 2 cycle latency penalty on using a register
      in a different domain than where it was defined. Some instructions have
      equvivalents for different domains, like por/orps/orpd.
      
      The SSEDomainFix pass tries to minimize the number of domain crossings by
      changing between equvivalent opcodes where possible.
      
      This is a work in progress, in particular the pass doesn't do anything yet. SSE
      instructions are tagged with their execution domain in TableGen using the last
      two bits of TSFlags. Note that not all instructions are tagged correctly. Life
      just isn't that simple.
      
      The SSE execution domain issue is very similar to the ARM NEON/VFP pipeline
      issue handled by NEONMoveFixPass. This pass may become target independent to
      handle both.
      
      llvm-svn: 99524
      49e121d5
  18. Mar 24, 2010
  19. Feb 13, 2010
  20. Feb 12, 2010
  21. Feb 05, 2010
  22. Feb 03, 2010
  23. Jan 22, 2010
  24. Jan 13, 2010
    • Evan Cheng's avatar
      Add a quick pass to optimize sign / zero extension instructions. For targets... · 30bebff4
      Evan Cheng authored
      Add a quick pass to optimize sign / zero extension instructions. For targets where the pre-extension values are available in the subreg of the result of the extension, replace the uses of the pre-extension value with the result + extract_subreg.
      
      For now, this pass is fairly conservative. It only perform the replacement when both the pre- and post- extension values are used in the block. It will miss cases where the post-extension values are live, but not used.
      
      llvm-svn: 93278
      30bebff4
  25. Jan 12, 2010
Loading