This project is mirrored from https://github.com/llvm/llvm-project.git.
Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer or owner.
Last successful update .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer or owner.
Last successful update .
- Apr 07, 2022
-
-
John Demme authored
Adds `mlirBlockDetach` to the CAPI to remove a block from its parent region. Use it in the Python bindings to implement `Block.append_to(region)`. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D123165
-
Nathan Sidwell authored
The demangler has a utility class 'SwapAndRestore'. That name is confusing. It's not swapping anything, and the restore part happens at the object's destruction. What it's actually doing is allowing a override of some value that is dynamically accessible within the lifetime of a lexical scope. Thus rename it to ScopedOverride, and tweak it's member variable names. Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D122606
-
Martin Storsjö authored
There are no such markings left - all of them have been fixed or analyzed. This closes llvm.org/PR32730 (github issue #32077). Differential Revision: https://reviews.llvm.org/D123145
-
Martin Storsjö authored
Use the windows-gnu assembly files on x86_64 Cygwin too. This fixes https://github.com/llvm/llvm-project/issues/54685. Differential Revision: https://reviews.llvm.org/D123187
-
Martin Storsjö authored
In COFF, the immediates in IMAGE_REL_ARM64_PAGEBASE_REL21 relocations are limited to 21 bit signed, i.e. the offset has to be less than (1 << 20). The previous limit did intend to cover for this case, but had missed that the 21 bit field was signed. This fixes issue https://github.com/llvm/llvm-project/issues/54753. Differential Revision: https://reviews.llvm.org/D123160
-
Martin Storsjö authored
This matches how another similar warning is silenced in Host/posix/ProcessLauncherPosixFork.cpp. Differential Revision: https://reviews.llvm.org/D123205
-
Martin Storsjö authored
This silences warnings like this: lldb/source/Core/DebuggerEvents.cpp: In member function ‘llvm::StringRef lldb_private::DiagnosticEventData::GetPrefix() const’: lldb/source/Core/DebuggerEvents.cpp:55:1: warning: control reaches end of non-void function [-Wreturn-type] 55 | } Differential Revision: https://reviews.llvm.org/D123203
-
Martin Storsjö authored
If testing for a warning option like -Wno-<foo> with GCC, GCC won't print any diagnostic at all, leading to the options being accepted incorrectly. However later, if compiling a file that actually prints another warning, GCC will also print warnings about these -Wno-<foo> options being unrecognized. This avoids warning spam like this, for every lldb source file that produces build warnings with GCC: At global scope: cc1plus: warning: unrecognized command line option ‘-Wno-vla-extension’ cc1plus: warning: unrecognized command line option ‘-Wno-deprecated-register’ This matches how such warning options are detected and added in llvm/cmake/modules/HandleLLVMOptions.cmake, e.g. like this: check_cxx_compiler_flag("-Wclass-memaccess" CXX_SUPPORTS_CLASS_MEMACCESS_FLAG) append_if(CXX_SUPPORTS_CLASS_MEMACCESS_FLAG "-Wno-class-memaccess" CMAKE_CXX_FLAGS) Differential Revision: https://reviews.llvm.org/D123202
-
LLVM GN Syncbot authored
-
Sam McCall authored
Addressing comment from previous review https://reviews.llvm.org/D121165?id=413636#inline-1160757
-
Congzhe Cao authored
Motivated by pr43326 (https://bugs.llvm.org/show_bug.cgi?id=43326), where a slightly modified case is as follows. void f(int e[10][10][10], int f[10][10][10]) { for (int a = 0; a < 10; a++) for (int b = 0; b < 10; b++) for (int c = 0; c < 10; c++) f[c][b][a] = e[c][b][a]; } The ideal optimal access pattern after running interchange is supposed to be the following void f(int e[10][10][10], int f[10][10][10]) { for (int c = 0; c < 10; c++) for (int b = 0; b < 10; b++) for (int a = 0; a < 10; a++) f[c][b][a] = e[c][b][a]; } Currently loop interchange is limited to picking up the innermost loop and finding an order that is locally optimal for it. However, the pass failed to produce the globally optimal loop access order. For more complex examples what we get could be quite far from the globally optimal ordering. What is proposed in this patch is to do a "bubble-sort" fashion when doing interchange. By comparing neighbors in `LoopList` in each iteration, we would be able to move each loop onto a most appropriate place, hence this is an approach that tries to achieve the globally optimal ordering. The motivating example above is added as a test case. Reviewed By: Meinersbur Differential Revision: https://reviews.llvm.org/D120386
-
Paul Robinson authored
-
Walter Erquinigo authored
In order to support quick arbitrary access to instructions in the trace, we need each instruction to have an id. It could be an index or any other value that the trace plugin defines. This will be useful for reverse debugging or for creating callstacks, as each frame will need an instruction id associated with them. I've updated the `thread trace dump instructions` command accordingly. It now prints the instruction id instead of relative offset. I've also added a new --id argument that allows starting the dump from an arbitrary position. Differential Revision: https://reviews.llvm.org/D122254
-
Craig Topper authored
-
Peter Collingbourne authored
This reverts commit b02b9b3d. Broke Mac build: http://45.33.8.238/macm1/32578/step_4.txt
-
Zixu Wang authored
Add (partial) support for Objective-C category records in ExtractAPI. The current ExtractAPI collects everything for an Objective-C category, but not fully serialized in the SymbolGraphSerializer. Categories extending external interfaces are disgarded during serialization, and categories extending known interfaces are merged (all members surfaced) into the interfaces. Differential Revision: https://reviews.llvm.org/D122774
-
David Blaikie authored
-
LLVM GN Syncbot authored
-
Vladislav Khmelevsky authored
Differential Revision: https://reviews.llvm.org/D123133
-
Daniel Grumberg authored
Typedef records consist of the symbol associated with the underlying TypedefDecl and a SymbolReference to the underlying type. Additionally typedefs for anonymous TagTypes use the typedef'd name as the symbol name in their respective records and USRs. As a result the declaration fragments for the anonymous TagType are those for the associated typedef. This means that when the user is defining a typedef to a typedef to a anonymous type, we use a reference the anonymous TagType itself and do not emit the typedef to the anonymous type in the generated symbol graph, including in the type destination of further typedef symbol records. Differential Revision: https://reviews.llvm.org/D123019
-
Nathan Sidwell authored
Note that the mangling has changed and the demangler's learnt a new trick. Obviously dependent upon the mangler and demangler patches. Reviewed By: bruno Differential Revision: https://reviews.llvm.org/D123141
-
Daniil Kovalev authored
Normally, we place fields serving for debug purpose declarations under `#if LLVM_ENABLE_ABI_BREAKING_CHECKS`. For `SDNode::PersistentId` and `SelectionDAG::NextPersistentId`, we do not want to do so because it adds unneeded complexity without noticeable benefits (see discussion with @thakis in D120714). This patch adds comments describing why we don't place those fields under `#if` not to confuse anyone more. Differential Revision: https://reviews.llvm.org/D123238
-
Nico Weber authored
This reverts commit edddf384. 83a798d4 was reverted in 62a983eb.
-
Peter Collingbourne authored
Our support for building for baremetal was conditional on a default off arg and would have failed to build if you had somehow arranged to pass the correct --target flag; presumably nobody noticed because nobody was turning it on. A better approach is to model baremetal as a separate "OS" called "baremetal" and build it in the same way as we cross-compile for other targets. That's what this patch does. I only hooked up the arm64 target but others can be added. Differential Revision: https://reviews.llvm.org/D122862
-
Craig Topper authored
The VP path was using the split source VTs instead of the split destination VTs. This may not be a problem today because the VP nodes going through this have the same source and dest VTs. It will be a problem when we start using this function for legalizing VP cast operations.
-
Alan Zhao authored
This flag is present in MSVC's ml.exe to suppress copyright info output. LLVM doesn't output copyright info, so this flag does nothing in llvm-ml. We still add this flag though so that when llvm-ml is used as a drop-in replacement for MSVC ml.exe, we don't get any extra warnings. Furthermore, this behavior is also consistent with other llvm binaries for Windows (e.g. clang-cl, llvm-mt, lld-link, etc.) Differential revision: https://reviews.llvm.org/D123068
-
Daniel Grumberg authored
This includes: - replacing "relationhips" with "relationships" - emitting the "pathComponents" property on symbols - emitting the "accessLevel" property on symbols Differential Revision: https://reviews.llvm.org/D123045
-
Hansang Bae authored
Silenced compiler warnings after pushing the following change. https://reviews.llvm.org/D122107 Differential Revision: https://reviews.llvm.org/D123233
-
Daniil Kovalev authored
This reverts commit 83a798d4. As discussed in D120714 with @thakis, the patch added unneeded complexity without noticeable benefits.
-
Craig Topper authored
This file is divided into sections for different legalization actions. We should keep similar methods together.
-
David Green authored
-
Nathan Sidwell authored
GCC emits [some] static symbols with an 'L' mangling, which we attempt to demangle. But the module mangling changes have exposed that we were doing so at the wrong level. Such manglings are outside of the ABI as they are internal-linkage, so a bit of reverse engineering was needed. This adjusts the demangler along the same lines as the existing gcc demangler (which is not yet module-aware). 'L' is part of an unqualified name. As before we merely parse the 'L', and then ignore it. Reviewed By: iains Differential Revision: https://reviews.llvm.org/D123138
-
Craig Topper authored
-
Craig Topper authored
Including mask vector inputs. Reviewed By: frasercrmck, rogfer01 Differential Revision: https://reviews.llvm.org/D123150
-
Craig Topper authored
The extend case should never occur. The sign extend would be an arbitrary choice, remove it to avoid confusion.
-
Arthur Eubanks authored
-
Simon Pilgrim authored
-
Nico Weber authored
I saw the TODOs while reading this file and figured I'd do them. I haven't seen these happen in practice. No expected behavior change. Differential Revision: https://reviews.llvm.org/D123215
-
Nico Weber authored
STABS information consists of a list of records in the linked binary that look like this: OSO: path/to/some.o SO: path/to/some.c FUN: sym1 FUN: sym2 ... The linked binary has one such set of records for every .o file linked into it. When dsymutil processes the binary's STABS information, it: 1. Reads the .o file mentioned in the OSO line 2. For each FUN entry after it in the main executable's STABS info: a) it looks up that symbol in the symbol of that .o file b) if it doesn't find it there, it goes through all symbols in the main binary at the same address and sees if any of those match With ICF, ld64.lld's STABS output claims that all identical functions that were folded are in the .o file of the one that's deemed the canonical one. Many small functions might be folded into a single function, so there are .o OSO entries that end up with many FUN lines, but almost none of them exist in the .o file's symbol table. Previously, dsymutil would do a full scan of all symbols in the main executable _for every of these entries_. This patch instead scans all aliases once and remembers them per name. This reduces the alias resolution complexity from O(number_of_aliases_in_o_file * number_of_symbols_in_main_executable) to O(number_of_aliases_in_o_file * log(number_of_aliases_in_o_file)). In practice, it reduces the time spent to run dsymutil on Chromium Framework from 26 min (after https://reviews.llvm.org/D89444) or 12 min (before https://reviews.llvm.org/D89444) to ~8m30s. We probably want to change how ld64.lld writes STABS entries when ICF is enabled, but making dsymutil not have pathological performance for this input seems like a good change as well. No expected behavior change (other than it's faster). I verified that for Chromium Framework, the generated .dSYM is identical with and without this patch. Differential Revision: https://reviews.llvm.org/D123218
-
Paul Walker authored
Differential Revision: https://reviews.llvm.org/D120328
-