Skip to content
  1. Feb 08, 2017
  2. Feb 07, 2017
    • Eugene Zelenko's avatar
      [PowerPC] Fix some Include What You Use warnings; other minor fixes (NFC). · ee513ed8
      Eugene Zelenko authored
      This is preparation to reduce MC headers dependencies.
      
      llvm-svn: 294368
      ee513ed8
    • Eric Fiselier's avatar
      [CMake] Fix USE_LLVM_SANITIZER configuration for out-of-tree builds. · bd9a8256
      Eric Fiselier authored
      Summary:
      r291918 changed `HandleLLVMOptions.cmake` to add `-fsanitize-blacklist=<llvm-file>` when `LLVM_USE_SANITIZER=Undefined` is specified. This breaks out-of-tree users of `LLVM_USE_SANITIZER` since that file is not present.
      
      This patch fixes the issue by checking if the file exists first.
      
      Reviewers: mgorny, bogner, vitalybuka, krasin
      
      Reviewed By: krasin
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D29686
      
      llvm-svn: 294367
      bd9a8256
    • Kostya Serebryany's avatar
      [libFuzzer] replace std::random_shuffle with std::shuffle as... · 6ac64c3a
      Kostya Serebryany authored
      [libFuzzer] replace std::random_shuffle with std::shuffle as std::random_shuffle is being deprecated in C++17. Also simplify fuzzer::Random. NFC
      
      llvm-svn: 294366
      6ac64c3a
    • Simon Pilgrim's avatar
      [X86][SSE] Add SSE2 build vector insertion tests · 39c138cc
      Simon Pilgrim authored
      llvm-svn: 294365
      39c138cc
    • Daniel Berlin's avatar
    • Simon Pilgrim's avatar
      [X86][SSE] Add additional v4i32/v8i16/v16i8 build vector insertion tests · 90ee0b27
      Simon Pilgrim authored
      With particular interest in cases where we don't make use of implicit zeroing or fail to break register dependencies
      
      llvm-svn: 294363
      90ee0b27
    • David Blaikie's avatar
      Fix some missing negations in the traits checking from r294349 · c2f323ff
      David Blaikie authored
      llvm-svn: 294357
      c2f323ff
    • Wolfgang Pieb's avatar
      DebugInfo: Track spilled variables in LiveDebugValues · 02f32937
      Wolfgang Pieb authored
      When variables are spilled to the stack by the register allocator, keep track of their
      debug locations in LiveDebugValues and insert DBG_VALUE instructions at the appropriate
      place. Ensure that the locations are propagated down the dominator tree via the existing 
      mechanisms.
      
      Reviewer: aprantl
      
      Differential Revision: https://reviews.llvm.org/D29500
      
      llvm-svn: 294356
      02f32937
    • Kevin Enderby's avatar
      Fix a typo in an error message for a check of invalid Mach-O files where · 86d8bd1d
      Kevin Enderby authored
      it was printing the field name fileoff instead of filesize.  The original check
      was added in r278557.
      
      This was found in tracking down the problem that lead to the fix in
      r293842 - [dsymutil] Fix __LINKEDIT vmsize in dsymutil upgrade path
      
      rdar://30386075
      
      llvm-svn: 294354
      86d8bd1d
    • Daniel Berlin's avatar
      Add PredicateInfo utility and printing pass · 439042b7
      Daniel Berlin authored
      Summary:
      This patch adds a utility to build extended SSA (see "ABCD: eliminating
      array bounds checks on demand"), and an intrinsic to support it. This
      is then used to get functionality equivalent to propagateEquality in
      GVN, in NewGVN (without having to replace instructions as we go). It
      would work similarly in SCCP or other passes. This has been talked
      about a few times, so i built a real implementation and tried to
      productionize it.
      
      Copies are inserted for operands used in assumes and conditional
      branches that are based on comparisons (see below for more)
      
      Every use affected by the predicate is renamed to the appropriate
      intrinsic result.
      
      E.g.
      %cmp = icmp eq i32 %x, 50
      br i1 %cmp, label %true, label %false
      true:
      ret i32 %x
      false:
      ret i32 1
      
      will become
      
      %cmp = icmp eq i32, %x, 50
      br i1 %cmp, label %true, label %false
      true:
      ; Has predicate info
      ; branch predicate info { TrueEdge: 1 Comparison: %cmp = icmp eq i32 %x, 50 }
      %x.0 = call @llvm.ssa_copy.i32(i32 %x)
      ret i32 %x.0
      false:
      ret i23 1
      
      (you can use -print-predicateinfo to get an annotated-with-predicateinfo dump)
      
      This enables us to easily determine what operations are affected by a
      given predicate, and how operations affected by a chain of
      predicates.
      
      Reviewers: davide, sanjoy
      
      Subscribers: mgorny, llvm-commits, Prazek
      
      Differential Revision: https://reviews.llvm.org/D29519
      
      Update for review comments
      
      Fix a bug Nuno noticed where we are giving information about and/or on edges where the info is not useful and easy to use wrong
      
      Update for review comments
      
      llvm-svn: 294351
      439042b7
    • Duncan P. N. Exon Smith's avatar
      ADT: Add explicit conversions for reverse ilist iterators · fcd69daa
      Duncan P. N. Exon Smith authored
      Add explicit conversions between forward and reverse ilist iterators.
      These follow the conversion conventions of std::reverse_iterator, which
      are off-by-one: the newly-constructed "reverse" iterator dereferences to
      the previous node of the one sent in.  This has the benefit of
      converting reverse ranges in place:
        - If [I, E) is a valid range,
        - then [reverse(E), reverse(I)) gives the same range in reverse order.
      
      ilist_iterator::getReverse() is unchanged: it returns a reverse iterator
      to the *same* node.
      
      llvm-svn: 294349
      fcd69daa
    • Hans Wennborg's avatar
      [X86] Disable conditional tail calls (PR31257) · 819e3e02
      Hans Wennborg authored
      They are currently modelled incorrectly (as calls, which clobber
      registers, confusing e.g. Machine Copy Propagation).
      
      Reverting until we figure out the proper solution.
      
      llvm-svn: 294348
      819e3e02
    • Sanjoy Das's avatar
      Fix the docs build · 968d70ff
      Sanjoy Das authored
      (and add a bit of formatting.)
      
      llvm-svn: 294347
      968d70ff
    • Tim Northover's avatar
      GlobalISel: translate @llvm.va_end intrinsic. · d0d025ae
      Tim Northover authored
      Turns out no-one actually cares about this one (at least) in tree so we can
      just drop it entirely.
      
      llvm-svn: 294345
      d0d025ae
    • Sanjay Patel's avatar
      [x86] improve comments for SHRUNKBLEND node creation; NFC · b0cee9b2
      Sanjay Patel authored
      llvm-svn: 294344
      b0cee9b2
    • Matthew Simpson's avatar
      [LV] Add new ARM/AArch64 interleaved access cost model tests (NFC) · 3877f397
      Matthew Simpson authored
      llvm-svn: 294342
      3877f397
    • Daniel Berlin's avatar
      This patch adds a ssa_copy intrinsic, as part of splitting up D29316. · 2c438a30
      Daniel Berlin authored
      Summary:
      The intrinsic, marked as returning it's first argument, has no code
      generation effect (though currently not every optimization pass knows
      that intrinsics with the returned attribute can be looked through).
      
      It is about to be used to by the PredicateInfo pass to attach
      predicate information to existing operands, and be able to tell what
      the predicate information affects.
      
      We deliberately do not attach any info through a second operand so
      that the intrinsics do not need to dominate the comparisons/etc (since
      in the case of assume, we may want to push them up the post-dominator
      tree).
      
      Reviewers: davide, sanjoy
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D29517
      
      llvm-svn: 294341
      2c438a30
    • Daniel Berlin's avatar
      Replace custom written DFS walk with depth first iterator · 31396acd
      Daniel Berlin authored
      Summary:
      GenericDomTreeConstruction had its own written DFS walk.
      It is basically identical to the DFS walk df_* is doing in the iterators.
      the one difference is that df_iterator uses an internal visited set.
      The GenericDomTreeConstruction one reused a field in an existing densemap lookup.
      
      Time-wise, this way is actually more cache-friendly (the previous way has a random store
      into a successor's info, the new way does that store at the same time and in the same place
      as other stores to the same info)
      
      It costs some very small amount of memory to do this, and one we pay in some other part of
      dom tree construction *anyway*, so we aren't really increasing dom tree constructions's
      peak memory usage.
      
      It could still be changed to use the old field with a little work on df_ext_* if we care
      (and if someone find performance regressions)
      
      Reviewers: chandlerc
      
      Reviewed By: chandlerc
      
      Subscribers: Eugene.Zelenko, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D8932
      
      llvm-svn: 294339
      31396acd
    • Sanjoy Das's avatar
      [ImplicitNullCheck] Extend Implicit Null Check scope by using stores · 2f63cbcc
      Sanjoy Das authored
      Summary:
      This change allows usage of store instruction for implicit null check.
      
      Memory Aliasing Analisys is not used and change conservatively supposes
      that any store and load may access the same memory. As a result
      re-ordering of store-store, store-load and load-store is prohibited.
      
      Patch by Serguei Katkov!
      
      Reviewers: reames, sanjoy
      
      Reviewed By: sanjoy
      
      Subscribers: atrick, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D29400
      
      llvm-svn: 294338
      2f63cbcc
    • Sanjay Patel's avatar
      [x86] use range-for loops; NFCI · ef6d573f
      Sanjay Patel authored
      llvm-svn: 294337
      ef6d573f
    • Matthew Simpson's avatar
      [LV] Simplify ARM/AArch64 interleaved access cost model tests (NFC) · 1cd02f13
      Matthew Simpson authored
      This patch removes unneeded instructions from the existing ARM/AArch64
      interleaved access cost model tests. I'll be adding a similar set of tests in a
      follow-on patch to increase coverage.
      
      llvm-svn: 294336
      1cd02f13
    • Chris Bieneman's avatar
      [CMake] Move ninja job pool options to HandleLLVMOptions · d8ec4427
      Chris Bieneman authored
      Moving the Ninja job pool configuration settings into the HandleLLVMOptions module will allow standalone builds of LLVM sub-projects to use the LLVM options without needing to re-implement them.
      
      llvm-svn: 294334
      d8ec4427
    • Sanjay Patel's avatar
      [x86] use getSignBit() for clarity; NFCI · 633ecbf3
      Sanjay Patel authored
      llvm-svn: 294333
      633ecbf3
Loading