- Apr 02, 2020
-
-
Matt Arsenault authored
-
Matt Arsenault authored
This will likely introduce catastrophic performance regressions on older subtargets, but should be correct. A follow up change will remove the old fp32-denormals subtarget features, and switch to using the new denormal-fp-math/denormal-fp-math-f32 attributes. Frontends should be making sure to add the denormal-fp-math-f32 attribute when appropriate to avoid performance regressions.
-
Duncan P. N. Exon Smith authored
Diagnostics from modules do not have a `main-file` listed. Tweak `clang-parse-diagnostics-file` to patch this up. Previously, the call to `os.path.basename` would crash. Radar-Id: rdar://problem/59000292
-
Louis Dionne authored
-
Louis Dionne authored
Instead of hardcoding absolute paths on the build-host in the executables, use relative paths from the current working directory. Also, use FILE_DEPENDENCIES to mark the static test env as being required by the relevant tests. Given a SSH executor that copies the files to the remote host properly, the tests can be run on that remote host.
-
Nico Weber authored
The problem on Windows was that the \b in "..\bin" was interpreted as an escape sequence. Use r"" strings to prevent that. This reverts commit ab11b9ee, with raw strings in the lit.site.cfg.py.in files. Differential Revision: https://reviews.llvm.org/D77184
-
Cyndy Ishida authored
Summary: [llvm][TextAPI] adding inlining reexported libraries support * this patch adds reader/writer support for MachO tbd files. The usecase is to represent reexported libraries in top level library that won't need to exist for linker indirection because all of the needed content will be inlined in the same document. Reviewers: ributzka, steven_wu, jhenderson Reviewed By: ributzka Subscribers: JDevlieghere, hiraditya, mgrang, dexonsmith, rupprecht, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D67646
-
Casey Carter authored
... keep the warning suppression, but revert the `__pragma` to `_Pragma` change because `_Pragma` interacts badly with `/Zc:preprocessor`.
-
Craig Topper authored
The compares are going to be type legalized to 256 bits so we might as well fold the extend.
-
Fangrui Song authored
With a fix for http://lab.llvm.org:8011/builders/clang-cmake-armv8-lld/builds/3636 Also trims some unneeded dependencies.
-
Nico Weber authored
This reverts commit fb80b6b2 and follow-up 631ee8b2. Seems to not work on Windows: http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/31684 http://lab.llvm.org:8011/builders/llvm-clang-win-x-aarch64/builds/6512 Let's revert while I investigate.
-
Mehdi Amini authored
This slightly tweaks the generated code from: #ifdef GEN_PASS_REGISTRATION ::mlir::registerPass("flag1", ... ::mlir::registerPass("flag2", ... #endif // GEN_PASS_REGISTRATION to: #ifdef GEN_PASS_REGISTRATION #define GEN_PASS_REGISTRATION_Pass1 #define GEN_PASS_REGISTRATION_Pass2 #endif // GEN_PASS_REGISTRATION #ifdef GEN_PASS_REGISTRATION_Pass1 ::mlir::registerPass("flag1", ... #endif #ifdef GEN_PASS_REGISTRATION_Pass1 ::mlir::registerPass("flag2", ... #endif That way the generated code can be included by defining the `GEN_PASS_REGISTRATION` macro as currenty and register all the passes, but one can also define only `GEN_PASS_REGISTRATION_Pass1` to register a subset of the passes. Differential Revision: https://reviews.llvm.org/D77322
-
Walter Erquinigo authored
* This is a reattempted commit due to a previous builtbot failure - Now using a env var to determine whether to run the test, as someone might have built liblldbIntelFeatures.so without intelPT support, which would make this test fail. Summary: Depends on D76872. There was no test for the Intel PT support on LLDB, so I'm creating one, which will help making progress on solid grounds. The test is skipped if the Intel PT plugin library is not built. Reviewers: clayborg, labath, kusmour, aadsm Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D77107
-
Nico Weber authored
I broke it with last-minute changes right before committing. Differential Revision: https://reviews.llvm.org/D77184
-
Anna Thomas authored
Consider a callee function that has a call (C) within it which feeds into the return. When we inline that callee into a callsite that has return attributes, we can backward propagate valid attributes to the call (C) within that inlined callee body. This is safe to do so only if we can guarantee transfer of execution to successor in the window of instructions between return value (i.e. the call C) and the return instruction. Also, this is valid only for attributes which are a property of a callsite and not those that are not dependent on the ABI, or a property of the call itself. Reviewed-By: reames, jdoerfert Differential Revision: https://reviews.llvm.org/D76140
-
Matt Arsenault authored
This is a workaround for clang adding noinline to all functions at -O0. Previously, we would just add alwaysinline, and the verifier would complain about having both noinline and alwaysinline. We currently can't truly codegen this case as a freestanding function, so override the user forcing noinline.
-
Nico Weber authored
Currently, all generated lit.site.cfg files contain absolute paths. This makes it impossible to build on one machine, and then transfer the build output to another machine for test execution. Being able to do this is useful for several use cases: 1. When running tests on an ARM machine, it would be possible to build on a fast x86 machine and then copy build artifacts over after building. 2. It allows running several test suites (clang, llvm, lld) on 3 different machines, reducing test time from sum(each test suite time) to max(each test suite time). This patch makes it possible to pass a list of variables that should be relative in the generated lit.site.cfg.py file to configure_lit_site_cfg(). The lit.site.cfg.py.in file needs to call `path()` on these variables, so that the paths are converted to absolute form at lit start time. The testers would have to have an LLVM checkout at the same revision, and the build dir would have to be at the same relative path as on the builder. This does not yet cover how to figure out which files to copy from the builder machine to the tester machines. (One idea is to look at the `--graphviz=test.dot` output and copy all inputs of the `check-llvm` target.) Differential Revision: https://reviews.llvm.org/D77184
-
Sterling Augustine authored
Summary: This patch follows libgcc's lead: When the return-address register is zero, there won't be additional stack frames to examine, or gather information about. Exit before spending time looking for something known not to be found. Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D77099
-
Sanjay Patel authored
shuf (bitcast X), undef, Mask --> bitcast X' The 'inverse shuffles' test (shuf_bitcast_operand) is a pattern in the motivating examples from PR35454: https://bugs.llvm.org/show_bug.cgi?id=35454 (see also D76727) We can deal with this class of patterns in generic instcombine because we are not creating any new shuffles, just a bitcast. Alive2 proof: http://volta.cs.utah.edu:8080/z/mwDUZf Differential Revision: https://reviews.llvm.org/D76844
-
Sanjay Patel authored
bitcast (shuf V, MaskC) --> shuf (bitcast V), MaskC' We do not attempt this in InstCombine because we do not want to change types and create new shuffle ops that are potentially not lowered as well as the original code. Here, we can check the cost model to see if it is worthwhile. I've aggressively enabled this transform even if the types are the same size and/or equal cost because moving the bitcast allows InstCombine to make further simplifications. In the motivating cases from PR35454: https://bugs.llvm.org/show_bug.cgi?id=35454 ...this is enough to let instcombine and the backend eliminate the redundant shuffles, but we probably want to extend VectorCombine to handle the inverse pattern (shuffle-of-bitcast) to get that simplification directly in IR. Differential Revision: https://reviews.llvm.org/D76727
-
Stanislav Mekhanoshin authored
SILoadStoreOptimizer::checkAndPrepareMerge() expects base and paired instruction to come in order and scans MBB from base to the paired instruction. An original order can be changed if there were a dependent instruction in between and base instruction was moved. Fixed by bailing the optimization. In theory it might be possible still to perform a merge by swapping instructions, but on practice it bails anyway because it finds dependency on that same instruction which has resulted in the base move. Differential Revision: https://reviews.llvm.org/D77245
-
Louis Dionne authored
To avoid wasting the valuable time of contributors, add a link to a blocked review to document additional issues with the removal of some GCC 4.9 workaround.
-
Louis Dionne authored
Chromium's build sets LIBCXX_CXX_ABI_SYSTEM explicitly when building libc++, which was broken by 61e89737 (which stopped listening to that option). As a workaround, this commit uses the system libc++abi when LIBCXX_CXX_ABI_SYSTEM is used. However, we will need to work with Chromium to standardize their build of libc++, because LIBCXX_CXX_ABI_SYSTEM is not a public facing build configuration for libc++, and has never been AFAICT.
-
Nicolas Vasilache authored
C interface emission is controlled by a flag and has coarse granularity. With this coarse control, interfaces are emitted for all external functions. This makes is easy to get undefined symbols. This revision adds support for controlling per-function emission with an "emit_c_interface" attribute.
-
Sanjay Patel authored
These are versions of a function that regressed with: rGf2fbdf76d8d0 That particular problem occurs with an instcombine-simplifycfg-instcombine sequence, but we can show that it exists within instcombine only with other variations of the pattern.
-
Shivam Mittal authored
Summary: Convert index-based loops marked TODO in CommandObjectSettings and CommandObjectTarget to entry-based. Reviewers: labath Reviewed By: labath Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D76729
-
Alex Zinenko authored
This code is unused since 04ed07bc, but it was not removed in that commit.
-
LLVM GN Syncbot authored
-
LLVM GN Syncbot authored
-
Nico Weber authored
This reverts commit 45b6364e, 03f43b3a was reverted in af39151f.
-
Fangrui Song authored
The aliased options in the --help output use double dashes. It is inconsistent to have single-dashed messages. Additionally, -l and -t are common short options and single-dashed forms prefixed with them can cause confusion.
-
Louis Dionne authored
The 'runtimes' build started failing because libc++ stopped using the in-tree libc++abi when HAVE_CXXABI is set after 61e89737. This commit tries to bring back the old behavior when HAVE_CXXABI is set in order to fix CIs. However, we really need to sit down and discuss what ways of building libc++ are supported and formalize them, because having the libc++ build system branch on basically random variables in some CMake cache somewhere is not a viable path forward.
-
Benjamin Kramer authored
-
Jonas Paulsson authored
-
Sam McCall authored
Summary: This returns incremental highlights as a set of edits against the previous highlights. Server-side, we compute the full set of highlights, this just saves wire-format size. For now, the diff used is trivial: everything from the first change to the last change is sent as a single edit. The wire format is grungy - the replacement offset/length refer to positions in the encoded array instead of the logical list of tokens. We use token-oriented structs and translating to LSP forms when serializing. This departs from LSP (but is consistent with semanticTokens today). Tested in VSCode insiders (with a patched client to enable experimental features). Reviewers: hokein Subscribers: ilya-biryukov, MaskRay, jkorous, mgrang, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D77225
-
Sam McCall authored
Summary: This allows the standard mechanism to gracefully displace the old one. Reviewers: hokein Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D77206
-
Adam Czachorowski authored
Summary: This triggers on types and function calls with namespace qualifiers. The action is to remove the qualifier and instead add a "using" statement at appropriate place. It is not always clear where to add the "using" line. Right now we find the nearest "using" line and add it there, thus keeping with local convention. If there are no usings, we put it at the deepest relevant namespace level. This is an initial version only. There are several improvements that can be made: * Support for qualifiers that are not purely namespace (e.g. record types, etc). * Removing qualifier from other instances of the same type/call. * Smarter placement of the "using" line. Reviewers: sammccall Reviewed By: sammccall Subscribers: nridge, mgorny, ilya-biryukov, MaskRay, jkorous, mgrang, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D76432
-
Benjamin Kramer authored
This reverts commit 2a77544a. This introduces a use-after-free in Transforms/InstCombine/sincospi.ll. Found by asan.
-
Tyker authored
-
Casey Carter authored
... in `msvc_stdlib_force_include.h` to also ignore new MSVC warning C5215 "'%s' a function parameter with volatile qualified type is deprecated in C++20". Since we're touching it, also update from non-standard `__pragma(meow)` to standard `_Pragma("meow")`.
-