- Jan 06, 2022
-
-
Yuanfang Chen authored
CMake may add /Debug in the CONFIG-specific flag. Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D116710
-
Shilei Tian authored
The async data movement can cause data race if the target supports it. Details can be found in [1]. This patch tries to fix this problem by attaching an event to the entry of data mapping table. Here are the details. For each issued data movement, a new event is generated and returned to `libomptarget` by calling `createEvent`. The event will be attached to the corresponding mapping table entry. For each data mapping lookup, if there is no need for a data movement, the attached event has to be inserted into the queue to gaurantee that all following operations in the queue can only be executed if the event is fulfilled. This design is to avoid synchronization on host side. Note that we are using CUDA terminolofy here. Similar mechanism is assumped to be supported by another targets. Even if the target doesn't support it, it can be easily implemented in the following fall back way: - `Event` can be any kind of flag that has at least two status, 0 and 1. - `waitEvent` can directly busy loop if `Event` is still 0. My local test shows that `bug49334.cpp` can pass. Reference: [1] https://bugs.llvm.org/show_bug.cgi?id=49940 Reviewed By: grokos, JonChesterfield, ye-luo Differential Revision: https://reviews.llvm.org/D104418
-
Egor Zhdan authored
This change makes it possible to extract iOS-to-another-platform version mappings from `VersionMap` in the `SDKSettings.json` file in Darwin SDKs, for example, `iOS_watchOS` and `iOS_tvOS`. This code was originally authored by Alex Lorenz. rdar://81491680 Differential Revision: https://reviews.llvm.org/D116615
-
wren romano authored
Better capturing of invariants Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D116700
-
wren romano authored
These parameters aren't modified, so we make that invariant explicit. Reviewed By: aartbik Differential Revision: https://reviews.llvm.org/D116693
-
Daniil Suchkov authored
This patch adds a couple of NewPM function passes (dot-dom and dot-dom-only) that dump DomTree into .dot files. Reviewed-By: aeubanks Differential Revision: https://reviews.llvm.org/D116629
-
Richard authored
- Recognize older checks that might not end with Check.cpp - Update list of checks based on improvements to add_new_check - Fix spelling error in TransformerClangTidyCheck.h Fixes #52962 Differential Revision: https://reviews.llvm.org/D116550
-
Andrew Browne authored
This allows DFSan to find tainted values used to control program behavior. Reviewed By: morehouse Differential Revision: https://reviews.llvm.org/D116207
-
Jonas Devlieghere authored
Until the introduction of the C++ REPL, there was always a single REPL language. Several places relied on this assumption through repl_languages.GetSingularLanguage. Now that this is no longer the case, we need a way to specify a selected/preferred REPL language. This patch does that with the help of a debugger property, taking inspiration from how we store the scripting language. Differential revision: https://reviews.llvm.org/D116697
-
Ikhlas Ajbar authored
Lower select(I1,Q,Q) by converting vector predicate Q to vector register V, doing select(I1,V,V), and then converting the resulting V back to Q. Also, try to avoid creating such situations in the first place.
-
Quentin Colombet authored
This patch delayed the updates of the dominator tree to the very end of the pass instead of doing that in small increments after each basic block. This improves the runtime of the pass in particular in pathological cases because now the updater sees the full extend of the updates and can decide whether it is faster to apply the changes incrementally or just recompute the full tree from scratch. Put differently, thanks to this patch, we can take advantage of the improvements that Chijun Sima <simachijun@gmail.com> made in the dominator tree updater a while ago with commit 32fd196c: "Teach the DominatorTree fallback to recalculation when applying updates to speedup JT (PR37929)". This change is NFC but can improve the runtime of the compiler dramatically in some pathological cases (where the pass was pushing a lot (several thousands) of small updates (less than 6)). For instance on the motivating example we went from 300+ sec to less than a second. Differential Revision: https://reviews.llvm.org/D116610
-
Philip Reames authored
-
Philip Reames authored
-
Ikhlas Ajbar authored
-
Krzysztof Parzyszek authored
-
Sumanth Gundapaneni authored
This patch updated HexagonInstrInfo API to deal with missing immediate memop instructions that checks for the validity of the offset.
-
Sumanth Gundapaneni authored
-
Stefan Pintilie authored
Add support for Return Oriented Programming (ROP) protection for 32 bit. This patch also adds a testing for AIX on both 64 and 32 bit. Reviewed By: amyk Differential Revision: https://reviews.llvm.org/D111362
-
Kevin Athey authored
When enabling MSAN eager mode with noundef analysis these variables were found to not be initialized in unit tests. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D116428
-
Collin Baker authored
Clang searches for runtimes (e.g. libclang_rt*) first in a subdirectory named for the target triple (corresponding to LLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON), then if it's not found uses .../lib/<os>/libclang_rt* with a suffix corresponding to the arch and environment name. Android triples optionally include an API level indicating the minimum Android version to be run on (e.g. aarch64-unknown-linux-android21). When compiler-rt is built with LLVM_ENABLE_PER_TARGET_RUNTIME_DIR=ON this API level is part of the output path. Linking code built for a later API level against a runtime built for an earlier one is safe. In projects with several API level targets this is desireable to avoid re-building the same runtimes many times. This is difficult with the current runtime search method: if the API levels don't exactly match Clang gives up on the per-target runtime directory path. To enable this more simply, this change tries target triple without the API level before falling back on the old layout. Another option would be to try every API level in the triple, e.g. check aarch-64-unknown-linux-android21, then ...20, then ...19, etc. Differential Revision: https://reviews.llvm.org/D115049
-
Mogball authored
Instead of failing when it encounters a reference to an unknown symbol, Symbol DCE should ignore them. References to unknown symbols do not affect the overall function of Symbol DCE, so it should not need to fail when it encounters one. In general, requiring that symbol references always be valid rather than only when necessary can be overly conservative. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D116047
-
Alexey Bataev authored
opcodes, NFC. NFC part of D115955.
-
LLVM GN Syncbot authored
-
David Green authored
These instructions have nothing to do with the new MOP CPY instructions, and are better named DUP to avoid confusion. Differential Revision: https://reviews.llvm.org/D116655
-
Roman Lebedev authored
[NFC][SimplifyCFG] Extract `performBlockTailMerging()` out of `tailMergeBlocksWithSimilarFunctionTerminators()`
-
Philip Reames authored
-
Mircea Trofin authored
This just adds feature declarations and some boilerplate. Differential Revision: https://reviews.llvm.org/D116076
-
Petr Hosek authored
This allows their reuse across projects. The name of the module is intentionally generic because we would like to move more platform checks there. Differential Revision: https://reviews.llvm.org/D115276
-
David Green authored
This appears to be missing from D114590, causing sanitizer errors.
-
Philip Reames authored
-
Luís Ferreira authored
Added documentation about DW_TAG_immutable_type too. Reviewed By: probinson Differential Revision: https://reviews.llvm.org/D113633
-
Philip Reames authored
-
Nico Weber authored
The last use of `REQUIRES: debug` was removed in 2013 in 72c5d3d7 in favor of `REQUIRES: asserts`. The last use of `REQUIRES: asserts` was removed in 2015 in 251b0e26 when the old COFF linker was removed. lld's test suite currently has no behavior difference with respect to assertions or debug builds (and hasn't had it for 6 years). Let's keep it that way :) Differential Revision: https://reviews.llvm.org/D115941
-
Philip Reames authored
If we have a call whose only side effect is a write to a location which is known to be dead, we can sink said call to the users of the call's result value. This is analogous to the recent changes to delete said calls if unused, but framed as a sinking transform instead. Differential Revision: https://reviews.llvm.org/D116200
-
Tom Stellard authored
This adds a github action that will mention a team called issue-subscribers-$LABEL whenever a label is added to a bug. Mentioning the team will automatically subscribe all team members to the bug. Differential Revision: https://reviews.llvm.org/D114412
-
Fangrui Song authored
This complements D111365. D111365 did not demote isUsedInRegularObj lazy symbols just to work around a --symbol-ordering-file diagnostic quirk. The quirk was dropped by 00dd2d15, so we can demote all lazy symbols now, not just the isUsedInRegularObj ones.
-
Nico Weber authored
This reverts commit 859ebca7. The change contained many unrelated changes and e.g. restored unit test failes for the old lld port.
-
Groverkss authored
This patch adds clearAndCopyFrom to IntegerPolyhedron. This requires moving LLVM-style RTTI from FlatAffineConstraints to IntegerPolyhedron. This patch is part of a series of patches to move presburger math to Presburger directory. Reviewed By: arjunp Differential Revision: https://reviews.llvm.org/D116533
-
Sanjay Patel authored
This does not appear to cause any problems, and it fixes #50910 Extra tests with a trunc user were added with: 3a239379 ...but they don't match either way, so there's an opportunity to improve the matching further.
-
Alex Zinenko authored
Verify only the outer type being LLVM-compatible, the elemental types if present are already checked by the type verifiers. This makes some LLVM dialect operations compatible with mixed-dialect types that appear during progressive lowering. Reviewed By: wsmoses Differential Revision: https://reviews.llvm.org/D116671
-