- Dec 15, 2023
-
-
Valentin Clement (バレンタイン クレメン) authored
There was some discussion on discourse[1] about allowing call to FIR generation functions from other part of lowering belonging to OpenMP. This solution exposes a simple `genEval` member function on the `AbstractConverter` so that IR generation for PFT Evaluation objects can be called from lowering outside of the FirConverter but not exposing it. [1] https://discourse.llvm.org/t/openmp-lowering-from-pft-to-fir/75263
-
Krzysztof Parzyszek authored
… NFC SmallVector has a constructor that fills it with a number of copies of a given value. Use it instead of a loop that does the same thing.
-
Juergen Ributzka authored
Currently, the dep scanner does not remove LLVM options from the argument list. Since LLVM options shouldn't affect the AST, it is safe to remove them all.
-
Jerry Wu authored
Use operand and result types to build the corresponding new types in `DropUnitDimFromElementwiseOps`.
-
paperchalice authored
Use pointer to represent semantic of `optional`.
-
Philip Reames authored
-
Joseph Huber authored
Summary: We shouldn't have the format specific ELF handling in the generic plugin manager. This patch moves that out of the implementation and into the ELF utilities. This patch changes the SHT_NOBITS case to be a hard error, which should be correct as the existing use already seemed to return an error if the result was a null pointer. This also uses a `const_cast`, which is bad practice. However, rebuilding the `constness` of all of this would be a massive overhaul, and this matches the previous behaviour (We would take a pointer to the image that is most likely read-only in the ELF).
-
Philip Reames authored
-
David Spickett authored
Fixes 481bb62e.
-
David Spickett authored
This is part of ongoing attempts to catch the test from 2684281d failing on Arm and AArch64. I did get logs for the failure but only on Arm, where the backtrace is truncated. So, let's do the assert that PopPlan was going to do, before we call it. Then I should know exactly which PopPlan is asserting. Technically I should take a mutex here, but technically I shouldn't be debugging via buildbot, so I'm going to take the risk temporarily.
-
Shih-Po Hung authored
…eRecipe This helps VPlanTransforms::removeDeadRecipes to work on VPInterleaveRecipe
-
Felipe de Azevedo Piovezan authored
These are usually difficult to reason about, and they were being used to pass raw pointers around with array semantic (i.e., we were using operator [] on raw pointers). To put it in InstrRef terminology: we were passing a pointer to a ValueTable but using it as if it were a FuncValueTable. These could have easily been SmallVectors, which now allow us to have reference semantics in some places, as well as simpler initialization. In the future, we can use even more pass-by-reference with some extra changes in the code.
-
David Spickett authored
``` [5323/5730] Building CXX object tools\llvm-exegesis\lib\CMakeFiles\LLVMExegesis.dir\Error.cpp.obj In file included from C:\Work\david.spickett\llvm-project\llvm\tools\llvm-exegesis\lib\Error.cpp:9: C:\Work\david.spickett\llvm-project\llvm\tools\llvm-exegesis\lib/Error.h(76,7): warning: private field 'SignalNumber' is not used [-Wunused-private-field] 76 | int SignalNumber; | ^ ``` `SignalNumber` was only being used on Unixes.
-
- Dec 14, 2023
-
-
Kazu Hirata authored
This patch replaces uses of StringRef::{starts,ends}with with StringRef::{starts,ends}_with for consistency with std::{string,string_view}::{starts,ends}_with in C++20. I'm planning to deprecate and eventually remove StringRef::{starts,ends}with. -
LLVM GN Syncbot authored
-
Philip Reames authored
When doing our backwards walk, we were not handling the case where the AVL was defined by a register whose definition was an ADDI xN, x0, <imm>. Doing so (as we already do in the forward pass) allows us to prune a few more transitions.
-
Simon Pilgrim authored
When trying to share constant pool entries, we can ignore the undef elements of the entry that is being removed
-
Simon Pilgrim authored
Reduces diff in #75229
-
Yingwei Zheng authored
Fixes #75369. This patch explicitly folds `~(~X >>u Y)` into `X >>s Y` to fix assertion failure in #75369.
-
Yusra Syeda authored
This PR implements part 1 of yaml2obj for the GOFF Object File Format. It adds support for the header and end records. --------- Co-authored-by:Yusra Syeda <yusra.syeda@ibm.com>
-
Jonas Paulsson authored
The SystemZ implementation of shouldCoalesce() is merely a workaround for the fact that regalloc can run out of registers when extending 128-bit intervals with subreg (GPR64/GPR32) COPYs. This patch adds more freedom to the coalescer as it now only checks that the subreg interval is local to MBB and does not have too many physreg clobbers.
-
Louis Dionne authored
We didn't save that much boilerplate with those anchors, but it made the pipeline description harder to understand because the definition of the jobs and the agents they run on were so far apart. Anchors are useful for the other common boilerplate we truly share between all jobs, but it seems reasonable to define agent queues in-line.
-
Maurice Heumann authored
SLP Vectorizer can discard vector entries at unknown positions. This example shows the behaviour: https://godbolt.org/z/or43EM594 The following instruction inserts an element at an unknown position: ``` %2 = insertelement <3 x i64> poison, i64 %value, i64 %position ``` The position depends on an argument that is unknown at compile time. After running SLP, one can see there is no more instruction present referencing `%position`. This happens as SLP parallelizes the two adds in the example. It then needs to merge the original vector with the new vector. Within `isUndefVector`, the SLP vectorizer constructs a bitmap indicating which elements of the original vector are poison values. It does this by walking the insertElement instructions. If it encounters an insert with a non-constant position, it is ignored. This will result in poison values to be used for all entries, where there are no inserts with constant positions. However, as the position is unknown, the element could be anywhere. Therefore, I think it is only safe to assume none of the entries are poison values and to simply take them all over when constructing the shuffleVector instruction. This fixes #75437
-
ostannard authored
In some cases, the machine outliner needs to preserve LR across an outlined call by pushing it onto the stack. Previously, this also generated unwind table instructions, which is incorrect because EHABI unwind tables cannot represent different stack frames a different points in the function, so the extra unwind info applied to the entire function. The outliner code already avoided generating CFI instructions, but EHABI unwind data is generated later from the actual instructions, so we need to avoid using the FrameSetup and FrameDestroy flags to prevent unwind data being generated.
-
Timm Bäder authored
Differential Revision: https://reviews.llvm.org/D155572
-
Nikita Popov authored
-
Nico Weber authored
-
Timm Bäder authored
We reach visitExpr() when evaluating standalone expressions. However, the RetValue() code path was unused before, because we never reach it, even with structs or arrays. RetValue expects a pointer on the stack it can take apart to return an APValue, so provide it with one. Differential Revision: https://reviews.llvm.org/D150661
-
Guillaume Chatelet authored
Same as #75362, the traits does not bring a lot of value over `FloatProperties::MANTISSA_WIDTH` (or `FPBits::MANTISSA_WIDTH`).
-
Abhina Sree authored
Fix a typo from STDOUT to STDERR
-
Tobias Gysi authored
This commit implements the LLVM IR invariant intrinsics in LLVM dialect. These intrinsics can be used to mark a program regions in which the contents of a specific memory object will not change. The LLVM dialect implementation also implements the PromotableOpInterface to ensure Mem2Reg & SROA are able to promote pointers that are marked using the invariant intrinsics.
-
Mirko Brkušanin authored
-
Jay Foad authored
-
Fujun Han authored
Change (add x, c) to (xor x, c) iff c is constant and c equals the top bit of the demanded bits. Alive2: https://alive2.llvm.org/ce/z/DKmkwF --------- Signed-off-by:
Peter Han <fujun.han@iluvatar.com> Co-authored-by:
Peter Han <fujun.han@iluvatar.com>
-
Shih-Po Hung authored
- Precommit of tests from #71360. - Replace `undef` pointer operands and add stores to avoid the loads being optmized away.
-
Valery Pykhtin authored
Let's try once again after #69957 has landed.
-
Thorsten Schütt authored
Protective measures against https://github.com/llvm/llvm-project/pull/74502
-
Yingwei Zheng authored
This patch uses affected values from DomConditionCache(introduced by #73662), instead of a cheap/incomplete check `getSinglePredecessor`.
-
Timm Bäder authored
Differential Revision: https://reviews.llvm.org/D150654
-
Timm Bäder authored
Differential Revision: https://reviews.llvm.org/D148426
-