- Mar 08, 2024
-
-
Krzysztof Parzyszek authored
….h.inc The consumers of OpenMP-related definitions include a TableGen-generated file OMP.h.inc. Having a separate OMP.h allows putting additional declarations in there that are not auto-generated. This patch is NFC.
-
Krzysztof Parzyszek authored
When` SmallVector<char>` is used as a backing storage, it can't be assumed to end with a \x0. When creating a `StringRef` from it, pass the length explicitly. This was detected by address sanitizer.
-
Krzysztof Parzyszek authored
-
Krzysztof Parzyszek authored
Rewriting an op can invalidate the operator range being iterated on. Store the users in a separate list, and iterate over the list instead. This was detected by address sanitizer.
-
Congcong Cai authored
[clang-tidy]avoid bugprone-unused-return-value false positive for function with the same prefix as the default argument (#84333)
-
Guillaume Chatelet authored
Its sole user is `BigInt` so moving `full_mul` inside UInt.h.
-
Guillaume Chatelet authored
-
Balazs Benics authored
Note that this patch will be necessary to fix `forEachArgumentWithParam()` and `forEachArgumentWithParamType()` matchers for deducing "this"; which is my true motivation. There the bug is that with explicit obj params, one should not adjust the number of arguments in presence of `CXXMethodDecls`, and this causes a mismatch there mapping the argument to the wrong param. But, I'll come back there once we have this matcher.
-
Joseph Huber authored
Summary: This default enum is used in other places, we should keep it consistent.
-
Shengchen Kan authored
APX assembly syntax recommendations: https://cdrdv2.intel.com/v1/dl/getContent/817241 NOTE: The change in llvm/tools/llvm-exegesis/lib/X86/Target.cpp is for test LLVM :: tools/llvm-exegesis/X86/latency/latency-SETCCr-cond-codes-sweep.s For `SETcc`, llvm-exegesis would randomly choose 1 other instruction to test with `SETcc`, after selecting the instruction, llvm-exegesis would check if the operand is initialized and valid, if not `randomizeTargetMCOperand` would choose a value for invalid operand, it misses support for condition code operand, which cause the flaky failure after `CCMP` supported. llvm-exegesis can choose `CCMP` without specifying ccmp feature b/c it use `MCSubtarget` and only16/32/64 bit is considered. llvm-exegesis doesn't choose other instructions b/c requirement in `hasAliasingRegistersThrough`: the instruction should use GPR (defined by `SETcc`) and define `EFLAGS` (used by `SETcc`).
-
Kiran Chandramohan authored
Fixes #84088
-
Jay Foad authored
-
Younan Zhang authored
We don't modify the MLTAL parameter in `SetupConstraintScope`, and it is better if we don't copy the 120-byte object each time we call the function.
-
Paul Walker authored
This removes, at least when a vector library is available, a failure case for scalable vectors. Doing so means we can confidently cost vector FREM instructions without making an assumption that later passes will transform the IR before it gets to the code generator. NOTE: Whilst only FREM has been implemented the same mechanism can be used for the other libm related ISD nodes.
-
Dmitry Chernenkov authored
-
David Spickett authored
This explains a thing that hit me on FreeBSD because the base system has an ncursesw at one version and I installed from pkg another version that was simply ncurses (no wide char support). For whatever reason, when we pass -lcurses to the linker it ends up picking bits of both installs. This led to lldb crashing immediately if you tried to use the `gui` command. In a way that gave little information but I stumbled onto https://github.com/vifm/vifm/issues/325 which is very similar. ``` ec2-user@freebsd:~/build-llvm $ ldd ./bin/lldb | grep curses libncursesw.so.9 => /lib/libncursesw.so.9 (0x6a515206e000) libncurses.so.6 => /usr/local/lib/libncurses.so.6 (0x6a5158e86000) ``` We should only see one version, and it and libpanel etc should all have "w" or not have "w". This was not the case for my build. What I can see from the CMake side seemed fine, it found the pkg installed ncurses in /usr/local. Something else must decide that -lcurses should pull in the other one. Regardless, I don't know how to fix that but the solution for most people is just not to add another ncurses if they already have one. So I've added a note saying so, and how to check what your lldb is using.
-
Amirreza Ashouri authored
static_assert is supported in all modes, so the T/F macros aren't needed anymore.
-
Krystian Stasiowski authored
Revert "[Clang][Sema] Fix crash when using name of UnresolvedUsingValueDecl with template arguments (#83842)" (#84457) This reverts commit a642eb89 (see #83842)
-
Christian Sigg authored
Second attempt. This also reverts 50633868.
-
Christian Sigg authored
-
David Spickett authored
* gmake is needed on FreeBSD * pkg can install libxml2 on FreeBSD * Make the swig note into an RST note box.
-
Christian Sigg authored
Second attempt.
-
Christian Sigg authored
-
Tom Eccles authored
TBAA builder assumed that all loads/stores are inside of functions and hit an assertion once it found loads and stores inside of an omp::ReductionDeclareOp. For now just don't add TBAA tags to those loads and stores. They would end up in a different TBAA tree to the host function after OpenMPIRBuilder inlines them anyway so there isn't an easy way of making this work.
-
Tom Eccles authored
This will be useful for OpenMP too. I changed the definition slightly to use `fir::isa_ref_type` (which also includes llvm pointers) because I think it reads better using the common type helpers. There shouldn't be any llvm pointers in lowering so this isn't a functional change.
-
zhongyunde 00443407 authored
-
zhongyunde 00443407 authored
Pattern should be sorted in priority order since the pattern evalutor stops checking as soon as it finds a faster sequence. so for a * b - c * d, we prefer to match the 2nd operands of sub, which can be use msub to fold them. Refer to https://www.slideshare.net/chimerawang/instruction-combine-in-llvm Fix https://github.com/llvm/llvm-project/issues/84152
-
David Green authored
Similar to #84187, this enables the existing test we have for checking the scheduling info of the pseudos matches the real instructions, and adjusts the scheduling info in the NeoverseN2 model to make sure all cases were handled.
-
Sizov Nikita authored
Add neon bici test for haddu and shadd, prerequisite for #76644
-
Jie Fu authored
llvm-project/clang/lib/Sema/SemaChecking.cpp:19192:15: error: unused variable 'Field1Parent' [-Werror,-Wunused-variable] const Type *Field1Parent = Field1->getParent()->getTypeForDecl(); ^ llvm-project/clang/lib/Sema/SemaChecking.cpp:19193:15: error: unused variable 'Field2Parent' [-Werror,-Wunused-variable] const Type *Field2Parent = Field2->getParent()->getTypeForDecl(); ^ 2 errors generated. -
-
Alex Richardson authored
GCC complains if we pass -Werror=format-security without -Wformat. Reported at https://github.com/llvm/llvm-project/pull/83779#issuecomment-1985246797
-
Guillaume Chatelet authored
As noted in https://github.com/llvm/llvm-project/pull/84035#discussion_r1516817755 only files under the CPP folder should be in the `cpp` namespace.
-
Pierre van Houtryve authored
Fixes #63216
-
Tina Jung authored
* Add a conversion from `arith.constant` to `emitc.constant`. * Drop the translation for `arith.constant`s.
-
Aiden Grossman authored
This patch adds repository checks to the release-binaries workflow jobs. People were observing that the job was running on a schedule in their forks. This only happens on old forks, but those probably exist in great number given how prolific LLVM is. This is also good practice anyways, on top of solving the direct problem of these jobs running with the cron schedule on people's forks.
-
Balázs Kéri authored
These functions should not be allowed if the file position is indeterminate (they return the file position). This condition is now checked, and tests are improved to check it.
-
Marius Brehler authored
This adds operations for the unary minus and the unary plus operator.
-
Vyacheslav Levytskyy authored
This PR introduces a step after instruction selection where instructions can be traversed from the perspective of their validity from the specification point of view. The PR adds also a way to correct load/store when there is a type mismatch contradicting the specification -- an additional bitcast is inserted to keep types consistent. Correspondent test cases are added and existing test cases are corrected. This PR helps to successfully validate with the `spirv-val` tool (https://github.com/KhronosGroup/SPIRV-Tools) some output that previously led to validation errors and crashes of back translation from SPIRV to LLVM IR from the side of SPIRV Translator project (https://github.com/KhronosGroup/SPIRV-LLVM-Translator). The added step of bringing instructions to required by the specification type correspondence can be (should be and will be) extended beyond load/store instructions to ensure validity rules of other SPIRV instructions related to type inference.
-