- Mar 27, 2023
-
-
Kazu Hirata authored
-
Yeting Kuo authored
Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D146911
-
Kazu Hirata authored
-
sgokhale authored
Add more tests to show oppurtunity for generating fused mul+add/sub ops. Differential Revision: https://reviews.llvm.org/D146282
-
Lang Hames authored
Where the same dylib is loaded more than once we should just return the JITDylib created by the first call rather than error out. This matches the behavior of dlopen / LoadLibrary.
-
Brad Smith authored
NetBSD 6.x and older is ancient. Remove now unnecessary version check. Reviewed By: mgorny Differential Revision: https://reviews.llvm.org/D146891
-
Alex Bradbury authored
This Moves ELFObjectFile to using RISCVISAInfo::parseNormalizedArchString which is not an NFC, as the test changes show. D144353 transitioned LLD to using this function, which is specialised to parsing arch strings in the normalised format specified in the psABI rather than user-authored strings accepted in `-march`, which has greater flexibility. parseNormalizedArchString does not ignore or produce an error for ISA extensions with a version that isn't recognised/supported by LLVM. As current GCC is marking its objects with a higher version of the A, F, and D extensions than LLVM (see [extension versioning discussion](https://discourse.llvm.org/t/rfc-resolving-issues-related-to-extension-versioning-in-risc-v/68472) this massively improves the usability of llvm-objdump with such binaries. Differential Revision: https://reviews.llvm.org/D146114
-
Alex Bradbury authored
Tools such as llvm-objdump will currently inputs when the base ISA has an unrecognised version. I addressed a similar issue in LLD in D144353, introducing parseArchStringNormalized. While it would make sense to migrate `llvm/lib/Object/ELFObjectFile.cpp` to using `parseArchStringNormalized` as well, this patch takes a less ambitious initial step. By tweaking the behaviour of `parseArchString` when `IgnoreUnknown` is true (which only has one in-tree user), we use the default supported ISA version when a base ISA with unrecognised version is encountered. This means that llvm-objdump and related tools will function better for objects produced from a recent GCC. This isn't a full fix, as IgnoreUnknown means that an imafd object with attributes specifying newer A/F/D versions will have those extensions ignored. Differential Revision: https://reviews.llvm.org/D146070
-
wangpc authored
Add missing bang operators and reorder them in alphabetical order. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D146687
-
Younan Zhang authored
This patch adapts to D140059, which makes an assumption that the caller of `APSInt::getExtValue` promises no narrowing conversion happens, i.e., from unsigned int64 to signed int64. It also fixes clangd/clangd#1557. Reviewed By: nridge Differential Revision: https://reviews.llvm.org/D146874
-
Wang, Xin10 authored
Look at the code in X86ISelLowering.cpp line 15579, when NumV2Elements == 0, it has been handled in that scope, and will not move to the line 15612. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D146790
-
Lang Hames authored
LLJIT::loadPlatformDynamicLibrary loads a dynamic library at a given path (interpreted in the executor process -- the process containing the JIT'd code), and returns a JITDylib (whose name is the given path) that reflects the symbols in that library. LLJIT clients wishing to make the given symbols visible to their JIT'd code can add this JITDylib to the link order of their JITDylib(s) using JITDylib::addToLinkOrder. The LLJIT::linkStaticLibraryInto overloads load a static library (or universal binary) at a given path (interpreted in the controller process -- the process containing the LLJIT instance) and adds its symbols to the given JITDylib. The lli tool is updated to use LLJIT::linkStaticLibraryInto to implement the extra-archive option. LLJIT::loadPlatformDynamicLibrary is not tested in this patch as we don't have a good way to produce dylibs in LLVM's regression test suite.
-
sstwcw authored
An escaped identifier always needs a space following it so the parser can tell it apart from the next token. The unit tests are changed to use `FormatTestBase.h` because we need the 2-argument version of `verifyFormat`. We also added the `messUp` virtual function because Verilog needs a different version of it. Reviewed By: HazardyKnusperkeks Differential Revision: https://reviews.llvm.org/D146401
-
Owen Pan authored
Fixes a bug in IntegerLiteralSeparatorFixer::checkSeparator() so that only unformatted integer literals will be formatted. Differential Revision: https://reviews.llvm.org/D146501
-
Lang Hames authored
LLJIT needs access to symbols (e.g. llvm_orc_registerEHFrameSectionWrapper) that will be defined in the executable when LLVM is linked statically. Should fix https://github.com/llvm/llvm-project/issues/61712.
-
Carlos Galvez authored
Some user-defined literals operate on implementation-defined types, like "unsigned long long" and "long double", which are not well supported by this check. Currently, the check gives warnings when using UDLs, without giving possiblity to the user to whitelist common UDLs. A good compromise until a proper fix is found (if any) is to allow the user to disable warnings on UDLs. Partially fixes #61656 Differential Revision: https://reviews.llvm.org/D146913
-
- Mar 26, 2023
-
-
Alex Bradbury authored
For trivial cases (`_Float16` as a standalone argument), it was previously correctly lowered to half. But the logic for catching cases involving structs was gated off, as at the time that logic was written the ABI for half was unclear. This patch fixes that and adds a release note. Differential Revision: https://reviews.llvm.org/D145074
-
Alex Bradbury authored
As reported in https://github.com/llvm/llvm-project/issues/58929, Clang currently differs from GCC in the handling of empty structs. This commit adds some test coverage for the handling of such structs. A follow-up patch implements a fix to match g++. Differential Revision: https://reviews.llvm.org/D142326
-
Alex Bradbury authored
parseNormalizedArchString adds a code path that creates a RISCVISAInfo including extensions that may not be supported by LLVM (rather than erroring or just ignoring them). Therefore, toFeatureVector needs to check the extension is supported in order to avoid creating unrecognised feature strings. This change shouldn't impact any code paths used outside of test code, but this will be relied upon by the next patch which moves llvm-objdump and related tools over to using parseNormalizedArchString. Differential Revision: https://reviews.llvm.org/D146113
-
Kadir Cetinkaya authored
Make sure unresolved headers are not analyzed as part of unused includes. Also introduces a testing fixture for analyze tests Differential Revision: https://reviews.llvm.org/D146916
-
luxufan authored
Similar to D142687 Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D146799
-
LLVM GN Syncbot authored
-
Matt Arsenault authored
This demonstrates really bad rematerialization support for 64-bit constants which need to be split into 32-bit pieces.
-
Matt Arsenault authored
-
Matt Arsenault authored
Fixes regressions from patch to turn more classes into fcmp.
-
Piotr Zegar authored
To this moment this check were ignoring only inline union special members, From now also out-of-line special members going to be ignored. Also extended support for IgnoreMacros to cover also macros used inside a body, or used preprocesor directives. Fixes: - https://github.com/llvm/llvm-project/issues/28300 - https://github.com/llvm/llvm-project/issues/40554 Reviewed By: alexander-shaposhnikov Differential Revision: https://reviews.llvm.org/D146882
-
Piotr Zegar authored
Check flags always enabled or disabled code blocks in preprocessor '#if' conditions, such as '#if 0' and '#if 1' etc. Reviewed By: carlosgalvezp Differential Revision: https://reviews.llvm.org/D145617
-
Shao-Ce SUN authored
Since D137859, these have not been used. Reviewed By: Renaud-K Differential Revision: https://reviews.llvm.org/D146709
-
Shoaib Meenai authored
This logic was added in https://reviews.llvm.org/D95943 specifically to handle an issue for non-prevailing global variables. It turns out that it adds a new issue for prevailing glboal variables, since those could be replaced by an available_externally definition and hence incorrectly omitted from the output object file. Limit the import to non-prevailing global variables to fix this, as suggested by @tejohnson. The bulk of the diff is mechanical changes to thread isPrevailing through to where it's needed and ensure it's available before the relevant calls; the actual logic change itself is straightforward. Fixes https://github.com/llvm/llvm-project/issues/61677 Reviewed By: tejohnson Differential Revision: https://reviews.llvm.org/D146876
-
Craig Topper authored
-
Leonard Chan authored
This reverts commit 86dbcafd. Reverting since this depends on db288184 which broke our lto builders reported by fxbug.dev/12380.
-
Leonard Chan authored
This reverts commit db288184. Reverting since it broke our lto builders reported by fxbug.dev/123807.
-
Emilia Dreamer authored
clang-format already has logic to threat the right-hand side of an equals sign. This patch applies that logic to template defaults, which are likely to be non-template type parameters in which case the default value should be annotated as an expression. This should mostly only ever apply to bool and &&. Fixes https://github.com/llvm/llvm-project/issues/61664 Reviewed By: MyDeveloperDay, owenpan Differential Revision: https://reviews.llvm.org/D146760
-
Emilia Dreamer authored
When using BraceWrapping.AfterClass or BraceWrapping.AfterStruct, the token annotator relies on the first token of the line to determine if we're dealing with a struct or class, however, this check is faulty if it's actually a function with an elaborated struct/class return type, as is common in C. This patch skips the check if the brace is already annotated as FunctionLBrace, in which case we already know it's a function and should be treated as such. Fixes https://github.com/llvm/llvm-project/issues/58527 Reviewed By: HazardyKnusperkeks, owenpan Differential Revision: https://reviews.llvm.org/D146281
-
Emilia Dreamer authored
The C++ grammar allows lambdas to have a *requires-clause* in two places, either directly after the *template-parameter-list*, such as: `[] <typename T> requires foo<T> (T t) { ... };` Or, at the end of the *lambda-declarator* (before the lambda's body): `[] <typename T> (T t) requires foo<T> { ... };` Previously, these cases weren't handled at all, resulting in weird results. Note that this commit only handles token annotation, so the actual formatting still ends up suboptimal. This is mostly because I do not yet know how to approach making the requires clause formatting of lambdas match the formatting for functions. Fixes https://github.com/llvm/llvm-project/issues/61269 Reviewed By: HazardyKnusperkeks, owenpan Differential Revision: https://reviews.llvm.org/D145642 -
lipracer authored
DmaOp will read the source buffer and write the destination buffer so need to add some traits for it. Reviewed By: bondhugula Differential Revision: https://reviews.llvm.org/D144712
-
Craig Topper authored
Instead of calling isCopyInstr again, just pass the DestSourcePair from the isCopyInstr call from the caller.
-
David Green authored
See D146517.
-
Roland McGrath authored
A cast is necessary to avoid implicit narrowing warnings when those are enabled. Reviewed By: abrachet Differential Revision: https://reviews.llvm.org/D146886
-
Uday Bondhugula authored
The sibling fusion profitability checks shouldn't rely on the presence of a store op in the sibling. The reuse is between the loads. Fixes issues raised at https://discourse.llvm.org/t/understanding-the-affine-loop-fusion-pass/69452 Reviewed By: dcaballe Differential Revision: https://reviews.llvm.org/D146763
-