- Feb 26, 2020
-
-
Nicolai Hähnle authored
Quick fix for bot failure on "AMDGPU/SIInsertSkips: Fix the determination of whether early-exit-after-kill is possible" Apparently the dominator tree update is incorrect, will investigate. Change-Id: Ie76f8d11b22a552af1f098c893773f3d85e02d4f
-
Yitzhak Mandelbaum authored
Summary: Second attempt -- the first was reverted in commit 0e480b39, because of test breakages. This revision fixes the cause of the test breakages. Original description follows: This patch adds `getAssociatedRange` which, for a given decl, computes preceding and trailing text that would conceptually be associated with the decl by the reader. This includes comments, whitespace, and separators like ';'. Reviewers: gribozavr Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D72153
-
Jay Foad authored
-
Nicolai Hähnle authored
Summary: The old code made some incorrect assumptions about the order in which basic blocks are laid out in a function. This could lead to incorrect early-exits, especially when kills occurred inside of loops. The new approach is to check whether the point where the conditional kill occurs dominates all reachable code. If that is the case, there cannot be any other threads in the wave that are waiting to rejoin at a later point in the CFG, i.e. if exec=0 at that point, then all threads really are dead and we can exit the wave. Make some other minor cleanups to the pass while we're at it. v2: preserve the dominator tree Reviewers: arsenm, cdevadas, foad, critson Subscribers: kzhuravl, jvesely, wdng, yaxunl, dstuttard, tpr, t-tye, hiraditya, kerbowa, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74908 Change-Id: Ia0d2b113ac944ad642d1c622b6da1b20aa1aabcc
-
Nicolas Vasilache authored
This revision performs some basic refactoring towards more easily defining Linalg "named" ops. Such named ops form the backbone of operations that are ubiquitous in the ML application domain.
-
Sven van Haastregt authored
Add atomic types and builtins operating on those atomic types to `-fdeclare-opencl-builtins`. The _explicit variants are left out of this commit, as these take enum arguments that are not yet supported by the `-fdeclare-opencl-builtins` machinery.
-
Nico Weber authored
-
evgeny authored
Differential revision: https://reviews.llvm.org/D74778
-
Nico Weber authored
-
Kirill Bobyrev authored
Related Revison: D74925 Commit: 396b7253
-
Kadir Cetinkaya authored
Reviewers: sammccall Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D74962
-
Haojian Wu authored
Summary: Though we don't have new changes to the index format, we have changes to symbol collector, e.g. collect marcos, spelled references. Bump the version to force background-index to rebuild. Reviewers: kadircet Reviewed By: kadircet Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D74127
-
Nico Weber authored
-
Hans Wennborg authored
See discussion on PR44792. This reverts commit 02ce9d8e. It also reverts the follow-up commits 8f46269f "[profile] Don't dump counters when forking and don't reset when calling exec** functions" 62c7d840 "[profile] gcov_mutex must be static"
-
Dmitry Vyukov authored
Generally we ignore interceptors coming from called_from_lib-suppressed libraries. However, we must not ignore critical interceptors like e.g. pthread_create, otherwise runtime will lost track of threads. pthread_detach is one of these interceptors we should not ignore as it affects thread states and behavior of pthread_join which we don't ignore as well. Currently we can produce very obscure false positives. For more context see: https://groups.google.com/forum/#!topic/thread-sanitizer/ecH2P0QUqPs The added test captures this pattern. While we are here rename ThreadTid to ThreadConsumeTid to make it clear that it's not just a "getter", it resets user_id to 0. This lead to confusion recently. Reviewed in https://reviews.llvm.org/D74828
-
Kerry McLaughlin authored
Summary: Implements the following intrinsics: - @llvm.aarch64.sve.bdep.x - @llvm.aarch64.sve.bext.x - @llvm.aarch64.sve.bgrp.x - @llvm.aarch64.sve.tbl2 - @llvm.aarch64.sve.tbx The SelectTableSVE2 function in this patch is used to select the TBL2 intrinsic & ensures that the vector registers allocated are consecutive. Reviewers: sdesmalen, andwar, dancgr, cameron.mcinally, efriedma, rengolin Reviewed By: efriedma Subscribers: tschuett, kristof.beyls, hiraditya, rkruppe, psnobl, cfe-commits, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74912
-
Sam Parker authored
Add getUniqueReachingMIDef to RDA which performs a global search for a machine instruction that produces a unique definition of a given register at a given point. Also add two helper functions (getMIOperand) that wrap around this functionality to get the incoming definition uses of a given instruction. These now replace the uses of getReachingMIDef in ARMLowOverheadLoops. getReachingMIDef has been renamed to getReachingLocalMIDef and has been made private along with getInstFromId. Differential Revision: https://reviews.llvm.org/D74605
-
Florian Hahn authored
Turn on register renaming again after disabling it for the 10.0 release, to help flushing out any issues.
-
James Henderson authored
This moves it above the response file description, which should be at the end.
-
James Henderson authored
The examples for different options were inconsistently indented in the HTML display. As they are tied to the options, this change normalises to indent them the same as the option description body.
-
James Henderson authored
"--functions none" and "--functions=none" are not the same. One is the option "--functions" with its default value of "linkage", followed by an input address of "none", and the other is "--functions" with the value "none". This patch fixes the doc to match the actual behaviour by adding an extra '=' sign in the allowed values description.
-
Jay Foad authored
-
serge-sans-paille authored
Typo introduced in e058667a
-
serge-sans-paille authored
Add a configure feature test to filter out tests that explicitly depend on platform linker. Differential Revision: https://reviews.llvm.org/D74704
-
Pavel Labath authored
Summary: This packet is necessary to make lldb work with the remote-gdb stub in user mode qemu when running position-independent binaries. It reports the relative position (load bias) of the loaded executable wrt. the addresses in the file itself. Lldb needs to know this information in order to correctly set the load address of the executable. Normally, lldb would be able to find this out on its own by following the breadcrumbs in the process auxiliary vector, but we can't do this here because qemu does not support the qXfer:auxv:read packet. This patch does not implement full scope of the qOffsets packet (it only supports packets with identical code, data and bss offsets), because it is not fully clear how should the different offsets be handled and I am not aware of a producer which would make use of this feature (qemu will always <https://github.com/qemu/qemu/blob/master/linux-user/elfload.c#L2436> return the same value for code and data offsets). In fact, even gdb ignores the offset for the bss sections, and uses the "data" offset instead. So, until the we need more of this packet, I think it's best to stick to the simplest solution possible. This patch simply rejects replies with non-uniform offsets. Reviewers: clayborg, jasonmolenda Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D74598
-
Haojian Wu authored
-
Haojian Wu authored
Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D74834
-
Kadir Cetinkaya authored
Summary: Fixes https://github.com/clangd/clangd/issues/279. We were removing the color options but not the preceeding -Xclang which causes errors since the -Xclang would now apply to the next option in the list of options. Now, when removing a color option, we check if there was a preceeding -Xclang and remove it as well. Patch By @DaanDeMeyer ! Reviewers: sammccall, kadircet Reviewed By: sammccall Subscribers: ilya-biryukov, usaxena95 Differential Revision: https://reviews.llvm.org/D75019
-
serge-sans-paille authored
Local testing on OSX no longer exhibit the linking error mentioned in https://reviews.llvm.org/D71959#1860286
-
Michael Liao authored
-
Juneyoung Lee authored
-
Jim Lin authored
-
Greg Clayton authored
Summary: This patch creates the llvm-gsymutil binary that can convert object files to GSYM using the --convert <path> option. It can also dump and lookup addresses within GSYM files that have been saved to disk. To dump a file: llvm-gsymutil /path/to/a.gsym To perform address lookups, like with atos, on GSYM files: llvm-gsymutil --address 0x1000 --address 0x1100 /path/to/a.gsym To convert a mach-o or ELF file, including any DWARF debug info contained within the object files: llvm-gsymutil --convert /path/to/a.out --out-file /path/to/a.out.gsym Conversion highlights: - convert DWARF debug info in mach-o or ELF files to GSYM - convert symbols in symbol table to GSYM and don't convert symbols that overlap with DWARF debug info - extract UUID from object files - extract .text (read + execute) section address ranges and filter out any DWARF or symbols that don't fall in those ranges. - if .text sections are extracted, and if the last gsym::FunctionInfo object has no size, cap the size to the end of the section the function was contained in Dumping GSYM files will dump all sections of the GSYM file in textual format. Reviewers: labath, aadsm, serhiy.redko, jankratochvil, xiaobai, wallace, aprantl, JDevlieghere, jdoerfert Subscribers: mgorny, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74883
-
Juneyoung Lee authored
Summary: Loop unswitch hoists branches on loop-invariant conditions. However, if this condition is poison/undef and the branch wasn't originally reachable, loop unswitch introduces UB (since the optimized code will branch on poison/undef and the original one didn't)). We fix this problem by freezing the condition to ensure we don't introduce UB. We will now transform the following: while (...) { if (C) { A } else { B } } Into: C' = freeze(C) if (C') { while (...) { A } } else { while (...) { B } } This patch fixes the root cause of the following bug reports (which use the old loop unswitch, but can be reproduced with minor changes in the code and -enable-nontrivial-unswitch): - https://llvm.org/bugs/show_bug.cgi?id=27506 - https://llvm.org/bugs/show_bug.cgi?id=31652 Reviewers: reames, majnemer, chenli, sanjoy, hfinkel Reviewed By: reames Subscribers: hiraditya, jvesely, nhaehnle, filcab, regehr, trentxintong, nlopes, llvm-commits, mzolotukhin Tags: #llvm Differential Revision: https://reviews.llvm.org/D29015 -
Kang Zhang authored
Summary: The patch D62993 : `[PowerPC] Emit scalar min/max instructions with unsafe fp math` has modified the functionality when `Subtarget.hasP9Vector() && (!HasNoInfs || !HasNoNaNs)`, this modification is not expected. Reviewed By: nemanjai Differential Revision: https://reviews.llvm.org/D74701
-
Fangrui Song authored
Only MCAsmStreamer (assembly output) needs to keep names of temporary labels created by MCContext::createTempSymbol(). This change made the rL236642 optimization available for cc2as and probably some other users. This eliminates a behavior difference between llvm-mc -filetype=obj and cc1as, which caused https://reviews.llvm.org/D74006#1890487 Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D75097
-
Fangrui Song authored
Fixed an issue exposed by D74006. In clang cc1as, MCContext::UseNamesOnTempLabels is true. When parsing a .fnstart directive, FnStart gets redefined to a temporary symbol of a different name (.Ltmp0, .Ltmp1, ...). MCContext::getELFSection() called by SwitchToEHSection() will create a different .ARM.exidx each time. llvm-mc uses `Ctx.setUseNamesOnTempLabels(false);` and FnStart is unnamed. MCContext::getELFSection() called by SwitchToEHSection() will reuse the same .ARM.exidx . Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D75095
-
Fangrui Song authored
-
Nathan James authored
[docs] dump-ast-matchers removes const from Matcher args and handles template functions slightly better Reviewers: aaron.ballman, gribozavr2, joerg Reviewed By: aaron.ballman Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D75113
-
Reid Kleckner authored
Instead, use `using namespace lld(::coff)`, and fully qualify the names of free functions where they are defined in cpp files. This effectively reverts d79c3be6 to follow the new style guide added in 236fcbc2. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D74882
-