Skip to content
  1. Jun 29, 2010
    • Dan Gohman's avatar
      Add an Intraprocedural form of BasicAliasAnalysis, which aims to · 0824affe
      Dan Gohman authored
      properly handles instructions and arguments defined in different
      functions, or across recursive function iterations.
      
      llvm-svn: 107109
      0824affe
    • Bruno Cardoso Lopes's avatar
      Described the missing AVX forms of SSE2 convert instructions · d6a091a4
      Bruno Cardoso Lopes authored
      llvm-svn: 107108
      d6a091a4
    • Bob Wilson's avatar
      Fix Thumb encoding of VMOV (scalar to ARM core register). The encoding is · 3d12ff79
      Bob Wilson authored
      the same as ARM except that the condition code field is always set to ARMCC::AL.
      
      llvm-svn: 107107
      3d12ff79
    • Chandler Carruth's avatar
      Prefer llvm_unreachable(...) to assert(false && ...). This is important as · 8337ba63
      Chandler Carruth authored
      without it we might exit a non-void function without returning.
      
      llvm-svn: 107106
      8337ba63
    • Chris Lattner's avatar
      add IR names to coerced arguments. · 9e748e9d
      Chris Lattner authored
      llvm-svn: 107105
      9e748e9d
    • Chris Lattner's avatar
      make the argument passing stuff in the FCA case smarter still, by · 15ec361b
      Chris Lattner authored
      avoiding making the FCA at all when the types exactly line up.  For
      example, before we made:
      
      %struct.DeclGroup = type { i64, i64 }
      
      define i64 @_Z3foo9DeclGroup(i64, i64) nounwind {
      entry:
        %D = alloca %struct.DeclGroup, align 8          ; <%struct.DeclGroup*> [#uses=3]
        %2 = insertvalue %struct.DeclGroup undef, i64 %0, 0 ; <%struct.DeclGroup> [#uses=1]
        %3 = insertvalue %struct.DeclGroup %2, i64 %1, 1 ; <%struct.DeclGroup> [#uses=1]
        store %struct.DeclGroup %3, %struct.DeclGroup* %D
        %tmp = getelementptr inbounds %struct.DeclGroup* %D, i32 0, i32 0 ; <i64*> [#uses=1]
        %tmp1 = load i64* %tmp                          ; <i64> [#uses=1]
        %tmp2 = getelementptr inbounds %struct.DeclGroup* %D, i32 0, i32 1 ; <i64*> [#uses=1]
        %tmp3 = load i64* %tmp2                         ; <i64> [#uses=1]
        %add = add nsw i64 %tmp1, %tmp3                 ; <i64> [#uses=1]
        ret i64 %add
      }
      
      ... which has the pointless insertvalue, which fastisel hates, now we
      make:
      
      %struct.DeclGroup = type { i64, i64 }
      
      define i64 @_Z3foo9DeclGroup(i64, i64) nounwind {
      entry:
        %D = alloca %struct.DeclGroup, align 8          ; <%struct.DeclGroup*> [#uses=4]
        %2 = getelementptr %struct.DeclGroup* %D, i32 0, i32 0 ; <i64*> [#uses=1]
        store i64 %0, i64* %2
        %3 = getelementptr %struct.DeclGroup* %D, i32 0, i32 1 ; <i64*> [#uses=1]
        store i64 %1, i64* %3
        %tmp = getelementptr inbounds %struct.DeclGroup* %D, i32 0, i32 0 ; <i64*> [#uses=1]
        %tmp1 = load i64* %tmp                          ; <i64> [#uses=1]
        %tmp2 = getelementptr inbounds %struct.DeclGroup* %D, i32 0, i32 1 ; <i64*> [#uses=1]
        %tmp3 = load i64* %tmp2                         ; <i64> [#uses=1]
        %add = add nsw i64 %tmp1, %tmp3                 ; <i64> [#uses=1]
        ret i64 %add
      }
      
      This only kicks in when x86-64 abi lowering decides it likes us.
      
      llvm-svn: 107104
      15ec361b
    • Devang Patel's avatar
      The comment string does not match for all targets. PowerPC uses ;. · 1575e9f5
      Devang Patel authored
      llvm-svn: 107103
      1575e9f5
    • Craig Silverstein's avatar
      A few prettifications. Also renamed TraverseInitializer to · 1b28a429
      Craig Silverstein authored
      TraverseConstructorInitializer, to be a bit clearer.
      
      llvm-svn: 107102
      1b28a429
    • Ted Kremenek's avatar
      Per Doug's suggestion, move check for invalid SourceLocation into · 54140270
      Ted Kremenek authored
      cxloc::translateSourceLocation() (thus causing all clients of this
      function to have the same behavior).
      
      llvm-svn: 107101
      54140270
    • Greg Clayton's avatar
      Fixed debug map in executable + DWARF in .o debugging on Mac OS X. · 8d38ac45
      Greg Clayton authored
      Added the ability to dump any file in the global module cache using any of
      the "image dump" commands. This allows us to dump the .o files that are used
      with DWARF + .o since they don't belong the the target list for the current
      target.
      
      llvm-svn: 107100
      8d38ac45
    • Chris Lattner's avatar
      Change CGCall to handle the "coerce" case where the coerce-to type · 3dd716c3
      Chris Lattner authored
      is a FCA to pass each of the elements as individual scalars.  This
      produces code fast isel is less likely to reject and is easier on
      the optimizers.
      
      For example, before we would compile:
      struct DeclGroup { long NumDecls; char * Y; };
      char * foo(DeclGroup D) {
        return D.NumDecls+D.Y;
      }
      
      to:
      %struct.DeclGroup = type { i64, i64 }
      
      define i64 @_Z3foo9DeclGroup(%struct.DeclGroup) nounwind {
      entry:
        %D = alloca %struct.DeclGroup, align 8          ; <%struct.DeclGroup*> [#uses=3]
        store %struct.DeclGroup %0, %struct.DeclGroup* %D, align 1
        %tmp = getelementptr inbounds %struct.DeclGroup* %D, i32 0, i32 0 ; <i64*> [#uses=1]
        %tmp1 = load i64* %tmp                          ; <i64> [#uses=1]
        %tmp2 = getelementptr inbounds %struct.DeclGroup* %D, i32 0, i32 1 ; <i64*> [#uses=1]
        %tmp3 = load i64* %tmp2                         ; <i64> [#uses=1]
        %add = add nsw i64 %tmp1, %tmp3                 ; <i64> [#uses=1]
        ret i64 %add
      }
      
      Now we get:
      
      %0 = type { i64, i64 }
      %struct.DeclGroup = type { i64, i8* }
      
      define i8* @_Z3foo9DeclGroup(i64, i64) nounwind {
      entry:
        %D = alloca %struct.DeclGroup, align 8          ; <%struct.DeclGroup*> [#uses=3]
        %2 = insertvalue %0 undef, i64 %0, 0            ; <%0> [#uses=1]
        %3 = insertvalue %0 %2, i64 %1, 1               ; <%0> [#uses=1]
        %4 = bitcast %struct.DeclGroup* %D to %0*       ; <%0*> [#uses=1]
        store %0 %3, %0* %4, align 1
        %tmp = getelementptr inbounds %struct.DeclGroup* %D, i32 0, i32 0 ; <i64*> [#uses=1]
        %tmp1 = load i64* %tmp                          ; <i64> [#uses=1]
        %tmp2 = getelementptr inbounds %struct.DeclGroup* %D, i32 0, i32 1 ; <i8**> [#uses=1]
        %tmp3 = load i8** %tmp2                         ; <i8*> [#uses=1]
        %add.ptr = getelementptr inbounds i8* %tmp3, i64 %tmp1 ; <i8*> [#uses=1]
        ret i8* %add.ptr
      }
      
      Elimination of the FCA inside the function is still-to-come.
      
      llvm-svn: 107099
      3dd716c3
    • Craig Silverstein's avatar
      Fix up ClassTemplateSpecializationDecl: For implicit instantiations · a37aa88e
      Craig Silverstein authored
      ("set<int> x;"), we don't want to recurse at all, since the
      instatiated class isn't written in the source code anywhere.  (Note
      the instatiated *type* -- set<int> -- is written, and will still get a
      callback of TemplateSpecializationType).  For explicit instantiations
      ("template set<int>;"), we do need a callback, since this is the only
      callback that's made for this instantiation.  We use
      getTypeAsWritten() to distinguish.
      
      We will still need to figure out how to handle template
      specializations, which probably are still not quite correct.
      
      Reviewed by chandlerc
      
      llvm-svn: 107098
      a37aa88e
    • Bob Wilson's avatar
      Unlike other targets, ARM now uses BUILD_VECTORs post-legalization so they · 269a89fd
      Bob Wilson authored
      can't be changed arbitrarily by the DAGCombiner without checking if it is
      running after legalization.
      
      llvm-svn: 107097
      269a89fd
    • Chris Lattner's avatar
      make the trivial forms of CreateCoerced{Load|Store} trivial. · d200eda4
      Chris Lattner authored
      llvm-svn: 107091
      d200eda4
    • Dale Johannesen's avatar
      Refix XTARGET. Previous attempt matches on powerpc-apple-darwin, · 764b056c
      Dale Johannesen authored
      although I don't see why.
      
      llvm-svn: 107090
      764b056c
    • Dale Johannesen's avatar
      Attempt to fix XTARGET. · 65cd5ba7
      Dale Johannesen authored
      llvm-svn: 107088
      65cd5ba7
    • Argyrios Kyrtzidis's avatar
      Modify the way sub-statements are stored and retrieved from PCH. · d0795b2d
      Argyrios Kyrtzidis authored
      Before this commit, sub-stmts were stored as encountered and when they were placed in the Stmts stack we had to know what index
      each stmt operand has. This complicated supporting variable sub-stmts and sub-stmts that were contained in TypeSourceInfos, e.g.
      
      x = sizeof(int[1]);
      
      would crash PCH.
      
      Now, sub-stmts are stored in reverse order, from last to first, so that when reading them, in order to get the next sub-stmt we just
      need to pop the last stmt from the stack. This greatly simplified the way stmts are written and read (just use PCHWriter::AddStmt and
       PCHReader::ReadStmt accordingly) and allowed variable stmt operands and TypeSourceInfo exprs.
      
      llvm-svn: 107087
      d0795b2d
    • Bob Wilson's avatar
      Make the ARMCodeEmitter identify Thumb functions via ARMFunctionInfo instead · 4469a892
      Bob Wilson authored
      of the Subtarget.
      
      llvm-svn: 107086
      4469a892
    • Devang Patel's avatar
      Use DW_FORM_addr for DW_AT_entry_pc. · 1de21ec4
      Devang Patel authored
      llvm-svn: 107085
      1de21ec4
    • Dan Gohman's avatar
      Add a blurb about -scev-aa. · b160ba46
      Dan Gohman authored
      llvm-svn: 107080
      b160ba46
    • Dale Johannesen's avatar
      In asm's, output operands with matching input constraints · 17feb07c
      Dale Johannesen authored
      have to be registers, per gcc documentation.  This affects
      the logic for determining what "g" should lower to.  PR 7393.
      A couple of existing testcases are affected.
      
      llvm-svn: 107079
      17feb07c
  2. Jun 28, 2010
Loading