- Apr 21, 2024
-
-
Nikita Popov authored
Revert "[X86] X86LowerTileCopy: Find dead register to use to prevent save-reload of tile register (#83628)" This reverts commit 34acbb38. This change causes major compile-time regressions.
-
Timm Bäder authored
To accomodate for recent changes in array index calculations.
-
zhongyunde 00443407 authored
foldFDivPowDivisor can address A / powi(x, y) to A * powi(x, -y), while for small const value y, for example y=2, the instcombine will transform powi(x, 2) to fmul x, x, so it is not optimal for A / powi(x, 2). Fix https://github.com/llvm/llvm-project/issues/77171
-
zhongyunde 00443407 authored
Since PR86428, foldPowiReassoc is called by both FMul and FDiv, as the optimization of FDiv is placed after the FMul, so now it is correct we don't add the checking of FDiv for powi(X, Y) / X. But, we may add more matching scenarios later, so add the checking opcode explicitly is easier to understand.
-
Congcong Cai authored
-
Craig Topper authored
-
Kazu Hirata authored
The call stack table has a constant key length, so we don't need to serialize or deserialize it for every key-data pair. Omitting the key length saves 0.64% of the indexed MemProf file size. Note that it's OK to change the format because Version2 is still under development.
-
Abhishek Kulkarni authored
The Python bindings generated for "async" dialect didn't include any of the "async" dialect ops. This PR fixes issues with generation of Python bindings for "async" dialect and adds a test case to use them.
-
AtariDreams authored
-
Aiden Grossman authored
This reverts commit f2931182. This was again causing buildbot failures. #83962 has been updated with the new failures, notifying the buildbot maintainers that they need to update their bots.
-
Vassil Vassilev authored
Original commit message: " Clang's CodeGen is designed to work with a single llvm::Module. In many cases for convenience various CodeGen parts have a reference to the llvm::Module (TheModule or Module) which does not change when a new module is pushed. However, the execution engine wants to take ownership of the module which does not map well to CodeGen's design. To work this around we clone the module and pass it down. With some effort it is possible to teach CodeGen to ask the CodeGenModule for its current module and that would have an overall positive impact on CodeGen improving the encapsulation of various parts but that's not resilient to future regression. This patch takes a more conservative approach and keeps the first llvm::Module empty intentionally and does not pass it to the Jit. That's also not bullet proof because we have to guarantee that CodeGen does not write on the blueprint. However, we have inserted some assertions to catch accidental additions to that canary module. This change will fixes a long-standing invalid memory access reported by valgrind when we enable the TBAA optimization passes. It also unblock progress on https://github.com/llvm/llvm-project/pull/84758. " This patch reverts adc4f623 and removes the check of `named_metadata_empty` of the first llvm::Module because on darwin clang inserts some harmless metadata which we can ignore.
-
Vassil Vassilev authored
This reverts commit ca090452 and 1faf3148 because it broke a darwin bot.
-
Kazu Hirata authored
This patch fixes: clang/lib/Interpreter/IncrementalParser.cpp:214:29: error: moving a temporary object prevents copy elision [-Werror,-Wpessimizing-move] clang/lib/Interpreter/IncrementalParser.cpp:232:22: error: moving a temporary object prevents copy elision [-Werror,-Wpessimizing-move]
-
Kazu Hirata authored
The comment being deleted in this patch is not correct. We already construct an instance of RecordWriterTrait with Version. This patch teaches the constructor of RecordWriterTrait to accept Schema. While I am at it, this patch makes Version a private variable.
-
Vassil Vassilev authored
Clang's CodeGen is designed to work with a single llvm::Module. In many cases for convenience various CodeGen parts have a reference to the llvm::Module (TheModule or Module) which does not change when a new module is pushed. However, the execution engine wants to take ownership of the module which does not map well to CodeGen's design. To work this around we clone the module and pass it down. With some effort it is possible to teach CodeGen to ask the CodeGenModule for its current module and that would have an overall positive impact on CodeGen improving the encapsulation of various parts but that's not resilient to future regression. This patch takes a more conservative approach and keeps the first llvm::Module empty intentionally and does not pass it to the Jit. That's also not bullet proof because we have to guarantee that CodeGen does not write on the blueprint. However, we have inserted some assertions to catch accidental additions to that canary module. This change will fixes a long-standing invalid memory access reported by valgrind when we enable the TBAA optimization passes. It also unblock progress on https://github.com/llvm/llvm-project/pull/84758.
-
Timm Bäder authored
This is closer to that the current interpreter does. It also fixes diagnostics in a case I was looking into. Unfortunately, this is not possible to test right now since it requires a large array and we don't implement array fillers yet.
-
Théo Degioanni authored
-
- Apr 20, 2024
-
-
David Green authored
-
David Green authored
-
Farzon Lotfi authored
- `clang/lib/CodeGen/CGBuiltin.cpp` - Add a generic mull add implementation. Make DXIL implementation tied to target. resolves #88944
-
Haohai Wen authored
InstCombine may invert branch condition and profile metadata. In such case, BranchProbabilityAnalysis should also be updated.
-
Congcong Cai authored
-
Karl-Johan Karlsson authored
These tests just don't check the output written to the current directory. The current directory may be write protected e.g. in a sandboxed environment. The Testcases that use -emit-llvm and -verify only care about stdout/stderr and are in this patch changed to use -emit-llvm-only to avoid writing to an output file. The verify-inlineasmbr.mir testcase that also only care about stdout/stderr is in this patch changed to throw away the output file and just write to /dev/null.
-
Mark de Wever authored
-
Alexander authored
`TemplateArgumentLocInventIterator` default constructor should not exists https://github.com/llvm/llvm-project/blob/3496927edcd0685807351ba88a7e2cfb006e1c0d/clang/lib/Sema/TreeTransform.h#L4742 because it doesn't and couldn't initialize `Self` member that is reference: https://github.com/llvm/llvm-project/blob/3496927edcd0685807351ba88a7e2cfb006e1c0d/clang/lib/Sema/TreeTransform.h#L4721-L4723 Instantiation of this constructor is always a compile-time error. Please note, that I didn't run any tests, because cannot imagine situation where this constructor can be properly used. There are no new tests for this fix for the same reason.
-
Mark de Wever authored
The new name uses experimental which better conveys what it means.
-
Amila Senadheera authored
[clang] Marshallers.h - use move semantics for 'NodeKinds' and update possible callers to use it (#87273) Fixes: https://github.com/llvm/llvm-project/issues/87248 Signed-off-by:
amila <amila.15@cse.mrt.ac.lk>
-
Nikolas Klauser authored
This implements two kinds of optimizations. Specifically - `char_traits<char8_t>` uses `char` code paths; these are heavily optimized and the operations are equivalent - `char16_t` and `char32_t` `find` uses `std::find` to forward to `wmemchr` if they have the same size
-
SahilPatidar authored
Resolve #85250 Alive2: https://alive2.llvm.org/ce/z/7DMRCy
-
Timm Bäder authored
-
Owen Pan authored
Also fix a bug in annotating TrailingAnnotation. Closes #61233.
-
Cyndy Ishida authored
Matches up with the clang setting
-
Vitaly Buka authored
-
Ding Fei authored
Lambda without trailing auto could have return type declared inside the body too. Fixes #68775
-
Vitaly Buka authored
Avoid passing them around.
-
Vitaly Buka authored
-
Vitaly Buka authored
-
Vitaly Buka authored
They are not optional.
-
Aiden Grossman authored
This reverts commit 2dfa30d0. This relands commit 0a6c74e2. This patch originally caused a host of buildbot failures due to several buildbots not having the necessary python version. That was tracked in issue #83962, and all bots that failed in the first round have now been updated. This is an attempt to reland the patch to see if it sticks or if there are a number of long-running bots where this patch will cause failures.
-
Vitaly Buka authored
-