- Apr 28, 2023
-
-
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
-
Kiung Jung authored
Disallow to apply the operator & (address of) to emitc.constant operations. Reviewed By: marbre, simon-camp Differential Revision: https://reviews.llvm.org/D147992
-
Craig Topper authored
We were previously using the condition as the mask. By the semantics of VP operations, that means that anywhere the condition is false returns poison and not the false operand. Use an all ones mask instead. No tests are affected because RISC-V drops the mask when lowering. Reviewed By: fakepaper56 Differential Revision: https://reviews.llvm.org/D149310
-
Mark de Wever authored
In order to use clang-tidy for modules version 17 is required. Some of the development fixes haven't been backported. This adds the new version to the CI so it can be used in a follow-up patch. Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D148831
-
Jakub Kuderski authored
This pattern triggers when only the extension bits are truncated. Reviewed By: dcaballe Differential Revision: https://reviews.llvm.org/D149286
-
Craig Topper authored
This was part of the N extension which didn't make it version 1.12 of the privilege specification. Reviewed By: kito-cheng Differential Revision: https://reviews.llvm.org/D149314
-
Mark de Wever authored
Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D148928
-
LLVM GN Syncbot authored
-
Mark de Wever authored
The module validation script of D144994 validate whether the contents of an include match its module. An include is the set of files matching the pattern: - foo - foo/*. - __fwd/foo.h Several declarations of the stream headers are in the header iosfwd. This gives issue using the validation script. Adding iosfwd to the set of matching files gives too many declarations. For example when validating the fstream header it will pull in declarations of the istream header. Instead if writing a set of filters the headers are granularized into smaller headers containing the expected declarations. Reviewed By: #libc, ldionne Differential Revision: https://reviews.llvm.org/D148927
-
Louis Dionne authored
In D145589, we made the std::bind placeholders inline constexpr to satisfy C++17. It turns out that this causes ODR violations since the shared library provides strong definitions for those placeholders, and the linker on Windows actually complains about this. Fortunately, C++17 only encourages implementations to use `inline constexpr`, it doesn't force them. So instead, we unconditionally define the placeholders as `extern const`, which avoids the ODR violation and is indistinguishable from `inline constexpr` for most purposes, since the placeholders are empty types anyway. Note that we could also go back to the pre-D145589 state of defining them as non-inline constexpr variables in C++17, however that is definitely non-conforming since that means the placeholders have different addresses in different TUs. This is all a bit pedantic, but all in all I feel that `extern const` provides the best bang for our buck, and I can't really find any downsides to that solution. Differential Revision: https://reviews.llvm.org/D149292
-
Andrew Gozillon authored
The CHECK-NOT tests were incorrect and impacting the other tests flag tests negatively, they'd pass as false positives.
-
Andrew Gozillon authored
Checks if the operation the attirbute resides on is an ModuleOp otherwise it fails.
-
Nico Weber authored
-
Christian Ulmann authored
This commit moves the CFGMST.h file into the include directory. The implemented algorithm is can be helpful for downstream projects that want to use the PGO data in a non-standard way. Reviewed By: gysit Differential Revision: https://reviews.llvm.org/D149336
-
Nikita Popov authored
Make the phi non-trivial, so SCEV can't see through it.
-
skc7 authored
Legalize soffset of buffer instructions using waterfall loop. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D141030
-
Akash Banerjee authored
Cleanup how the IsBegin argument is passed and removed unnecessary variable.
-