- Mar 01, 2024
-
-
Timm Bäder authored
Operator calls pass their instance member explicitly, so remove it from NumParams when calling a variadic function
-
Timm Bäder authored
All three of these need to be non-null.
-
Timm Bäder authored
The warnings or errors are emitted in Sema, but we still need to do the operation and provide a reasonable result.
-
Benjamin Kramer authored
This was tripping off STL implementations that check for it (like libc++ with debug checking). The goal of this sort is to cluster operations on the same values so preserve that property but sort everything else based on the existing numbering.
-
Alexey Bataev authored
-
Florian Hahn authored
Use ScopeExit to make sure Operands/PrevDist are updated on all paths in the loop. This makes it easier to ensure they are updated correctly if new early continues are added. Split off from https://github.com/llvm/llvm-project/pull/83283 PR: https://github.com/llvm/llvm-project/pull/83490
-
Simon Pilgrim authored
Without PCMPGTQ, if the i64 elements are sign-extended enough to be representable as i32 then we can compare the lower i32 bits with PCMPGTD and splat the results into the upper elements. Value tracking has meant we already get pretty close with this, but this allows us to remove a lot of unnecessary bit flipping.
-
Timm Bäder authored
We manage the Result through EvaluationResult now.
-
Timm Bäder authored
This shouldn't be a problem in general, but we used to have some sanity checks that prevented it from working. Remove those and only do them on the non-recursive calls instead.
-
zhijian lin authored
enable `--demangle` option for the xcoff object file for llvm-readobj
-
Nikolas Klauser authored
The values for `__has_cpp_attribute` don't have to be guarded behind `LangOpts.CPlusPlus` because `__has_cpp_attribute` isn't available if Clang isn't in a C++ mode. Fixes #82995
-
Martin Wehking authored
Use RegOp directly inside debug code to silence a static analyzer that warns about accessing it through its ArrayRef wrapper.
-
Shengchen Kan authored
-
Alfie Richards authored
This changes the type of `PredicationCode` and `VPTPredicationCode` from `unsigned` to `ARMCC::CondCodes` and `ARMVCC::VPTCodes` resp' for clarity and correctness.
-
Pierre van Houtryve authored
Use IR analysis to infer when an addrspacecast operand is nonnull, then lower it to an intrinsic that the DAG can use to skip the null check. I did this using an intrinsic as it's non-intrusive. An alternative would have been to allow something like `!nonnull` on `addrspacecast` then lower that to a custom opcode (or add an operand to the addrspacecast MIR/DAG opcodes), but it's a lot of boilerplate for just one target's use case IMO. I'm hoping that when we switch to GISel that we can move all this logic to the MIR level without losing info, but currently the DAG doesn't see enough so we need to act in CGP. Fixes: SWDEV-316445
-
Alexey Bataev authored
When do the analysis for the (potential) masked gather node, we check that not greater than half of the pointer operands are loop invariants or potentially vectorizable. Need to check actually, that we have a loop at first and do better check for the potentially vectorizable pointers. Reviewers: RKSimon Reviewed By: RKSimon Pull Request: https://github.com/llvm/llvm-project/pull/83472
-
Marius Brehler authored
This adds operations for bitwise operators. Furthermore, an UnaryOp class and a helper to print unary operations are introduced.
-
Alexey Bataev authored
If the buildvector node contains extract, which later should be combined with some other nodes by shuffling, need to estimate the cost of this shuffle before building the mask after shuffle. Reviewers: RKSimon Reviewed By: RKSimon Pull Request: https://github.com/llvm/llvm-project/pull/83442
-
David Green authored
These were last used in the fcopysign lowering, which now uses AArch64ISD::BSP.
-
Alexandros Lamprineas authored
Fixes the `sanitizer-x86_64-linux-android` buildbot.
-
David CARLIER authored
-
David Green authored
This come from https://discourse.llvm.org/t/combining-aes-and-xor-can-be-improved-further/77248. These instructions start out with: ``` XOR Vd, Vn <some complicated math> ``` The initial XOR means that they can be treated as commutative, removing some of the unnecessary mov's introduced during register allocation.
-
Martin Storsjö authored
This testcase fails on MinGW targets, because when compiling the main() function, it gets an implicit call to __main(), which is missing in this context.
-
Tom Eccles authored
In #83253 @matthias-springer pointed out that LowerHLFIRIntrinsics.cpp should not be using rewrite patterns with the dialect conversion driver. The intention of this pass is to lower HLFIR intrinsic operations into FIR so it conceptually fits dialect conversion. However, dialect conversion is much stricter about changing types when replacing operations. This pass sometimes looses track of array bounds, resulting in replacements with operations with different but compatible types (expressions of the same rank and element types but with or without compile time known array bounds). This is difficult to accommodate with the dialect conversion driver and so I have changed to use the greedy pattern rewriter. There is a lot of test churn because the greedy pattern rewriter also performs canonicalization.
-
Jay Foad authored
This just renames a tablegen argument to match the corresponding subtarget feature.
-
Pavel Iliin authored
The patch fixes https://github.com/llvm/llvm-project/issues/83407 modifing __builtin_cpu_supports behaviour so that it returns false if unsupported features names provided in parameter and issue a warning. __builtin_cpu_supports is target independent, but currently supported by X86, AArch64 and PowerPC only.
-
Benjamin Maxwell authored
This will now print the value of `vector.vscale` as `%vscale` in IR dumps which makes it easier to spot where things are scalable. One test that depended on the value names has also been fixed.
-
Sergei Barannikov authored
At some point in the past, optional operands have become allowed in the middle of an instruction. However, `checkAsmTiedOperandConstrains` hasn't been modified to support this. This patch adds the support by pulling operand offsets counting out of `convertToMCInst` and reusing it in `checkAsmTiedOperandConstrains`.
-
Simon Pilgrim authored
-
David Spickett authored
See https://github.com/llvm/llvm-project/issues/22648 for why we don't use it on Windows. Any pexpect tests are skipped there.
-
Jie Fu authored
llvm-project/clang/lib/CodeGen/Targets/AArch64.cpp:886:26: error: lambda capture 'TI' is not used [-Werror,-Wunused-lambda-capture] 886 | llvm::sort(Features, [&TI](const StringRef LHS, const StringRef RHS) { | ~^~ 1 error generated. -
Nikita Popov authored
This can no longer return a bitcast, but the function type in FunctionCallee may differ from the function type of the function.
-
David CARLIER authored
shuffling the order of its includes.
-
Timm Bäder authored
-
Alexandros Lamprineas authored
This decouples feature priorities from name mangling. Doing so will prevent ABI breakages in case we change the feature priorities. Formalized in ACLE here: https://github.com/ARM-software/acle/pull/303.
-
Pravin Jagtap authored
Authored-by:Pravin Jagtap <Pravin.Jagtap@amd.com>
-
chuongg3 authored
Reverts llvm/llvm-project#83038 due to failing build in Fuchsia build https://lab.llvm.org/staging/#/builders/187/builds/1695
-
Nick Anderson authored
fixes #68087 Not sure where to put regression tests for this pr? Also, should i1 args not in reg also be promoted?
-
Timm Bäder authored
NFC but makes the backtrace easier to read in case the expression somehow ends up being null.
-
martinboehme authored
This fixes a crash introduced by https://github.com/llvm/llvm-project/pull/82348 but also adds additional handling to make sure that we treat empty initializer lists for both unions and structs/classes correctly (see tests added in this patch).
-