- Mar 11, 2020
-
-
Matt Arsenault authored
Scalarize most truncates. Avoid touching cases that could end up in unresolvable infinite loops.
-
Bill Wendling authored
-
Matt Arsenault authored
Extend fewerElementsVectorBasic to handle operands with different element types.
-
Louis Dionne authored
This reverts commit fde9d33f, which was not properly reviewed by a libc++ or libc++abi code owner.
-
Hanhan Wang authored
Summary: 1-bit integer is tricky in different dialects sometimes. E.g., there is no arithmetic instructions on 1-bit integer in SPIR-V, i.e., `spv.IMul %0, %1 : i1` is not valid. Instead, `spv.LogicalAnd %0, %1 : i1` is valid. Creating the op directly makes lowering easier because we don't need to match a complicated pattern like `!(!lhs && !rhs)`. Also, this matches the semantic better. Also add assertions on inputs. Differential Revision: https://reviews.llvm.org/D75764
-
Ryan Prichard authored
Summary: The return type of __cxa_finalize is documented as void in the Itanium C++ ABI, and it is void in various C libraries. Reviewers: EricWF, ldionne, compnerd, mclow.lists, MaskRay Reviewed By: MaskRay Subscribers: MaskRay, dexonsmith, ldionne, libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D75795
-
Louis Dionne authored
Due to Clang bug http://llvm.org/PR45151, deprecated attributes are not picked up on partial specializations. This patch instead applies it to the first declaration of std::function itself.
-
Richard Smith authored
a dependent context. This matches the GCC behavior. We track the enclosing template depth when determining whether a statement expression is within a dependent context; there doesn't appear to be any other reliable way to determine this. We previously assumed they were neither value- nor instantiation-dependent under any circumstances, which would lead to crashes and other misbehavior.
-
Matt Arsenault authored
This avoids regressions in a future patch. I'm confused by the use of the gfx9 usage legacy_mad. Was this a pointless instruction rename, or uses fmul_legacy handling? Why is regular mac avilable in that case?
-
Erik Pilkington authored
This allows the property name to deduplicate with the accessor method name. rdar://58927964
-
Saar Raz authored
We would assign the incorrect DeclContext when transforming the RequiresExprBodyDecl, causing incorrect handling of 'this' inside RequiresExprBodyDecls (bug #45162). Assign the current context as the DeclContext of the transformed decl.
-
Akira Hatanaka authored
Fix a bug in IRGen where it wasn't destructing compound literals in C that are ObjC pointer arrays or non-trivial structs. Also diagnose jumps that enter or exit the lifetime of the compound literals. rdar://problem/51867864 Differential Revision: https://reviews.llvm.org/D64464
-
Paula Toth authored
-
Bill Wendling authored
Summary: Outputs from an asm goto block cannot be used on the indirect branch. It's not supported and may result in invalid code generation. Reviewers: jyknight, nickdesaulniers, hfinkel Reviewed By: nickdesaulniers Subscribers: martong, cfe-commits, rnk, craig.topper, hiraditya, rsmith Tags: #clang Differential Revision: https://reviews.llvm.org/D71314
-
Nathan Ridge authored
[clangd] Have visibleNamespaces() and getEligiblePoints() take a LangOptions rather than a FormatStyle Summary: These functions only use the FormatStyle to obtain a LangOptions via format::getFormattingLangOpts(), and some callers can more easily obtain a LangOptions more directly. Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D75716
-
Nathan Ridge authored
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D75959
-
LLVM GN Syncbot authored
-
Paula Toth authored
Summary: Created a general check for restrict-system-includes under portability as recommend in the comments under D75332. I also fleshed out the user facing documentation to show examples for common use-cases such as allow-list, block-list, and wild carding. Removed fuchsia's check as per phosek sugguestion. Reviewers: aaron.ballman, phosek, alexfh, hokein, njames93 Reviewed By: phosek Subscribers: Eugene.Zelenko, mgorny, xazax.hun, phosek, cfe-commits, MaskRay Tags: #clang-tools-extra, #clang Differential Revision: https://reviews.llvm.org/D75786
-
Lei Zhang authored
-
Stephan Herhut authored
Summary: This patch add some builtin operation for the gpu.all_reduce ops. - for Integer only: `and`, `or`, `xor` - for Float and Integer: `min`, `max` This is useful for higher level dialect like OpenACC or OpenMP that can lower to the GPU dialect. Differential Revision: https://reviews.llvm.org/D75766
-
Saar Raz authored
isSameEntity was missing constraints checking, causing constrained overloads to not travel well accross serialization. (bug #45115) Add constraints checking to isSameEntity.
-
Saar Raz authored
FoundDecl was missing from ConceptSpecializationExpr serialization - add it.
-
Denis Khalikov authored
* Adds GpuLaunchFuncToVulkanLaunchFunc conversion pass. * Moves a serialization of the `spirv::Module` from LaunchFuncToVulkanCalls pass to newly created pass. * Updates LaunchFuncToVulkanCalls instrumentation pass, adds `initVulkan` and `deinitVulkan` runtime calls. * Adds `bindResource` call to bind specifc resource by the given descriptor set and descriptor binding. * Eliminates static construction and desctruction of `VulkanRuntimeManager`. Differential Revision: https://reviews.llvm.org/D75192
-
River Riddle authored
Summary: Interfaces/ is the designated directory for these types of interfaces, and also removes the need for including them directly in IR/. Differential Revision: https://reviews.llvm.org/D75886
-
River Riddle authored
The interfaces themselves aren't really analyses, they may be used by analyses though. Having them in Analysis can also create cyclic dependencies if an analysis depends on a specific dialect, that also provides one of the interfaces. Differential Revision: https://reviews.llvm.org/D75867
-
Jay Foad authored
Summary: As far as I can tell on gfx10 conversions to/from f32 (that are not converting f32 to/from f64) are full rate instructions, but they were marked as quarter rate instructions. I have fixed this for gfx10 only. I assume the scheduling model was correct for older architectures, though I don't have any documentation handy to confirm that. Reviewers: rampitec, arsenm Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, kerbowa, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D75392
-
Nicolas Vasilache authored
This revision takes advantage of the empty AffineMap to specify the 0-D edge case. This allows removing a bunch of annoying corner cases that ended up impacting users of Linalg. Differential Revision: https://reviews.llvm.org/D75831
-
Aaron Ballman authored
-
Fangrui Song authored
[SimplifyLibcalls] Don't replace locked IO (fgetc/fgets/fputc/fputs/fread/fwrite) with unlocked IO (*_unlocked) This essentially reverts some of the SimplifyLibcalls part changes of D45736 [SimplifyLibcalls] Replace locked IO with unlocked IO. C11 7.21.5.2 The fflush function > If stream is a null pointer, the fflush function performs this flushing action on all streams for which the behavior is defined above. i.e. fopen'ed FILE* is inherently captured. POSIX.1-2017 getc_unlocked, getchar_unlocked, putc_unlocked, putchar_unlocked - stdio with explicit client locking > These functions can safely be used in a multi-threaded program if and only if they are called while the invoking thread owns the ( FILE *) object, as is the case after a successful call to the flockfile() or ftrylockfile() functions. After a thread fopen'ed a FILE*, when it is calling foobar() which is now replaced by foobar_unlocked(), if another thread is concurrently calling fflush(0), the behavior is undefined. C11 7.22.4.4 The exit function > Next, all open streams with unwritten buffered data are flushed, all open streams are closed, and all files created by the tmpfile function are removed. The replacement is only feasible if the program is single threaded, or exit or fflush(0) is never called. See also http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20180528/556615.html for how the replacement makes libc interceptors difficult to implement. dalias: in a worst case, it's unbounded data corruption because of concurrent access to pointers without synchronization. f->wpos or rpos could get outside of the buffer, thread A could do f->wpos += j after knowing j is in bounds, while thread B also changes it concurrently. This can produce exploitable conditions depending on libc internals. Revert the SimplifyLibcalls part change because the cons obviously overweigh the pros. Even when the replacement is feasible, the benefit is indemonstrable, more so in an application instead of an artificial glibc benchmark. Theoretically the replacement could be beneficial when calling getc_unlocked/putc_unlocked in a loop, but then it is better using a blocked IO operation and the user is likely aware of that. The function attribute inference is still useful and thus kept. Reviewed By: xbolva00 Differential Revision: https://reviews.llvm.org/D75933
-
Craig Topper authored
Just ran clang-tblgen -gen-opt-docs ClangOptionDocs.td
-
Matt Arsenault authored
Don't use the deprecated, single mode form in tests. Also make sure to parse the attribute, in case of the deprecated form.
-
Eugene Zhulenev authored
Summary: Pass custom DataType parser to pass options, similar to llvm::cl::opt class. Differential Revision: https://reviews.llvm.org/D75794
-
Rumeet Dhindsa authored
As per comment on https://reviews.llvm.org/D72860, it is suggested to revert this change in the meantime, since it has introduced regression. This reverts commit 83f4c3af.
-
Nathan James authored
Reviewers: aaron.ballman, gribozavr2, lebedev.ri Reviewed By: gribozavr2 Subscribers: wuzish, nemanjai, kbarton, arphaman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D75714
-
Sterling Augustine authored
Summary: - Executable segment is usually segment 3. Look there for the address first. - GNU_EH_FRAME_HEADER segment is usually near the end. Iterate from the end. - Exit early if both phdrs have been found. This is the last cl before a patch to cache the information this function finds. Subscribers: libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D75781
-
Louis Dionne authored
-
Benjamin Kramer authored
-
Kadir Cetinkaya authored
Summary: This helps us prevent races when scheduler (or any other thread) tries to read a request while it's still running. Reviewers: sammccall Subscribers: ilya-biryukov, javed.absar, MaskRay, jkorous, arphaman, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D75927
-
Mikhail Maltsev authored
-
LLVM GN Syncbot authored
-