Skip to content
  1. Jan 22, 2015
  2. Jan 21, 2015
    • David Blaikie's avatar
      DebugInfo: Use distinct inlinedAt MDLocations to avoid separate inlined calls being coalesced · df706288
      David Blaikie authored
      When two calls from the same MDLocation are inlined they currently get
      treated as one inlined function call (creating difficulty debugging,
      duplicate variables, etc).
      
      Clang worked around this by including column information on inline calls
      which doesn't address LTO inlining or calls to the same function from
      the same line and column (such as through a macro). It also didn't
      address ctor and member function calls.
      
      By making the inlinedAt locations distinct, every call site has an
      explicitly distinct location that cannot be coalesced with any other
      call.
      
      This can produce linearly (2x in the worst case where every call is
      inlined and the call instruction has a non-call instruction at the same
      location) more debug locations. Any increase beyond that are in cases
      where the Clang workaround was insufficient and the new scheme is
      creating necessary distinct nodes that were being erroneously coalesced
      previously.
      
      After this change to LLVM the incomplete workarounds in Clang. That
      should reduce the number of debug locations (in a build without column
      info, the default on Darwin, not the default on Linux) by not creating
      pseudo-distinct locations for every call to an inline function.
      
      (oh, and I made the inlined-at chain rebuilding iterative instead of
      recursive because I was having trouble wrapping my head around it the
      way it was - open to discussion on the right design for that function
      (including going back to a recursive solution))
      
      llvm-svn: 226736
      df706288
    • David Blaikie's avatar
      DebugInfo: Remove distinct-call-inlining test case as this is being fixed in LLVM. · 07c6bfd5
      David Blaikie authored
      This test will start failing shortly once this bug is fixed in LLVM. At
      that point this behavior is no longer required in Clang and will be
      removed. In the interim, remove this test just to avoid the race between
      the LLVM and Clang commits.
      
      After the LLVM commit, I'll cleanup the workaround behavior in Clang.
      
      llvm-svn: 226735
      07c6bfd5
    • Matt Arsenault's avatar
      R600: Add checks for urem/srem by a constant · b45c78bc
      Matt Arsenault authored
      Make sure this uses the faster expansion using magic constants
      to avoid the full division path.
      
      llvm-svn: 226734
      b45c78bc
    • Matthias Braun's avatar
      LiveIntervalAnalysis: Mark subregister defs as undef when we determined they... · c1988f38
      Matthias Braun authored
      LiveIntervalAnalysis: Mark subregister defs as undef when we determined they are only reading a dead superregister value
      
      This was not necessary before as this case can only be detected when the
      liveness analysis is at subregister level.
      
      llvm-svn: 226733
      c1988f38
    • Greg Fitzgerald's avatar
      Fix five of the shared library build targets · 4b6a7e35
      Greg Fitzgerald authored
      Before this patch there was a cyclic dependency between lldCore and
      lldReaderWriter.  Only lldConfig could be built as a shared library.
      
      * Moved Reader and Writer base classes into lldCore.
      * The following shared libraries can now be built:
           lldCore
           lldYAML
           lldNative
           lldPasses
           lldReaderWriter
      
      Differential Revision: http://reviews.llvm.org/D7105
      
      From: Greg Fitzgerald <garious@gmail.com>
      llvm-svn: 226732
      4b6a7e35
    • Enrico Granata's avatar
      Speed these tests up quite significantly by using the SB API instead of... · e24b8a03
      Enrico Granata authored
      Speed these tests up quite significantly by using the SB API instead of running the "continue" command at each step
      The reason why one mechanism is so much faster than the other (as in, ~10 seconds vs. ~1 minute) is quite baffling to me at the moment, but these are not process handling tests, so do what's faster
      
      llvm-svn: 226730
      e24b8a03
    • Chris Bieneman's avatar
      Adding a new cl::HideUnrelatedOptions API to allow clang to migrate off cl::getRegisteredOptions. · 9e13af7a
      Chris Bieneman authored
      Summary: cl::getRegisteredOptions really exposes some of the innards of how command line parsing is implemented. Exposing new APIs that allow us to disentangle client code from implementation details will allow us to make more extensive changes to command line parsing.
      
      Reviewers: chandlerc, dexonsmith, beanz
      
      Reviewed By: dexonsmith
      
      Subscribers: llvm-commits
      
      Differential Revision: http://reviews.llvm.org/D7100
      
      llvm-svn: 226729
      9e13af7a
    • Simon Pilgrim's avatar
      [X86][SSE] Added support for SSE3 lane duplication shuffle instructions · b16b09b1
      Simon Pilgrim authored
      This patch adds shuffle matching for the SSE3 MOVDDUP, MOVSLDUP and MOVSHDUP instructions. The big use of these being that they avoid many single source shuffles from needing to use (pre-AVX) dual source instructions such as SHUFPD/SHUFPS: causing extra moves and preventing load folds.
      
      Adding these instructions uncovered an issue in XFormVExtractWithShuffleIntoLoad which crashed on single operand shuffle instructions (now fixed). It also involved fixing getTargetShuffleMask to correctly identify theses instructions as unary shuffles.
      
      Also adds a missing tablegen pattern for MOVDDUP.
      
      Differential Revision: http://reviews.llvm.org/D7042
      
      llvm-svn: 226716
      b16b09b1
    • Matt Arsenault's avatar
      R600: Add missing tests for i64 srem · d9987c7b
      Matt Arsenault authored
      llvm-svn: 226713
      d9987c7b
    • Vince Harron's avatar
      This patch gets remote-linux platform able to run processes · 1b5a74ee
      Vince Harron authored
      Make sure the selected platform is always used
      
      Make sure that the host uses the connect://hostname to connect to both
      the lldb-platform and the lldb-gdbserver rather than what the platform
      reports as the hostname of the lldb-gdbserver
      
      Make sure that lldb-platform uses the IP address on it's connection
      back to the host instead of the hostname that the host sends to it
      when launching lldb-gdbserver with the remote host information
      
      Tested on OSX and Linux
      
      llvm-svn: 226712
      1b5a74ee
    • Jon Roelofs's avatar
      Fix load-store optimizer on thumbv4t · 229eb4ca
      Jon Roelofs authored
      Thumbv4t does not have lo->lo copies other than MOVS,
      and that can't be predicated. So emit MOVS when needed
      and bail if there's a predicate.
      
      http://reviews.llvm.org/D6592
      
      llvm-svn: 226711
      229eb4ca
    • George Burgess IV's avatar
      Added test to cover the CFLAA bitset indexing bug. · a1255d3a
      George Burgess IV authored
      llvm-svn: 226710
      a1255d3a
    • Rafael Espindola's avatar
      Use a CHECK-LABEL. NFC · 21443775
      Rafael Espindola authored
      llvm-svn: 226709
      21443775
    • David Majnemer's avatar
      InstCombine: Don't strip bitcasts off of callsites marked 'thunk' · 4c0a6e91
      David Majnemer authored
      The return type of a thunk is meaningless, we just want the arguments
      and return value to be forwarded.
      
      llvm-svn: 226708
      4c0a6e91
    • Reid Kleckner's avatar
      Add the "thunk" attribute to MS ABI virtual member pointers · 9da94483
      Reid Kleckner authored
      This attribute implies indicates that the function musttail calls
      another function and returns whatever it returns. The return type of the
      thunk is meaningless, as the thunk can dynamically call different
      functions with different return types. So long as the callers bitcast
      the thunk with the correct type, behavior is well defined.
      
      This attribute was necessary to fix PR20944, where the indirect call
      combiner noticed that the thunk returned void and replaced the results
      of the indirect call instruction with undef.
      
      Over-the-shoulder reviewed by David Majnemer.
      
      llvm-svn: 226707
      9da94483
Loading