Skip to content
  1. Feb 22, 2011
    • Devang Patel's avatar
      Revert r124611 - "Keep track of incoming argument's location while emitting LiveIns." · f3292b21
      Devang Patel authored
      In other words, do not keep track of argument's location.  The debugger (gdb) is not prepared to see line table entries for arguments. For the debugger, "second" line table entry marks beginning of function body.
      This requires some coordination with debugger to get this working. 
       - The debugger needs to be aware of prolog_end attribute attached with line table entries.
       - The compiler needs to accurately mark prolog_end in line table entries (at -O0 and at -O1+)
      
      llvm-svn: 126155
      f3292b21
  2. Feb 21, 2011
  3. Feb 20, 2011
  4. Feb 19, 2011
  5. Feb 18, 2011
  6. Feb 17, 2011
  7. Feb 16, 2011
  8. Feb 15, 2011
  9. Feb 14, 2011
  10. Feb 13, 2011
    • Chris Lattner's avatar
      Enhance ComputeMaskedBits to know that aligned frameindexes · 46c01a30
      Chris Lattner authored
      have their low bits set to zero.  This allows us to optimize
      out explicit stack alignment code like in stack-align.ll:test4 when
      it is redundant.
      
      Doing this causes the code generator to start turning FI+cst into
      FI|cst all over the place, which is general goodness (that is the
      canonical form) except that various pieces of the code generator
      don't handle OR aggressively.  Fix this by introducing a new
      SelectionDAG::isBaseWithConstantOffset predicate, and using it
      in places that are looking for ADD(X,CST).  The ARM backend in
      particular was missing a lot of addressing mode folding opportunities
      around OR.
      
      llvm-svn: 125470
      46c01a30
    • Chris Lattner's avatar
      when legalizing extremely wide shifts, make sure that · d5f0b114
      Chris Lattner authored
      the shift amounts are in a suitably wide type so that
      we don't generate out of range constant shift amounts.
      
      This fixes PR9028.
      
      llvm-svn: 125458
      d5f0b114
  11. Feb 10, 2011
  12. Feb 07, 2011
  13. Feb 05, 2011
  14. Feb 04, 2011
  15. Feb 03, 2011
  16. Jan 31, 2011
  17. Jan 30, 2011
    • Benjamin Kramer's avatar
      Teach DAGCombine to fold fold (sra (trunc (sr x, c1)), c2) -> (trunc (sra x,... · 946e1522
      Benjamin Kramer authored
      Teach DAGCombine to fold fold (sra (trunc (sr x, c1)), c2) -> (trunc (sra x, c1+c2) when c1 equals the amount of bits that are truncated off.
      
      This happens all the time when a smul is promoted to a larger type.
      
      On x86-64 we now compile "int test(int x) { return x/10; }" into
        movslq  %edi, %rax
        imulq $1717986919, %rax, %rax
        movq  %rax, %rcx
        shrq  $63, %rcx
        sarq  $34, %rax <- used to be "shrq $32, %rax; sarl $2, %eax"
        addl  %ecx, %eax
      
      This fires 96 times in gcc.c on x86-64.
      
      llvm-svn: 124559
      946e1522
  18. Jan 29, 2011
  19. Jan 28, 2011
  20. Jan 26, 2011
  21. Jan 25, 2011
    • Devang Patel's avatar
      · 70f8e596
      Devang Patel authored
      Resolve DanglingDbgValue of PHI nodes where the use follows dbg.value intrinisic.
      
      llvm-svn: 124203
      70f8e596
  22. Jan 24, 2011
Loading