- Nov 18, 2021
-
-
Jan Svoboda authored
-
Ilya Kuteev authored
Problem: PCM file includes references to all module maps used in compilation which created PCM. This problem leads to PCM-rebuilds in distributed compilations as some module maps could be missing in isolated compilation. (For example in our distributed build system we create a temp folder for every compilation with only modules and headers that are needed for that particular command). Solution: Add only affecting module map files to a PCM-file. Reviewed By: rsmith Differential Revision: https://reviews.llvm.org/D106876
-
Douglas Yung authored
-
Phoebe Wang authored
-
Phoebe Wang authored
This is aligned with GCC's behavior. Also, alias `-mno-fp-ret-in-387` to `-mno-x87`, by which we can fix pr51498. Reviewed By: nickdesaulniers Differential Revision: https://reviews.llvm.org/D112143
-
Henry Linjamäki authored
Add a tool for constructing commands for translating LLVM IR to SPIR-V. Used by HIPSPV tool chain (D110618). Reviewed By: bader Differential Revision: https://reviews.llvm.org/D112404
-
Kazu Hirata authored
-
Phoebe Wang authored
AMD64 ABI mandates caller to specify the number of used SSE registers when passing variable arguments. GCC also provides option -mskip-rax-setup to skip the setup of rax when SSE is disabled. This helps to reduce the code size, see pr23258. Reviewed By: nickdesaulniers Differential Revision: https://reviews.llvm.org/D112413
-
Richard Smith authored
operator, mark any functions it calls as referenced.
-
Fangrui Song authored
ld.lld used by Android ignores .note.GNU-stack and defaults to noexecstack, so the `-z noexecstack` linker option is unneeded. The `--noexecstack` assembler option is unneeded because AsmPrinter.cpp prints `.section .note.GNU-stack,"",@progbits` (when `llvm.init.trampoline` is unused), so the assembler won't synthesize an executable .note.GNU-stack. Reviewed By: danalbert Differential Revision: https://reviews.llvm.org/D113840
-
Chuanqi Xu authored
Since we've decided the to not support std::experimental::coroutine*, we should tell the user they need to update. Reviewed By: Quuxplusone, ldionne, Mordante Differential Revision: https://reviews.llvm.org/D113977
-
Freddy Ye authored
Reviewed By: craig.topper, pengfei Differential Revision: https://reviews.llvm.org/D114059
-
Daan De Meyer authored
When using clangd, it's possible to trigger assertions in NumericLiteralParser and CharLiteralParser when switching git branches. This commit removes the initial asserts on invalid input and replaces those asserts with the error handling mechanism from those respective classes instead. This allows clangd to gracefully recover without crashing. See https://github.com/clangd/clangd/issues/888 for more information on the clangd crashes.
-
- Nov 17, 2021
-
-
James Farrell authored
Add Android test case for -Wpartial-availability. Also update Android availability tests to match on the whole string, so we can distinguish between "Android 16" and "Android 16.0.0" at the end of warning messages. Reviewed By: danalbert, srhines Differential Revision: https://reviews.llvm.org/D114036
-
Nathan Ridge authored
Now that consteval and constinit are possible values, 1 bit is no longer enough. Fixes https://github.com/clangd/clangd/issues/887 Differential Revision: https://reviews.llvm.org/D111971
-
owenca authored
Differential Revision: https://reviews.llvm.org/D114073
-
Yitzhak Mandelbaum authored
-
Nico Weber authored
-
Nico Weber authored
We need to use the td-based marshalling instead of doing this manually, else the setting gets lost on the way to codegen in most build configs.
-
Nico Weber authored
The test assumes an integrated assembler, so use a triple where that's the default.
-
https://reviews.llvm.org/D113707Nico Weber authored
- Drop a needless `l` size suffix on a mov instruction in AT&T mode - Move varying bits of test flags to front - Add a comment about MS mode test
-
Mike Rice authored
Differential Revision: https://reviews.llvm.org/D114102
-
Nico Weber authored
With this, void f() { __asm__("mov eax, ebx"); } now compiles with clang with -masm=intel. This matches gcc. The flag is not accepted in clang-cl mode. It has no effect on MSVC-style `__asm {}` blocks, which are unconditionally in intel mode both before and after this change. One difference to gcc is that in clang, inline asm strings are "local" while they're "global" in gcc. Building the following with -masm=intel works with clang, but not with gcc where the ".att_syntax" from the 2nd __asm__() is in effect until file end (or until a ".intel_syntax" somewhere later in the file): __asm__("mov eax, ebx"); __asm__(".att_syntax\nmovl %ebx, %eax"); __asm__("mov eax, ebx"); This also updates clang's intrinsic headers to work both in -masm=att (the default) and -masm=intel modes. The official solution for this according to "Multiple assembler dialects in asm templates" in gcc docs->Extensions->Inline Assembly->Extended Asm is to write every inline asm snippet twice: bt{l %[Offset],%[Base] | %[Base],%[Offset]} This works in LLVM after D113932 and D113894, so use that. (Just putting `.att_syntax` at the start of the snippet works in some but not all cases: When LLVM interpolates in parameters like `%0`, it uses at&t or intel syntax according to the inline asm snippet's flavor, so the `.att_syntax` within the snippet happens to late: The interpolated-in parameter is already in intel style, and then won't parse in the switched `.att_syntax`.) It might be nice to invent a `#pragma clang asm_dialect push "att"` / `#pragma clang asm_dialect pop` to be able to force asm style per snippet, so that the inline asm string doesn't contain the same code in two variants, but let's leave that for a follow-up. Fixes PR21401 and PR20241. Differential Revision: https://reviews.llvm.org/D113707
-
Kazu Hirata authored
-
Balazs Benics authored
The new //deleted// constructor overload makes sure that no implicit conversion from `0` would happen to `ArrayRef<const char*>`. Also adds nodiscard to the `CallDescriptionMap::lookup()`
-
Zarko Todorovski authored
Replace filenames, variable names, check prefixes uses of blacklist with ignore list. Reviewed By: jkorous Differential Revision: https://reviews.llvm.org/D113211
-
Yitzhak Mandelbaum authored
Differential Revision: https://reviews.llvm.org/D114011
-
Aaron Ballman authored
There was some confusion during the discussion of a patch as to whether `any` can be used to blast an attribute with no subject list onto basically everything in a program by not specifying a subrule. This patch adds documentation and tests to make it clear that this situation is not supported and will be diagnosed.
-
Freddy Ye authored
*_mul_*ch is to align with *_mul_*s, *_mul_*d and *_mul_*h. Reviewed By: pengfei Differential Revision: https://reviews.llvm.org/D112777
-
- Nov 16, 2021
-
-
River Riddle authored
This allows for using SFINAE partial specialization for DenseMapInfo. In MLIR, this is particularly useful as it will allow for defining partial specializations that support all Attribute, Op, and Type classes without needing to specialize DenseMapInfo for each individual class. Differential Revision: https://reviews.llvm.org/D113641
-
Quinn Pham authored
[NFC] As part of using inclusive language within the llvm project, this patch replaces `_myMaster` with `_myLeader` in these testcases. Reviewed By: ZarkoCA Differential Revision: https://reviews.llvm.org/D113433
-
Quinn Pham authored
[NFC] As part of using inclusive language within the llvm project and to match the renamed master branch, this patch replaces master with main in `convert_arm_neon.py`. Reviewed By: kristof.beyls Differential Revision: https://reviews.llvm.org/D113942
-
Ahsan Saghir authored
Calls to MMA builtins that take pointer to void do not accept other pointers/arrays whereas normal functions with the same parameter do. This patch allows MMA built-ins to accept non-void pointers and arrays. Reviewed By: nemanjai Differential Revision: https://reviews.llvm.org/D113306
-
Matt Devereau authored
Changes in https://reviews.llvm.org/D113489 caused buildbot failures
-
Matt Devereau authored
InstCombine AArch64 LD1/ST1 to llvm.masked.load/llvm.masked.store and LD1/ST1 to load/store when a ptrue all predicate pattern operand is present. This allows existing IR optimizations such as dead-load removal to occur. Differential Revision: https://reviews.llvm.org/D113489
-
Matheus Izvekov authored
Rename `IsPossiblyOpaquelyQualifiedType` overload taking a Type* as `IsPossiblyOpaquelyQualifiedTypeInternal` instead. Signed-off-by:
Matheus Izvekov <mizvekov@gmail.com> Differential Revision: https://reviews.llvm.org/D113954
-
- Nov 15, 2021
-
-
James King authored
This contributes follow-up work from https://reviews.llvm.org/D112491, which allows for increased control over the matching of lambda captures. This also updates the documentation for the `lambdaCapture` matcher. Reviewed By: ymandel, aaron.ballman Differential Revision: https://reviews.llvm.org/D113575
-
Arthur Eubanks authored
[NewPM] Only invalidate modified functions' analyses in CGSCC passes + turn on eagerly invalidate analyses Previously, any change in any function in an SCC would cause all analyses for all functions in the SCC to be invalidated. With this change, we now manually invalidate analyses for functions we modify, then let the pass manager know that all function analyses should be preserved since we've already handled function analysis invalidation. So far this only touches the inliner, argpromotion, function-attrs, and updateCGAndAnalysisManager(), since they are the most used. This is part of an effort to investigate running the function simplification pipeline less on functions we visit multiple times in the inliner pipeline. However, this causes major memory regressions especially on larger IR. To counteract this, turn on the option to eagerly invalidate function analyses. This invalidates analyses on functions immediately after they're processed in a module or scc to function adaptor for specific parts of the pipeline. Within an SCC, if a pass only modifies one function, other functions in the SCC do not have their analyses invalidated, so in later function passes in the SCC pass manager the analyses may still be cached. It is only after the function passes that the eager invalidation takes effect. For the default pipelines this makes sense because the inliner pipeline runs the function simplification pipeline after all other SCC passes (except CoroSplit which doesn't request any analyses). Overall this has mostly positive effects on compile time and positive effects on memory usage. https://llvm-compile-time-tracker.com/compare.php?from=7f627596977624730f9298a1b69883af1555765e&to=39e824e0d3ca8a517502f13032dfa67304841c90&stat=instructions https://llvm-compile-time-tracker.com/compare.php?from=7f627596977624730f9298a1b69883af1555765e&to=39e824e0d3ca8a517502f13032dfa67304841c90&stat=max-rss D113196 shows that we slightly regressed compile times in exchange for some memory improvements when turning on eager invalidation. D100917 shows that we slightly improved compile times in exchange for major memory regressions in some cases when invalidating less in SCC passes. Turning these on at the same time keeps the memory improvements while keeping compile times neutral/slightly positive. Reviewed By: asbirlea, nikic Differential Revision: https://reviews.llvm.org/D113304
-
Matheus Izvekov authored
This implements the following changes: * AutoType retains sugared deduced-as-type. * Template argument deduction machinery analyses the sugared type all the way down. It would previously lose the sugar on first recursion. * Undeduced AutoType will be properly canonicalized, including the constraint template arguments. * Remove the decltype node created from the decltype(auto) deduction. As a result, we start seeing sugared types in a lot more test cases, including some which showed very unfriendly `type-parameter-*-*` types. Signed-off-by:
Matheus Izvekov <mizvekov@gmail.com> Reviewed By: rsmith, #libc, ldionne Differential Revision: https://reviews.llvm.org/D110216
-
Zahira Ammarguellat authored
support default values for C/C++. FPP-MODEL=PRECISE enables FFP-CONTRACT (FMA is enabled).
-