- Dec 03, 2021
-
-
Jessica Clarke authored
When used as a non-leaf node, TableGen does not currently use the type of a ComplexPattern for type inference, which also means it does not check it doesn't conflict with the use. This differs from when used as a leaf value, where the type is used for inference. Fixing that discrepancy is something I intend to upstream as a subsequent review, but these are all the type conflicts found (all legitimate) by my locally-patched TableGen. Reviewed By: paulwalker-arm Differential Revision: https://reviews.llvm.org/D108759
-
Esme-Yi authored
Summary: This is a NFC patch moving the GNUELFDumper<ELFT>::printEnum() function from ELFDumper into ScopedPrinter.h for reuse. Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D114840
-
Chuanqi Xu authored
Since coroutine would be splitted into pieces, compiler would move the dbg.declare intrinsic after the Storage is created to make sure the corresponding dbg instruction is still available aftet splitted. However, it would be problematic if the storage instruction is an InvokeInst, which is a terminator. We couldn't move instruction after an InvokeInst. This patch tries to move the dbg.declare intrinsic in the normal destination of the InvokeInst. It should make sense due to the Storage should be invalid in exception path.
-
lh123 authored
Show parameters for construct. Reviewed By: kadircet Differential Revision: https://reviews.llvm.org/D114621
-
Lawrence D'Anna authored
Some pythons are configured to set platlib somewhere outside of their sys.prefix. It's important that we at least use some reasonable default for LLDB_PYTHON_RELATIVE_PATH even in that case, because even if the user overrides it on the cmake invocation, cmake will still be called without the override in order to build tablegen. Reviewed By: JDevlieghere, clayborg Differential Revision: https://reviews.llvm.org/D114973
-
Kirill Stoimenov authored
Changed registers to R10 and R11 because PLT resolution clobbers them. Also changed the implementation to use R11 instead of RCX, which saves a push/pop. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D115002
-
Liqiang Tao authored
The FunctionSimplificationPipeline could effectively reduce the size of .text section when module inliner is enabled. Reviewed By: kazu Differential Revision: https://reviews.llvm.org/D114704
-
LLVM GN Syncbot authored
-
LLVM GN Syncbot authored
-
Jason Molenda authored
When debugging a Simulator process on macOS (e.g. the iPhone simulator), the process will have both a dyld, and a dyld_sim present. The dyld_sim is an iOS Simulator binary. The dyld is a macOS binary. Both are MH_DYLINKER filetypes. lldb needs to identify & set a breakpoint in dyld, so it has to distinguish between these two. Previously lldb was checking if the inferior target was x86 (indicating macOS) and the OS of the MH_DYLINKER binary was iOS/watchOS/etc -- if so, then this is dyld_sim and we should ignore it. Now with arm64 macOS systems, this check was invalid, and we would set our breakpoint for new binaries being loaded in dyld_sim, causing binary loading to be missed by lldb. This patch uses the Target's ArchSpec triple environment, to see if this process is a simulator process. If this is a Simulator process, then we only recognize a MH_DYLINKER binary with OS type macOS as being dyld. This patch also removes some code that handled pre-2016 era debugservers which didn't give us the OS type for each binary. This was only being used on macOS, where we don't need to handle the presence of very old debugservers. Differential Revision: https://reviews.llvm.org/D115001 rdar://85907839
-
Nico Weber authored
-
Vitaly Buka authored
-
Nico Weber authored
-
Konstantin Varlamov authored
Implement the exposition-only concepts specified in `[special.mem.concepts]`. These are all thin wrappers over other concepts. Reviewed By: #libc, Quuxplusone, ldionne Differential Revision: https://reviews.llvm.org/D114761
-
Hongtao Yu authored
As titled. Reviewed By: wenlei, wlei Differential Revision: https://reviews.llvm.org/D115011
-
Mehdi Amini authored
Fix a clang-tidy warning.
-
Geoffrey Martin-Noble authored
This cmake configure option was added in df0ba47c, and was ported to Bazel in 7d323dc7. However, the setting chosen in Bazel seems accidental, not necessarily intentional. LLVM_WINDOWS_PREFER_FORWARD_SLASH has no effect on Unix, and on Windows, setting it to 0 is the default, which gets the same behaviour as before. Setting it to 1 enables new experimental behaviours (which is enabled by default on MinGW targets only). As I don't see any explicit intent to opt in to the new experimental behaviour, I believe the current configuration in bazel was a mistake. Differential Revision: https://reviews.llvm.org/D114065
-
Keith Smiley authored
This now assumes that for the darwin driver any lld is the "new" macho lld implementation. Differential Revision: https://reviews.llvm.org/D114974
-
Reid Kleckner authored
-
Mingming Liu authored
In this way, each instruction has a line, and diffs will be more clear. Differential Revision: https://reviews.llvm.org/D115006
-
Reid Kleckner authored
-
Daniil Fukalov authored
1. Fixed vector instructions costs estimations incosistency - removed different logic for "not simple types" since it biases costs for these types. 2. Fixed legalization penalty for vectors too big for the target: changed from overwrite default legalization cost value estimation to added penalty. 3. Fixed few typos in tests. Reviewed By: rampitec Differential Revision: https://reviews.llvm.org/D114893
-
Greg Clayton authored
Only lldb-arm-ubuntu is failing after https://reviews.llvm.org/D114288 and there isn't enough input context to see why this is failing. It works on x86_64 linux just fine.
-
Mogball authored
-
Vy Nguyen authored
Using XCTAssertEqual on NSString* objects is almost always wrong. Unfortunately, we have seen a lot of tests doing this and reyling on pointer equality for strings with the same values (which happens to work sometimes - depending on the linker, but this assumption is not guaranteed by the language) These fixes would make tests less brittle. Differential Revision: https://reviews.llvm.org/D114975
-
Steven Wan authored
Clang static analyzer uses bitwidth to infer the integer value type, that is, any 32-bit integer is considered of type `int`, and any 64-bit integer is considered of type `long`. This isn't always true, for instance, in ILP32 (e.g., 32-bit AIX), 32-bit could be `long`, and in LP64 (e.g., 64-bit wasm64), 64-bit could be `long long`. Reviewed By: steakhal Differential Revision: https://reviews.llvm.org/D114454
-
George Koehler authored
PLT usage needs the first 12 bytes of the .got section. We need to keep .got and DT_GOT_PPC even if .got/_GLOBAL_OFFSET_TABLE_ are not referenced (large PIC code may only reference .got2), which is the case in OpenBSD's ld.so, leading to a misleading error, "unsupported insecure BSS PLT object". Fix this by adding R_PPC32_PLTREL to the list of hasGotOffRel. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D114982
-
Matt Arsenault authored
Do not infer no-amdgpu-implicitarg-ptr for sanitized functions. If a function is explicitly marked amdgpu-no-implicitarg-ptr and sanitize_address, infer that it is required.
-
Ulysse Beaugnon authored
Affine maps and integer sets previously relied on a single lock for creating unique instances. In a multi-threaded setting, this lock becomes a contention point. This commit updates AffineMap and IntegerSet to use StorageUniquer instead. StorageUniquer internally uses sharded locks and thread-local caches to reduce contention. It is already used for affine expressions, types and attributes. On my local machine, this gives me a 5X speedup for an application that manipulates a lot of affine maps and integer sets. This commit also removes the integer set uniquer threshold. The threshold was used to avoid adding integer sets with a lot of constraints to the hash_map containing unique instances, but the constraints and the integer set were still allocated in the same allocator and never freed, thus not saving any space expect for the hash-map entry. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D114942
-
Vitaly Buka authored
According comments on D44404, something like that was the goal. Reviewed By: morehouse, kstoimenov Differential Revision: https://reviews.llvm.org/D114991
-
Vitaly Buka authored
-
David Blaikie authored
This has been supported on gdb for something like ~10 years, so doesn't seem necessary to carry a fallback. Differential Revision: https://reviews.llvm.org/D114986
-
Paul Robinson authored
FileCheck's -COUNT suffix doesn't fail if there are more matches than you asked for, so it's good practice to put a -NOT after.
-
Yitzhak Mandelbaum authored
This patch parameterizes the clang-tidy diagnostic consumer with a boolean that controls whether to honor NOLINTBEGIN/NOLINTEND blocks. The current support for scanning these blocks is very costly -- O(n*m) in the size of files (n) and number of diagnostics found (m), with a large constant factor. So, the patch allows clients to disable it. Future patches should make the feature more efficient, but this will mitigate in the interim. Differential Revision: https://reviews.llvm.org/D114981
-
Groverkss authored
This patch implements detecting duplicate local identifiers by extracting their division representation while merging local identifiers. For example, given the FACs A, B: ``` A: (x, y)[s0] : (exists d0 = [x / 4], d1 = [y / 4]: d0 <= s0, d1 <= s0, x + y >= 2) B: (x, y)[s0] : (exists d0 = [x / 4], d1 = [y / 4]: d0 <= s0, d1 <= s0, x + y >= 5) ``` The intersection of A and B without this patch would lead to the following FAC: ``` (x, y)[s0] : (exists d0 = [x / 4], d1 = [y / 4], d2 = [x / 4], d3 = [x / 4]: d0 <= s0, d1 <= s0, d2 <= s0, d3 <= s0, x + y >= 2, x + y >= 5) ``` after this patch, merging of local ids will detect that `d0 = d2` and `d1 = d3`, and the intersection of these two FACs will be (after removing duplicate constraints): ``` (x, y)[s0] : (exists d0 = [x / 4], d1 = [y / 4] : d0 <= s0, d1 <= s0, x + y >= 2, x + y >= 5) ``` This reduces the number of constraints by 2 (constraints) + 4 (2 constraints for each extra division) for this case. This is used to reduce the output size representation of operations like PresburgerSet::subtract, PresburgerSet::intersect which require merging local variables. Reviewed By: arjunp, bondhugula Differential Revision: https://reviews.llvm.org/D112867
-
Alexey Bataev authored
Currently the last value of linear is calculated as var = init + num_iters * step. Replaced it with var = var_priv, i.e. original variable gets the value of the last private copy. Differential Revision: https://reviews.llvm.org/D105151
-
Amy Kwan authored
The load/store infrastructure previously made an incorrect assumption that whenever it is used with a load/store intrinsic on Power10 - those intrinsics would automatically be the lxvp/stxvp intrinsics introduced in Power10. However, this is obviously not the case as there are multiple instances of pre-P10 intrinsics that use the refactored load/store implementation. This patch corrects this assumption, and produces the expected intrinsic on pre-P10. Differential Revision: https://reviews.llvm.org/D114978
-
Groverkss authored
-
Groverkss authored
-