Skip to content
  1. Feb 01, 2019
    • 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
    • Ilya Biryukov's avatar
      Disable tidy checks with too many hits · d226bc83
      Ilya Biryukov authored
      Summary:
      Some tidy checks have too many hits in the codebase, making it hard to spot
      other results from clang-tidy, therefore rendering the tool less useful.
      
      Two checks were disabled:
        - misc-non-private-member-variable-in-classes in the whole LLVM monorepo,
          it is very common to have those in LLVM and the style guide does not forbid
          them.
        - readability-identifier-naming in the clang subtree. There are thousands of
          violations in 'Sema.h' alone.
      
      Before the change, 'Sema.h' had >1000 tidy warnings, after the change the number
      dropped to 3 warnings (unterminated namespace comments).
      
      Reviewers: alexfh, hokein
      
      Reviewed By: hokein
      
      Subscribers: llvm-commits, cfe-commits
      
      Tags: #clang, #llvm
      
      Differential Revision: https://reviews.llvm.org/D57573
      
      llvm-svn: 352862
      d226bc83
    • Roman Lebedev's avatar
      [X86][BdVer2] Transfer delays from the integer to the floating point unit. · 7857215f
      Roman Lebedev authored
      Summary:
      I'm unable to find this number in the "AMD SOG for family 15h".
      llvm-exegesis measures the latencies of these instructions as `2`,
      which matches the latencies specified in "AMD SOG for family 15h".
      
      However if we look at Agner, Microarchitecture, "AMD Bulldozer, Piledriver,
      Steamroller and Excavator pipeline", "Data delay between different execution
      domains", the int->ivec transfer is listed as `8`..`10`cy of additional latency.
      
      Also, Agner's "Instruction tables", for Piledriver, lists their latencies as `12`,
      which is consistent with `2cy` from exegesis / AMD SOG + `10cy` transfer delay.
      
      Additional data point comes from the fact that Agner's "Instruction tables",
      for Jaguar, lists their latencies as `8`; and "AMD SOG for family 16h" does
      state the `+6cy` int->ivec delay, which is consistent with instr latency of `1` or `2`.
      
      Reviewers: andreadb, RKSimon, craig.topper
      
      Reviewed By: andreadb
      
      Subscribers: gbedwell, courbet, llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D57300
      
      llvm-svn: 352861
      7857215f
    • Aleksandr Urakov's avatar
      [PDB] Fix build after r352845 · 2c15fc56
      Aleksandr Urakov authored
      llvm-svn: 352858
      2c15fc56
    • Sam McCall's avatar
      [clangd] Unbreak fuzzer target · 554644e5
      Sam McCall authored
      llvm-svn: 352857
      554644e5
    • Yevgeny Rouban's avatar
      Provide reason messages for unviable inlining · 15b17d0a
      Yevgeny Rouban authored
      InlineCost's isInlineViable() is changed to return InlineResult
      instead of bool. This provides messages for failure reasons and
      allows to get more specific messages for cases where callsites
      are not viable for inlining.
      
      Reviewed By: xbolva00, anemet
      
      Differential Revision: https://reviews.llvm.org/D57089
      
      llvm-svn: 352849
      15b17d0a
    • James Henderson's avatar
      Revert r352750. · 212833ce
      James Henderson authored
      This was causing a build bot failure:
      http://green.lab.llvm.org/green/job/clang-stage2-Rthinlto/15346/
      
      llvm-svn: 352848
      212833ce
    • James Henderson's avatar
      [llvm-symbolizer][test] Rename and tweak tests using llvm-symbolizer · 563a29d4
      James Henderson authored
      Prior to this change, there are a few tests called llvm-symbolizer* in
      the DebugInfo test area. These really were testing either the DebugInfo
      or Symbolizer library, rather than the llvm-symbolizer tool itself, so
      this patch renames them to be clearer that they aren't explicitly tests
      for llvm-symbolizer (such tests belong in test/tools/llvm-symbolizer).
      
      This patch also reinstates the copying of a DWO file, removed previously
      in r352752. The test needs this so that it could possibly fail.
      
      Finally, some of the tests have been simplified slightly by removing
      unnecessary switches and/or unused check-prefixes.
      
      Reviewed by: dblaikie
      
      Differential Revision: https://reviews.llvm.org/D57518
      
      llvm-svn: 352847
      563a29d4
    • James Henderson's avatar
      [doc]Update String Error documentation in Programmer Manual · fb3ca132
      James Henderson authored
      A while back, createStringError was added to provide easier construction
      of StringError instances, especially with formatting options. Prior to
      this patch, that the documentation only mentions the standard method of
      using it. Since createStringError is slightly shorter to type, and also
      provides the formatting options, this patch updates the Programmer's
      Manual to use the new function in its examples, and to mention the
      printf formatting options. It also fixes a small typo in one of the
      examples and removes the unnecessary make_error_code call.
      
      llvm-svn: 352846
      fb3ca132
    • Aleksandr Urakov's avatar
      [PDB] Fix location retrieval for function local variables and arguments that are · 758657e5
      Aleksandr Urakov authored
      stored relative to VFRAME
      
      Summary:
      This patch makes LLDB able to retrieve proper values for function arguments and
      local variables stored in PDB relative to VFRAME register.
      
      Patch contains retrieval of corresponding FPO table entries from PDB and a
      generic translator from FPO programs to DWARF expressions to get correct VFRAME
      value.
      
      Patch also improves variables-locations.test and makes this test passable on
      x86.
      
      Patch By: leonid.mashinsky
      
      Reviewers: zturner, asmith, stella.stamenova, aleksandr.urakov
      
      Reviewed By: zturner
      
      Subscribers: arphaman, labath, mgorny, aprantl, JDevlieghere, lldb-commits
      
      Tags: #lldb
      
      Differential Revision: https://reviews.llvm.org/D55122
      
      llvm-svn: 352845
      758657e5
    • Oliver Stannard's avatar
      [CodeGen] Don't scavenge non-saved regs in exception throwing functions · bac11518
      Oliver Stannard authored
      Previously, LiveRegUnits was assuming that if a block has no successors
      and does not return, then no registers are live at the end of it
      (because the end of the block is unreachable). This was causing the
      register scavenger to use callee-saved registers to materialise stack
      frame addresses without saving them in the prologue. This would normally
      be fine, because the end of the block is unreachable, but this is not
      legal if the block ends by throwing a C++ exception. If this happens,
      the scratch register will be modified, but its previous value won't be
      preserved, so it doesn't get restored by the exception unwinder.
      
      Differential revision: https://reviews.llvm.org/D57381
      
      llvm-svn: 352844
      bac11518
    • Roman Lebedev's avatar
      [clangd] clangDaemonTweaks - fix -DBUILD_SHARED_LIBS=ON build · 3440c339
      Roman Lebedev authored
      Followup for rL352841.
      
      llvm-svn: 352843
      3440c339
    • Sergi Mateo Bellido's avatar
      Test commit: fix typo · f3e00fe3
      Sergi Mateo Bellido authored
      llvm-svn: 352842
      f3e00fe3
    • Roman Lebedev's avatar
      [clangd] Fix -DBUILD_SHARED_LIBS=ON build - SwapIfBranches needs clangAST. · 11f79692
      Roman Lebedev authored
      Else, fails with:
      
      [1/2] Linking CXX executable bin/clangd
      FAILED: bin/clangd
      : && /usr/bin/g++  -pipe -O2 -g0 -UNDEBUG -fPIC -fvisibility-inlines-hidden -Werror=date-time -std=c++11 -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wno-maybe-uninitialized -Wno-class-memaccess -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wno-comment -fdiagnostics-color -ffunction-sections -fdata-sections -fno-common -Woverloaded-virtual -fno-strict-aliasing -pipe -O2 -g0 -UNDEBUG  -fuse-ld=lld -Wl,--color-diagnostics -Wl,-allow-shlib-undefined     -Wl,-O3 -Wl,--gc-sections tools/clang/tools/extra/clangd/refactor/tweaks/CMakeFiles/obj.clangDaemonTweaks.dir/SwapIfBranches.cpp.o tools/clang/tools/extra/clangd/tool/CMakeFiles/clangd.dir/ClangdMain.cpp.o  -o bin/clangd  -Wl,-rpath,"\$ORIGIN/../lib" lib/libLLVMSupport.so.9svn -lpthread lib/libclangBasic.so.9svn lib/libclangTidy.so.9svn lib/libclangDaemon.so.9svn lib/libclangFormat.so.9svn lib/libclangFrontend.so.9svn lib/libclangSema.so.9svn lib/libclangTooling.so.9svn lib/libclangToolingCore.so.9svn && :
      ld.lld: error: undefined symbol: clang::FunctionDecl::getBody(clang::FunctionDecl const*&) const
      >>> referenced by SwapIfBranches.cpp
      >>>               tools/clang/tools/extra/clangd/refactor/tweaks/CMakeFiles/obj.clangDaemonTweaks.dir/SwapIfBranches.cpp.o:(clang::FunctionDecl::getBody() const)
      
      and so on.
      
      llvm-svn: 352841
      11f79692
    • George Rimar's avatar
      [obj2yaml] - Merge dumpRelSection and dumpRelaSection. NFC. · afe8a040
      George Rimar authored
      These methods are very similar, patch merge them into one.
      
      Differential revision: https://reviews.llvm.org/D57461
      
      llvm-svn: 352840
      afe8a040
    • Yevgeny Rouban's avatar
      [SLPVectorizer] Get rid of IndexQueue array from vectorizeStores. NFCI. · 4cdd7839
      Yevgeny Rouban authored
      Indices are checked as they are generated. No need to fill the whole array of indices.
      
      Differential Revision: https://reviews.llvm.org/D57144
      
      llvm-svn: 352839
      4cdd7839
    • Serge Guelton's avatar
      Fix isInSystemMacro to handle pasted macros · 5ef88bdb
      Serge Guelton authored
      Token pasted by the preprocessor (through ##) have a Spelling pointing to scratch buffer.
      As a result they are not recognized at system macro, even though the pasting happened in
      a system macro. Fix that by looking into the parent macro if the original lookup finds a
      scratch buffer.
      
      Differential Revision: https://reviews.llvm.org/D55782
      
      This effectively fixes https://bugs.llvm.org/show_bug.cgi?id=35268,
      
      llvm-svn: 352838
      5ef88bdb
    • Sam McCall's avatar
      [clangd] Fix crash in applyTweak, remove TweakID alias. · 8a32f3b7
      Sam McCall authored
      Strings are complicated, giving them opaque names makes us forget
      they're complicated.
      
      llvm-svn: 352837
      8a32f3b7
    • JF Bastien's avatar
      Revert "Bump minimum toolchain version" · c6931ddc
      JF Bastien authored
      Looks like we still have a few bots that are sad. Let try to get them fixed!
      
      llvm-svn: 352835
      c6931ddc
    • JF Bastien's avatar
      Bump minimum toolchain version · 77074f9f
      JF Bastien authored
      Summary:
      The RFC on moving past C++11 got good traction:
        http://lists.llvm.org/pipermail/llvm-dev/2019-January/129452.html
      
      This patch therefore bumps the toolchain versions according to our policy:
        llvm.org/docs/DeveloperPolicy.html#toolchain
      
      Subscribers: mgorny, jkorous, dexonsmith, llvm-commits, mehdi_amini, jyknight, rsmith, chandlerc, smeenai, hans, reames, lattner, lhames, erichkeane
      
      Differential Revision: https://reviews.llvm.org/D57264
      
      llvm-svn: 352834
      77074f9f
    • Alex Bradbury's avatar
      [RISCV] Implement RV64D codegen · 7539fa2c
      Alex Bradbury authored
      This patch:
      * Adds necessary RV64D codegen patterns
      * Modifies CC_RISCV so it will properly handle f64 types (with soft float ABI)
      
      Note that in general there is no reason to try to select fcvt.w[u].d rather than fcvt.l[u].d for i32 conversions because fptosi/fptoui produce poison if the input won't fit into the target type.
      
      Differential Revision: https://reviews.llvm.org/D53237
      
      llvm-svn: 352833
      7539fa2c
Loading