Skip to content
  1. Sep 18, 2010
  2. Sep 17, 2010
  3. Sep 16, 2010
    • Devang Patel's avatar
      If FE forgot to provide a file name (usually it uses "stdin" as name in such... · 871d0b1b
      Devang Patel authored
      If FE forgot to provide a file name (usually it uses "stdin" as name in such situation) then make one up to ensure that debug info is not malformed.
      
      llvm-svn: 114119
      871d0b1b
    • Jakob Stoklund Olesen's avatar
      Use the value mapping provided by LiveIntervalMap. This simplifies the code a · 9855109b
      Jakob Stoklund Olesen authored
      great deal because we don't have to worry about maintaining SSA form.
      
      Unconditionally copy back to dupli when the register is live out of the split
      range, even if the live-out value was defined outside the range. Skipping the
      back-copy only makes sense when the live range is going to spill outside the
      split range, and we don't know that it will. Besides, this was a hack to avoid
      SSA update issues.
      
      Clear up some confusion about the end point of a half-open LiveRange. Methinks
      LiveRanges need to be closed so both start and end are included in the range.
      The low bits of a SlotIndex are symbolic, so a half-open range doesn't really
      make sense. This would be a pervasive change, though.
      
      llvm-svn: 114043
      9855109b
  4. Sep 15, 2010
  5. Sep 14, 2010
  6. Sep 13, 2010
  7. Sep 11, 2010
  8. Sep 10, 2010
  9. Sep 08, 2010
    • Jakob Stoklund Olesen's avatar
      Remove dead code. · 79e838b0
      Jakob Stoklund Olesen authored
      llvm-svn: 113386
      79e838b0
    • Jakob Stoklund Olesen's avatar
      Don't add <imp-def> operands during register rewriting. · 4d19d265
      Jakob Stoklund Olesen authored
      LiveIntervals already adds <imp-def> operands for super-registers when a subreg
      def defines the whole register. Thus, it is not necessary to do it again when
      rewriting.
      
      In fact, the super-register imp-defs caused miscompilations because the late
      scheduler couldn't see that the super-register was read.
      
      We still add super-reg <imp-use,kill> operands when rewriting virtuals to
      physicals.
      
      llvm-svn: 113299
      4d19d265
  10. Sep 05, 2010
    • Chris Lattner's avatar
      add a comment about where this should eventually move. · 419d0aa0
      Chris Lattner authored
      llvm-svn: 113117
      419d0aa0
    • Lang Hames's avatar
      Added initialisers for reduction rule counters. · 64a4a136
      Lang Hames authored
      llvm-svn: 113108
      64a4a136
    • 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
  11. Sep 04, 2010
  12. Sep 03, 2010
Loading