- Feb 11, 2020
-
-
Jay Foad authored
Summary: SIInstrInfo::expandPostRAPseudo converts ENTER_WWM in-place into an S_OR_SAVEEXEC instruction that needs certain implicit operands. Without this patch I get errors like this that make it harder to use -stop-after to bisect the pass pipeline: $ llc -march=amdgcn test/CodeGen/AMDGPU/wqm.ll -stop-after=postrapseudos -o - | sed -E 's/ (from|into) custom "TargetCustom[0-9]+"//' | llc -march=amdgcn -x=mir error: <stdin>:1295:70: missing implicit register operand 'implicit-def $scc' renamable $sgpr2_sgpr3 = S_OR_SAVEEXEC_B64 -1, implicit-def $exec ^ Note that this error is currently only generated by MIParser but it comes with a FIXME comment: // FIXME: Move the implicit operand verification to the machine verifier. Reviewers: critson, arsenm, rampitec, nhaehnle Subscribers: kzhuravl, jvesely, wdng, yaxunl, dstuttard, tpr, t-tye, hiraditya, kerbowa, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74428
-
David Zarzycki authored
clang 9ce6dc98 drops support for implicit conversion of nullptr_t to bool. From that commit: The C++ rules briefly allowed this, but the rule changed nearly 10 years ago and we never updated our implementation to match. However, we've warned on this by default for a long time, and no other compiler accepts (even as an extension).
-
Sterling Augustine authored
Summary: Dwarf stores source-file names the three parts: <compilation_directory><include_directory><filename> Prior to this change, the code only allowed retrieving either all three as the absolute path, or just the filename. But many compile-command lines--especially those in hermetic build systems don't specify an absolute path, nor just the filename, but rather the path relative to the compilation directory. This features allows retrieving them in that style. Add tests for path printing styles. Modify createBasicPrologue to handle include directories. Subscribers: aprantl, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D73383
-
diggerlin authored
SUMMARY: address the comment of https://reviews.llvm.org/D74240#inline-676127 https://reviews.llvm.org/D74240#inline-675875 Reviewers: daltenty, jason liu, xiangling liao Subscribers: wuzish, nemanjai, hiraditya Differential Revision: https://reviews.llvm.org/D74240
-
Reid Kleckner authored
Tested with both Python 2.7 and Python 3.7. Reviewed By: thakis Differential Revision: https://reviews.llvm.org/D73234
-
Raphael Isemann authored
-
Nathan James authored
Summary: Addresses [[ https://bugs.llvm.org/show_bug.cgi?id=44816 | bugprone-infinite-loop false positive with CATCH2 ]] by disabling the check on loops where the condition is known to always eval as false, in other words not a loop. Reviewers: aaron.ballman, alexfh, hokein, gribozavr2, JonasToth Reviewed By: gribozavr2 Subscribers: xazax.hun, cfe-commits Tags: #clang, #clang-tools-extra Differential Revision: https://reviews.llvm.org/D74374
-
aartbik authored
Summary: This new operation operates on 1-D vectors and forms the bridge between vector.contract and llvm intrinsics for vector reductions. Reviewers: nicolasvasilache, andydavis1, ftynse Reviewed By: nicolasvasilache Subscribers: mehdi_amini, rriddle, jpienaar, burmako, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, liufengdb, Joonsoo, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74370
-
Alina Sbirlea authored
Summary: Part of the changes in D44564 made BasicAA not CFG only due to it using PhiAnalysisValues which may have values invalidated. Subsequent patches (rL340613) appear to have addressed this limitation. BasicAA should not be invalidated by non-CFG-altering passes. A concrete example is MemCpyOpt which preserves CFG, but we are testing it invalidates BasicAA. llvm-dev RFC: https://groups.google.com/forum/#!topic/llvm-dev/eSPXuWnNfzM Reviewers: john.brawn, sebpop, hfinkel, brzycki Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74353
-
Craig Topper authored
Based on uops.info these should have 5 cycle latency as they did on Haswell/Broadwell. I have no additional internal information from Intel. This was also shown as a discrepancy in the spreadsheet that was sent with an early llvm-dev post about llvm-exegesis. It also matches Agner Fog. Differential Revision: https://reviews.llvm.org/D74357
-
LLVM GN Syncbot authored
-
Stanislav Mekhanoshin authored
R600 and GCN do not have anything in common in terms of register file organization anymore. Differential Revision: https://reviews.llvm.org/D74426
-
Raphael Isemann authored
-
Michael Halkenhäuser authored
Static chunked OpenMP scheduling has not been treated correctly. This patch fixes the problem that threads would not process their (work-)chunks as intended. Differential Revision: https://reviews.llvm.org/D61081
-
Teresa Johnson authored
This restores commit 748bb5a0, along with a fix for a Chromium test suite build issue (and a new test for that case). Differential Revision: https://reviews.llvm.org/D73242
-
Krzysztof Parzyszek authored
-
Cyndy Ishida authored
Summary: * for <= tbd_v3, simulator platforms appear the same as the real platform and we distinct the difference from the architecture. fixes: rdar://problem/59161559 Reviewers: ributzka, steven_wu Reviewed By: ributzka Subscribers: hiraditya, dexonsmith, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74416
-
Justin Lebar authored
Summary: No functional change. Reviewers: bkramer, MaskRay, martong, shafik Subscribers: martong, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D74414
-
Justin Lebar authored
Summary: Used std::enable_if without ::type. Reviewers: bkramer, MaskRay Subscribers: martong, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D74412
-
Diego Caballero authored
Follow-up on D72802. Turn -convert-std-to-llvm-use-alloca and -convert-std-to-llvm-bare-ptr-memref-call-conv into pass flags of LLVMLoweringPass. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D73912
-
Jordan Rupprecht authored
-
Peter Collingbourne authored
-
Jordan Rupprecht authored
Summary: Moves lldbsuite tests to lldb/test/API. This is a largely mechanical change, moved with the following steps: ``` rm lldb/test/API/testcases mkdir -p lldb/test/API/{test_runner/test,tools/lldb-{server,vscode}} mv lldb/packages/Python/lldbsuite/test/test_runner/test lldb/test/API/test_runner for d in $(find lldb/packages/Python/lldbsuite/test/* -maxdepth 0 -type d | egrep -v "make|plugins|test_runner|tools"); do mv $d lldb/test/API; done for d in $(find lldb/packages/Python/lldbsuite/test/tools/lldb-vscode -maxdepth 1 -mindepth 1 | grep -v ".py"); do mv $d lldb/test/API/tools/lldb-vscode; done for d in $(find lldb/packages/Python/lldbsuite/test/tools/lldb-server -maxdepth 1 -mindepth 1 | egrep -v "gdbremote_testcase.py|lldbgdbserverutils.py|socket_packet_pump.py"); do mv $d lldb/test/API/tools/lldb-server; done ``` lldb/packages/Python/lldbsuite/__init__.py and lldb/test/API/lit.cfg.py were also updated with the new directory structure. Reviewers: labath, JDevlieghere Tags: #lldb Differential Revision: https://reviews.llvm.org/D71151
-
Yonghong Song authored
Currently, isTruncateFree() and isZExtFree() callbacks return false as they are not implemented in BPF backend. This may cause suboptimal code generation. For example, if the load in the context of zero extension has more than one use, the pattern zextload{i8,i16,i32} will not be generated. Rather, the load will be matched first and then the result is zero extended. For example, in the test together with this commit, we have I1: %0 = load i32, i32* %data_end1, align 4, !tbaa !2 I2: %conv = zext i32 %0 to i64 ... I3: %2 = load i32, i32* %data, align 4, !tbaa !7 I4: %conv2 = zext i32 %2 to i64 ... I5: %4 = trunc i64 %sub.ptr.lhs.cast to i32 I6: %conv13 = sub i32 %4, %2 ... The I1 and I2 will match to one zextloadi32 DAG node, where SUBREG_TO_REG is used to convert a 32bit register to 64bit one. During code generation, SUBREG_TO_REG is a noop. The %2 in I3 is used in both I4 and I6. If isTruncateFree() is false, the current implementation will generate a SLL_ri and SRL_ri for the zext part during lowering. This patch implement isTruncateFree() in the BPF backend, so for the above example, I3 and I4 will generate a zextloadi32 DAG node with SUBREG_TO_REG is generated during lowering to Machine IR. isZExtFree() is also implemented as it should help code gen as well. This patch also enables the change in https://reviews.llvm.org/D73985 since it won't kick in generates MOV_32_64 machine instruction. Differential Revision: https://reviews.llvm.org/D74101
-
Raphael Isemann authored
This code seems wrong as the directory variable actually contains the file name. It's also unreachable code as m_include_support_files is hardcoded to false which is the condition for the surrounding 'if statement'. Let's just remove all of this.
-
Ben Langmuir authored
I observed two bugs in the DirectoryWatcher on macOS 1. We were calling FSEventStreamStop and FSEventStreamInvalidate before we called FSEventStreamStart and FSEventStreamSetDispatchQueue, if the DirectoryWatcher was destroyed before the initial async work was done. This violates the requirements of the FSEvents API. 2. Calls to Receiver could race between the initial work and the invalidation during destruction. The second issue is easier to see when using TSan. Differential Revision: https://reviews.llvm.org/D74371 rdar://59215667
-
Johannes Doerfert authored
-
Johannes Doerfert authored
See https://reviews.llvm.org/D74340
-
Johannes Doerfert authored
If a pointer is returned that does not mean it is freed in the current (function) scope. We can ignore such uses in AANoFree.
-
Johannes Doerfert authored
The changeXXXAfterManifest functions are better suited to deal with changes so we should prefer them. These functions also recursively delete dead instructions which is why we see test changes.
-
Johannes Doerfert authored
-
Alexey Bataev authored
Added full support for relaxed clause.
-
Nikita Popov authored
Split out from D73835. I removed some of these before, but missed these ones. They are not part of the ConstantFolder interface and are not going to be used by the IRBuilder.
-
Nikita Popov authored
This is a followup to D73803, which uses the replaceOperand() helper in more places. This should be NFC apart from changes to worklist order. Differential Revision: https://reviews.llvm.org/D73919
-
Peter Collingbourne authored
-
Jonas Paulsson authored
It needs 'tracksRegLiveness: true' to pass the machine verifier.
-
Nikita Popov authored
Fix/workaround for https://bugs.llvm.org/show_bug.cgi?id=44539. As discussed there, this pass makes some overly optimistic assumptions, as it does not have access to actual branch weights. This patch makes the computation of the depth of the optimized cmov more conservative, by assuming a distribution of 75/25 rather than 50/50 and placing the weights to get the more conservative result (larger depth). The fully conservative choice would be std::max(TrueOpDepth, FalseOpDepth), but that would break at least one existing test (which may or may not be an issue in practice). Differential Revision: https://reviews.llvm.org/D74155
-
Louis Dionne authored
The Standard requires the value_type of the vector to be Cpp17CopyInsertable in order for copy-construction to be enabled: http://eel.is/c++draft/container.requirements#tab:container.req rdar://problem/56674564 Differential Revision: https://reviews.llvm.org/D74251
-
James Henderson authored
-
Eric Astor authored
Summary: Add a new method (tryParseRegister) that attempts to parse a register specification. MASM allows the use of IFDEF <register>, as well as IFDEF <symbol>. To accommodate this, we make it possible to check whether a register specification can be parsed at the current location, without failing the entire parse if it can't. Reviewers: thakis Reviewed By: thakis Tags: #llvm Differential Revision: https://reviews.llvm.org/D73486
-