- Feb 15, 2022
-
-
Anton Afanasyev authored
-
Alexander Potapenko authored
For ASan this will effectively serve as a synonym for __attribute__((no_sanitize("address"))) This is a reland of https://reviews.llvm.org/D114421 Reviewed By: melver, eugenis Differential Revision: https://reviews.llvm.org/D119726 -
Adrian Kuegel authored
-
Sanjay Patel authored
-
Nathan Sidwell authored
The Itanium mangler uses IgnoreLinkageSpecDecls to strip linkage spec contexts. It doesn't do this consistently, but there is no need for it to do it at all. getEffectiveDeclContext never returns a linkage spec, as it either recurses, uses getRedeclContext (which itself removes the specs), or gets the decl context of non-namespace entities. This patch removes the function and all calls to it. For safety I add a couple of asserts to make sure we never get them. Reviewed By: ChuanqiXu Differential Revision: https://reviews.llvm.org/D119748
-
Shraiysh Vaishay authored
This patch changes the syntax of omp.atomic.update to allow the other dialects to modify the variable with appropriate operations in the region. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D119522
-
Matthias Springer authored
Differential Revision: https://reviews.llvm.org/D119444
-
Simon Pilgrim authored
-
Sven van Haastregt authored
Commit 3c7d2f1b ("[OpenCL] opencl-c.h: add CL 3.0 non-generic address space atomics", 2021-07-30) added some atomic_fetch_add/sub overloads with uintptr_t arguments twice. Instead, they should have been atomic_fetch_max overloads with non-generic address spaces.
-
Nikita Popov authored
-
Simon Moll authored
Reviewed By: kaz7 Differential Revision: https://reviews.llvm.org/D119241
-
Jan Svoboda authored
The resiliency to `HeaderSearch::Add{,System}SearchPath` is implemented in later patch (D116750). -
David Spickett authored
This is now on 14.x as af19ae52 so it is not new to 15.
-
Jay Foad authored
These look like they were temporarily disabled to placate update_mir_test_checks and then committed by mistake.
-
iains authored
We have two entries for OPT_emit_codegen_only in the frontend action kind table, delete one. Differential Revision: https://reviews.llvm.org/D119826
-
Markus Böck authored
The "avoid trailing call pass" makes sure that no function ends with a call instruction for the purpose of the unwinder. It starts of by skipping over any non real instruction, which is approximated via the Pseudo and Meta property. This sadly leads to issues when the last machine instruction is a STATEPOINT, as it is skipped despite it lowering to a call. This patch fixes the use of a statepoint in the trailing call position by making sure call instructions are not skipped. Differential Revision: https://reviews.llvm.org/D119644
-
Markus Böck authored
Since https://reviews.llvm.org/D53892 it is possible to emit a custom stackmap by overwriting the emitStackMaps method of GCMetadataPrinter. That way even AOT compilers can generate a more efficient and more suitable format for their needs. This patch updates documentation and stale comments in source code. In particular it removes the issue from the issue list in the Statepoints documentation and adjusts comments in GCStrategy. Differential Revision: https://reviews.llvm.org/D119660
-
Adrian Kuegel authored
Differential Revision: https://reviews.llvm.org/D119822
-
Nikita Popov authored
Instead of doing an inbounds strip first and another non-inbounds strip afterward for equality comparisons, directly do a single inbounds or non-inbounds strip based on whether we have an equality predicate or not. This is NFC-ish in that the alloca equality codepath is the only part that sees additional non-inbounds offsets now, and for that codepath it doesn't matter whether or not the GEP is inbounds, as it does a stronger check itself. InstCombine would infer inbounds for such GEPs.
-
Vladislav Khmelevsky authored
After "Remove caching of ranges/abbrevs" patch the dwarf offsets are a bit changed and the subprograms high pc is replaced with AT_RANGES. Reviewed By: rafauler Differential Revision: https://reviews.llvm.org/D119733
-
Matthias Springer authored
Differential Revision: https://reviews.llvm.org/D112512
-
Jay Foad authored
Differential Revision: https://reviews.llvm.org/D119706
-
Akshay Baviskar authored
Add verifier for gpu.alloc op to verify if the dimension operand counts and symbol operand counts are same as their memref counterparts. Differential Revision: https://reviews.llvm.org/D117427
-
Matthias Springer authored
Support ALLOW filters and DENY filters. This is needed for compatibility with existing code that specifies more complex op filters. Differential Revision: https://reviews.llvm.org/D119820
-
David Green authored
This moves the matching of AVGFloor and AVGCeil into a place where demand bit are available, so that it can detect more cases for more folds. It changes the transform to start from a shift, not from a truncate. We match the pattern shr(add(ext(A), ext(B)), 1), transforming to ext(hadd(A, B)). For signed values, because only the bottom bits are demanded llvm will transform the above to use a lshr too, as opposed to ashr. In order to correctly detect the hadd we need to know the demanded bits to turn it back. Depending on whether the shift is signed (ashr) or logical (lshr), and the extensions are signed or unsigned we can create different nodes. If the shift is signed: Needs >= 2 sign bits. https://alive2.llvm.org/ce/z/h4gQAW generating signed rhadd. Needs >= 2 zero bits. https://alive2.llvm.org/ce/z/B64DUA generating unsigned rhadd. If the shift is unsigned: Needs >= 1 zero bits. https://alive2.llvm.org/ce/z/ByD8sj generating unsigned rhadd. Needs 1 demanded bit zero and >= 2 sign bits https://alive2.llvm.org/ce/z/hvPGxX and https://alive2.llvm.org/ce/z/32P5n1 generating signed rhadd. Differential Revision: https://reviews.llvm.org/D119072
-
Jan Svoboda authored
This patch replaces a lot of index-based loops with iterators and ranges. Depends on D117566. Reviewed By: ahoppen Differential Revision: https://reviews.llvm.org/D119722
-
Jan Svoboda authored
This patch starts using the new iterator type in `LookupFileCacheInfo`. Depends on D117566. Reviewed By: ahoppen Differential Revision: https://reviews.llvm.org/D119721
-
Jan Svoboda authored
The `const DirectoryLookup *` out-parameter of `{HeaderSearch,Preprocessor}::LookupFile()` is assigned the most recently used search directory, which callers use to implement `#include_next`. From the function signature it's not obvious the `const DirectoryLookup *` is being used as an iterator. This patch introduces `ConstSearchDirIterator` to make that affordance obvious. This would've prevented a bug that occurred after initially landing D116750. Reviewed By: ahoppen Differential Revision: https://reviews.llvm.org/D117566 -
Jay Foad authored
Differential Revision: https://reviews.llvm.org/D119739
-
Jay Foad authored
Differential Revision: https://reviews.llvm.org/D119738
-
Nikita Popov authored
Other methods in ValueList generally pass Idx first, and it is more convention for assignment methods to have the target on the LHS rather than RHS.
-
Jan Svoboda authored
This patch addresses a FIXME and de-duplicates some `#include_next` logic Depends on D119714. Reviewed By: ahoppen Differential Revision: https://reviews.llvm.org/D119716
-
Jan Svoboda authored
While scanning dependencies of a TU that depends on a PCH, the scanner basically performs mixed implicit/explicit modular compilation. (Explicit modules come from the PCH.) This seems to trip up the global module index. This patch disables global module index in the dependency scanner. Reviewed By: Bigcheese Differential Revision: https://reviews.llvm.org/D118890
-
Jan Svoboda authored
The minimizer strips out single-line comments (introduced by `//`). This sequence of characters can also appear in `#include` or `#import` directives where they play the role of path separators. We already avoid stripping this character sequence for `#include` but not for `#import` (which has the same semantics). This patch makes it so `#import <A//A.h>` is not affected by minimization. Previously, we would incorrectly reduce it into `#import <A`. Reviewed By: arphaman Differential Revision: https://reviews.llvm.org/D119226
-
Jan Svoboda authored
The minimizer tries to squash multi-line macro definitions into single line. For that to work, contents of each line need to be separated by a space. Since we always strip leading whitespace on lines of a macro definition, the code currently tries to preserve exactly one space that appeared before the backslash. This means the following code: ``` #define FOO(BAR) \ #BAR \ baz ``` gets minimized into: ``` #define FOO(BAR) #BAR baz ``` However, if there are no spaces before the backslash on line 2: ``` #define FOO(BAR) \ #BAR\ baz ``` no space can be preserved, leading to (most likely) malformed macro definition: ``` #define FOO(BAR) #BARbaz ``` This patch makes sure we always put exactly one space at the end of line ending with a backslash. Reviewed By: arphaman Differential Revision: https://reviews.llvm.org/D119231
-
Jan Svoboda authored
`Preprocessor` exposes the search directory iterator via `GetCurDirLookup()` getter, which is only used in two static functions. To simplify reasoning about search directory iterators/references and to simplify the `Preprocessor` API, this patch makes the two static functions private member functions and removes the getter entirely. Depends D119708. Reviewed By: ahoppen, dexonsmith Differential Revision: https://reviews.llvm.org/D119714
-
Jan Svoboda authored
The purpose of the `FileNotFound` preprocessor callback was to add the ability to recover from failed header lookups. This was to support downstream project. However, injecting additional search path while performing header search can invalidate currently used iterators/references to `DirectoryLookup` in `Preprocessor` and `HeaderSearch`. The downstream project ended up maintaining a separate patch to further tweak the functionality. Since we don't have any upstream users nor open source downstream users, I'd like to remove this callback for good to prevent future misuse. I doubt there are any actual downstream users, since the functionality is definitely broken at the moment. Reviewed By: ahoppen Differential Revision: https://reviews.llvm.org/D119708
-
Nikita Popov authored
D116366 added a call to madvise() in Path.inc. Unfortunately, Illumos does not declare this function if _XOPEN_SOURCE is defined (which it is by default) and we need to provide the declaration manually. This is the same workaround used in sanitizers: https://github.com/llvm/llvm-project/blob/ee423d93ead39e94c2970b3cc7ef6e6faa75d10b/compiler-rt/lib/sanitizer_common/sanitizer_solaris.cpp#L77-L85 Differential Revision: https://reviews.llvm.org/D119695
-
Nikita Popov authored
This is step two of supporting autoupgrade of old bitcode to opaque pointers. Rather than tracking the element type ID of pointers in particular, track all type IDs that a type contains. This allows us to recover the element type in more complex situations, e.g. when we need to determine the pointer element type of a vector element or function type parameter. Differential Revision: https://reviews.llvm.org/D119339
-
Ivan Butygin authored
Also, it seems Khronos has changed html spec format so small adjustment to script was needed. Base op parsing is also probably broken. Differential Revision: https://reviews.llvm.org/D119678
-