Skip to content
  1. Nov 14, 2010
  2. Nov 13, 2010
    • Greg Clayton's avatar
      Fixed an issue where we might not find global variables by name when we have · ba2d22d8
      Greg Clayton authored
      a debug map with DWARF in the .o files due to the attemted shortcut that was
      being taken where the global variables were being searched for by looking in
      the symbol table. The problem with the symbols in the symbol table is we don't
      break apart the symbol names for symbols when they are mangled into basename
      and the fully mangled name since this would take a lot of CPU time to chop up
      the mangled names and try and find the basenames. The DWARF info typically has
      this broken up for us where the basename of the variable is in a the DW_AT_name
      attribute, and the mangled name is in the DW_AT_MIPS_linkage_name attribute.
      Now we correctly find globals by searching all OSO's for the information so we
      can take advantage of this split information. 
      
      llvm-svn: 119012
      ba2d22d8
    • Fariborz Jahanian's avatar
      Block API patch to do copy ctor of copied-in cxx objects in · e988bdac
      Fariborz Jahanian authored
      copy helper function and dtor of copied cxx objects
      in dispose helper functions. __block variables
      TBD next.
      
      llvm-svn: 119011
      e988bdac
    • Duncan Sands's avatar
      Testcase to go along with commit 118923 ("Have GVN simplify instructions · 8c58ba41
      Duncan Sands authored
      as it goes").  Before -std-compile-opts only got it down to
        %a = tail call i32 @foo(i32 0) readnone
        %x = tail call i32 @foo(i32 %a) readnone
        %y = tail call i32 @foo(i32 %a) readnone
        %z = icmp eq i32 %x, %y
        ret i1 %z
      while now -basicaa -gvn alone reduce it to
        %a = call i32 @foo(i32 0) readnone
        %x = call i32 @foo(i32 %a) readnone
        ret i1 true
      
      llvm-svn: 119009
      8c58ba41
    • Douglas Gregor's avatar
      When complaining about ambiguous overload resolution for a unary or · 052caec1
      Douglas Gregor authored
      binary operator, provide the types.
      
      llvm-svn: 119008
      052caec1
    • Peter Collingbourne's avatar
      Recognise 32-bit ror-based bswap implementation used by uclibc · feea10bc
      Peter Collingbourne authored
      llvm-svn: 119007
      feea10bc
    • Peter Collingbourne's avatar
      Support ; as asm separator · 1c6437a6
      Peter Collingbourne authored
      llvm-svn: 119006
      1c6437a6
    • Douglas Gregor's avatar
      When we're type-checking the result of calling a conversion function · 72ebdabc
      Douglas Gregor authored
      (while computing user conversion sequences), make sure that a result
      of class type is a complete class type. Had we gone through
      ActOnCallExpr, this would have happened when we built the CallExpr.
      
      Fixes PR8425.
      
      llvm-svn: 119005
      72ebdabc
    • Daniel Dunbar's avatar
      Driver: Support -Oz as an alias for -Os. · fc8aefb0
      Daniel Dunbar authored
      llvm-svn: 119003
      fc8aefb0
    • Duncan Sands's avatar
      Generalize the reassociation transform in SimplifyCommutative (now renamed to · 641baf16
      Duncan Sands authored
      SimplifyAssociativeOrCommutative) "(A op C1) op C2" -> "A op (C1 op C2)",
      which previously was only done if C1 and C2 were constants, to occur whenever
      "C1 op C2" simplifies (a la InstructionSimplify).  Since the simplifying operand
      combination can no longer be assumed to be the right-hand terms, consider all of
      the possible permutations.  When compiling "gcc as one big file", transform 2
      (i.e. using right-hand operands) fires about 4000 times but it has to be said
      that most of the time the simplifying operands are both constants.  Transforms
      3, 4 and 5 each fired once.  Transform 6, which is an existing transform that
      I didn't change, never fired.  With this change, the testcase is now optimized
      perfectly with one run of instcombine (previously it required instcombine +
      reassociate + instcombine, and it may just have been luck that this worked).
      
      llvm-svn: 119002
      641baf16
Loading