- Oct 28, 2021
-
-
Nico Weber authored
This reverts commit 15e3d391. See https://reviews.llvm.org/D111833#3093629
-
Raphael Isemann authored
-
Sam Clegg authored
This function was renamed in https://reviews.llvm.org/D62291.
-
Dawid Jurczak authored
That's https://reviews.llvm.org/D90328 follow-up. This change eliminates writes to variables where the value that is being written is already stored in the variable. This achieves the goal by looping through all memory definitions in the current state and getting defining access from each of them. When there is defining access where the write instruction is identical to the original instruction it will remove this redundant write. For example: void f() { x = 1; if foo() { x = 1; g(); } else { h(); } } void g(); void h(); The second x=1 will be eliminated since it is rewriting 1 to x. This pass will produce this: void f() { x = 1; if foo() { g(); } else { h(); } } void g(); void h(); Differential Revision: https://reviews.llvm.org/D111727
-
David Green authored
With a "ult x, 0", the fold in canonicalizeClampLike does not validate with undef inputs. This condition will usually have been simplified away, but we should ensure the code is correct in case. https://alive2.llvm.org/ce/z/S8HQ6H vs https://alive2.llvm.org/ce/z/h2XBJ_ See: https://reviews.llvm.org/D108049
-
Lei Zhang authored
* Move SmallVectors outside of inner loops to avoid frequent allocations and deallocations * Calculate linearized index and call flat range getters to avoid internal shape querying behind `getValue`. Reviewed By: mravishankar Differential Revision: https://reviews.llvm.org/D112099
-
Simon Pilgrim authored
If the index operand for a gather/scatter intrinsic is being scaled (self-addition or a shl-by-immediate) then we may be able to fold that scaling into the intrinsic scale immediate value instead. Fixes PR13310. Differential Revision: https://reviews.llvm.org/D108539
-
Kadir Cetinkaya authored
Fixes https://github.com/clangd/clangd/issues/900
-
Nico Weber authored
-
Alexey Bataev authored
Gathered loads/extractelements/extractvalue instructions should be checked if they can represent a vector reordering node too and their order should ve taken into account for better graph reordering analysis/ Also, if the gather node has reused scalars, they must be reordered instead of the scalars themselves. Differential Revision: https://reviews.llvm.org/D112454
-
Hans Wennborg authored
Follow-up to 8c136805 to allow a less abrupt migration for users. Differential revision: https://reviews.llvm.org/D112704
-
Uday Bondhugula authored
Add llvm.mlir.global_ctors and global_dtors ops and their translation support to LLVM global_ctors/global_dtors global variables. Differential Revision: https://reviews.llvm.org/D112524
-
Pavel Labath authored
This makes it possible to use for loops (and other language constructs) in inline tests. Differential Revision: https://reviews.llvm.org/D112706
-
Sanjay Patel authored
The motivating test is reduced from: https://llvm.org/PR52261 Note that the more general problem of folding any binop into a multi-use select of constants is still there. We need to ease the restriction in InstCombinerImpl::FoldOpIntoSelect() to catch those. But these examples never reach that code because Negator exclusively handles negation patterns within visitSub(). Differential Revision: https://reviews.llvm.org/D112657
-
Peter Waller authored
The newly added test previously caused the compiler to fail an assertion. It looks like a strightforward TypeSize upgrade. Reviewed By: paulwalker-arm Differential Revision: https://reviews.llvm.org/D112142
-
David Green authored
-
Konstantin Schwarz authored
During rule optimization, identical SameOperandMatchers are hoisted into a common group, however previously only one operand index was considered. Commutable patterns can introduce SameOperandMatcher checks where the second index is commuted, resulting in a different check that cannot be hoisted. Reviewed By: qcolombet Differential Revision: https://reviews.llvm.org/D111506
-
Jon Chesterfield authored
Passes same tests as the current deviceRTL. Includes cmake change from D111987. CI is showing a different set of pass/fails to local, committing this without the tests enabled by default while debugging that difference. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D112227
-
Dmitry Vyukov authored
tsan_rtl.cpp is huge and does lots of things. Move everything related to memory access and tracing to a separate tsan_rtl_access.cpp file. No functional changes, only code movement. Reviewed By: vitalybuka, melver Differential Revision: https://reviews.llvm.org/D112625
-
Abinav Puthan Purayil authored
mul24 intrinsic's operands are simplified by AMDGPUTargetLowering::performIntrinsicWOChainCombine(). This change adds the mul24hi intrinsics in the combine since its operands can be simplified like that of the mul24 intrinsics. Differential Revision: https://reviews.llvm.org/D112702
-
Abinav Puthan Purayil authored
Differential Revision: https://reviews.llvm.org/D112685
-
Guillaume Chatelet authored
-
Emil Kieri authored
Check that when a procedure pointer is initialised or assigned with an intrinsic function, or when its interface is being defined by one, that intrinsic function is unrestricted specific (listed in Table 16.2 of F'2018). Mark intrinsics LGE, LGT, LLE, and LLT as restricted specific. Getting their classifications right helps in designing the tests. Differential Revision: https://reviews.llvm.org/D112381
-
Kirill Bobyrev authored
-
Kirill Bobyrev authored
-
OCHyams authored
Test is failing for unknown reasons and needs investigating.
-
Jay Foad authored
-
Max Kazantsev authored
-
Balazs Benics authored
Due to a typo, `sprintf()` was recognized as a taint source instead of a taint propagator. It was because an empty taint source list - which is the first parameter of the `TaintPropagationRule` - encoded the unconditional taint sources. This typo effectively turned the `sprintf()` into an unconditional taint source. This patch fixes that typo and demonstrated the correct behavior with tests. Reviewed By: martong Differential Revision: https://reviews.llvm.org/D112558
-
Shraiysh Vaishay authored
This patch adds the inclusive clause (which was missed in previous reorganization - https://reviews.llvm.org/D110903) in omp.wsloop operation. Added a test for validating it. Also fixes the order clause, which was not accepting any values. It now accepts "concurrent" as a value, as specified in the standard. Reviewed By: kiranchandramohan, peixin, clementval Differential Revision: https://reviews.llvm.org/D112198
-
Sebastian Neubauer authored
- Move the `s_and exec` to its correct position before the content of the waterfall loop - Use the SI_WATERFALL pseudo instruction, like for sdag, to benefit from optimizations - Add support for indirect function calls To support indirect calls, add a G_SI_CALL instruction without register class restrictions and insert a waterfall loop when applying register banks. Differential Revision: https://reviews.llvm.org/D109052
-
Neubauer, Sebastian authored
Save the instruction list of a block before selecting banks. This allows to cope with moved instructions, even if they are reordered or splitted into multiple basic blocks. Differential Revision: https://reviews.llvm.org/D111223
-
Pavel Labath authored
-
Max Kazantsev authored
-
Caroline Concatto authored
The support for neoverse-512tvb mirrors the same option available in GCC[1]. There is no functional effect for this option yet. This patch ensures the driver accepts "-mcpu=neoverse-512tvb", and enough plumbing is in place to allow the new option to be used in the future. [1]https://gcc.gnu.org/onlinedocs/gcc/AArch64-Options.html Differential Revision: https://reviews.llvm.org/D112406
-
Michał Górny authored
Differential Revision: https://reviews.llvm.org/D112629
-
Diana Picus authored
Add support for reading environment variables directly, via std::getenv. This needs to allocate a C-style string to pass into std::getenv. If the memory allocation for that fails, we terminate. This also changes the interface for EnvVariableLength to receive the source file and line so we can crash gracefully. Note that we are now completely ignoring the envp pointer passed into ProgramStart, since that could go stale if the environment is modified during execution. Differential Revision: https://reviews.llvm.org/D111785
-
Martin Storsjö authored
Since D81803 / 79657e23, temp files created on network shares don't set "Disposition.DeleteFile = true". This flag normally takes care of removing the temp file both if the process exits abnormally (either crashing or killed externally), and when the file is closed cleanly. For network shares, we voluntarily choose to not set the flag, and if the operation to inspect the file handle (as a prerequisite to setting the flag since 79657e23) fails we also error out. In both of these cases, we can at least make sure to remove the temp files when they are closed cleanly. Adjust the semantics of "OF_Delete" to not set the delete disposition, but only set the access mode for allowing deletion. Move the call to setDeleteDisposition into TempFile::create, where we can check if it failed, and if it did, set a flag noting that the file should be removed manually at the end. This does leak files on crash, but at least doesn't leak files in regular successful runs. (Technically, the alternative codepath could use the RemoveFileOnSignal function, but that might complicate the TempFile implementation further.) This fixes https://github.com/mstorsjo/llvm-mingw/issues/233 and https://bugs.llvm.org/show_bug.cgi?id=52080. Differential Revision: https://reviews.llvm.org/D111875
-
Martin Storsjö authored
This string isn't a plain architecture name, but contains the whole subdir name used for the sysroot, which often is equal to the target triple. Differential Revision: https://reviews.llvm.org/D112387
-
YunQiang Su authored
In the situation of multilib, the gcc objects are in a /32 directory. On Debian, the libraries is under /libo32 to avoid confliction. This patch enables clang find gcc in /32, and C lib in /libo32. Differential Revision: https://reviews.llvm.org/D112158
-