Skip to content
  1. Feb 01, 2019
    • James Y Knight's avatar
      Hopefully fix a couple more sphinx doc errors. · 6e75c7e3
      James Y Knight authored
      These seem to only appear on the buildbot runner, and it looks like we
      tried to suppress them, but it's not working. Not sure why.
      
      llvm-svn: 352903
      6e75c7e3
    • Stefan Granitz's avatar
      Fix the xcode build for r352845, attempt #2 · da8fe66c
      Stefan Granitz authored
      llvm-svn: 352902
      da8fe66c
    • Stefan Granitz's avatar
      Revert "Fix the xcode build for r352845." · 5c49a3f4
      Stefan Granitz authored
      This reverts commit 72c1213a5e901b80c0f1d2794e5088d7f71a3632.
      
      llvm-svn: 352901
      5c49a3f4
    • Sid Manning's avatar
      [llvm-objdump] - llvm-objdump can skip bytes at the end of a section. · 5d9c8ad4
      Sid Manning authored
      Differential Revision: https://reviews.llvm.org/D57549
      
      llvm-svn: 352900
      5d9c8ad4
    • Thomas Anderson's avatar
      [lldb] Relax libc++ ABI version checking · 7ba2d3e8
      Thomas Anderson authored
      libc++ has programmable ABI versioning controllable with the _LIBCPP_ABI_VERSION
      macro.  Currently there are at least 3 settings used in real systems (1 as the
      default, ndk1 for Anroid, Cr for Chromium).
      
      Only the 1 and ndk1 cases were handled.  This change relaxes the check to allow
      any ABI version.
      
      Differential Revision: https://reviews.llvm.org/D57466
      
      llvm-svn: 352899
      7ba2d3e8
    • Philip Reames's avatar
      Fix a bug in the definition of isUnordered on MachineMemOperand · 5503e4f9
      Philip Reames authored
      Background: At the moment, we record the AtomicOrdering of an access in the MMO, but also mark any atomic access as volatile in SelectionDAG. GlobalISEL keeps the two separate, but currently doesn't know how to lower an atomic G_LOAD at all. See https://reviews.llvm.org/D57601 for context.
      
      The definition used for unordered was only checking volatility, not atomicity. As noted above, all atomic MMOs are currently also volatile, so this is a latent bug only. Copy the definition used in IR, after auditing the two (2) uses of the function to be sure the desired semantics are the same.
      
      Differential Revision: https://reviews.llvm.org/D57593
      
      llvm-svn: 352898
      5503e4f9
    • Roland Froese's avatar
      test commit (add blank line) NFC · 7f29195c
      Roland Froese authored
      llvm-svn: 352897
      7f29195c
    • Matt Davis's avatar
      [llvm-readobj] Add a flag to dump just the section-to-segment mapping. · 50ca8edb
      Matt Davis authored
      Summary:
      The following patch introduces a new function `printSectionMapping` which is responsible for dumping just the section-to-segment mapping.
      This patch also introduces a n option `-section-mapping` that outputs that mapping without the program headers.
      
      Previously, this functionality was controlled by `printProgramHeaders`, and the output from `-program-headers` has not been changed.  I am happy to change the option name, I copied  the name that was displayed when outputting the mapping table.
      
      Reviewers: khemant, jhenderson, grimar, rupprecht
      
      Reviewed By: jhenderson, grimar, rupprecht
      
      Subscribers: rupprecht, jhenderson, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D57365
      
      llvm-svn: 352896
      50ca8edb
    • Evandro Menezes's avatar
      [InstCombine] Refactor test checks (NFC) · 25b4c4ce
      Evandro Menezes authored
      llvm-svn: 352895
      25b4c4ce
    • Jim Ingham's avatar
      Fix the xcode build for r352845. · 5c654440
      Jim Ingham authored
      llvm-svn: 352894
      5c654440
    • Nico Weber's avatar
      gn build: Add a missing dependency from llvm/test to llvm-lit · 186fcdb5
      Nico Weber authored
      check-llvm already listed llvm-lit as script which counts as a dep, so running
      check-llvm worked fine, but `ninja -C out/gn llvm/test` didn't build llvm-lit
      before if it wasn't already there.
      
      llvm-svn: 352893
      186fcdb5
    • Evandro Menezes's avatar
      [InstCombine] Expand Windows test (NFC) · 743ba66f
      Evandro Menezes authored
      Add checks for Win64 to existing cases.
      
      llvm-svn: 352892
      743ba66f
    • Matt Davis's avatar
      [llvm-nm] Report '.comment' ELF sections as 'n' instead of '?' · 68fad505
      Matt Davis authored
      Summary:
      The previous implementation reported `.comment` sections as '?'
      GNU uses 'n' which means  "The symbol is a debugging symbol."  `.note`  sections are represented as 'n' too.
      
      The test related to this change was updated to CHECK-NEXT to ensure
      order and that we did not miss any symbols in the dump.
      
      Reviewers: jhenderson
      
      Reviewed By: jhenderson
      
      Subscribers: rupprecht, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D57544
      
      llvm-svn: 352891
      68fad505
    • Max Moroz's avatar
      Update SanitizerCoverage doc regarding the issue with pc-table and gc-sections. · 12388380
      Max Moroz authored
      Summary:
      There is a bug for this: https://bugs.llvm.org/show_bug.cgi?id=34636
      But it would be also helpful to leave a note in the docs to prevent users from
      running into issues, e.g. https://crbug.com/926588.
      
      Reviewers: morehouse
      
      Reviewed By: morehouse
      
      Subscribers: cfe-commits, llvm-commits, kcc
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D57474
      
      llvm-svn: 352890
      12388380
    • Wolfgang Pieb's avatar
      [DWARF v5] Fix DWARF emitter and consumer to produce/expect a uleb for a... · 58513b77
      Wolfgang Pieb authored
      [DWARF v5] Fix DWARF emitter and consumer to produce/expect a uleb for a location description's length.
      
      Reviewer: davide, JDevliegere
      
      Differential Revision: https://reviews.llvm.org/D57550
      
      llvm-svn: 352889
      58513b77
    • Jordan Rupprecht's avatar
      [llvm-objcopy][NFC] More error propagation (executeObjcopyOnArchive) · 18886db2
      Jordan Rupprecht authored
      Summary:
      Replace some reportError() calls with error propagation that was missed from rL352625.
      
      Note this also adds an error check during Archive iteration that was being hidden by a different error check before:
      
      ```
        for (const Archive::Child &Child : Ar.children(Err)) {
          Expected<std::unique_ptr<Binary>> ChildOrErr = Child.getAsBinary();
          if (!ChildOrErr)
            // This aborts, so Err is never checked
            reportError(Ar.getFileName(), ChildOrErr.takeError());
      ```
      
      Err is being checked after the loop, so during happy runs, everything is fine. But when reportError is changed to return the error instead of aborting, the fact that Err is never checked is now noticed in tests that trigger an error during the loop.
      
      Reviewers: jhenderson, dblaikie, alexshap
      
      Reviewed By: dblaikie
      
      Subscribers: llvm-commits, lhames, jakehehrlich
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D57462
      
      llvm-svn: 352888
      18886db2
    • James Y Knight's avatar
      Fix some sphinx doc errors. · 94b9709d
      James Y Knight authored
      llvm-svn: 352887
      94b9709d
    • Evandro Menezes's avatar
      [InstCombine] Refactor test checks (NFC) · 3724d158
      Evandro Menezes authored
      llvm-svn: 352886
      3724d158
    • Tim Corringham's avatar
      [AMDGPU] Fix for vector element insertion · fa3e4e5b
      Tim Corringham authored
      Summary:
      Incorrect code was generated when lowering insertelement operations
      for vectors with 8 or 16 bit elements.  The value being inserted was
      not adjusted for the position of the element within the 32 bit word
      and so only the low element within each 32 bit word could receive
      the intended value.
      
      Fixed by simply replicating the value to each element of a
      congruent vector before the mask and or operation used to
      update the intended element.
      
      A number of affected LIT tests have been updated appropriately.
      
      before the mask & or into the intended
      
      Reviewers: arsenm, nhaehnle
      
      Reviewed By: arsenm
      
      Subscribers: llvm-commits, arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D57588
      
      llvm-svn: 352885
      fa3e4e5b
    • Sanjay Patel's avatar
      [SDAG] improve variable names; NFC · 6502b144
      Sanjay Patel authored
      The version of FoldConstantArithmetic() that takes arbitrary nodes
      was confusingly naming those nodes as constants when they might
      not be; also "Cst" reads like "Cast".
      
      llvm-svn: 352884
      6502b144
    • Simon Pilgrim's avatar
      [X86][SSE] Use PSLLDQ/PSRLDQ to mask out zeroable ends of a shuffle · 85184017
      Simon Pilgrim authored
      As suggested on PR40318, this patch uses PSLLDQ/PSRLDQ to lower shuffles to zero out the ends of a vector, leaving a sequential inner section.
      
      For pre-SSSE3 we do this for shuffles with zeros at either end (requiring up to 3 shifts), but once PSHUFB is available I've limited this to shuffles with a single zeroable end (2 shifts).
      
      Differential Revision: https://reviews.llvm.org/D56784
      
      llvm-svn: 352883
      85184017
    • Roman Lebedev's avatar
      [AST][OpenMP] OpenMP Sections / Section constructs contain Structured blocks · 9fb113e2
      Roman Lebedev authored
      Summary:
      I'm working on a clang-tidy check, much like existing [[ http://clang.llvm.org/extra/clang-tidy/checks/bugprone-exception-escape.html | bugprone-exception-escape ]],
      to detect when an exception might escape out of an OpenMP construct it isn't supposed to escape from.
      For that i will be using the `nothrow` bit of `CapturedDecl`s.
      
      While that bit is already correctly set for some constructs, e.g. `#pragma omp parallel`: https://godbolt.org/z/2La7pv
      it isn't set for the `#pragma omp sections`, or `#pragma omp section`: https://godbolt.org/z/qZ-EbP
      
      If i'm reading [[ https://www.openmp.org/wp-content/uploads/OpenMP-API-Specification-5.0.pdf | `OpenMP Application Programming Interface Version 5.0 November 2018` ]] correctly,
      they should be, as per `2.8.1 sections Construct`, starting with page 86:
      * The sections construct is a non-iterative worksharing construct that contains a set of **structured blocks**
        that are to be distributed among and executed by the threads in a team. Each **structured block** is executed
        once by one of the threads in the team in the context of its implicit task.
      * The syntax of the sections construct is as follows:
        #pragma omp sections [clause[ [,] clause] ... ] new-line
          {
            [#pragma omp section new-line]
              **structured-block**
         ...
      * Description
        Each **structured block** in the sections construct is preceded by a section directive except
        possibly **the first block**, for which a preceding section directive is optional.
      
      * Restrictions
        • The code enclosed in a sections construct must be a **structured block**.
        * A throw executed inside a sections region must cause execution to resume within the same
          section of the sections region, and the same thread that threw the exception must catch it.
      
      Reviewers: ABataev, #openmp
      
      Reviewed By: ABataev
      
      Subscribers: guansong, openmp-commits, cfe-commits
      
      Tags: #clang, #openmp
      
      Differential Revision: https://reviews.llvm.org/D57585
      
      llvm-svn: 352882
      9fb113e2
    • Stefan Granitz's avatar
      [CMake] External compiler-rt-configure requires LLVMTestingSupport when including tests · f8699965
      Stefan Granitz authored
      Summary:
      Apparently `LLVMTestingSupport` must be built before `llvm-config` can be asked for it. Symptom with `LLVM_INCLUDE_TESTS=ON` is:
      ```
      $ ./path/to/llvm-build/bin/llvm-config --ldflags --libs testingsupport
      -L/path/to/llvm-build/lib -Wl,-search_paths_first -Wl,-headerpad_max_install_names
      llvm-config: error: component libraries and shared library
      
      llvm-config: error: missing: /path/to/llvm-build/lib/libLLVMTestingSupport.a
      ```
      
      With `LLVMTestingSupport` as dependency of `compiler-rt-configure` we get the expected behavior:
      ```
      $ ./path/to/llvm-build/bin/llvm-config --ldflags --libs testingsupport
      -L/path/to/llvm-build/lib -Wl,-search_paths_first -Wl,-headerpad_max_install_names
      -lLLVMTestingSupport -lLLVMSupport -lLLVMDemangle
      ```
      
      Reviewers: ab, beanz
      
      Subscribers: dberris, mgorny, erik.pilkington, llvm-commits, cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D57521
      
      llvm-svn: 352881
      f8699965
    • Sanjay Patel's avatar
      [TargetLowering] try harder to determine undef elements of vector binops · 0279b5b0
      Sanjay Patel authored
      This might be the start of tracking all vector element constants generally if we take it to its 
      logical conclusion, but let's stop here and make sure this is correct/beneficial so far.
      
      The affected tests require a convoluted path before they get simplified currently because we 
      don't call SimplifyDemandedVectorElts() from binops directly and don't modify the binop operands 
      directly in SimplifyDemandedVectorElts().
      
      That's why the tests all have a trailing shuffle to induce a chain reaction of transforms. So 
      something like this is happening:
      
      1. Improve the knowledge of undefs in the binop via a SimplifyDemandedVectorElts() call that 
         originates from a shuffle.
      2. Transfer that undef knowledge back to the shuffle mask user as more undef lanes.
      3. Combine the modified shuffle by calling SimplifyDemandedVectorElts() again.
      4. Translate the improved shuffle mask as undemanded lanes of build vector constants causing 
         those to become full undef constants.
      5. Simplify the binop now that it has a full undef operand.
      
      As we can see from the unchanged 'and' and 'or' tests, tracking undefs alone isn't a full solution. 
      We would need to track zero and all-ones constants to improve those opcodes. We'd probably need to 
      track NaN for FP ops too (assuming we don't have fast-math-flags set).
      
      Differential Revision: https://reviews.llvm.org/D57066
      
      llvm-svn: 352880
      0279b5b0
    • Simon Pilgrim's avatar
      [X86][AVX] Combine INSERT_SUBVECTOR(SRC0, BITCAST(SHUFFLE(EXTRACT_SUBVECTOR(SRC1))) · 1a529f58
      Simon Pilgrim authored
      Enable peeking through one use bitcasts to the subvector shuffle.
      
      This still depends on the subvector being the same scalar-size but D57514 has already helped with the more tricky patterns
      
      llvm-svn: 352879
      1a529f58
    • Eugene Leviant's avatar
      [llvm-strip] Implement --keep-file-symbols · 05a3f997
      Eugene Leviant authored
      Differential revision: https://reviews.llvm.org/D57582
      
      llvm-svn: 352878
      05a3f997
    • Jordan Rupprecht's avatar
      [llvm-objcopy][NFC] Propagate errors in removeSymbols/removeSectionReferences · 971d4762
      Jordan Rupprecht authored
      Reviewers: jhenderson, alexshap, jakehehrlich, espindola
      
      Reviewed By: jhenderson
      
      Subscribers: emaste, arichardson, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D57543
      
      llvm-svn: 352877
      971d4762
    • Sam McCall's avatar
      [clangd] Expose SelectionTree to code tweaks, and use it for swap if branches. · 9c8f4326
      Sam McCall authored
      Summary:
      This reduces the per-check implementation burden and redundant work.
      It also makes checks range-aware by default (treating the commonAncestor
      as if it were a point selection should be good baseline behavior).
      
      Reviewers: ilya-biryukov
      
      Subscribers: ioeric, MaskRay, jkorous, arphaman, kadircet
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D57570
      
      llvm-svn: 352876
      9c8f4326
    • Sam McCall's avatar
      [clangd] Lib to compute and represent selection under cursor. · 2048f228
      Sam McCall authored
      Summary:
      The primary problem this solves is to expose the codeAction selection to
      AST-based refactorings in a way that makes it easy and efficient for them to
      bind to the right parts of the AST.
      
      It should also allow us to make XRefs based features (textDocument/definition)
      more robust, more easily implement textDocument/typeDefinition etc.
      As an example, template parameter references can be identified without special
      handling.
      There should be slight speedup too: we can prune most of the AST traversal
      in most cases.
      
      Elephant in the room: this is similar-but-different to Tooling/Refactoring/ASTSelection.
      That captures a smaller set of AST nodes, has a slightly different way of
      representing selections, and generally has mare features and does more work.
      The overall shape is pretty similar, and yet I can't quite get to behave as I
      expect.
      
      Reviewers: ilya-biryukov, kadircet
      
      Subscribers: mgorny, ioeric, MaskRay, jkorous, mgrang, arphaman
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D57562
      
      llvm-svn: 352875
      2048f228
    • Sam McCall's avatar
      [clangd] Lib to compute and represent selection under cursor. · 3186e3ce
      Sam McCall authored
      Summary:
      The primary problem this solves is to expose the codeAction selection to
      AST-based refactorings in a way that makes it easy and efficient for them to
      bind to the right parts of the AST.
      
      It should also allow us to make XRefs based features (textDocument/definition)
      more robust, more easily implement textDocument/typeDefinition etc.
      As an example, template parameter references can be identified without special
      handling.
      There should be slight speedup too: we can prune most of the AST traversal
      in most cases.
      
      Elephant in the room: this is similar-but-different to Tooling/Refactoring/ASTSelection.
      That captures a smaller set of AST nodes, has a slightly different way of
      representing selections, and generally has mare features and does more work.
      The overall shape is pretty similar, and yet I can't quite get to behave as I
      expect.
      
      Reviewers: ilya-biryukov, kadircet
      
      Subscribers: mgorny, ioeric, MaskRay, jkorous, mgrang, arphaman
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D57562
      
      llvm-svn: 352874
      3186e3ce
    • Sanjay Patel's avatar
      [InstCombine] reduce duplicate code; NFC · fbcbac71
      Sanjay Patel authored
      An unused variable problem was introduced with rL352870 
      and stubbed out with rL352871, but we can make a better
      fix by actually using the local variable in code rather 
      than just the assert.  
      
      llvm-svn: 352873
      fbcbac71
    • Fangrui Song's avatar
      [libclang] Fix -DBUILD_SHARED_LIBS=on build after rC352803 · 4fb0a2c9
      Fangrui Song authored
      llvm-svn: 352872
      4fb0a2c9
    • Fangrui Song's avatar
      [InstCombine] Fix -Wunused-variable when -DLLVM_ENABLE_ASSERTIONS=off · 8495aabe
      Fangrui Song authored
      llvm-svn: 352871
      8495aabe
    • Sanjay Patel's avatar
      [InstCombine] try to reduce x86 addcarry to generic uaddo intrinsic · be23a91f
      Sanjay Patel authored
      If we can reduce the x86-specific intrinsic to the generic op, it allows existing 
      simplifications and value tracking folds. AFAICT, this always results in identical 
      x86 codegen in the non-reduced case...which should be true because we semi-generically 
      (too aggressively IMO) convert to llvm.uadd.with.overflow in CGP, so the DAG/isel must 
      already combine/lower this intrinsic as expected.
      
      This isn't quite what was requested in:
      https://bugs.llvm.org/show_bug.cgi?id=40486
      ...but we want to have these kinds of folds early for efficiency and to enable greater 
      simplifications. For the case in the bug report where we have:
      _addcarry_u64(0, ahi, 0, &ahi)
      ...this gets completely simplified away in IR.
      
      Differential Revision: https://reviews.llvm.org/D57453
      
      llvm-svn: 352870
      be23a91f
    • Stefan Granitz's avatar
      [CMake] Add install targets for utilities to LLVM exports if LLVM_INSTALL_UTILS=ON · d9e66e1b
      Stefan Granitz authored
      Summary: D56606 was only appending target names to the `LLVM_EXPORTS`/`LLVM_EXPORTS_BUILDTREE_ONLY` properties. Targets showed up correctly in the build-tree `LLVMExports.cmake`, but they were missing in the installed one (as we found in https://bugs.llvm.org/show_bug.cgi?id=40443), because install did not register them explicitly.
      
      Reviewers: mgorny, smeenai, beanz, gottesmm, dschuff, tstellar, serge-sans-paille
      
      Reviewed By: smeenai
      
      Subscribers: llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D57383
      
      llvm-svn: 352869
      d9e66e1b
    • Sam McCall's avatar
      [clangd] Penalize file-scope symbols in the ranking for non-completion queries · a4cf26b4
      Sam McCall authored
      Patch by Nathan Ridge!
      
      Differential Revision: https://reviews.llvm.org/D56653
      
      llvm-svn: 352868
      a4cf26b4
    • Adhemerval Zanella's avatar
      [AArch64] Optimize floating point materialization · b3ccc555
      Adhemerval Zanella authored
      This patch changes isFPImmLegal to return if the value can be enconded
      as the immediate operand of a logical instruction besides checking if
      for immediate field for fmov.
      
      This optimizes some floating point materization, inclusive values
      used on isinf lowering.
      
      Reviewed By: rengolin, efriedma, evandro
      
      Differential Revision: https://reviews.llvm.org/D57044
      
      llvm-svn: 352866
      b3ccc555
    • Eric Liu's avatar
      [CUDA] Relax lit test condition after r352798. · f4b19c00
      Eric Liu authored
      Clang executable doesn't match clang.* in all test environment.
      
      llvm-svn: 352865
      f4b19c00
    • Sam McCall's avatar
      [clangd] Implement textDocument/declaration from LSP 3.14 · 866ba2c9
      Sam McCall authored
      Summary:
      LSP now reflects the declaration/definition distinction.
      
      Language server changes:
       - textDocument/definition now returns a definition if one is found, otherwise
         the declaration. It no longer returns declaration + definition if they are
         distinct.
       - textDocument/declaration returns the best declaration we can find.
       - For macros, the active macro definition is returned for both methods.
       - For include directive, the top of the target file is returned for both.
      There doesn't appear to be a discovery mechanism (we can't return everything to
      clients that only know about definition), so this changes existing behavior.
      In practice, it should greatly reduce the fraction of the time we need to show
      the user a menu of options.
      
      C++ API changes:
       - findDefinitions is replaced by locateSymbolAt, which returns a
         vector<LocatedSymbol> - one for each symbol under the cursor.
       - this contains the preferred declaration, the definition (if found), and
         the symbol name
      This API enables some potentially-neat extensions, like swapping between decl
      and def, and exposing the symbol name to the UI in the case of multiple symbols.
      
      Reviewers: hokein
      
      Subscribers: ilya-biryukov, javed.absar, ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits
      
      Differential Revision: https://reviews.llvm.org/D57388
      
      llvm-svn: 352864
      866ba2c9
    • Sam McCall's avatar
      [clangd] Use delimited style to make life easier for the fuzzer · b34fca6b
      Sam McCall authored
      llvm-svn: 352863
      b34fca6b
Loading