Skip to content
  1. Jul 25, 2011
  2. Jul 01, 2011
  3. May 25, 2011
  4. Apr 15, 2011
  5. Apr 04, 2011
  6. Mar 05, 2011
    • Andrew Trick's avatar
      Increased the register pressure limit on x86_64 from 8 to 12 · 641e2d4f
      Andrew Trick authored
      regs. This is the only change in this checkin that may affects the
      default scheduler. With better register tracking and heuristics, it
      doesn't make sense to artificially lower the register limit so much.
      
      Added -sched-high-latency-cycles and X86InstrInfo::isHighLatencyDef to
      give the scheduler a way to account for div and sqrt on targets that
      don't have an itinerary. It is currently defaults to 10 (the actual
      number doesn't matter much), but only takes effect on non-default
      schedulers: list-hybrid and list-ilp.
      
      Added several heuristics that can be individually disabled for the
      non-default sched=list-ilp mode. This helps us determine how much
      better we can do on a given benchmark than the default
      scheduler. Certain compute intensive loops run much faster in this
      mode with the right set of heuristics, and it doesn't seem to have
      much negative impact elsewhere. Not all of the heuristics are needed,
      but we still need to experiment to decide which should be disabled by
      default for sched=list-ilp.
      
      llvm-svn: 127067
      641e2d4f
    • Andrew Trick's avatar
      whitespace · 27c079e1
      Andrew Trick authored
      llvm-svn: 127065
      27c079e1
  7. Feb 22, 2011
  8. Nov 28, 2010
  9. Nov 15, 2010
  10. Oct 19, 2010
  11. Oct 08, 2010
  12. Oct 03, 2010
  13. Sep 17, 2010
  14. Sep 05, 2010
    • Chris Lattner's avatar
      implement rdar://6653118 - fastisel should fold loads where possible. · eeba0c73
      Chris Lattner authored
      Since mem2reg isn't run at -O0, we get a ton of reloads from the stack,
      for example, before, this code:
      
      int foo(int x, int y, int z) {
        return x+y+z;
      }
      
      used to compile into:
      
      _foo:                                   ## @foo
      	subq	$12, %rsp
      	movl	%edi, 8(%rsp)
      	movl	%esi, 4(%rsp)
      	movl	%edx, (%rsp)
      	movl	8(%rsp), %edx
      	movl	4(%rsp), %esi
      	addl	%edx, %esi
      	movl	(%rsp), %edx
      	addl	%esi, %edx
      	movl	%edx, %eax
      	addq	$12, %rsp
      	ret
      
      Now we produce:
      
      _foo:                                   ## @foo
      	subq	$12, %rsp
      	movl	%edi, 8(%rsp)
      	movl	%esi, 4(%rsp)
      	movl	%edx, (%rsp)
      	movl	8(%rsp), %edx
      	addl	4(%rsp), %edx    ## Folded load
      	addl	(%rsp), %edx     ## Folded load
      	movl	%edx, %eax
      	addq	$12, %rsp
      	ret
      
      Fewer instructions and less register use = faster compiles.
      
      llvm-svn: 113102
      eeba0c73
  15. Aug 26, 2010
  16. Aug 19, 2010
  17. Jul 22, 2010
  18. Jul 17, 2010
  19. Jul 13, 2010
  20. Jul 11, 2010
  21. Jul 09, 2010
  22. Jul 08, 2010
  23. Jul 07, 2010
  24. 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
  25. Jun 23, 2010
  26. 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
  27. Jun 09, 2010
  28. 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
  29. Jun 03, 2010
Loading