1. Feb 24, 2020
  2. Feb 23, 2020
    • Florian Hahn's avatar
      [DSE] Track overlapping stores. · af69d5e1
      Florian Hahn authored
      Add a map from BasicBlocks to overlap intervals. For partial writes, we
      can keep track of those in IOLs. We only add candidates that are valid
      for eliminations.
      
      Reviewers: dmgreen, bryant, asbirlea, Tyker
      
      Reviewed By: asbirlea
      
      Differential Revision: https://reviews.llvm.org/D73757
      af69d5e1
    • Sam McCall's avatar
      Revert "[clangd] Reapply b60896fa Fall back to selecting... · b4b9706d
      Sam McCall authored
      Revert "[clangd] Reapply b60896fa Fall back to selecting token-before-cursor if token-after-cursor fails."
      
      This reverts commit a2ce807e.
      
      Buildbot failures on GCC due to SelectionTree not being copyable, and
      instantiating vector<Selection> in the tweak-handling in ClangdServer.
      b4b9706d
    • Sam McCall's avatar
      [clangd] Reapply b60896fa Fall back to selecting token-before-cursor if... · a2ce807e
      Sam McCall authored
      [clangd] Reapply b60896fa Fall back to selecting token-before-cursor if token-after-cursor fails.
      
      This reverts commit 6af1ad20.
      a2ce807e
    • Sam McCall's avatar
      [clangd] Debounce rebuilds responsively to rebuild times. · 7d3f8b1e
      Sam McCall authored
      Summary:
      Old: 500ms always. New: rebuild time, up to 500ms.
      
      Fixes https://github.com/clangd/clangd/issues/275
      
      Reviewers: hokein
      
      Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D73949
      7d3f8b1e
    • Nuno Lopes's avatar
      [NFC] fix test nan value · 98ac6e76
      Nuno Lopes authored
      98ac6e76
    • Denis Khalikov's avatar
      21316f6f
    • Craig Topper's avatar
      [X86] Add sse2 command lines to sse-intrinsics-fast-isel.ll. · 57923617
      Craig Topper authored
      The extra available vector types on sse2 causes us to produce
      different code.
      57923617
    • Craig Topper's avatar
      [X86] Add AddToWorklist(N) after calls to... · 84cd968f
      Craig Topper authored
      [X86] Add AddToWorklist(N) after calls to SimplifyDemandedBits/SimplifyDemandedVectorElts that are called on an operand of N.
      
      If a simplication occurs the operand will be added to the worklist.
      But since the demanded mask was based on N, we need to make sure
      we revisit N in case there are more simplifications to be done.
      Returning SDValue(N, 0) as we do, only tells DAG combine that
      something changed, but that won't make it add anything to the
      worklist.
      
      Found while playing around with using VEXTRACT_STORE in more cases.
      But I guess this doesn't affect any of our existing tests.
      84cd968f
    • Craig Topper's avatar
      [X86] Teach EltsFromConsecutiveLoads that it's ok to form a v4f32 VZEXT_LOAD... · bdb1729c
      Craig Topper authored
      [X86] Teach EltsFromConsecutiveLoads that it's ok to form a v4f32 VZEXT_LOAD with a 64 bit memory size on SSE1 targets.
      
      We can use MOVLPS which will load 64 bits, but we need a v4f32
      result type. We already have isel patterns for this.
      
      The code here is a little hacky. We can probably improve it with
      more isel patterns.
      bdb1729c
    • Craig Topper's avatar
      [X86] Use movlps for i64 atomic stores on 32-targets with sse1. · e7a184fc
      Craig Topper authored
      This is similar to using movd which we do for sse2 targets.
      
      I've added a DAG combine for VEXTRACT_STORE to use SimplifyDemandedVectorElts
      to clean up some artifacts from type legalization.
      e7a184fc
    • Lang Hames's avatar
      [ORC] Update LLJIT to automatically run specially named initializer functions. · 1df947ab
      Lang Hames authored
      The GenericLLVMIRPlatformSupport class runs a transform on all LLVM IR added to
      the LLJIT instance to replace instances of llvm.global_ctors with a specially
      named function that runs the corresponing static initializers (See
      (GlobalCtorDtorScraper from lib/ExecutionEngine/Orc/LLJIT.cpp). This patch
      updates the GenericIRPlatform class to check for this specially named function
      in other materialization units that are added to the JIT and, if found, add
      the function to the initializer work queue. Doing this allows object files
      that were compiled from IR and cached to be reloaded in subsequent JIT sessions
      without their initializers being skipped.
      
      To enable testing this patch also updates the lli tool's -jit-kind=orc-lazy mode
      to respect the -enable-cache-manager and -object-cache-dir options, and modifies
      the CompileOnDemandLayer to rename extracted submodules to include a hash of the
      names of their symbol definitions. This allows a simple object caching scheme
      based on module names (which was already implemented in lli) to work with the
      lazy JIT.
      1df947ab
    • Lang Hames's avatar
      [ORC] Add errors for missing and extraneous symbol definitions. · 81726894
      Lang Hames authored
      This patch adds new errors and error checking to the ObjectLinkingLayer to
      catch cases where a compiled or loaded object either:
      (1) Contains definitions not covered by its responsibility set, or
      (2) Is missing definitions that are covered by its responsibility set.
      
      Proir to this patch providing the correct set of definitions was treated as
      an API contract requirement, however this requires that the client be confident
      in the correctness of the whole compiler / object-cache pipeline and results
      in difficult-to-debug assertions upon failure. Treating this as a recoverable
      error results in clearer diagnostics.
      
      The performance overhead of this check is one comparison of densemap keys
      (symbol string pointers) per linking object, which is minimal. If this overhead
      ever becomes a problem we can add the check under a flag that can be turned off
      if the client fully trusts the rest of the pipeline.
      81726894
    • Mark de Wever's avatar
      [Sema] Fix pointer-to-int-cast diagnostic for _Bool · 56eb15a1
      Mark de Wever authored
      The diagnostic added in D72231 also shows a diagnostic when casting to a
      _Bool. This is unwanted. This patch removes the diagnostic for _Bool types.
      
      Differential Revision: https://reviews.llvm.org/D74860
      56eb15a1
    • Rafael Ávila de Espíndola's avatar
      Add a llvm::shuffle and use it in lld · 7b44f042
      Rafael Ávila de Espíndola authored
      With this --shuffle-sections=seed produces the same result in every
      host.
      
      Reviewed By: grimar, MaskRay
      
      Differential Revision: https://reviews.llvm.org/D74971
      7b44f042
  3. Feb 22, 2020