- Apr 28, 2023
-
-
Roland McGrath authored
https://github.com/llvm/llvm-project/issues/62396 reports that GCC 13 barfs on parsing <type_traits> because of the declarations of `struct __is_convertible`. In GCC 13, `__is_convertible` is a built-in, but `__is_convertible_to` is not. Clang has both, so using either should be fine. Reviewed By: #libc, philnik Differential Revision: https://reviews.llvm.org/D149313
-
Paul Kirth authored
Previously we only accepted the `-fdiagnostics-misexpect-tolerance=` at CC1, when it should have been handled identically to `-fdiagnostics-hotness-threshold=`. It should not have been required to pass this flag w/ `-Xclang` as reported here: https://reviews.llvm.org/D115907#inline-1440745 Reviewed By: hans, phosek Differential Revision: https://reviews.llvm.org/D149206
-
Nick Desaulniers authored
If the removable definition resides in an INLINEASM_BR target, the reuseable candidate might not dominate the INLINEASM_BR. bb0: INLINEASM_BR &"" %bb.1 renamable $x8 = MOVi64imm 29273397577910035 B %bb.2 ... bb1: renamable $x8 = MOVi64imm 29273397577910035 renamable $x8 = ADDXri killed renamable $x8, 2048, 0 bb2: Removing the second mov is a hazard when the inline asm branches to bb1. Skip such replacements when the to be removed instruction is in the target of such an INLINEASM_BR instruction. We could get more aggressive about this in the future, but for now simply abort. This is causing a boot failure on linux-4.19.y branches of the LTS Linux kernel for ARCH=arm64 with CONFIG_RANDOMIZE_BASE=y (KASLR) and CONFIG_UNMAP_KERNEL_AT_EL0=y (KPTI). Link: https://reviews.llvm.org/D123394 Link: https://github.com/ClangBuiltLinux/linux/issues/1837 Thanks to @nathanchance for the report, and @ardb for debugging. Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D149191 -
Nick Desaulniers authored
Demonstrates a hazard in machine-latecleanup. Differential Revision: https://reviews.llvm.org/D149190
-
LLVM GN Syncbot authored
-
Nikolas Klauser authored
Reviewed By: ldionne, #libc Spies: sstefan1, pcwang-thead, jplehr, libcxx-commits, arichardson, mgrang, miyuki Differential Revision: https://reviews.llvm.org/D149275
-
Mingming Liu authored
callsites when none of the instructions folds the rest away. - Merge cases are added for simplify-cfg {sink,hoist}, based on https://gcc.godbolt.org/z/avGvc38W7 and https://gcc.godbolt.org/z/dbWbjGhaE - When one instruction folds the others in, do not update branch_weights with sum (see test/Transforms/GVN/calls-readonly.ll) Differential Revision: https://reviews.llvm.org/D148877 -
Andrew Gozillon authored
This patch seeks to do two things add an accessor method to retrieve the ModuleTranslations contained LLVM Module for direct usage by dialects that are being lowered to LLVM-IR. One particular use case for this is in the OpenMP Dialect, when interfacing with the OMPIRBuilder in certain cases it is useful to be able to access the LLVM Module directly. The second is invoking convertDialectAttributes on GlobalOp's so as to be able to lower dialect specific attributes that are applied or lowered onto GlobalOp's. Reviewers: ftynse Differential Revision: https://reviews.llvm.org/D149279
-
Christian Ulmann authored
This commit fixes a dead StringRef access introduced in https://reviews.llvm.org/D149324
-
Joseph Huber authored
Summary: This patch adds a way to get the total number of blocks and implement the wave sync intrinsic for AMDGPU. This is a no-op, but that may change in the future so we might as well implement it right.
-
Mircea Trofin authored
This makes the logic for referenced globals reusable for import criteria that don't use thresholds - in fact, we currently didn't consider any thresholds when importing. Differential Revision: https://reviews.llvm.org/D149298
-
Snehasish Kumar authored
Symbolization of position independent code was added in D146181. Update the comment to note that the checks below are to sanity check the assumptions we make to simplify symbolization. Differential Revision: https://reviews.llvm.org/D149370
-
Slava Zakharin authored
c_ptr arguments passed by value need special handling, which was missing in HLFIR lowering. The lowering has to load the __address component and pass the loaded value as the actual argument. Differential Revision: https://reviews.llvm.org/D149307
-
Noah Goldstein authored
Alive2 Link: https://alive2.llvm.org/ce/z/2DKh46 Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D149203 -
Arthur Eubanks authored
This reverts commit ca94b02e. Causes miscompiles, see D141188
-
Alan Zhao authored
-
Craig Topper authored
This was removed by D149314.
-
Jonathon Penix authored
This fixes an error that clang_target_link_libraries is unknown when building the Decimal library standalone--this is the same as D149090, just for the Decimal library (vs the runtime). I was still seeing this error for the Decimal library and didn't see a corresponding patch--apologies in advance if I missed one or if this is a duplicate! Differential Revision: https://reviews.llvm.org/D149277
-
Alexey Bataev authored
instead, NFC. Better to use PointerUnion<Value *, const TreeEntry *> instead of extra attempts of creating null vector values, where possible.
-
Changpeng Fang authored
Summary: Registers for tail call return should not be clobbered by callee. So we need a sub-class of SGPR_64 (excluding callee saved registers (CSR)) to hold the tail call return address. Because GFX and C calling conventions have different CSR, we need to define the sub-class separately. This work is an extension of D147096 with the consideration of GFX calling convention. Based on the calling conventions, different instructions will be selected with different sub-class of SGPR_64 as the input. Reviewers: arsenm, cdevadas and sebastian-ne Differential Revision: https://reviews.llvm.org/D148824
-
Elliot Goodrich authored
The multiple-include optimization allows Clang to avoid opening a files when they contain #pragma once or a proper include guard. Both GCC and Microsoft Visual Studio allow null directives outside of the #ifndef/#endif pair without disabling this multiple-include optimization. GCC documents this behavior here https://gcc.gnu.org/onlinedocs/cppinternals/Guard-Macros.html. > There must be no directives outside the controlling directive pair, > but the null directive (a line containing nothing other than a > single '#' and possibly whitespace) is permitted. However, Clang disables the multiple-include optimization when encountering the null directive. In particular, this slows down preprocessing of most projects that depend on boost as many boost libraries depend on the boost preprocessor library, which contains null directives outside the include guard on every header file. Differential Revision: https://reviews.llvm.org/D147928
-
Alan Zhao authored
When calling InitializeBase(...), TryOrBuidlParenListInit(...) needs to pass in the parent entity; otherwise, we erroneously try to cast CurContext to a CXXConstructorDecl[0], which can't be done since we're performing aggregate initialization, not constructor initialization. Field initialization is not affected, but this patch still adds some tests for it. Fixes 62296 [0]: https://github.com/llvm/llvm-project/blob/33d6bd1c667456f7f4a9d338a7996a30a3af50a3/clang/lib/Sema/SemaAccess.cpp#L1696 Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D149301
-
Arthur Eubanks authored
-
ManuelJBrito authored
Following the change in shufflevector semantics, poison will be used to represent undefined elements in shufflevector masks. Differential Revision: https://reviews.llvm.org/D149256
-
Alexis Engelke authored
For functions with very large numbers of live variables, lookups into LiveRegMap previously detoriated to linear searches. This slightly increases memory usage, but that is barely measurable. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D149330
-
Shubham Sandeep Rastogi authored
Differential Revision: https://reviews.llvm.org/D149355
-
Mingming Liu authored
- Mention this change in Clang release notes Before: - Clang emits "invalid output constraint '=@cceq' in asm" https://gcc.godbolt.org/z/b9crfEo8h After: - For aarch64 targets (with __aarch64__ defined), Clang validates and parses flag output constraints to generate LLVM IR. Differential Revision: https://reviews.llvm.org/D149123
-
Jean Perier authored
Lowering analyse specification expressions in order to create order the symbol instantiations in the IR (If symbol B is used in the specification expression of A, symbol B must be instantiated first). This analysis was mistakenly collecting component symbols used in component references inside specification expressions, which led lowering to instantiate component symbols as if they were local objects. This patch prevents collecting component symbols during this analysis. Differential Revision: https://reviews.llvm.org/D149328
-
Alexey Bataev authored
If two nodes share the same value, which is replaced in one of the nodes, need to automatically replace same value in all nodes. Btter to use WeakTrackingVH for this to fix compiler crash.
-
Nikolas Klauser authored
Reviewed By: ldionne, #libc Spies: sstefan1, pcwang-thead, jplehr, libcxx-commits, arichardson, mgrang Differential Revision: https://reviews.llvm.org/D141781
-
Martin Storsjö authored
On Windows, the PATH env variable is used for locating dynamically linked librarys, akin to LD_LIBRARY_PATH on Linux. The tests that run with a dynamically linked libc++ used "--env PATH=%{lib}" in the test config. This had the unfortunate side effect of making other tools from PATH unavailable during the runtime of the tests; in particular, it caused the "executor-has-no-bash" flag to be set for all those Windows test configs (with the clang-cl static config being the only one lacking it). Thus, this increases the number of tests actually included in the clang-cl dll and all mingw test configs by 9 tests. The clang-cl static test configuration has been executing those tests since the "--env PATH=%{lib}" was removed from that test config in e78223e7. (For mingw we haven't had a need to split the test config between shared and static, which means that the mingw static test config previously ran with --env PATH needl... -
Martin Storsjö authored
No test actually does this, but this makes the option behave like the corresponding one in run.py. This was broken by commit b8b23aa8 (https://reviews.llvm.org/D99242) which introduced quoting; instead of quoting the whole space separated list, quote each individual argument. Differential Revision: https://reviews.llvm.org/D149319
-
Martin Storsjö authored
This allows for easier debugging of the test environment when something fails. Differential Revision: https://reviews.llvm.org/D145807
-
David Green authored
The -mattr=+global-isel is not valid syntax, so those lines have been removed. With Global-ISel there is currently missing vector legalization for wide G_EXT, and it does not support BE.
-
Christian Ulmann authored
This commit cleans up some parts of the PGO instrumentation. Most importantly, it removes a template parameter shadowing of a class name that could lead to confusion. Reviewed By: gysit Differential Revision: https://reviews.llvm.org/D149324
-
Jay Foad authored
TTI was already available in the SimplifyCFGOpt class.
-
Kiung Jung authored
Implementing logic to check if the emitc dialect constant Op is empty. Reviewed By: marbre Differential Revision: https://reviews.llvm.org/D147907
-
- Apr 27, 2023
-
-
Ulrich Weigand authored
The libz compression library on SystemZ by default makes use of the platform's hardware-accelerated compression facility. This is much faster than the regular software implementation, but often results in slightly different outputs. This causes failures with the compressed-debug-level test case. To fix this, run this test while setting the DFLTCC environment variable to zero, which prevents use of hardware compression and falls back to the software implementation. (This should not have any effect on other platforms.) Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D149273
-
Ulrich Weigand authored
When running the LLD test suite on a big-endian host, the COFF/pdb-framedata.yaml test case currently fails. As it turns out, this is because code in DebugSHandler::finish intended to relocate RvaStart entries of FDO records does not work correctly when compiled for a big-endian host. Fixed by always reading file data in little-endian mode. Reviewed By: aganea Differential Revision: https://reviews.llvm.org/D149268
-
Akash Banerjee authored
Co-authored-by:
Kiran Chandramohan <kiran.chandramohan@arm.com> Reviewed By: TIFitis Differential Revision: https://reviews.llvm.org/D149153
-