- Feb 26, 2021
-
-
Jan Svoboda authored
There is a report that https://reviews.llvm.org/D96280 causes a build failure with error: too few template arguments for class template 'SmallVector'. This patch attempts to fix that by explicitly specifying N for SmallVector<T, N>.
-
Stefan Gränitz authored
So far we had no way to distinguish between JITLink and RuntimeDyld in lli. Instead, we used implicit knowledge that RuntimeDyld would be used for linking ELF. In order to get D97337 to work with lli though, we have to move on and allow JITLink for ELF. This patch uses extensible RTTI to allow external clients to add their own layers without touching the LLVM sources. Reviewed By: lhames Differential Revision: https://reviews.llvm.org/D97338
-
Simon Pilgrim authored
As discussed on D97478. The removal of the custom tag causes some changes in the add/sub-overflow expansion as it no longer expands to sat-arith codegen.
-
Serge Pavlov authored
When writing report file by option -proc-stat-report some part of output can be written to unlocked file because destructor of raw_fd_ostream calls `flush()`. In high thread contention environment it can result in file operation failure. With this change `flush` is called explicitly when file is locked, so call of `flush()` in the destructor does not cause write to file.
-
Stefan Gränitz authored
-
Simon Pilgrim authored
This allows us to remove X86 custom lowering of vXi1 MUL, which helps simplify a load of mask math. Mentioned in D97478 post review.
-
Simon Pilgrim authored
These were missed in D97478
-
Christian Sigg authored
Fix call sites. The method will be removed 2 weeks later. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D97530
-
Simon Pilgrim authored
Fix styleguide issue - each if() block always returns so we don't need to make them a if-else chain.
-
Max Kazantsev authored
-
Vinayaka Bandishti authored
Fixes a bug in affine fusion pipeline where an incorrect fusion is performed despite a Call Op that potentially modifies memrefs under consideration exists between source and target. Fixes part of https://bugs.llvm.org/show_bug.cgi?id=49220 Reviewed By: bondhugula, dcaballe Differential Revision: https://reviews.llvm.org/D97252
-
Fraser Cormack authored
Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D97467
-
Clement Courbet authored
Differential Revision: https://reviews.llvm.org/D90744
-
Yang Fan authored
MSVC warning: ``` \llvm-project\clang\lib\Sema\SemaChecking.cpp(10323): warning C5030: attribute 'clang::fallthrough' is not recognized ```
-
Max Kazantsev authored
-
Yang Fan authored
-
Yu-Hsun Chiang authored
As @sammccall mentioned in [[ https://reviews.llvm.org/D97109 | D97109 ]], I've extract the logic of creating Target and AuxTarget into a new function called `createTargetAndAuxTarget`. Since there are many similar code in clang or other related tools, consolidating them into a single function may help others to maintain the logic handling target related things. Reviewed By: sammccall Differential Revision: https://reviews.llvm.org/D97493
-
Jakub Budiský authored
Adds support for coding styles that make a separate indentation level for access modifiers, such as Code::Blocks or QtCreator. The new option, `IndentAccessModifiers`, if enabled, forces the content inside classes, structs and unions (“records”) to be indented twice while removing a level for access modifiers. The value of `AccessModifierOffset` is disregarded in this case, aiming towards an ease of use. ====== The PR (https://bugs.llvm.org/show_bug.cgi?id=19056) had an implementation attempt by @MyDeveloperDay already (https://reviews.llvm.org/D60225) but I've decided to start from scratch. They differ in functionality, chosen approaches, and even the option name. The code tries to re-use the existing functionality to achieve this behavior, limiting possibility of breaking something else. Reviewed By: MyDeveloperDay, curdeius, HazardyKnusperkeks Differential Revision: https://reviews.llvm.org/D94661
-
Christian Sigg authored
Skipping the deprecation dance here. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D97494
-
Petr Hosek authored
This is a driver only flag so it has to be expanded when invoking cc1. Differential Revision: https://reviews.llvm.org/D97528
-
Craig Topper authored
-
Fangrui Song authored
GNU as supports this. This mode silently ignores .cfi_startproc/.cfi_endproc and .cfi_* in between. Also drop a diagnostic `in '.cfi_sections' directive`: the diagnostic already includes the line and it is clear the line is a `.cfi_sections` directive.
-
Petr Hosek authored
These flags affect coverage mapping (-fcoverage-mapping), not -fprofile-[instr-]generate so it makes more sense to use the -fcoverage-* prefix. Differential Revision: https://reviews.llvm.org/D97434
-
Petr Hosek authored
We introduce -ffile-compilation-dir shorthand to avoid having to set -fdebug-compilation-dir and -fprofile-compilation-dir separately. This is similar to -ffile-prefix-map. Differential Revision: https://reviews.llvm.org/D97433
-
Bill Wendling authored
In 16-bit mode, some of the nop patterns used in 32-bit mode can end up mangling other instructions. For instance, an aligned "movz" instruction may have the 0x66 and 0x67 prefixes omitted, because the nop that's used messes things up. xorl %ebx, %ebx .p2align 4, 0x90 movzbl (%esi,%ebx), %ecx Use instead nop patterns we know 16-bit mode can handle. Differential Revision: https://reviews.llvm.org/D97268 -
Fangrui Song authored
Exposed by D97396
-
Kazu Hirata authored
-
Kazu Hirata authored
-
Eric Schweitz authored
We lower expressions with rank > 0 to a set of high-level array operations. These operations are then analyzed and refined to more primitve operations in subsequent pass(es). This patch upstreams these array operations and some other helper ops. Authors: Eric Schweitz, Rajan Walia, Kiran Chandramohan, et.al. https://github.com/flang-compiler/f18-llvm-project/pull/565 Differential Revision: https://reviews.llvm.org/D97421
-
Justin Lebar authored
Introduced in my c90dac27.
-
Rob Suderman authored
This reverts commit a813e9be. Results in an ASAN failure due to bypassing rewriter. Differential Revision: https://reviews.llvm.org/D97518
-
Chen Zheng authored
remove `Hi` `Lo` argument from `emitDwarfUnitLength`, so we can make caller of emitDwarfUnitLength easier. Reviewed By: MaskRay, dblaikie, ikudrin Differential Revision: https://reviews.llvm.org/D96409
-
Justin Lebar authored
Previously, -fshow-overloads=best always showed 4 candidates. The problem is, when this isn't enough, you're kind of up a creek; the only option available is to recompile with different flags. This can be quite expensive! With this change, we try to strike a compromise. The *first* error with more than 4 candidates will show up to 32 candidates. All further errors continue to show only 4 candidates. The hope is that this way, users will have *some chance* of making forward progress, without facing unbounded amounts of error spam. Differential Revision: https://reviews.llvm.org/D95754
-
Peter Collingbourne authored
We measured a 2.5 seconds (17.5%) regression in Android boot time performance with this change.
-
Craig Topper authored
-
Fangrui Song authored
For one metadata section usage, each text section references a metadata section. The metadata sections have a C identifier name to allow the runtime to collect them via `__start_/__stop_` symbols. Since `__start_`/`__stop_` references are always present from live sections, the C identifier name sections appear like GC roots, which means they cannot be discarded by `ld --gc-sections`. To make such sections GCable, either SHF_LINK_ORDER or a section group is needed. SHF_LINK_ORDER is not suitable for the references can be inlined into other functions (See D97430: Function A (in the section .text.A) references its `__sancov_guard` section. Function B inlines A (so now .text.B references `__sancov_guard` - this is invalid with the semantics of SHF_LINK_ORDER). In the linking stage, if `.text.A` gets discarded, and `__sancov_guard` is retained via the reference from `.text.B`, the output will be invalid because `__sancov_guard` references the discarded `.text.A`. LLD errors "sh_link points to discarded section". ) A section group have size overhead, and is cumbersome when there is just one metadata section. Add `-z start-stop-gc` to drop the "__start_/__stop_ references retain non-SHF_LINK_ORDER non-SHF_GROUP C identifier name sections" rule. We reserve the rights to switch the default in the future. Reviewed By: phosek, jrtc27 Differential Revision: https://reviews.llvm.org/D96914
-
Yonghong Song authored
Commit 1959ead5 ("BPF: Implement TTI.getCmpSelInstrCost() properly") introduced a dependency on LLVMTransformUtils library. Let us encode this dependency explicitly in CMakefile to avoid build error.
-
Ryan Prichard authored
On Android, the unwinder isn't part of the C++ STL and isn't (in older versions) exported from libc.so. Instead, the driver links the static unwinder archive implicitly. Currently, the Android NDK implicitly links libgcc.a to provide both builtins and the unwinder. To support switching to compiler-rt builtins and libunwind, make --rtlib=compiler-rt behave the same way on Android, and implicitly pass -l:libunwind.a to the linker. Adjust the -ldl logic. For the Android NDK, the unwinder (whether libgcc.a or libunwind.a) is linked statically and calls a function in the dynamic loader for finding unwind tables (e.g. dl_iterate_phdr). On Android, this function is in libc.a for static executables and libdl.so otherwise, so -ldl is needed. (glibc doesn't need -ldl because its libc.so exports dl_iterate_phdr.) Differential Revision: https://reviews.llvm.org/D96403
-
Jianzhou Zhao authored
DFSan at store does store shadow data; store app data; and at load does load shadow data; load app data. When an application data is atomic, one overtainting case is thread A: load shadow thread B: store shadow thread B: store app thread A: load app If the application address had been used by other flows, thread A reads previous shadow, causing overtainting. The change is similar to MSan's solution. 1) enforce ordering of app load/store 2) load shadow after load app; store shadow before shadow app 3) do not track atomic store by reseting its shadow to be 0. The last one is to address a case like this. Thread A: load app Thread B: store shadow Thread A: load shadow Thread B: store app This approach eliminates overtainting as a trade-off between undertainting flows via shadow data race. Note that this change addresses only native atomic instructions, but does not support builtin libcalls yet. https://llvm.org/docs/Atomics.html#libcalls-atomic Reviewed-by: morehouse Differential Revision: https://reviews.llvm.org/D97310
-
Kostya Kortchinsky authored
Post D96572, a warning started showing up for me: `clang/lib/Basic/Sanitizers.cpp:73:1: warning: control reaches end of non-void function [-Wreturn-type]` So this adds a default to the case to return invalid, which seems appropriate, and appears to correct the issue. Differential Revision: https://reviews.llvm.org/D97496
-