Skip to content
  1. Mar 08, 2019
    • Michael Kruse's avatar
      [RegionPass] Fix forgotten "!". · 65c5821e
      Michael Kruse authored
      Commit r355068 "Fix IR/Analysis layering issue with OptBisect" uses the
      template
      
         return Gate.isEnabled() && !Gate.shouldRunPass(this, getDescription(...));
      
      for all pass kinds. For the RegionPass, it left out the not operator,
      causing region passes to be skipped as soon as a pass gate is used.
      
      llvm-svn: 355733
      65c5821e
    • Louis Dionne's avatar
      [NFC] Add missing revision information to ABI Changelog · 3d678b53
      Louis Dionne authored
      llvm-svn: 355732
      3d678b53
    • Matt Arsenault's avatar
      AMDGPU: Move d16 load matching to preprocess step · e8c03a25
      Matt Arsenault authored
      When matching half of the build_vector to a load, there could still be
      a hidden dependency on the other half of the build_vector the pattern
      wouldn't detect. If there was an additional chain dependency on the
      other value, a cycle could be introduced.
      
      I don't think a tablegen pattern is capable of matching the necessary
      conditions, so move this into PreprocessISelDAG. Check isPredecessorOf
      for the other value to avoid a cycle. This has a warning that it's
      expensive, so this should probably be moved into an MI pass eventually
      that will have more freedom to reorder instructions to help match
      this. That is currently complicated by the lack of a computeKnownBits
      type mechanism for the selected function.
      
      llvm-svn: 355731
      e8c03a25
    • Zachary Turner's avatar
      Remove dependency edges from Host to Target/Core. · ae56ff92
      Zachary Turner authored
      After recent changes, Host is now dependency-free.
      
      llvm-svn: 355730
      ae56ff92
    • Alexey Bataev's avatar
      [OPENMP]Remove debug service variable. · 5b68c72f
      Alexey Bataev authored
      Removed not required service variable for the debug info.
      
      llvm-svn: 355729
      5b68c72f
    • Matt Arsenault's avatar
      DAG: Don't try to cluster loads with tied inputs · 26e76ef0
      Matt Arsenault authored
      This avoids breaking possible value dependencies when sorting loads by
      offset.
      
      AMDGPU has some load instructions that write into the high or low bits
      of the destination register, and have a tied input for the other input
      bits. These can easily have the same base pointer, but be a swizzle so
      the high address load needs to come first. This was inserting glue
      forcing the opposite ordering, producing a cycle the InstrEmitter
      would assert on. It may be potentially expensive to look for the
      dependency between the other loads, so just skip any where this could
      happen.
      
      Fixes bug 40936 by reverting r351379, which added a hacky attempt to
      fix this by adding chains in this case, which I think was just working
      around broken glue before the InstrEmitter. The core of the patch is
      re-implementing the fix for that problem.
      
      llvm-svn: 355728
      26e76ef0
    • Sanjay Patel's avatar
      [x86] add tests for extracted vector FP cmp; NFC · 43f098e7
      Sanjay Patel authored
      llvm-svn: 355727
      43f098e7
    • Mandeep Singh Grang's avatar
      [docs] Fix checkers.rst doc for PointerSorting checker · d4c4f744
      Mandeep Singh Grang authored
      llvm-svn: 355726
      d4c4f744
    • Matthew Voss's avatar
      Revert "[runtimes] Move libunwind, libc++abi and libc++ to lib/ and include/" · 1262e52e
      Matthew Voss authored
      This broke the windows bots.
      
      This reverts commit 28302c66.
      
      llvm-svn: 355725
      1262e52e
    • Matt Arsenault's avatar
      AMDGPU: Add more tests for d16 loads · 74c9c305
      Matt Arsenault authored
      Also fix a few cases that weren't testing what they were supposed to.
      
      llvm-svn: 355724
      74c9c305
    • Matt Arsenault's avatar
      AMDGPU: Don't bother checking the chain in areLoadsFromSameBasePtr · f587fd9c
      Matt Arsenault authored
      This is only called in contexts that are verifying the chain itself,
      and the query itself is only asking about the address.
      
      llvm-svn: 355723
      f587fd9c
    • Matt Arsenault's avatar
      AMDGPU: Correct DS implementation of areLoadsFromSameBasePtr · 07f904be
      Matt Arsenault authored
      This was checking the wrong operands for the base register and the
      offsets. The indexes are shifted by the number of output registers
      from the machine instruction definition, and the chain is moved to the
      end.
      
      llvm-svn: 355722
      07f904be
    • Rafael Auler's avatar
      Revert "Recommit "Support attribute used in member funcs of class templates"" · 94b575b2
      Rafael Auler authored
      There is nontrivial bug caused in lld that I need to further
      investigate. Meanwhile, I'll revert this.
      
      This reverts commit 8297e93480c636dc90fd14653c5a66406193363f.
      
      llvm-svn: 355721
      94b575b2
    • Mandeep Singh Grang's avatar
      [Analyzer] Checker for non-determinism caused by sorting of pointer-like elements · c0773ab6
      Mandeep Singh Grang authored
      Summary:
      Added a new category of checkers for non-determinism. Added a checker for non-determinism
      caused due to sorting containers with pointer-like elements.
      
      Reviewers: NoQ, george.karpenkov, whisperity, Szelethus
      
      Reviewed By: NoQ, Szelethus
      
      Subscribers: Charusso, baloghadamsoftware, jdoerfert, donat.nagy, dkrupp, martong, dblaikie, MTC, Szelethus, mgorny, xazax.hun, szepet, rnkovacs, a.sidorin, mikhail.ramalho, cfe-commits
      
      Tags: #clang
      
      Differential Revision: https://reviews.llvm.org/D50488
      
      llvm-svn: 355720
      c0773ab6
    • Alexey Bataev's avatar
      [DEBUG_INFO][NVPTX]Emit empty .debug_loc section in presence of the debug option. · 78fcb838
      Alexey Bataev authored
      Summary:
      If the LLVM module shows that it has debug info, but the file is
      actually empty and the real debug info is not emitted, the ptxas tool
      emits error 'Debug information not found in presence of .target debug'.
      We need at leas one empty debug section to silence this message. Section
      `.debug_loc` is not emitted for PTX and we can emit empty `.debug_loc`
      section if `debug` option was emitted.
      
      Reviewers: tra
      
      Subscribers: jholewinski, aprantl, llvm-commits
      
      Differential Revision: https://reviews.llvm.org/D57250
      
      llvm-svn: 355719
      78fcb838
    • Hubert Tong's avatar
      [msan] Properly guard tests added by r355348; NFC · 57b38a85
      Hubert Tong authored
      r355348 uses builtins without proper guards, breaking the test on
      various platforms.
      
      llvm-svn: 355718
      57b38a85
    • Julian Lettner's avatar
      [TSan] Initialize libdispatch interceptors if necessary · 9e18875b
      Julian Lettner authored
      On Linux (and other non-Darwin platforms) we need to initialize
      interceptors. Since tsan_libdispatch.cc is compiled optionally, add a
      weak default implementation of `InitializeLibdispatchInterceptors`.
      
      Reviewed By: dvyukov
      
      Differential Revision: https://reviews.llvm.org/D59113
      
      llvm-svn: 355717
      9e18875b
    • Amaury Sechet's avatar
      [DAGCombiner] fold (add (add (xor a, -1), b), 1) -> (sub b, a) · 782ac933
      Amaury Sechet authored
      Summary: This pattern is sometime created after legalization.
      
      Reviewers: efriedma, spatel, RKSimon, zvi, bkramer
      
      Subscribers: llvm-commits
      
      Tags: #llvm
      
      Differential Revision: https://reviews.llvm.org/D58874
      
      llvm-svn: 355716
      782ac933
    • George Burgess IV's avatar
      [CFLAnders] Fix typo in comment; NFC · 4ea679f1
      George Burgess IV authored
      Patch by Enna1!
      
      Differential Revision: https://reviews.llvm.org/D58756
      
      llvm-svn: 355715
      4ea679f1
    • Wei Mi's avatar
      [RegisterCoalescer] Limit the number of joins for large live interval with · 72ec6801
      Wei Mi authored
      many valnos.
      
      Recently we found compile time out problem in several cases when
      SpeculativeLoadHardening was enabled. The significant compile time was spent
      in register coalescing pass, where register coalescer tried to join many other
      live intervals with some very large live intervals with many valnos.
      
      Specifically, every time JoinVals::mapValues is called, computeAssignment will
      be called by getNumValNums() times of the target live interval. If the large
      live interval has N valnos and has N copies associated with it, trying to
      coalescing those copies will at least cost N^2 complexity.
      
      The patch adds some limit to the effort trying to join those very large live
      intervals with others. By default, for live interval with > 100 valnos, and
      when it has been coalesced with other live interval by more than 100 times,
      we will stop coalescing for the live interval anymore. That put a compile
      time cap for the N^2 algorithm and effectively solves the compile time
      problem we saw.
      
      Differential revision: https://reviews.llvm.org/D59143
      
      llvm-svn: 355714
      72ec6801
    • Sanjay Patel's avatar
      [x86] prevent infinite looping from inverse shuffle transforms · b22f438d
      Sanjay Patel authored
      llvm-svn: 355713
      b22f438d
    • Simon Pilgrim's avatar
      [X86] Add test case for PR22473 · 53652fea
      Simon Pilgrim authored
      llvm-svn: 355712
      53652fea
    • Jonas Devlieghere's avatar
      [Reproducers] Add missing LLDB_RECORD_DUMMY macros · 0d7b0c96
      Jonas Devlieghere authored
      Re-ran lldb-inst on the API folder to insert missing LLDB_RECORD_DUMMY
      macros.
      
      llvm-svn: 355711
      0d7b0c96
    • Jonas Devlieghere's avatar
      [lldb-instr] Support LLDB_RECORD_DUMMY · 3b0a54e1
      Jonas Devlieghere authored
      Extend lldb-instr to insert LLDB_RECORD_DUMMY macros for currently
      unsupported signatures (void and function pointers).
      
      llvm-svn: 355710
      3b0a54e1
    • Jonas Devlieghere's avatar
      [Reproducers] Add LLDB_RECORD_DUMMY · 84e571ce
      Jonas Devlieghere authored
      Add a macro that doesn't actually record anything but still toggles the
      API boundary. Removing just the register macros for lldb::thread_t
      wasn't sufficient on NetBSD because the serialization logic needed the
      underlying type to be complete.
      
      This macro should be used by functions that are currently unsupported,
      as they might trip the API boundary logic. This should be easy using the
      lldb-instr tool.
      
      llvm-svn: 355709
      84e571ce
    • Jonas Devlieghere's avatar
      [lldb-vscode] Fix warning · fee5576f
      Jonas Devlieghere authored
      I changed the variable to an unsigned to get rid of a signed and
      unsigned compare without realizing the value could be negative. This
      fixes the assert instead.
      
      llvm-svn: 355708
      fee5576f
    • Diogo N. Sampaio's avatar
      [ARM][FIX] Fix vfmal.f16 and vfmsl.f16 operand · c20c37ba
      Diogo N. Sampaio authored
      The indexed variant of vfmal.f16 and vfmsl.f16
      instructions use the uppser bits of the indexed
      operand to store the index (1 bit for the double
      variant, 2 bits for the quad).
      
      This limits the usable registers to d0 - d7 or
      s0 - s15. This patch enforces this limitation.
      
      Differential Revision: https://reviews.llvm.org/D59021
      
      llvm-svn: 355707
      c20c37ba
    • Frederic Riss's avatar
      Add more logging to TestQueues.py · 7f3c16c0
      Frederic Riss authored
      The last round of logging taught us that when the test fails, lldb
      is indeed aware of the thread it's failing to associate to a given
      queue. Add more logging to try to figure out why the thread and the
      queue do not appear related to the Queue APIs.
      
      llvm-svn: 355706
      7f3c16c0
    • Kristof Umann's avatar
      [analyzer] Fix infinite recursion in printing macros · b4cdfe8e
      Kristof Umann authored
      In the commited testfile, macro expansion (the one implemented for the plist
      output) runs into an infinite recursion. The issue originates from the algorithm
      being faulty, as in
      
      #define value REC_MACRO_FUNC(value)
      
      the "value" is being (or at least attempted) expanded from the same macro.
      
      The solved this issue by gathering already visited macros in a set, which does
      resolve the crash, but will result in an incorrect macro expansion, that would
      preferably be fixed down the line.
      
      Patch by Tibor Brunner!
      
      Differential Revision: https://reviews.llvm.org/D57891
      
      llvm-svn: 355705
      b4cdfe8e
    • Kristof Umann's avatar
      [analyzer] Emit an error rather than assert on invalid checker option input · 748c139a
      Kristof Umann authored
      Asserting on invalid input isn't very nice, hence the patch to emit an error
      instead.
      
      This is the first of many patches to overhaul the way we handle checker options.
      
      Differential Revision: https://reviews.llvm.org/D57850
      
      llvm-svn: 355704
      748c139a
    • Kristof Umann's avatar
      [analyzer] Use the new infrastructure of expressing taint propagation, NFC · 2827349c
      Kristof Umann authored
      In D55734, we implemented a far more general way of describing taint propagation
      rules for functions, like being able to specify an unlimited amount of
      source and destination parameters. Previously, we didn't have a particularly
      elegant way of expressing the propagation rules for functions that always return
      (either through an out-param or return value) a tainted value. In this patch,
      we model these functions similarly to other ones, by assigning them a
      TaintPropagationRule that describes that they "create a tainted value out of
      nothing".
      
      The socket C function is somewhat special, because for certain parameters (for
      example, if we supply localhost as parameter), none of the out-params should
      be tainted. For this, we added a general solution of being able to specify
      custom taint propagation rules through function pointers.
      
      Patch by Gábor Borsik!
      
      Differential Revision: https://reviews.llvm.org/D59055
      
      llvm-svn: 355703
      2827349c
    • Hyrum Wright's avatar
      [clang-tidy] NFC: Negate the name and semantics of the isNotInMacro function. · 8172a0a5
      Hyrum Wright authored
      This function is always used in a context where its result was also
      negated, which made for confusing naming and code.
      
      llvm-svn: 355702
      8172a0a5
    • Manman Ren's avatar
      Reland compiler-rt support for order file instrumentation. · e73ae9a1
      Manman Ren authored
      r355343 was landed and was reverted in r355363 due to build breakage.
      This patch adds Linux/Windows support on top of r355343.
      
      In this patch, Darwin should be working with testing case. Linux should be working,
      I will enable the testing case in a follwup diff. Windows/Other should be building.
      Correct implementation for Other platforms will be added.
      
      Thanks David for reviewing the original diff, helping me with issues on Linux, and
      giving suggestions for adding support for Other platforms.
      
      llvm-svn: 355701
      e73ae9a1
    • Akira Hatanaka's avatar
      Use {{.*}} in test case to match the type of wide string literals. · 62d1d024
      Akira Hatanaka authored
      The type of wide string literals varies depending on the target.
      
      llvm-svn: 355700
      62d1d024
    • Simon Pilgrim's avatar
      Fix typo in constant vector · 00ab0339
      Simon Pilgrim authored
      llvm-svn: 355699
      00ab0339
    • Erich Keane's avatar
      Re-fix _lrotl/_lrotr to always take Long, no matter the platform. · 92146ce3
      Erich Keane authored
      r355322 fixed this, however is being reverted due to concerns with
      enabling it in other modes.
      
      Change-Id: I6a939b7469b8fa196d5871a627eb2330dbd30f29
      llvm-svn: 355698
      92146ce3
    • Erich Keane's avatar
      Revert "Enable _rotl, _lrotl, _rotr, _lrotr on all platforms." · 00a5b4a2
      Erich Keane authored
      This reverts commit 24400dafe16716f28cd0e7e5fa6e004c0e50686a.
      
      llvm-svn: 355697
      00a5b4a2
    • James Henderson's avatar
      [llvm-readelf]Don't lose negative-ness of negative addends for no symbol relocations · b41130be
      James Henderson authored
      llvm-readelf prints relocation addends as:
      
        <symbol value>[+-]<absolute addend>
      
      where [+-] is determined from whether addend is less than zero or not.
      However, it does not print the +/- if there is no symbol, which meant
      that negative addends became their positive value with no indication
      that this had happened. This patch stops the absolute conversion when
      addends are negative and there is no associated symbol.
      
      Reviewed by: Higuoxing, mattd, MaskRay
      
      Differential Revision: https://reviews.llvm.org/D59095
      
      llvm-svn: 355696
      b41130be
    • Nico Weber's avatar
      gn build: Merge r355685 · 6bce2f8e
      Nico Weber authored
      llvm-svn: 355695
      6bce2f8e
    • Nico Weber's avatar
      gn build: Unbreak finding a working `gn` on $PATH on Unix after r355645 · c3130a8a
      Nico Weber authored
      From the Python subprocess docs:
      
         If shell is True, it is recommended to pass args as a string rather than as
         a sequence.
      
         [...]
      
         If args is a sequence, the first item specifies the command string, and any
         additional items will be treated as additional arguments to the shell itself.
      
      Prior to this change, the `--version` would be passed to the shell, not to
      a potential gn binary on $PATH, and running `gn` without any arguments makes
      it exit with an exit code != 0, so the script would think that there wasn't
      a working gn binary on $PATH.
      
      Fix this by following the documentation's recommendation of using a string
      now that we pass shell=True. I tested this on macOS and Windows, each with
      the three cases of
      
      - no gn on PATH (should run gn downloaded by get.py if present,
        else suggest running get.py)
      - broken gn wrapper on PATH (should behave like the previous item)
      - working gn on PATH (should use gn on PATH)
      
      llvm-svn: 355694
      c3130a8a
Loading