Skip to content
  1. Jan 06, 2014
  2. Jan 05, 2014
  3. Jan 04, 2014
    • Alp Toker's avatar
      Add missed cleanup from r198456 · f929e09b
      Alp Toker authored
      All other uses of this macro in LLVM/clang have been moved to the function
      definition so follow suite (and the usage advice) here too for consistency.
      
      llvm-svn: 198516
      f929e09b
    • Craig Topper's avatar
      Tag x86 move to/from debug/control registers with Not64BitMode/In64BitMode.... · bc281ad8
      Craig Topper authored
      Tag x86 move to/from debug/control registers with Not64BitMode/In64BitMode. Remove disassembler hack.
      
      llvm-svn: 198515
      bc281ad8
    • Alp Toker's avatar
      Revert "Fix PR18361: Invalidate LoopDispositions after LoopSimplify hoists things." · 5e9f3265
      Alp Toker authored
      This commit was the source of crasher PR18384:
      
      While deleting: label %for.cond127
      An asserting value handle still pointed to this value!
      UNREACHABLE executed at llvm/lib/IR/Value.cpp:671!
      
      Reverting to get the builders green, feel free to re-land after fixing up.
      (Renato has a handy isolated repro if you need it.)
      
      This reverts commit r198478.
      
      llvm-svn: 198503
      5e9f3265
    • Venkatraman Govindaraju's avatar
    • Venkatraman Govindaraju's avatar
      [SparcV9]: Implement RETURNADDR and FRAMEADDR lowering in SPARC64. · 96ab3bc5
      Venkatraman Govindaraju authored
      Fixes PR18356.
      
      llvm-svn: 198480
      96ab3bc5
    • Andrew Trick's avatar
      Fix PR18361: Invalidate LoopDispositions after LoopSimplify hoists things. · aceac974
      Andrew Trick authored
      getSCEV for an ashr instruction creates an intermediate zext
      expression when it truncates its operand.
      
      The operand is initially inside the loop, so the narrow zext
      expression has a non-loop-invariant loop disposition.
      
      LoopSimplify then runs on an outer loop, hoists the ashr operand, and
      properly invalidate the SCEVs that are mapped to value.
      
      The SCEV expression for the ashr is now an AddRec with the hoisted
      value as the now loop-invariant start value.
      
      The LoopDisposition of this wide value was properly invalidated during
      LoopSimplify.
      
      However, if we later get the ashr SCEV again, we again try to create
      the intermediate zext expression. We get the same SCEV that we did
      earlier, and it is still cached because it was never mapped to a
      Value. When we try to create a new AddRec we abort because we're using
      the old non-loop-invariant LoopDisposition.
      
      I don't have a solution for this other than to clear LoopDisposition
      when LoopSimplify hoists things.
      
      I think the long-term strategy should be to perform LoopSimplify on
      all loops before computing SCEV and before running any loop opts on
      individual loops. It's possible we may want to rerun LoopSimplify on
      individual loops, but it should rarely do anything, so rarely require
      invalidating SCEV.
      
      llvm-svn: 198478
      aceac974
    • Craig Topper's avatar
      Remove JMP64pcrel32 (jmpq ). There are no tests for it. I'm pretty sure it... · 1da85823
      Craig Topper authored
      Remove JMP64pcrel32 (jmpq ). There are no tests for it. I'm pretty sure it won't be emitted correctly since it was set to NoImm. And I can't prove that gas accepts 'jmpq' with an immediate either. Remove the special case for it from the disassembler table generator.
      
      llvm-svn: 198475
      1da85823
  4. 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
    • 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
    • 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
Loading