Skip to content
  1. Mar 26, 2010
  2. Mar 25, 2010
  3. Mar 24, 2010
  4. Mar 23, 2010
  5. Mar 22, 2010
  6. Mar 19, 2010
  7. Mar 15, 2010
  8. Mar 14, 2010
  9. Mar 12, 2010
  10. Mar 11, 2010
  11. Mar 10, 2010
  12. Mar 08, 2010
  13. Mar 05, 2010
  14. Mar 01, 2010
  15. Feb 25, 2010
    • Dan Gohman's avatar
      Make LoopSimplify change conditional branches in loop exiting blocks · a9c205cc
      Dan Gohman authored
      which branch on undef to branch on a boolean constant for the edge
      exiting the loop. This helps ScalarEvolution compute trip counts for
      loops.
      
      Teach ScalarEvolution to recognize single-value PHIs, when safe, and
      ForgetSymbolicName to forget such single-value PHI nodes as apprpriate
      in ForgetSymbolicName.
      
      llvm-svn: 97126
      a9c205cc
  16. Feb 16, 2010
  17. Feb 15, 2010
  18. Feb 13, 2010
  19. Feb 05, 2010
    • Jakob Stoklund Olesen's avatar
      Teach SimplifyCFG about magic pointer constants. · 916f48a0
      Jakob Stoklund Olesen authored
      Weird code sometimes uses pointer constants other than null. This patch
      teaches SimplifyCFG to build switch instructions in those cases.
      
      Code like this:
      
      void f(const char *x) {
        if (!x)
          puts("null");
        else if ((uintptr_t)x == 1)
          puts("one");
        else if (x == (char*)2 || x == (char*)3)
          puts("two");
        else if ((intptr_t)x == 4)
          puts("four");
        else
          puts(x);
      }
      
      Now becomes a switch:
      
      define void @f(i8* %x) nounwind ssp {
      entry:
        %magicptr23 = ptrtoint i8* %x to i64            ; <i64> [#uses=1]
        switch i64 %magicptr23, label %if.else16 [
          i64 0, label %if.then
          i64 1, label %if.then2
          i64 2, label %if.then9
          i64 3, label %if.then9
          i64 4, label %if.then14
        ]
      
      Note that LLVM's own DenseMap uses magic pointers.
      
      llvm-svn: 95439
      916f48a0
    • Dan Gohman's avatar
      Use a SmallSetVector instead of a SetVector; this code showed up as a · 8abb67df
      Dan Gohman authored
      malloc caller in a profile.
      
      llvm-svn: 95407
      8abb67df
  20. Feb 01, 2010
  21. Jan 30, 2010
Loading