1. Feb 03, 2017
  2. Feb 02, 2017
    • Teresa Johnson's avatar
      [ThinLTO] Resolve old FIXME for alias importing in test · 82522119
      Teresa Johnson authored
      This FIXME was added with r265941 and should have been resolved with
      r266517.
      
      llvm-svn: 293901
      82522119
    • Jonas Paulsson's avatar
      [SystemZ] Add comment for ISD::FP_TO_UINT expansion. · b7a2ef83
      Jonas Paulsson authored
      (Copied from the fp-conv-10.ll test to SystemZISelLowering.cpp)
      
      Review: Ulrich Weigand
      llvm-svn: 293900
      b7a2ef83
    • Krzysztof Parzyszek's avatar
      [Hexagon] Emitting individual instructions without copying them · bc4dc9b4
      Krzysztof Parzyszek authored
      Patch by Colin LeMahieu.
      
      llvm-svn: 293899
      bc4dc9b4
    • Krasimir Georgiev's avatar
      [clang-format] Don't reflow across comment pragmas. · 00c5c72d
      Krasimir Georgiev authored
      Summary:
      The comment reflower wasn't taking comment pragmas as reflow stoppers. This patch fixes that.
      
      source:
      ```
      // long long long long
      // IWYU pragma:
      ```
      format with column limit  = 20 before:
      ```
      // long long long
      // long IWYU pragma:
      ```
      format with column limit  = 20 after:
      ```
      // long long long
      // long
      // IWYU pragma:
      ```
      
      Reviewers: djasper
      
      Reviewed By: djasper
      
      Subscribers: cfe-commits, klimek
      
      Differential Revision: https://reviews.llvm.org/D29450
      
      llvm-svn: 293898
      00c5c72d
    • Eric Liu's avatar
      [change-namespace] check using shadow decl correctly when shortening namespace specifiers. · ae7de711
      Eric Liu authored
      Summary:
      This fixes mismatch between template decls and template specialization decls.
      
      Also added a few more test cases.
      
      Reviewers: bkramer
      
      Subscribers: cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D29447
      
      llvm-svn: 293897
      ae7de711
    • Jun Bum Lim's avatar
      [JumpThread] Enhance finding partial redundant loads by continuing scanning single predecessor · 180bc5a0
      Jun Bum Lim authored
      Summary: While scanning predecessors to find an available loaded value, if the predecessor has a single predecessor, we can continue scanning through the single predecessor.
      
      Reviewers: mcrosier, rengolin, reames, davidxl, haicheng
      
      Reviewed By: rengolin
      
      Subscribers: zzheng, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D29200
      
      llvm-svn: 293896
      180bc5a0
    • Kamil Rytarowski's avatar
      Fix multi-process-driver.cpp build on NetBSD · ea899138
      Kamil Rytarowski authored
      Summary:
      Include <string.h> for strcmp(3) and memset(3).
      
      Sponsored by <The NetBSD Foundation>
      
      Reviewers: joerg, clayborg, emaste, labath
      
      Reviewed By: clayborg
      
      Subscribers: #lldb
      
      Tags: #lldb
      
      Differential Revision: https://reviews.llvm.org/D29403
      
      llvm-svn: 293895
      ea899138
    • Krzysztof Parzyszek's avatar
      [Hexagon] Rename TypeCOMPOUND to TypeCJ · f65b8f14
      Krzysztof Parzyszek authored
      llvm-svn: 293894
      f65b8f14
    • Nirav Dave's avatar
      In visitSTORE, always use FindBetterChain, rather than only when UseAA is enabled. · 4442667f
      Nirav Dave authored
          Recommiting after fixing X86 inc/dec chain bug.
      
          * Simplify Consecutive Merge Store Candidate Search
      
          Now that address aliasing is much less conservative, push through
          simplified store merging search and chain alias analysis which only
          checks for parallel stores through the chain subgraph. This is cleaner
          as the separation of non-interfering loads/stores from the
          store-merging logic.
      
          When merging stores search up the chain through a single load, and
          finds all possible stores by looking down from through a load and a
          TokenFactor to all stores visited.
      
          This improves the quality of the output SelectionDAG and the output
          Codegen (save perhaps for some ARM cases where we correctly constructs
          wider loads, but then promotes them to float operations which appear
          but requires more expensive constant generation).
      
          Some minor peephole optimizations to deal with improved SubDAG shapes (listed below)
      
          Additional Minor Changes:
      
            1. Finishes removing unused AliasLoad code
      
            2. Unifies the chain aggregation in the merged stores across code
               paths
      
            3. Re-add the Store node to the worklist after calling
               SimplifyDemandedBits.
      
            4. Increase GatherAllAliasesMaxDepth from 6 to 18. That number is
               arbitrary, but seems sufficient to not cause regressions in
               tests.
      
            5. Remove Chain dependencies of Memory operations on CopyfromReg
               nodes as these are captured by data dependence
      
            6. Forward loads-store values through tokenfactors containing
                {CopyToReg,CopyFromReg} Values.
      
            7. Peephole to convert buildvector of extract_vector_elt to
               extract_subvector if possible (see
               CodeGen/AArch64/store-merge.ll)
      
            8. Store merging for the ARM target is restricted to 32-bit as
               some in some contexts invalid 64-bit operations are being
               generated. This can be removed once appropriate checks are
               added.
      
          This finishes the change Matt Arsenault started in r246307 and
          jyknight's original patch.
      
          Many tests required some changes as memory operations are now
          reorderable, improving load-store forwarding. One test in
          particular is worth noting:
      
            CodeGen/PowerPC/ppc64-align-long-double.ll - Improved load-store
            forwarding converts a load-store pair into a parallel store and
            a memory-realized bitcast of the same value. However, because we
            lose the sharing of the explicit and implicit store values we
            must create another local store. A similar transformation
            happens before SelectionDAG as well.
      
          Reviewers: arsenm, hfinkel, tstellarAMD, jyknight, nhaehnle
      
      llvm-svn: 293893
      4442667f
    • Nirav Dave's avatar
      [X86,ISEL] Fix X86 increment chain dependence calculation · e14300e2
      Nirav Dave authored
      Merging Load-add-store pattern into a increment op previously dropped
      the load's chain from the instructions dependence if the store is
      chained to a TokenFactor.
      
      llvm-svn: 293892
      e14300e2
    • Krasimir Georgiev's avatar
      [clang-format] Fix breaking of comment sections in unwrapped lines containing newlines. · b6ccd38d
      Krasimir Georgiev authored
      Summary:
      The breaking of line comment sections was misaligning the case where the first comment line is on an unwrapped line containing newlines. In this case, the breaking column must be based on the source column of the last token that is preceded by a newline, not on the first token of the unwrapped line.
      
      source:
      ```
      enum A {
        a, // line 1
        // line 2
      };
      ```
      format before:
      ```
      enum A {
        a, // line 1
           // line 2
      };
      ```
      format after:
      ```
      enum A {
        a, // line 1
        // line 2
      };
      ```
      
      Reviewers: djasper
      
      Reviewed By: djasper
      
      Subscribers: cfe-commits, klimek
      
      Differential Revision: https://reviews.llvm.org/D29444
      
      llvm-svn: 293891
      b6ccd38d
    • Roman Gareev's avatar
      A new algorithm for identification of a SCoP statement that implement a matrix · 98075fe1
      Roman Gareev authored
      
      multiplication
      
      The current identification of a SCoP statement that implement a matrix
      multiplication does not help to identify different permutations of loops that
      contain it and check for dependencies, which can prevent it from being
      optimized. It also requires external determination of the operands of
      the matrix multiplication. This patch contains the implementation of a new
      algorithm that helps to avoid these issues. It also modifies the test cases
      that generate matrix multiplications with linearized accesses, because
      the new algorithm does not support them.
      
      Reviewed-by: default avatarMichael Kruse <llvm@meinersbur.de&gt;,>
                   Tobias Grosser <tobias@grosser.es>
      
      Differential Revision: https://reviews.llvm.org/D28357
      
      llvm-svn: 293890
      98075fe1
    • Diana Picus's avatar
      [ARM] GlobalISel: Lower pointer args and returns · 32cd9b43
      Diana Picus authored
      It is important to change the ArgInfo's type from pointer to integer, otherwise
      the CC assign function won't know what to do. Instead of hacking it up, we use
      ComputeValueVTs and introduce some of the helpers that we will need later on for
      lowering more complex types.
      
      llvm-svn: 293889
      32cd9b43
    • Diana Picus's avatar
      [ARM] GlobalISel: Error out instead of asserting · 0c11c7b5
      Diana Picus authored
      Allow unknown types in TLI.getValueType, otherwise we get asserts for certain
      types that we do not support yet (instead of returning that we don't support
      them and falling through the normal error path).
      
      llvm-svn: 293888
      0c11c7b5
    • Anna Thomas's avatar
      [LICM] Hoist loads that are dominated by invariant.start intrinsic, and are invariant in the loop. · 7f4b26e1
      Anna Thomas authored
      Summary:
      We can hoist out loads that are dominated by invariant.start, to the preheader.
      We conservatively assume the load is variant, if we see a corresponding
      use of invariant.start (it could be an invariant.end or an escaping
      call).
      
      Reviewers: mkuper, sanjoy, reames
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D29331
      
      llvm-svn: 293887
      7f4b26e1
    • Diana Picus's avatar
      [ARM] GlobalISel: Legalize loading pointers · fc19a8ff
      Diana Picus authored
      Make it legal to load pointer values. Also check that pointers are assigned
      to the GPR reg bank by default.
      
      llvm-svn: 293886
      fc19a8ff
    • Kuba Mracek's avatar
      [tsan] Provide API for libraries for race detection on custom objects · aa78ad5f
      Kuba Mracek authored
      This patch allows a non-instrumented library to call into TSan runtime, and tell us about "readonly" and "modifying" accesses to an arbitrary "object" and provide the caller and tag (type of object).  This allows TSan to detect violations of API threading contracts where "read-only" methods can be called simulatenously from multiple threads, while modifying methods must be exclusive.
      
      Differential Revision: https://reviews.llvm.org/D28836
      
      llvm-svn: 293885
      aa78ad5f
    • Kuba Mracek's avatar
      Fixup of r293882: Forgot to update sanitizer_thread_registry.test.cc · 5c882715
      Kuba Mracek authored
      llvm-svn: 293884
      5c882715
    • Diana Picus's avatar
      [ARM] GlobalISel: Test default banks for load results. NFC. · f8c5d932
      Diana Picus authored
      Check that all scalars are loaded into the GPR by default.
      
      llvm-svn: 293883
      f8c5d932
    • Kuba Mracek's avatar
      [tsan] Properly describe GCD worker threads in reports · bba1d405
      Kuba Mracek authored
      When dealing with GCD worker threads, TSan currently prints weird things like "created by thread T-1" and "[failed to restore the stack]" in reports. This patch avoids that and instead prints "Thread T3 (...) is a GCD worker thread".
      
      Differential Revision: https://reviews.llvm.org/D29103
      
      llvm-svn: 293882
      bba1d405
    • Asiri Rathnayake's avatar
      Extend XFAIL to c++98. · e396d8e2
      Asiri Rathnayake authored
      NFC.
      
      llvm-svn: 293881
      e396d8e2
    • Simon Pilgrim's avatar
      [X86][SSE] Use MOVMSK for all_of/any_of reduction patterns · 20ab6b87
      Simon Pilgrim authored
      This is a first attempt at using the MOVMSK instructions to replace all_of/any_of reduction patterns (i.e. an and/or + shuffle chain).
      
      So far this only matches patterns where we are reducing an all/none bits source vector (i.e. a comparison result) but we should be able to expand on this in conjunction with improvements to 'bool vector' handling both in the x86 backend as well as the vectorizers etc.
      
      Differential Revision: https://reviews.llvm.org/D28810
      
      llvm-svn: 293880
      20ab6b87