- Feb 14, 2020
-
-
Ted Woodward authored
Original commit: https://reviews.llvm.org/rG7683a084de6bd2637f2351f53389df8b610566cf
-
Denis Khalikov authored
Implement a pass to convert gpu.launch_func op into a sequence of Vulkan runtime calls. The Vulkan runtime API surface is huge so currently we don't expose separate external functions in IR for each of them, instead we expose a few external functions to wrapper libraries which manages Vulkan runtime. Differential Revision: https://reviews.llvm.org/D74549
-
Alex Brachet authored
Reviewers: sivachandra Reviewed By: sivachandra Subscribers: MaskRay, tschuett, libc-commits Differential Revision: https://reviews.llvm.org/D74570
-
LLVM GN Syncbot authored
-
Greg Clayton authored
Summary: The DWARF transformer is added as a class so it can be unit tested fully. The DWARF is converted to GSYM format and handles many special cases for functions: - omit functions in compile units with 4 byte addresses whose address is UINT32_MAX (dead stripped) - omit functions in compile units with 8 byte addresses whose address is UINT64_MAX (dead stripped) - omit any functions whose high PC is <= low PC (dead stripped) - StringTable builder doesn't copy strings, so we need to make backing copies of strings but only when needed. Many strings come from sections in object files and won't need to have backing copies, but some do. - When a function doesn't have a mangled name, store the fully qualified name by creating a string by traversing the parent decl context DIEs and then. If we don't do this, we end up having cases where some function might appear in the GSYM as "erase" instead of "std::vector<int>::erase". - omit any functions whose address isn't in the optional TextRanges member variable of DwarfTransformer. This allows object file to register address ranges that are known valid code ranges and can help omit functions that should have been dead stripped, but just had their low PC values set to zero. In this case we have many functions that all appear at address zero and can omit these functions by making sure they fall into good address ranges on the object file. Many compilers do this when the DWARF has a DW_AT_low_pc with a DW_FORM_addr, and a DW_AT_high_pc with a DW_FORM_data4 as the offset from the low PC. In this case the linker can't write the same address to both the high and low PC since there is only a relocation for the DW_AT_low_pc, so many linkers tend to just zero it out. Reviewers: aprantl, dblaikie, probinson Subscribers: mgorny, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74450
-
Reid Kleckner authored
DynTypedNode and ASTNodeKind are implemented as part of the clang AST library, which uses the main clang namespace. There doesn't seem to be a need for this extra level of namespacing. I left behind aliases in the ast_type_traits namespace for out of tree clients of these APIs. To provide aliases for the enumerators, I used this pattern: namespace ast_type_traits { constexpr TraversalKind TK_AsIs = ::clang::TK_AsIs; } I think the typedefs will be useful for migration, but we might be able to drop these enumerator aliases. Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D74499 -
Alexey Bataev authored
According to OpenMP 5.0, hint clause is alowed to be used in atomic directives.
-
Matt Arsenault authored
-
Yuanfang Chen authored
This reverts commit 80a34ae3 with fixes. Previously, since bots turning on EXPENSIVE_CHECKS are essentially turning on MachineVerifierPass by default on X86 and the fact that inline-asm-avx-v-constraint-32bit.ll and inline-asm-avx512vl-v-constraint-32bit.ll are not expected to generate functioning machine code, this would go down to `report_fatal_error` in MachineVerifierPass. Here passing `-verify-machineinstrs=0` to make the intent explicit.
-
Yuanfang Chen authored
This reverts commit bb51d243.
-
Yuanfang Chen authored
This reverts commit 80a34ae3 with fixes. On bots llvm-clang-x86_64-expensive-checks-ubuntu and llvm-clang-x86_64-expensive-checks-debian only, llc returns 0 for these two tests unexpectedly. I tweaked the RUN line a little bit in the hope that LIT is the culprit since this change is not in the codepath these tests are testing. llvm\test\CodeGen\X86\inline-asm-avx-v-constraint-32bit.ll llvm\test\CodeGen\X86\inline-asm-avx512vl-v-constraint-32bit.ll
-
Greg Clayton authored
Summary: This patch fixes logging to log incoming packets which was removed during a refactor. We also enable logging to a "vscode.txt" file for each lldb-vscode test by creating the log file in the build artifacts directory for each test. This allows users to see the packets for their tests if needed and the log file is in a directory that will be removed after tests have been run. Reviewers: labath, aadsm, serhiy.redko, jankratochvil, xiaobai, wallace Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D74566
-
Nikita Popov authored
MemorySSA is often taking up an unreasonable fraction of runtime in assertion enabled builds. Turns out that there is one code-path that runs verifyMemorySSA() even if VerifyMemorySSA is not enabled. This patch makes it conditional as well. Differential Revision: https://reviews.llvm.org/D74505
-
Matt Arsenault authored
Also greatly improve i64 lowering. LegalizeIntegerTypes does the correct narrowing if i64 isn't legal. Just workaround this for SelectionDAG by making i64 legal and splitting in the patterns.
-
Yuanfang Chen authored
From the context, it looks like the test should not be run with `check-all`, but it does. It turns out option argument resolving to True/False which could not be passed down as is. There is one such example in AddLLVM.cmake.
-
Greg Clayton authored
This tests works on Darwin. I will need to check windows and linux.
-
Alexey Bataev authored
-
Ted Woodward authored
-
Alexey Bataev authored
According to OpenMP 5.0, cancel and cancellation point constructs are supported in taskloop directive. Added support for cancellation in taskloop, master taskloop and parallel master taskloop.
-
Fangrui Song authored
Fixes https://bugs.llvm.org//show_bug.cgi?id=44878 When --strip-debug is specified, .debug* are removed from inputSections while .rel[a].debug* (incorrectly) remain. LinkerScript::addOrphanSections() requires the output section of a relocated InputSectionBase to be created first. .debug* are not in inputSections -> output sections .debug* are not created -> getOutputSectionName(.rel[a].debug*) dereferences a null pointer. Fix the null pointer dereference by deleting .rel[a].debug* from inputSections as well. Reviewed By: grimar, nickdesaulniers Differential Revision: https://reviews.llvm.org/D74510
-
Tatyana Krasnukha authored
This commit fixes an issue with lldb-vscode failing to run programs that use different architecture/platform than the "empty" in the target. Original implementation was creating a default target without specifying the target architecture, platform or program, and then would set executable file through SBLaunchInfo, assuming that this would update architecture and platform accordingly. However this wasn't really happening, and architecture and platform would remain at whatever values were in the "empty" target. The simple solution is to create target already for a desired architecture and platform. Function request_attach is updated in a similar fashion. This commit also adds new JSON properties to "launch" and "attach" packets to allow user to override desired platform and architecture. This might be especially important for cases where information in ELF is not enough to derive those values correctly. New code has a behavior similar to LLDB MI [1], where typically IDE would specify target file with -file-exec-and-symbols, and then only do -exec-run command that would launch the process. In lldb-vscode those two actions are merged into one request_launch function. Similarly in the interpreter session, user would first do "file" command, then "process launch" Differential Revision: https://reviews.llvm.org/D70847 Signed-off-by:
Anton Kolesov <anton.kolesov@synopsys.com>
-
Greg Clayton authored
Stop emitting a breakpoint for each location in a breakpoint when responding to breakpoint commands. Summary: The VS Code DAP expects on response for each breakpoint that was requested. If we responsd with multiple entries for one breakpoint the VS Code UI gets out of date. Currently the VS code DAP doesn't handle one breakpoint with multiple locations. If this ever gets fixed we can modify our code. Reviewers: labath Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D73665
-
John Brawn authored
If the target has FP64 but not FP16 then we have custom lowering for FP_EXTEND and STRICT_FP_EXTEND with type f64. However if the extend is from f32 to f64 the current implementation will cause in infinite loop for STRICT_FP_EXTEND due to emitting a merge_values of the original node which after replacement becomes a merge_values of itself. Fix this by not doing anything for f32 to f64 extend when we have FP64, though for STRICT_FP_EXTEND we have to do the strict-to-nonstrict mutation as that doesn't happen automatically for opcodes with custom lowering. Differential Revision: https://reviews.llvm.org/D74559
-
Alexey Bataev authored
We need to capture correctly the value of num_tasks clause and should not try to emit the if clause at all in the task region.
-
- Feb 13, 2020
-
-
Stephan Herhut authored
Summary: To unblock other work, this implements basic lowering based on mapping attributes that have to be provided on all loop.parallel. The lowering does not yet support reduce. Differential Revision: https://reviews.llvm.org/D73893
-
Sanjay Patel authored
We want the extra-use tests to be consistent with the earlier single-use tests and be as cheap as possible in vector form to show cost model edge cases. So use i8 and extract from element 0 since that should be cheap for all x86 targets.
-
Alexey Bataev authored
-
Sanjay Patel authored
See D74495.
-
Francesco Petrogalli authored
-
Sean Fertile authored
Skip the loop over the CalleSavedInfos in 'restoreCalleeSavedRegisters' when the register is a CR field and we are not targeting 32-bit ELF. This is safe because: 1) The helper function 'restoreCRs' returns if the target is not 32-bit ELF, making all the code in the loop related to CR fields dead for every other subtarget. This code is only called on ELF right now, but the patch to extend it for AIX also needs to skip 'restoreCRs'. 2) The loop will not otherwise modify the iterator, so the iterator manipulations at the bottom of the loop end up setting 'I' to its current value. This simplifciation allows us to remove one argument from 'restoreCRs'. Also add a helper function to determine if a register is one of the callee saved condition register fields.
-
Nico Weber authored
-
Pavel Labath authored
Summary: This patch creates a new subclass of the ABI class in order to abstract away the mechanism in which we "augment" register information. This enables alternate augmentation strategies to be introduced. All existing ABI classes have been modified to inherit from RegInfoBasedABI, but they will be refactored in subsequent patches. Reviewers: JDevlieghere, jasonmolenda Subscribers: sdardis, nemanjai, kbarton, jrtc27, atanasyan, jsji, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D74243
-
Simon Pilgrim authored
-
Simon Pilgrim authored
-
Nico Weber authored
Before, the script used `git log -SFoo.cpp` to find a commit where the number of occurrences of "Foo.cpp" changed -- but since a patch with + LLVMFoo.cpp - Foo.cpp contains the same number of instances of "Foo.cpp", the script incorrectly skipped this type of rename. As fix, look for '\bFoo\.cpp\b' instead and pass --pickaxe-regex so that we can grep for word boundaries. To test, check out 7531a503 (which renamed in llvm/lib/IR RemarkStreamer.cpp to LLVMRemarkStreamer.cpp) and look at the output of the script. Before this change, it correctly assigned the addition of LLVMRemarkStreamer.cpp to 7531a503 but incorrectly assigned the removal of RemarkStreamer.cpp to b8a847c0. With this, it correctly assigns both to 7531a503.
-
Jeremy Morse authored
These are some minor things that I've run into on Windows, largely in error handling paths: * Giving --lldb-executable on Windows triggers a "useless option" code path, which touches an attribute that only exists in the list_debuggers tool. Switch this to use hasattr, which will work in all subtools. * We were over-decoding some text reporting errors, but only in an exception path * The path to lldb on Windows needs to be quoted (even though dexter isn't making use of it). Differential Revision: https://reviews.llvm.org/D74546
-
Kirill Bobyrev authored
Summary: Make it possible for the client to adjust the ranking by using the score Clangd calculates for the completion items. Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D74547
-
Raphael Isemann authored
Summary: The error message from the construct `assertTrue(a == b, "msg") ` are nearly always completely useless for actually debugging the issue. This patch is just replacing this construct (and similar ones like `assertTrue(a != b, ...)` with the proper call to assertEqual or assertNotEquals. This patch was mostly written by a shell script with some manual verification afterwards: ``` lang=python import sys def sanitize_line(line): if line.strip().startswith("self.assertTrue(") and " == " in line: line = line.replace("self.assertTrue(", "self.assertEquals(") line = line.replace(" == ", ", ", 1) if line.strip().startswith("self.assertTrue(") and " != " in line: line = line.replace("self.assertTrue(", "self.assertNotEqual(") line = line.replace(" != ", ", ", 1) return line for a in sys.argv[1:]: with open(a, "r") as f: lines = f.readlines() with open(a, "w") as f: for line in lines: f.write(sanitize_line(line)) ``` Reviewers: labath, JDevlieghere Reviewed By: labath Subscribers: abidh, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D74475 -
Alexander Belyaev authored
Summary: On some platforms the build fails "std::function is not found". The include is used in PassManager::IRPrinterConfig::enableIRPrinting. Differential Revision: https://reviews.llvm.org/D74469
-
Pavel Labath authored
to account for the new location of test files from 99451b44.
-