Skip to content
  1. May 01, 2011
  2. Apr 30, 2011
  3. Apr 29, 2011
  4. Apr 28, 2011
  5. Apr 27, 2011
  6. Apr 26, 2011
    • Chris Lattner's avatar
      Transform: "icmp eq (trunc (lshr(X, cst1)), cst" to "icmp (and X, mask), cst" · 1b06c716
      Chris Lattner authored
      when X has multiple uses.  This is useful for exposing secondary optimizations,
      but the X86 backend isn't ready for this when X has a single use.  For example,
      this can disable load folding.
      
      This is inching towards resolving PR6627.
      
      llvm-svn: 130238
      1b06c716
    • Chris Lattner's avatar
      some random cleanups, no functionality change. · 31b106d7
      Chris Lattner authored
      llvm-svn: 130237
      31b106d7
    • Chris Lattner's avatar
      Improve the bail-out predicate to really only kick in when phi · eb045f9c
      Chris Lattner authored
      translation fails.  We were bailing out in some cases that would
      cause us to miss GVN'ing some non-local cases away.
      
      llvm-svn: 130206
      eb045f9c
    • Nick Lewycky's avatar
      Rename everything to follow LLVM style ... I think. · c58d293a
      Nick Lewycky authored
      Add support for switch and indirectbr edges. This works by densely numbering
      all blocks which have such terminators, and then separately numbering the
      possible successors. The predecessors write down a number, the successor knows
      its own number (as a ConstantInt) and sends that and the pointer to the number
      the predecessor wrote down to the runtime, who looks up the counter in a
      per-function table.
      
      Coverage data should now be functional, but I haven't tested it on anything
      other than my 2-file synthetic test program for coverage.
      
      llvm-svn: 130186
      c58d293a
    • Chris Lattner's avatar
      Enhance MemDep: When alias analysis returns a partial alias result, · 6f83d06f
      Chris Lattner authored
      return it as a clobber.  This allows GVN to do smart things.
      
      Enhance GVN to be smart about the case when a small load is clobbered
      by a larger overlapping load.  In this case, forward the value.  This
      allows us to compile stuff like this:
      
      int test(void *P) {
        int tmp = *(unsigned int*)P;
        return tmp+*((unsigned char*)P+1);
      }
      
      into:
      
      _test:                                  ## @test
      	movl	(%rdi), %ecx
      	movzbl	%ch, %eax
      	addl	%ecx, %eax
      	ret
      
      which has one load.  We already handled the case where the smaller
      load was from a must-aliased base pointer.
      
      llvm-svn: 130180
      6f83d06f
  7. Apr 23, 2011
  8. Apr 21, 2011
  9. Apr 20, 2011
Loading