- Nov 29, 2022
-
-
chenglin.bi authored
!(X || Y) && X --> false https://alive2.llvm.org/ce/z/693Jgv Fix: [56654](https://github.com/llvm/llvm-project/issues/56654) Fix: [56780](https://github.com/llvm/llvm-project/issues/56780) Reviewed By: spatel Differential Revision: https://reviews.llvm.org/D138853
-
Dmitry Preobrazhensky authored
Differential Revision: https://reviews.llvm.org/D138494
-
Ivan Butygin authored
Relax linalg elementwise fusion check to allow mixed consumers. Producer is still required to be fully tensor to avoid potential memref aliasing. Differential Revision: https://reviews.llvm.org/D138759
-
Haojian Wu authored
-
chenglin.bi authored
(X || Y) ? false : X --> false https://alive2.llvm.org/ce/z/y93yUm Reviewed By: spatel Differential Revision: https://reviews.llvm.org/D138700
-
Ivan Butygin authored
Also, gen_spirv_dialect script was broken was broken due to SPV->SPIRV renamings. Differential Revision: https://reviews.llvm.org/D138756
-
Vlad Serebrennikov authored
A follow-up to D138852. Apparently cxx_dr_status.html was changed manually there, since make_cxx_dr_status script doesn't generate the same HTML after that patch landed. Differential Revision: https://reviews.llvm.org/D138895
-
Sven van Haastregt authored
This extension only adds builtin functions and thus doesn't need to be included as an extension. Instead of a pragma, the builtin functions of the extension can be exposed through enabling preprocessor defines.
-
Florian Hahn authored
This reverts commit 18244321. The change triggers an assertion when building clang on macOS: FAILED: tools/clang/include/clang/Tooling/Syntax/Nodes.inc cd /Users/florianhahn/projects/llvm-project/builds/release-with-assertions/ccache-stage1 && /Users/florianhahn/projects/llvm-project/builds/release-with-assertions/ccache-stage1/bin/clang-tblgen -gen-clang-syntax-node-list -I /Users/florianhahn/projects/llvm-project/clang/include/clang/Tooling/Syntax -I/Users/florianhahn/projects/llvm-project/clang/include -I/Users/florianhahn/projects/llvm-project/builds/release-with-assertions/ccache-stage1/tools/clang/include -I/Users/florianhahn/projects/llvm-project/builds/release-with-assertions/ccache-stage1/include -I/Users/florianhahn/projects/llvm-project/llvm/include /Users/florianhahn/projects/llvm-project/clang/include/clang/Tooling/Syntax/Nodes.td --write-if-changed -o tools/clang/include/clang/Tooling/Syntax/Nodes.inc -d tools/clang/include/clang/Tooling/Syntax/Nodes.inc.d Assertion failed: ((!RequiresNullTerminator || BufEnd[0] == 0) && "Buffer is not null terminated!"), function init, file MemoryBuffer.cpp, line 52. Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it): 0 clang-tblgen 0x000000010466b68c llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56 1 clang-tblgen 0x000000010466a808 llvm::sys::RunSignalHandlers() + 64 2 clang-tblgen 0x000000010466bd60 SignalHandler(int) + 344 3 libsystem_platform.dylib 0x00000001877a92a4 _sigtramp + 56 4 libsystem_pthread.dylib 0x000000018777acec pthread_kill + 288 5 libsystem_c.dylib 0x00000001876b42c8 abort + 180 6 libsystem_c.dylib 0x00000001876b3620 err + 0 7 clang-tblgen 0x00000001046ce150 llvm::ErrorOr<std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>> getOpenFileImpl<llvm::MemoryBuffer>(int, llvm::Twine const&, unsigned long long, unsigned long long, long long, bool, bool, llvm::Optional<llvm::Align>) (.cold.1) + 0 8 clang-tblgen 0x000000010464a548 llvm::WritableMemoryBuffer::getNewUninitMemBuffer(unsigned long, llvm::Twine const&, llvm::Optional<llvm::Align>) + 496 9 clang-tblgen 0x000000010464a7a0 llvm::ErrorOr<std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>> getOpenFileImpl<llvm::MemoryBuffer>(int, llvm::Twine const&, unsigned long long, unsigned long long, long long, bool, bool, llvm::Optional<llvm::Align>) + 528 10 clang-tblgen 0x000000010464a254 llvm::ErrorOr<std::__1::unique_ptr<llvm::MemoryBuffer, std::__1::default_delete<llvm::MemoryBuffer>>> getFileAux<llvm::MemoryBuffer>(llvm::Twine const&, unsigned long long, unsigned long long, bool, bool, bool, llvm::Optional<llvm::Align>) + 176 11 clang-tblgen 0x000000010466fbbc llvm::TableGenMain(char const*, bool (*)(llvm::raw_ostream&, llvm::RecordKeeper&)) + 1428 12 clang-tblgen 0x0000000104626114 main + 156 13 dyld 0x0000000187453e50 start + 2544
-
Archibald Elliott authored
This change is focussed on simplifying `Support/Host.h` to only do target detection. In this case, this function is close in usage to existing functions in `Support/Threading.h`, so I moved it into there. The function is also renamed to `llvm::get_physical_cores()` to match the style of threading's functions. The big change here is that now if you have threading disabled, `llvm::get_physical_cores()` will return -1, as if it had not been able to work out the right info. This is due to how Threading.cpp includes OS-specific code/headers. This seems ok, as if threading is disabled, LLVM should not need to know the number of physical cores. Differential Revision: https://reviews.llvm.org/D137836
-
John Brawn authored
When generating __clang_call_terminate use SetLLVMFunctionAttributes to set the default function attributes, like we do for all the other functions generated by clang. This fixes a problem where target features from the command line weren't being applied to this function. Differential Revision: https://reviews.llvm.org/D138679
-
serge-sans-paille authored
This avoids repeated calls to strlen while we already know its value. When preprocessing sqlite3.c, this gives a surprising 2% speedup. Full benchmark available here: https://llvm-compile-time-tracker.com/compare.php?from=5279e6a7d677cdf4488883b77aacab911318100c&to=389601b0dbdf23cf25167ddfc49b3af5742ebd9a&stat=instructions:u Differential Revision: https://reviews.llvm.org/D138555
-
Roy Jacobson authored
-
Roy Jacobson authored
LWG3823 says that arrays of incomplete types are aggregates. Fix the clang builtin to match that. Closes https://github.com/llvm/llvm-project/issues/59002 Reviewed By: cjdb Differential Revision: https://reviews.llvm.org/D138603
-
Roy Jacobson authored
As noticed in GH58962, we should only diagnose illegal overloads of member functions when the ref qualifiers don't match if the trailing constraints are the same. The fix is to move the existing constraints check earlier in Sema::IsOverload. Closes https://github.com/llvm/llvm-project/issues/58962 Reviewed By: erichkeane Differential Revision: https://reviews.llvm.org/D138749
-
Jay Foad authored
Checking for : before @LINE avoids the unlikely possibility that the expected error line number happens to be a suffix of the actual one.
-
Simon Pilgrim authored
As discussed on Issue #59217, under certain circumstances the DAG can generate duplicate MUL and MUL_LOHI nodes, often during MULO legalization. This patch attempts to replace MUL nodes with additional uses of the LO result from the MUL_LOHI node Differential Revision: https://reviews.llvm.org/D138790
-
Hassnaa Hamdi authored
To generate code compatible to streaming mode: - enable custome lowering for TruncStore to avoid crashing during legalizing TruncStore for non Integer vector. Reviewed By: sdesmalen Differential Revision: https://reviews.llvm.org/D138720
-
Juan Manuel MARTINEZ CAAMAÑO authored
Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D138706
-
Jordan Rupprecht authored
The libc++ data formatter for `std::shared_ptr` allows any namespace, but the test asserts that it must be the default `__1` namespace. Relax the regex to allow anything that looks like `__.*` (although we use `__[^:]*` so we don't match arbitrarily long text). Reviewed By: labath Differential Revision: https://reviews.llvm.org/D129898
-
Bjorn Pettersson authored
Should cover most of the tests for GVN, GVNHoist, GVNSink, GlobalOpt, GlobalSplit, InstCombine, Reassociate, SROA and TailCallElim that had not been updated earlier.
-
Guillaume Chatelet authored
-
Hassnaa Hamdi authored
To generate code compatible to streaming mode: - enable custom-lowering ISD::CTLZ and ISD::CTPOP. - disable combining OR into BSL. - Testing files: - bit-counting.ll - bitselect.ll Reviewed By: david-arm, sdesmalen Differential Revision: https://reviews.llvm.org/D138682
-
Hassnaa Hamdi authored
Add testing files: - bit-counting.ll - bitselect.ll
-
Jordan Rupprecht authored
The layout is essentially just reversed from the stable std::string layout. Reviewed By: labath Differential Revision: https://reviews.llvm.org/D138850
-
Valentin Clement authored
Change how the binding tables are retrived. Use the newly lowered fir.dispatch_table operations instead of the fir.global type infos. Reviewed By: jeanPerier Differential Revision: https://reviews.llvm.org/D138903
-
Sam McCall authored
As strange as it seems to our files-are-strings view of the world, some editors that treat files as arrays of lines can get confused about whether the last line has a newline or not. The consequences of failing to handle a bad incremental update are catastrophic. If an update would be valid except for a missing newline at end of file, pretend one exists. This fixes problems still present in neovim where deleting all text often leads to a desync shortly afterwards: https://github.com/neovim/neovim/issues/17085 Differential Revision: https://reviews.llvm.org/D135508
-
Jordan Rupprecht authored
Some headers in LLDB work only when considered as textual inclusion, but not if one attempts to use them on their own or with a different context. - python-typemaps.h: uses Python definitions without using "Python.h". - RISCVCInstructions.h uses RISC-V register enums without including the enums header. - RISCVInstructions.h includes EmulateInstructionRISCV.h, but is unnecessary since we forward-declare EmulateInstructionRISCV anyway. Including the header is problematic because EmulateInstructionRISCV.h uses DecodeResult which isn't defined until later in RISCVInstructions.h. This makes LLDB build cleanly with the "parse_headers" feature [1]. I'm not sure what the analagous CMake option is. [1] I didn't find public documentation but @MaskRay wrote this up: https://maskray.me/blog/2022-09-25-layering-check-with-clang#parse_headers Reviewed By: labath, MaskRay Differential Revision: https://reviews.llvm.org/D138310
-
Tobias Gysi authored
The revision makes additional integer debug info parameters such as line or column numbers optional (e.g. the line and column numbers 0 are elided when printing, which is in line with the LLVM implementation). Depends on D138405 Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D138437
-
Thomas Symalla authored
-
Jens Massberg authored
The zero-as-null-pointer-constant check should not fire if it is inside a defaulted function, e.g. defaulted spaceship operators. Add C++20 tests with spaceship operators. Fixes #50221 Differential Revision: https://reviews.llvm.org/D138727
-
bipmis authored
This patch updates the load insert point of the merged load in AggressiveInstCombine(). This is done to handle the reported test breaks by handling Alias Analysis correctly. Differential Revision: https://reviews.llvm.org/D137201
-
Sjoerd Meijer authored
The problem in 58441 that was reported after enabling this last time was fixed in 8e9e22f0.
-
Roy Jacobson authored
After accepted in Kona, update the code to accept static operator[] as well. No big code changes: accept this operator as static in SemaDeclCXX, update AST call generation in SemaOverload and update feature macros + tests accordingly. Reviewed By: cor3ntin, erichkeane, #clang-language-wg Differential Revision: https://reviews.llvm.org/D138387
-
Tobias Gysi authored
Currently, the import of LLVMIR fails if the program contains debug intrinsics. The revision adds support to import debug intrinsics that have no debug expression attached and drops all debug intrinsics with a non-empty debug expression. It also moves the existing debug intrinsics into the "intr" namespace by deriving from LLVM_IntrOp. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D138405
-
Pavel Labath authored
Previously, we just used the platform name. This worked mostly OK, but it required adding special handling for any unusual (and potentially downstream) platform plugins, as evidenced by the hardcoding of the qemu-user platform. The current implementation was added in D121605/21c5bb0a, which this essentially reverts and goes back to the previous method of retrieving the platform name from the platform triple (the "OS" field). The motivation for D121605 was the ability to retrieve the process without constructing an SBDebugger object (which would be necessary in a world where SBPlatforms are managed by SBDebuggers). However, this world did not arrive (mainly due to other commitments on my part), and I now think that if we do want to go in that direction, that we should just create a dummy/empty SBDebugger object for holding the initial SBPlatform. One benefit of D121605 was the unification of getPlatform and getHostPlatform code paths, and I preserve that benefit by unifying them in the other direction -- using the host SBPlatform for getHostPlatform. Differential Revision: https://reviews.llvm.org/D138430
-
Qihan Cai authored
Fixes #59132 by mitigating the behavior of not setting underflow flag on RISC-V platform. Reviewed By: vzakhari Differential Revision: https://reviews.llvm.org/D138503
-
Simon Tatham authored
In revision B.q and before of the Armv8-M architecture reference manual, the vector/scalar forms of the `vmla` and `vmlas` instructions came in signed and unsigned integer forms, such as `vmla.s8 q0,q1,r2` or `vmlas.u32 q3,q4,r5`. Revision B.r has changed this. There are no longer signed and unsigned versions of these instructions, since they were functionally identical anyway. Now there is just `vmla.i8` (or `i16` or `i32`, and similarly for `vmlas`). Bit 28 of the instruction encoding, which was previously 0 for signed or 1 for unsigned, is now expected to be 0 always. This change updates LLVM to the new version of the architecture. The obsoleted encodings for unsigned integers are now decoding errors, and only the still-valid encoding is ever emitted. This shouldn't break any existing assembly code, because the old signed and unsigned versions of the mnemonic are still accepted by the assembler (which is standard practice anyway for all signedness-agnostic MVE integer instructions). Reviewed By: dmgreen, lenary Differential Revision: https://reviews.llvm.org/D138827
-
Dmitry Makogon authored
-
Freddy Ye authored
-