- Sep 22, 2023
-
-
Ruiling, Song authored
This cs_chain and cs_chain_preserve use InReg attribute to indicate argument passed through SGPR.
-
Mirko Brkusanin authored
Patch by: Acim Maravic Differential Revision: https://reviews.llvm.org/D159515
-
Simon Pilgrim authored
Unlike the per-lane mov*dup broadcast shuffles, broadcastsd/ss need port5 to splat across lanes Found while reviewing a llvm-exegesis capture (and matches Agner + uops.info numbers) - I can't find any more easy wins from these captures so that will be it for now.
-
Simon Pilgrim authored
Found while reviewing a llvm-exegesis capture (and matches Agner + uops.info numbers)
-
Mikhail R. Gadelha authored
The test tries to set the guard_size and stack_size of a thread to SIZE_MAX / 4, which is a huge value in 64-bit systems but 1GB in 32-bit ones. We increase the size to 3 * (SIZE_MAX / 4) so it can also fail in 32-bit systems.
-
Michael Liao authored
-
Mikhail R. Gadelha authored
${CMAKE_CROSSCOMPILING_EMULATOR} will be used in the new rv32 buildbot and is prepended automatically when we call add_custom_target in CMake, except when we use a custom command. There are two places where custom commands are used in libc, so we explicitly add the ${CMAKE_CROSSCOMPILING_EMULATOR} variable there. Other systems that don't use ${CMAKE_CROSSCOMPILING_EMULATOR} are unaffected -
Florian Hahn authored
Adjust the pipeline slightly to move ConstraintElim just before the loop simplification pipeline. This increases the number of cases where SCEV should can preserved in the future. This also enables slightly more opportunities, by benefiting from earlier CFG simplifications, which allow more conditions to be added. Reviewed By: nikic, antoniofrighetto Differential Revision: https://reviews.llvm.org/D158843
-
Matthias Springer authored
One-Shot Bufferize no longer deallocates buffers, so `deallocationFn` can be removed. Note: There is a `bufferization.dealloc_tensor` op that now always bufferizes to `memref.dealloc`. This op will be phased out soon.
-
Matthias Springer authored
Remove the yielded tensor analysis. This analysis was used to detect cases where One-Shot Bufferize cannot deallocate buffers. Deallocation has recently been removed from One-Shot Bufferize. Buffers are now deallocated by the buffer deallocation pass. This analysis is no longer needed.
-
Simon Pilgrim authored
Noticed while trying to workout some discrepancies between a llvm-mca and uica analysis - confirmed with a llvm-exegesis capture (and matches uops.info numbers) This appears to be the reason behind Issue #14640 as well (heavy use of port5).
-
Zahira Ammarguellat authored
Predefined macro FUNCTION (and __FUNC__) in clang is not returning the same string than MS for templated functions. See https://godbolt.org/z/88n1rGs3b For this test case MSVC is returning: function: TestClass<class UnitTestNative>::TestClass func: TestClass --------- Co-authored-by:
Reid Kleckner <rnk@google.com>
-
Paulo Matos authored
Adds support for SPV_KHR_bit_instructions. It is only used whenever we don't need the whole Shader capability, which is a superset of this extension.
-
Haojian Wu authored
In libcpp, the `std::remove(const char*)` is a using decl in std namespace `using ::remove`, which was not handled correctly in `headerForAmbiguousStdSymbol`
-
David Green authored
This is extra testing for exp exp2 log log10 and log2 undef global isel.
-
Ruiling, Song authored
The stack might be in a different address space, in which case, bitcast does not work. We should use addrspacecast. As we do not support typed pointer anymore, so we do not need a bitcast here anymore.
-
LLVM GN Syncbot authored
-
Haojian Wu authored
-
Christian Ulmann authored
This revision adds an inliner interface to the UB dialect that allows inlining of `ub.poison` operations.
-
Felipe de Azevedo Piovezan authored
The "register number" arrow should point to `LocationID`, not `LocIdx`.
-
Kiran Chandramohan authored
-
Anatoly Trosinenko authored
To simplify handling PAuth in the machine outliner, introduce a separate AArch64PointerAuth pass that is executed after both Prologue/Epilogue Inserter and Machine Outliner passes. After moving to AArch64PointerAuth, signLR and authenticateLR are not used outside of their class anymore, so make them private and simplify accordingly. The new pass is added via AArch64PassConfig::addPostBBSections(), so that it can change the code size before branch relaxation occurs. AArch64BranchTargets is placed there too, so it can take into account any PACI(A|B)SP instructions and not excessively add BTIs at the start of functions. Reviewed By: tmatheson Differential Revision: https://reviews.llvm.org/D159357
-
Luke Lau authored
-
Haojian Wu authored
-
David Green authored
This fills out some extra cases for sin/cos testing for various types under Global ISel, which seem to all do OK. The existing tests in sincospow-vector-expansion.ll can be removed, as they are now covered elsewhere.
-
Kiran Chandramohan authored
-
Mirko Brkusanin authored
-
Nikita Popov authored
-
Nikita Popov authored
This is a followup to #66988. The implementation there did not account for the possibility of the catch object frame index referrring to a fixed object, which is the case on win64.
-
Benjamin Maxwell authored
This attribute makes the `enable_arm_streaming` pass ignore a function (i.e. not add the enable streaming/za attributes). The main use case for this is to prevent helper functions within tests being made streaming functions.
-
qcolombet authored
Prior to this patch, `GeneralizeOuterUnitDimsUnPackOpPattern` would assert that we cannot create a `tensor.empty` operation with dynamic shapes. The problem stems from the fact that we were not using the right builder for the `tensor.empty` operation. Indeed, each dynamic dim needs to be specified by an input variable. Simply provide the dynamic dimensions to the `tensor.empty` builder to fix that.
-
Florian Hahn authored
After 4a5bcbd5, switch instructions can now be handled in a straight-forward manner by adding (ICMP_EQ, ConditionVal, CaseVal) for te successor blocks per case.
-
Ivan Kosarev authored
We don't seem to have a use for the -amdgpu-keep-16-bit-reg-suffixes option anymore. Was introduced in <https://reviews.llvm.org/D79435>. Reviewed By: Joe_Nash, foad Differential Revision: https://reviews.llvm.org/D156102
-
Florian Hahn authored
Shorten the types used to i8 for cheaper verification and add test case where 2 cases have the same destination, as suggested in #67061.
-
Simon Pilgrim authored
[DAG] getNode() - remove oneuse limit from (zext (trunc (assertzext x))) -> (assertzext x) fold (REAPPLIED) Noticed on D159533 and I've finally dealt with the x86 regressions - MatchingStackOffset wasn't peeking through AssertZext nodes while trying to find CopyFromReg/Load sources, it was only removing them if they were part of a (trunc (assertzext x)) pattern. Reapplied after being reverted at 4389252c - which should be addressed by D159537 / 6d267999
-
Alcaro authored
-
Ivan Kosarev authored
The existing fake True16 instructions using 32-bit VGPRs are supposed to co-exist with real ones until all the necessary True16 functionality is implemented and relevant tests are updated. Reviewed By: arsenm, Joe_Nash Differential Revision: https://reviews.llvm.org/D156101
-
Nikita Popov authored
The write to the SEH catch object happens before cleanuppads are executed, while the first reference to the object will typically be in a catchpad. If we make use of first-use analysis, we may end up allocating an alloca used inside the cleanuppad and the catch object at the same stack offset, which would be incorrect. https://reviews.llvm.org/D86673 was a previous attempt to fix it. It used the heuristic "a slot loaded in a WinEH pad and never written" to detect catch objects. However, because it checks for more than one load (while probably more than zero was intended), the fix does not actually work. The general approach also seems dubious to me, so this patch reverts that change entirely, and instead marks all catch object slots as conservative (i.e. excluded from first-use analysis) based on the WinEHFuncInfo. As far as I can tell we don't need any heuristics here, we know exactly which slots are affected. Fixes https://github.com/llvm/llvm-project/issues/66984.
-
Ivan Kosarev authored
Real True16 instructions are as they are defined in the ISA. Fake True16 instructions are identical to real ones except that they take 32-bit registers as operands and always use their low halves. Reviewed By: Joe_Nash Differential Revision: https://reviews.llvm.org/D156100
-