Skip to content
  1. Oct 25, 2012
  2. Oct 24, 2012
  3. Oct 23, 2012
    • Nadav Rotem's avatar
      · 5bed7b4f
      Nadav Rotem authored
      Use the AliasAnalysis isIdentifiedObj because it also understands mallocs and c++ news.
      
      PR14158.
      
      llvm-svn: 166491
      5bed7b4f
    • Duncan Sands's avatar
      Fix typo that somehow escaped both testing and code inspection. · 5ed3900d
      Duncan Sands authored
      llvm-svn: 166475
      5ed3900d
    • Duncan Sands's avatar
      Transform code like this · 533c8ae7
      Duncan Sands authored
       %V = mul i64 %N, 4
       %t = getelementptr i8* bitcast (i32* %arr to i8*), i32 %V
      into
       %t1 = getelementptr i32* %arr, i32 %N
       %t = bitcast i32* %t1 to i8*
      incorporating the multiplication into the getelementptr.
      This happens all the time in dragonegg, for example for
        int foo(int *A, int N) {
          return A[N];
        }
      because gcc turns this into byte pointer arithmetic before it hits the plugin:
        D.1590_2 = (long unsigned int) N_1(D);
        D.1591_3 = D.1590_2 * 4;
        D.1592_5 = A_4(D) + D.1591_3;
        D.1589_6 = *D.1592_5;
        return D.1589_6;
      The D.1592_5 line is a POINTER_PLUS_EXPR, which is turned into a getelementptr
      on a bitcast of A_4 to i8*, so this becomes exactly the kind of IR that the
      transform fires on.
      
      An analogous transform (with no testcases!) already existed for bitcasts of
      arrays, so I rewrote it to share code with this one.
      
      llvm-svn: 166474
      533c8ae7
    • Richard Smith's avatar
      Per the C++ standard, we need to include the definition of llvm::Calculate in · 6289a4e8
      Richard Smith authored
      every TU where it's implicitly instantiated, even if there's an implicit
      instantiation for the same types available in another TU.
      
      llvm-svn: 166470
      6289a4e8
    • Julien Lerouge's avatar
      Fix typo. · a302b6d9
      Julien Lerouge authored
      llvm-svn: 166456
      a302b6d9
    • Julien Lerouge's avatar
      Explain why DenseMap is still used here instead of MapVector. · d7fa5e42
      Julien Lerouge authored
      llvm-svn: 166454
      d7fa5e42
  4. Oct 22, 2012
  5. Oct 21, 2012
  6. Oct 20, 2012
Loading