Skip to content
  1. Jan 05, 2014
  2. Jan 04, 2014
  3. Jan 03, 2014
    • Nico Weber's avatar
      Add a LLVM_DUMP_METHOD macro. · 7408c706
      Nico Weber authored
      The motivation is to mark dump methods as used in debug builds so that they can
      be called from lldb, but to not do so in release builds so that they can be
      dead-stripped.
      
      There's lots of potential follow-up work suggested in the thread
      "Should dump methods be LLVM_ATTRIBUTE_USED only in debug builds?" on cfe-dev,
      but everyone seems to agreen on this subset.
      
      Macro name chosen by fair coin toss.
      
      llvm-svn: 198456
      7408c706
    • Jack Carter's avatar
    • Adrian Prantl's avatar
      81e5cd9e
    • Reid Kleckner's avatar
      Revert "For disassembly when adding a symbolic operand that is a C++ symbol... · 19bccb79
      Reid Kleckner authored
      Revert "For disassembly when adding a symbolic operand that is a C++ symbol name, also put the human readable name in a comment."
      
      This reverts commit r198441.
      
      This change doesn't build on Windows, and doesn't do the right thing on
      Linux and other platforms that don't use a _Z prefix instead of __Z for
      C++ names.
      
      It also had no tests, so it wasn't clear how to fix it forward.
      
      llvm-svn: 198445
      19bccb79
    • Rafael Espindola's avatar
      Fix typo. · aa842f06
      Rafael Espindola authored
      Thanks to Owen Anderson for noticing it.
      
      llvm-svn: 198443
      aa842f06
    • Kevin Enderby's avatar
      For disassembly when adding a symbolic operand that is a C++ · b05bec7c
      Kevin Enderby authored
      symbol name, also put the human readable name in a comment.
      
      Also fix a bug in LLVMDisasmInstruction() that was not flushing
      the raw_svector_ostream for the disassembled instruction string
      before copying it to the output buffer that was causing truncation
      of the output.
      
      rdar://10173828
      
      llvm-svn: 198441
      b05bec7c
    • Rafael Espindola's avatar
      Make the llvm mangler depend only on DataLayout. · 58873566
      Rafael Espindola authored
      Before this patch any program that wanted to know the final symbol name of a
      GlobalValue had to link with Target.
      
      This patch implements a compromise solution where the mangler uses DataLayout.
      This way, any tool that already links with Target (llc, clang) gets the exact
      behavior as before and new IR files can be mangled without linking with Target.
      
      With this patch the mangler is constructed with just a DataLayout and DataLayout
      is extended to include the information the Mangler needs.
      
      llvm-svn: 198438
      58873566
    • Ana Pazos's avatar
      [AArch64][NEON] Added SXTL and SXTL2 instruction aliases · e891c5f2
      Ana Pazos authored
      llvm-svn: 198437
      e891c5f2
    • David Blaikie's avatar
      Revert "Revert "Debug Info: Type Units: Simplify type hashing using IR-provided unique names."" · cfb2115e
      David Blaikie authored
      This reverts commit r198398, thus reapplying r198397.
      
      I had accidentally introduced an endianness issue when applying the hash
      to the type unit. Using support::ulittle64_t in the reinterpret_cast in
      addDwarfTypeUnitType fixes this issue.
      
      Original commit message:
      
      Debug Info: Type Units: Simplify type hashing using IR-provided unique
      names.
      
      What's good for LTO metadata size problems ought to be good for non-LTO
      debug info size too, so let's rely on the same uniqueness in both cases.
      If it's insufficient for non-LTO for whatever reason (since we now won't
      be uniquing CU-local types or any C types - but these are likely to not
      be the most significant contributors to type bloat) we should consider a
      frontend solution that'll help both LTO and non-LTO alike, rather than
      using DWARF-level DIE-hashing that only helps non-LTO debug info size.
      
      It's also much simpler this way and benefits C++ even more since we can
      deduplicate lexically separate definitions of the same C++ type since
      they have the same mangled name.
      
      llvm-svn: 198436
      cfb2115e
    • David Peixotto's avatar
      Fix loop rerolling pass failure with non-consant loop lower bound · ea9ba446
      David Peixotto authored
      The loop rerolling pass was failing with an assertion failure from a
      failed cast on loops like this:
      
        void foo(int *A, int *B, int m, int n) {
          for (int i = m; i < n; i+=4) {
            A[i+0] = B[i+0] * 4;
            A[i+1] = B[i+1] * 4;
            A[i+2] = B[i+2] * 4;
            A[i+3] = B[i+3] * 4;
          }
        }
      
      The code was casting the SCEV-expanded code for the new
      induction variable to a phi-node. When the loop had a non-constant
      lower bound, the SCEV expander would end the code expansion with an
      add insted of a phi node and the cast would fail.
      
      It looks like the cast to a phi node was only needed to get the
      induction variable value coming from the backedge to compute the end
      of loop condition. This patch changes the loop reroller to compare
      the induction variable to the number of times the backedge is taken
      instead of the iteration count of the loop. In other words, we stop
      the loop when the current value of the induction variable ==
      IterationCount-1. Previously, the comparison was comparing the
      induction variable value from the next iteration == IterationCount.
      
      This problem only seems to occur on 32-bit targets. For some reason,
      the loop is not rerolled on 64-bit targets.
      
      PR18290
      
      llvm-svn: 198425
      ea9ba446
    • Alp Toker's avatar
      MSVC 2010 build fix · 64f3a6f5
      Alp Toker authored
      Back out the part of r198399 that enabled LLVM_FINAL/LLVM_OVERRIDE on VS 2010.
      
      DwarfUnit.h legitimately uses them on destructors which unfortunately triggers
      Compiler Error C3665 (override specifier not allowed on a destructor/finalizer)
      prior to MSVC 2012:
      
        virtual ~DwarfCompileUnit() LLVM_OVERRIDE;
      
      llvm-svn: 198401
      64f3a6f5
    • Arnold Schwaighofer's avatar
      BasicAA: Use reachabilty instead of dominance for checking value equality in phi · 833a82ec
      Arnold Schwaighofer authored
      cycles
      
      This allows the value equality check to work even if we don't have a dominator
      tree. Also add some more comments.
      
      I was worried about compile time impacts and did not implement reachability but
      used the dominance check in the initial patch. The trade-off was that the
      dominator tree was required.
      The llvm utility function isPotentiallyReachable cuts off the recursive search
      after 32 visits. Testing did not show any compile time regressions showing my
      worries unjustfied.
      
      No compile time or performance regressions at O3 -flto -mavx on test-suite +
      externals.
      
      Addresses review comments from r198290.
      
      llvm-svn: 198400
      833a82ec
    • Alp Toker's avatar
      Enable LLVM_FINAL, LLVM_OVERRIDE and LLVM_HAS_VARIADIC_TEMPLATES with more gcc and MSVC versions · 90e5fff1
      Alp Toker authored
      The 'sealed' definition of LLVM_FINAL can be dropped once VS 2010 is
      decommissioned.
      
      Some of this is speculative so will keep an eye on the waterfall -- ping me if
      you see failures.
      
      Incremental work towards C++11 migration.
      
      llvm-svn: 198399
      90e5fff1
Loading