- Oct 27, 2021
-
-
Daniel Kiss authored
ARM EHABI[1] specifies the __cxa_end_cleanup to be called after cleanup. It will call the UnwindResume. __cxa_begin_cleanup will be called from libcxxabi while __cxa_end_cleanup is never called. This will trigger a termination when a foreign exception is processed while UnwindResume is called because the global state will be wrong due to the missing __cxa_end_cleanup call. Additional test here: D109856 [1] https://github.com/ARM-software/abi-aa/blob/main/ehabi32/ehabi32.rst#941compiler-helper-functions Reviewed By: logan Differential Revision: https://reviews.llvm.org/D111703
-
David Sherwood authored
I have removed LoopVectorizationPlanner::setBestPlan, since this function is quite aggressive because it deletes all other plans except the one containing the <VF,UF> pair required. The code is currently written to assume that all <VF,UF> pairs will live in the same vplan. This is overly restrictive, since scalable VFs live in different plans to fixed-width VFS. When we add support for vectorising epilogue loops when the main loop uses scalable vectors then we will the vplan for the main loop will be different to the epilogue. Instead I have added a new function called LoopVectorizationPlanner::getBestPlanFor that returns the best vplan for the <VF,UF> pair requested and leaves all the vplans untouched. We then pass this best vplan to LoopVectorizationPlanner::executePlan which now takes an additional VPlanPtr argument. Differential revision: https://reviews.llvm.org/D111125
-
Matthias Springer authored
Analyze ops in a pseudo-random order to see if any assertions are triggered. Randomizing the order of analysis likely worsens the quality of the bufferization result (more out-of-place bufferizations). However, assertions should never fail, as that would indicate a problem with our implementation. Differential Revision: https://reviews.llvm.org/D112581
-
Shraiysh Vaishay authored
This patch supports the atomic construct (read and write) following section 2.17.7 of OpenMP 5.0 standard. Also added tests and verifier for the same. Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D111992
-
Kirill Bobyrev authored
Collect the macro definition locations for all the macros used in the main file. Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D112447
-
Nicolas Vasilache authored
This also moves some code to a new patterns file. Differential Revision: https://reviews.llvm.org/D112575
-
Nicolas Vasilache authored
This also fixes the vector.shuffle C++ builder which had an incorrect type assumption that triggers with this new rewrite. The vector.shuffle semantics were correct though. Differential revision: https://reviews.llvm.org/D112578
-
Kadir Cetinkaya authored
Clangd used first token of filename as filename range rather than the synthezied filename token. Unfortunately the former only contains `"` or `<` in the raw lexing mode, resulting in wrong range information and breaking tidy checks that relied on it. Fixes https://github.com/clangd/clangd/issues/896. Differential Revision: https://reviews.llvm.org/D112559
-
Arthur Eubanks authored
Avoid getPointerElementType().
-
Dmitry Vyukov authored
Don't leak caller_pc var from the macro (it's not supposed to be used by interceptors). Use UNUSED instead of (void) cast. Depends on D112540. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D112541
-
Dmitry Vyukov authored
If the real function is not intercepted, we are going to crash one way or another. The question is just in the failure mode: error message vs NULL deref. But the message costs us a check in every interceptor and they are not observed to be failing in real life for a long time, also other sanitizers don't have this check as well (also crash on NULL deref if that happens). Remove the check from non-debug mode. Reviewed By: melver Differential Revision: https://reviews.llvm.org/D112540
-
Kazu Hirata authored
-
Pavel Labath authored
-
Phoebe Wang authored
-
Uday Bondhugula authored
Update an instance of dyn_cast -> cast and other NFC clang-tidy fixes for Clang CUDA codegen. Differential Revision: https://reviews.llvm.org/D112284
-
Craig Topper authored
-
River Riddle authored
-
Kazu Hirata authored
This patch fixes: mlir/lib/Transforms/Utils/DialectConversion.cpp:2775:5: error: default label in switch which covers all enumeration values [-Werror,-Wcovered-switch-default] by removing the default case. This way, the compiler should issue a warning in the future when somebody adds a new enum value without a corresponding case in the switch statement.
-
Lang Hames authored
Not all symbols are added to the index-to-symbol map, so we shouldn't use the size of the map as a proxy for the highest valid index.
-
Lang Hames authored
-
Jake Egan authored
The modified tests were failing on AIX because DWARF on AIX uses inline strings by default, but the tests check for `DW_FORM_strp`. This patch removes `DW_FORM_strp` so both forms will pass the check. Reviewed By: shchenz, dblaikie Differential Revision: https://reviews.llvm.org/D112286
-
Max Kazantsev authored
Make sure that, for every living SCEV, we have all its direct operand tracking it as their user. Differential Revision: https://reviews.llvm.org/D112402 Reviewed By: reames
-
Ben Shi authored
Simplify "LUI+SLLI+ADDI+SLLI" and "LUI+ADDIW+SLLI+ADDI+SLLI" to "LUI+ADDIW+SLLIUW" to reduce total instruction amount. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D111933
-
Ben Shi authored
Reviewed By: craig.topper, MaskRay Differential Revision: https://reviews.llvm.org/D111932
-
River Riddle authored
The current implementation invokes materializations whenever an input operand does not have a mapping for the desired type, i.e. it requires materialization at the earliest possible point. This conflicts with goal of dialect conversion (and also the current documentation) which states that a materialization is only required if the materialization is supposed to persist after the conversion process has finished. This revision refactors this such that whenever a target materialization "might" be necessary, we insert an unrealized_conversion_cast to act as a temporary materialization. This allows for deferring the invocation of the user materialization hooks until the end of the conversion process, where we actually have a better sense if it's actually necessary. This has several benefits: * In some cases a target materialization hook is no longer necessary When performing a full conversion, there are some situations w...
-
River Riddle authored
This file has gotten a bit crusty over the years, and has outdated stylistic decisions.
-
Ben Shi authored
Reviewed By: tra Differential Revision: https://reviews.llvm.org/D112521
-
Nico Weber authored
-
Daniel Rodríguez Troitiño authored
GNU sed offers the `,+4d` to delete the line a next four lines, but BSD sed doesn't seem to support it (at least in macOS 10.15, but seems to do in my 11.6 version). Replace the usage of the extension with the equivalent syntax that works both in BSD and GNU sed. I don't have a macOS 10.15 to check, but this works in both my macOS 11.6 and Linux machines. Differential Revision: https://reviews.llvm.org/D112583
-
Jacques Pienaar authored
Also flip op-decl-and-defs test to _Prefixed to test more.
-
Brad Smith authored
-
Luís Ferreira authored
Implement the functionallity of prepend, required by D demangler. Please read discussion https://reviews.llvm.org/D111414 for context. See also https://reviews.llvm.org/D111947 . Reviewed By: dblaikie, Geod24 Differential Revision: https://reviews.llvm.org/D111948
-
David Blaikie authored
-
LLVM GN Syncbot authored
-
Jacques Pienaar authored
The previous change resulted in prefixing a query that uses the raw attribute as if function invocation. Fixing quickly, with updated test to follow.
-
Jez Ng authored
Broken by a9353dbe. Now that the functions point to the compact unwind entries, instead of the other way around, we need to perform the "invalid reference" check in a different place. This change was originally part of the stacked diff D109946, but should have been included as part of D109945.
-
David Blaikie authored
-
Nico Weber authored
This reverts commit e2a2e547. 6fe2beba relanded (again) in c24a5808.
-
Rob Suderman authored
Dyn-cast should be checked and bailed out if the dyn_cast failed. Reviewed By: sjarus, NatashaKnk Differential Revision: https://reviews.llvm.org/D112574
-
Austin Kerbow authored
The scheduler should set critical/excess register usage thresholds that are guided by the maximum possible occupancy for the function. This change is focused on setting proper lower bounds on register usage which we would typically only see when a specific number of maximum waves is requested with the "waves-per-eu" attribute, or by setting "amdgpu-num-vgpr|sgpr" directly. This was broken previously. I have a follow-on patch that will address issues with the scheduler not targeting correct upper bounds on register usage which is typical with launch bounds and min "waves-per-eu". Changes by this patch: Set the initial critical register usage thresholds to minimum values that are determined by the maximum possible occupancy for the function, or the number of allocatable registers, whichever is lower. Avoid unisgned overflow if register limits are lower than the register tracking "ErrorMargin", I.e. when using stress-regalloc=2. Reviewed By: arsenm Differential Revision: https://reviews.llvm.org/D112373
-