- Sep 22, 2022
-
-
Erich Keane authored
This reverts commit 95d94a67. This implements the deferred concepts instantiation, which should allow the libstdc++ ranges to properly compile, and for the CRTP to work for constrained functions. Since the last attempt, this has fixed the issues from @wlei and @mordante. Differential Revision: https://reviews.llvm.org/D126907
-
Haojian Wu authored
Prior to the patch, we didn't build a DeclRefExpr if the Decl being referred to is invalid, because many clang downstream AST consumers assume it, violating it will cause many diagnostic regressions. With this patch, we build a DeclRefExpr enven for an invalid decl (when the AcceptInvalidDecl is true), and wrap it with a dependent-type RecoveryExpr (to prevent follow-up semantic analysis, and diagnostic regressions). This is a revised version of https://reviews.llvm.org/D76831 Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D121599
-
Martin Storsjö authored
This fixes a regression since fa74144c; even if we're linking to the dylib (which handles all the dependencies in LLVMSupport), we're now also directly referencing zstd from lld/ELF, and thus need to explicitly express our dependency on it.
-
serge-sans-paille authored
This fixes a bunch of FIXME within IsTailPaddedMemberArray related code. As a side effect, this now also triggers a warning when trying to access a "struct hack" member with an index above address space index range. Differential Revision: https://reviews.llvm.org/D133108
-
luxufan authored
We set the Location size to beforeOrAfter if the Location value is not guaranteed loop invariant. But in some cases, we need to reset the location size if the location size is precise after phi tranlation of location value. This will improve MemorySSA analysis results. Differential Revision: https://reviews.llvm.org/D134161
-
Johannes Reifferscheid authored
This fixes a crash for certain IR, see the new test case for an example. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D134424
-
Tim Northover authored
They're roughly ARMv8.6. This works in the .td file, but in AArch64TargetParser.def, marking them v8.6 brings in support for the SM4 cryptographic hash and we don't actually have that. So TargetParser side they're marked as v8.5, with the extra features (BF16 and I8MM added manually). Finally, A16 supports the HCX extension in addition to v8.6. This has no TargetParser implications.
-
Simon Pilgrim authored
This mainly just adds costs for the targets where we have actual funnelshift/rotate instructions (VBMI2/XOP etc.) - the cases where we expand still need addressing, although for many the default shift+or expansion, especially for uniform cases, isn't that bad. This was achieved with the 'cost-tables vs llvm-mca' script D103695
-
Clement Courbet authored
With Mips fixes. This reverts commit 7daf60e3.
-
Simon Pilgrim authored
This was achieved with the 'cost-tables vs llvm-mca' script D103695
-
Clement Courbet authored
Breaks MIPS compile. This reverts commit cc61c822.
-
Nikita Popov authored
Based on D130896, we can model operand bundles more precisely. In addition to the baseline ModRefBehavior, a reading/clobbering operand bundle may also read/write all locations. For example, a memcpy with deopt bundle can read any memory, but only write argument memory. This means that getModRefInfo() for memcpy with a pointer that does not alias the arguments results in Ref, rather than ModRef, without the need to implement any special handling. Differential Revision: https://reviews.llvm.org/D130980
-
Clement Courbet authored
We were using the native triple to parse the benchmarks. Use the triple from the benchmarks file. Right now this still only allows analyzing files produced by the current target until D133605 is in. This also makes the `Analysis` class much less ad-hoc. Differential Revision: https://reviews.llvm.org/D133697
-
Haojian Wu authored
-
Nikita Popov authored
We can handle vectors inside simplifyWithOpReplaced(), as long as cross-lane operations are excluded. The equality can hold (or not hold) for each vector lane independently, so we shouldn't use the replacement value from other lanes. I believe the only operations relevant here are shufflevector (where all previous bugs were seen) and calls (which might use shuffle-like intrinsics and would require more careful classification). Differential Revision: https://reviews.llvm.org/D134348
-
serge-sans-paille authored
Non-LLVM components should not be listed as part of LLVM_LINK_COMPONENTS. Differential Revision: https://reviews.llvm.org/D134278
-
serge-sans-paille authored
This reverts commit 34ad83d8.
-
serge-sans-paille authored
Non-LLVM component should not be listed as part of LLVM_LINK_COMPONENTS Differential Revision: https://reviews.llvm.org/D134278
-
Ivan Radanov Ivanov authored
Due to integration tests failing revert mlir::SerializeToCubinPass defaults to old ones (changed in https://reviews.llvm.org/D134153) Reviewed By: akuegel Differential Revision: https://reviews.llvm.org/D134414
-
Ilia Diachkov authored
The patch fixes the SPIRV backend build using clang. It also replaces UndefValue with PoisonValue in SPIRVRegularizer.cpp. Fixes: #57773 Differential Revision: https://reviews.llvm.org/D134071
-
Florian Hahn authored
Add a test where llvm-reduce at the moment cannot drop unneeded debug metadata nodes referenced by DICompileUnit and DISubpgoram.
-
LLVM GN Syncbot authored
-
serge-sans-paille authored
One must pick the same name as the one referenced in CodeGenFunction when generating .inline version of an inline builtin, otherwise they are not correctly replaced. Differential Revision: https://reviews.llvm.org/D134362
-
Christudasan Devadasan authored
This pass allows a user to dump a MIR function to a dot file and view it as a graph. It is targeted to provide a similar functionality as -dot-cfg pass on LLVM-IR. As of now the pass also support below flags: -dot-mcfg-only [optional][won't print instructions in the graph just block name] -mcfg-dot-filename-prefix [optional][prefix to add to output dot file] -mcfg-func-name [optional] [specify function name or it's substring, handy if mir file contains multiple functions and you need to see graph of just one] More flags and details can be introduced as per the requirements in future. This pass is inspired from -dot-cfg IR pass and APIs are written in almost identical format. Patch by Yashwant Singh <Yashwant.Singh@amd.com> (yassingh) Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D133709
-
Chenbing Zheng authored
-
Juan Manuel MARTINEZ CAAMAÑO authored
Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D134357
-
LiaoChunyu authored
Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D134408
-
Craig Topper authored
With Zbp removed, we no longer need the generalized forms. The computeKnownBitsForTargetNode code brev8/orc.b is still based on the general form with the shift amount forced to 7.
-
Craig Topper authored
This extension does not appear to be on its way to ratification. Still need some follow up to simplify the RISCVISD nodes.
-
Congzhe Cao authored
This is a bugfix patch that resolves the following two bugs in loop interchange: 1. PR57148 which is an assertion error due to of loss of LCSSA form after interchange, as referred to test1() in pr57148.ll. 2. Use before def for the outermost loop induction variables after interchange, as referred to test2() in pr57148.ll. The fix in this patch is that: 1. In cases where the LCSSA form is not maintained after interchange, we update the IR to the LCSSA form again. 2. We split the phi nodes in the inner loop header into a separate basic block to avoid the situation where use of the outer indvar appears before its def after interchange. Previously we already did this for innermost loops, now we do it for non-innermost loops (e.g., middle loops) as well. Reviewed By: bmahjour, Meinersbur, #loopoptwg Differential Revision: https://reviews.llvm.org/D132055
-
Fanchen Kong authored
Use load32_zero instead of load32_splat to load the low 32 bits from memory to v128. Test cases are added to cover this change. Reviewed By: tlively Differential Revision: https://reviews.llvm.org/D134257
-
Congzhe Cao authored
This patch is to resolve the bug reported and discussed in https://reviews.llvm.org/D124926#3718761 and https://reviews.llvm.org/D124926#3719876. The problem is that loop interchange is a loopnest pass under the new pass manager, but the loop nest may not be constructed correctly by the loop pass manager after running loop interchange and before running the next pass, which might cause problems when it continues running the next pass. The reason that the loop nest is constructed incorrectly is that the outermost loop might have changed after interchange, and what was the original outermost loop is not the current outermost loop anymore. Constructing the loop nest based on the original outermost loop would generate an invalid loop nest. The fix in this patch is that, in the loop pass manager before running each loopnest pass, we re-cosntruct the loop nest based on the current outermost loop, if LPMUpdater notifies the loop pass manager that the previous loop nest has been invalidated by passes like loop interchange. Reviewed By: aeubanks Differential Revision: https://reviews.llvm.org/D132199
-
LiaoChunyu authored
Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D134164
-
Chuanqi Xu authored
implement the option2 of P2014R0 This implements the option2 of https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2014r0.pdf. This also fixes https://github.com/llvm/llvm-project/issues/56671. Although wg21 didn't get consensus for the direction of the problem, we're happy to have some implementation and user experience first. And from issue56671, the option2 should be the pursued one. Reviewed By: ychen Differential Revision: https://reviews.llvm.org/D133341
-
Corentin Jabot authored
Unicode 15.0 adds 4,489 characters, for a total of 149,186 characters. These additions include 2 new scripts along with 20 new emoji characters, and 4,193 CJK ideographs. This changes modify most existing tables including - XID_Start/XID_Continue in Clang - The character name database (used by \N{} in Clang) - The list of formattable/printable codepoints - The case folding algorithm (which we had not updated since Unicode 9) - The list of nonspacing/enclosing marks used by the column width computation algorithm. The rest of the column width algorithm is not updated. Reviewed By: tahonermann Differential Revision: https://reviews.llvm.org/D133807 -
Craig Topper authored
Specifically predicates for extensions that are subsets of other extensions. These predicates should never be used. Should always check the superset extension or the superset ORed with the sub extendsion.
-
River Riddle authored
This allows for incrementally updating the old API usages without needing to update everything at once. PDL will be left on Both for a little bit and then flipped to prefixed when all APIs have been updated. Differential Revision: https://reviews.llvm.org/D134387
-
River Riddle authored
This allows for incrementally updating the old API usages without needing to update everything at once. These will be left on Both for a little bit and then flipped to prefixed when all APIs have been updated. Differential Revision: https://reviews.llvm.org/D134386
-
Jan Korous authored
showBRParamDiagnostics assumed stores happen only via function parameters while that can also happen via implicit parameters like 'self' or 'this'. The regression test caused a failed assert in the original cast to ParmVarDecl. Differential Revision: https://reviews.llvm.org/D133815
-
Vitaly Buka authored
Instrumentation just ORs shadow of inputs. I assume some result shadow bits can be reset if we go into specifics of particular checks, but as-is it is still an improvement against existing default strict instruction handler, when every set bit of input shadow is reported as an error. Reviewed By: kda Differential Revision: https://reviews.llvm.org/D134123
-