- Mar 03, 2021
-
-
Christian Sigg authored
Move test inputs to test/Integration directory. Move runtime wrappers to ExecutionEngine. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D97463
-
Stephen Kelly authored
Differential Revision: https://reviews.llvm.org/D97156
-
Sam McCall authored
-
JinGu Kang authored
Differential Revision: https://reviews.llvm.org/D97775
-
Mikael Holmen authored
gcc complained with [1110/1140] Building CXX object tools/lld/MachO/CMakeFiles/lldMachO2.dir/SyntheticSections.cpp.o ../../lld/MachO/SyntheticSections.cpp: In function 'int16_t ordinalForDylibSymbol(const lld::macho::DylibSymbol&)': ../../lld/MachO/SyntheticSections.cpp:287:14: warning: enumeral and non-enumeral type in conditional expression [-Wextra] 286 | return config->namespaceKind == NamespaceKind::flat || dysym.isDynamicLookup() | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | ? MachO::BIND_SPECIAL_DYLIB_FLAT_LOOKUP | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | : dysym.getFile()->ordinal; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ -
Andy Yankovsky authored
Apply changes from https://reviews.llvm.org/D91014 to other places where DWARF entries are being processed. Test case is provided by @jankratochvil. The test is marked to run only on x64 and exclude Windows and Darwin, because the assembly is not OS-independent. (First attempt https://reviews.llvm.org/D96778 broke the build bots) Reviewed By: jankratochvil Differential Revision: https://reviews.llvm.org/D97765
-
Piotr Sobczak authored
* Introduce the new intrinsic amdgcn_strict_wwm * Deprecate the old intrinsic amdgcn_wwm The change is done for consistency as the "strict" prefix will become an important, distinguishing factor between amdgcn_wqm and amdgcn_strictwqm in the future. The "strict" prefix indicates that inactive lanes do not take part in control flow, specifically an inactive lane enabled by a strict mode will always be enabled irrespective of control flow decisions. The amdgcn_wwm will be removed, but doing so in two steps gives users time to switch to the new name at their own pace. Reviewed By: critson Differential Revision: https://reviews.llvm.org/D96257
-
Carl Ritson authored
While the underlying instruction is called image_msaa_load, the resource must be x component only. Rename the intrinsic for clarity. Reviewed By: foad Differential Revision: https://reviews.llvm.org/D97829
-
Thomas Preud'homme authored
When commit da108b4e introduced the CHECK-NEXT directive, it added logic to skip to the next line when printing a diagnostic if the current matching position is at the end of a line. This was fine while FileCheck did not support regular expression but since it does now it can be confusing when the pattern to match starts with the expectation of a newline (e.g. CHECK-NEXT: {{\n}}foo). It is also inconsistent with the column information in the diagnostic which does point to the end of line. This commit removes this logic altogether, such that failure to match diagnostic for such cases would show the end of line and be consistent with the column information. The commit also adapts all existing testcases accordingly. Note to reviewers: An alternative approach would be to restrict the code to only skip to the next line if the first character of the pattern is known not to match a whitespace-like character. This would respect t...
-
Petr Hosek authored
compiler-rt needs to use standalone build because of the assumptions made by its build, but other runtimes can use non-standalone build. Differential Revision: https://reviews.llvm.org/D97575
-
David Green authored
In some rare circumstances we can be using an undef register for a compare. When folded into a CBZ/CBNZ the undef flags are lost, leading to machine verifier problems. This propagates the existing flags to the new instruction.
-
Andy Wingo authored
The WebAssembly text and binary formats have different operand orders for the "type" and "table" fields of call_indirect (and return_call_indirect). In LLVM we use the binary order for the MCInstr, but when we produce or consume the text format we should use the text order. For compilation units targetting WebAssembly 1.0 (without the reference types feature), we omit the table operand entirely. Differential Revision: https://reviews.llvm.org/D97761
-
Prateek Pardeshi authored
Polly use algorithms from the Integer Set Library (isl), which is a library written in C and which is incompatible with the rest of the LLVM as it is written in C++. Changes made: * Refabricating IsOutermostParallel() to take C++ bindings instead of reference-counting in C isl lib. * Addition of manage_copy() to be used as reference for C objects instead of IsOutermostParallel() Reviewed By: Meinersbur Differential Revision: https://reviews.llvm.org/D97751
-
Hsiangkai Wang authored
There may be other BUILTINs for other extensions. Use RISCVV_BUILTIN for vector builtin checking. Differential Revision: https://reviews.llvm.org/D97825
-
Qiu Chaofan authored
This patch enables spilling GPR to VSRs instead of stack under AIX ABI. Reviewed By: nemanjai Differential Revision: https://reviews.llvm.org/D97367
-
Craig Topper authored
[LegalizeVectorTypes] Improve SplitVecRes_INSERT_SUBVECTOR to handle subvector being in the high half of the split or not at element 0 of the low half. This function isn't exercised in lit tests today today according to the code coverage report. But will be after the tests in D97543 and D97559. Posting this patch to help a crash that Fraser hit. Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D97582
-
Jianzhou Zhao authored
-
Jianzhou Zhao authored
This is a part of https://reviews.llvm.org/D95835. One issue is about origin load optimization: see the comments of useCallbackLoadLabelAndOrigin @gbalats This change may have some conflicts with your 8bit change. PTAL the change at visitLoad. Reviewed By: morehouse, gbalats Differential Revision: https://reviews.llvm.org/D97570
-
Nathan James authored
Exchanging types, reordering fields and borrowing a bit from OptionGroupIndex shrinks this from 12 bytes to 8. This knocks ~20k from the binary size. Reviewed By: aaron.ballman Differential Revision: https://reviews.llvm.org/D97553
-
Nathan James authored
Make use of the `equalsBoundNode` matcher to ensure Init, Conditon and Increment variables all refer to the same variable during matching. Reviewed By: steveire Differential Revision: https://reviews.llvm.org/D97639
-
Wang, Pengfei authored
Reviewed By: LuoYuanke Differential Revision: https://reviews.llvm.org/D97444
-
George Balatsouras authored
This addresses ~50 clang-tidy warnings on dfsan instrumentation pass. It also contains some refactoring (all non-functional changes) to eliminate some variables and simplify code. Reviewed By: stephan.yichao.zhao Differential Revision: https://reviews.llvm.org/D97714
-
Felix Berger authored
This disables the check for false positive cases where implicit type conversion through either an implicit single argument constructor or a member conversion operator is triggered when constructing the loop variable. Fix the test cases that meant to cover these cases. Differential Revision: https://reviews.llvm.org/D97577 Reviewed-by: hokein
-
Petr Hosek authored
This reverts commit 4e421b23 as this seemed to have broke Python 3 executable detection on some builders.
-
Petr Hosek authored
We want to enable the use of Polly in Fuchsia. Differential Revision: https://reviews.llvm.org/D97819
-
Jonas Devlieghere authored
-
Jonas Devlieghere authored
-
Victor Huang authored
This patch allows generating TLS variables in assembly files on AIX. Initialized and external uninitialized variables are generated with the .csect pseudo-op and local uninitialized variables are generated with the .comm/.lcomm pseudo-ops. The patch also adds a check to explicitly say that TLS is not yet supported on AIX. Reviewed by: daltenty, jasonliu, lei, nemanjai, sfertile Originally patched by: bsaleil Commandeered by: NeHuang Differential Revision: https://reviews.llvm.org/D96184
-
Petr Hosek authored
compiler-rt needs to use standalone build because of the assumptions made by its build, but other runtimes can use non-standalone build. Differential Revision: https://reviews.llvm.org/D97575
-
zoecarver authored
Implementes [[ http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0356r5.html | P0356R5 ]]. Adds `bind_front` to `functional`. Reviewed By: ldionne, #libc, Quuxplusone Differential Revision: https://reviews.llvm.org/D60368
-
Jonas Devlieghere authored
Add a column to the table of convenience variables with the equivalent API to get to the current debugger, target, process, etc. We often get asked to make convenience variables available outside of the interactive interpreter. After explaining why that's not possible, a common complaint is that it's hard to find out how to get to these variables in a non-interactive context, for example how to get to the current frame when given a thread. This patch aims to alleviate that by including the APIs to navigate between these instances in the table. Differential revision: https://reviews.llvm.org/D97778
-
Neal (nealsid) authored
A few cleanups suggested in another patch review's comments: 1. Use llvm:unique_function for storing & invoking callbacks from Editline to IOHandler 2. Change return type of one of the callback setters from bool to void, since it's return value was never used 3. Moved the callback setters inline & made them nonstatic, since that's more consistent with other setter definitions 4. Removed the baton parameter since we no longer need it anymore Differential revision: https://reviews.llvm.org/D50299
-
Arthur Eubanks authored
Reviewed By: ychen Differential Revision: https://reviews.llvm.org/D97810
-
Andrei Elovikov authored
Reviewed By: fhahn Differential Revision: https://reviews.llvm.org/D97787
-
Fangrui Song authored
-
Aart Bik authored
Reviewed By: bixia Differential Revision: https://reviews.llvm.org/D97795
-
Peter Steinfeld authored
It's possible to define a procedure whose interface depends on a procedure which has an interface that depends on the original procedure. Such a circular definition was causing the compiler to fall into an infinite loop when resolving the name of the second procedure. It's also possible to create circular dependency chains of more than two procedures. I fixed this by adding the function HasCycle() to the class DeclarationVisitor and calling it from DeclareProcEntity() to detect procedures with such circularly defined interfaces. I marked the associated symbols of such procedures by calling SetError() on them. When processing subsequent procedures, I called HasError() before attempting to analyze their interfaces. Unfortunately, this did not work. With help from Tim, we determined that the SymbolSet used to track the erroneous symbols was instantiated using a "<" operator which was defined using the location of the name of the procedure. But the location of the procedure name was being changed by a call to ReplaceName() between the times that the calls to SetError() and HasError() were made. This caused HasError() to incorrectly report that a symbol was not in the set of erroneous symbols. I fixed this by changing SymbolSet to be an unordered set that uses the contents of the name of the symbol as the basis for its hash function. This works because the contents of the name of the symbol is preserved by ReplaceName() even though its location changes. I also fixed the error message used when reporting recursively defined dummy procedure arguments by removing extra apostrophes and sorting the list of symbols. I also added tests that will crash the compiler without this change. Note that the "<" operator is used in other contexts, for example, in the map of characterized procedures, maps of items in equivalence sets, maps of structure constructor values, ... All of these situations happen after name resolution has been completed and all calls to ReplaceName() have already happened and thus are not subject to the problem I ran into when ReplaceName() was called when processing procedure entities. Note also that the implementation of the "<" operator uses the relative location in the cooked character stream as the basis of its implementation. This is potentially problematic when symbols from diffent compilation units (for example symbols originating in .mod files) are put into the same map since their names will appear in two different source streams which may not be allocated in the same relative positions in memory. But I was unable to create a test that caused a problem. Using a direct comparison of the content of the name of the symbol in the "<" operator has problems. Symbols in enclosing or parallel scopes can have the same name. Also using the location of the symbol in the cooked character stream has the advantage that it preserves the the order of the symbols in a structure constructor constant, which makes matching the values with the symbols relatively easy. This patch supersedes D97749. Differential Revision: https://reviews.llvm.org/D97774
-
https://reviews.llvm.org/D97335Nico Weber authored
fix attempt http://reviews.llvm.org/rGbbdb4c8c9bcef0e didn't work The problem is that the test tries to look up llvm_orc_registerJITLoaderGDBWrapper from the llvm-jitlink.exe executable, but the symbol wasn't exported. Just manually export it for now. There's a FIXME with a suggestion for a real fix.
-
Kamlesh Kumar authored
immediate build failure when Cross Unwinding enabled. Follow up patch will cleanup some Macros handling. Differential Revision: https://reviews.llvm.org/D97762
-
Hansang Bae authored
This is a preview of allocator support for target memory that depends on the offload runtime API which allocates memory as described below. llvm_omp_target_alloc_host(size_t size, int device_num); -- Returns non-migratable memory owned by host. -- Memory is accessible by host and device(s). llvm_omp_target_alloc_shared(size_t size, int device_num); -- Returns migratable memory owned by host and device. -- Memory is accessible by host and device. llvm_omp_target_alloc_device(size_t size, int device_num); -- Returns memory owned by device. -- Memory is only accessible by device. New memory space and predefined allocator names are -- llvm_omp_target_host_mem_space -- llvm_omp_target_shared_mem_space -- llvm_omp_target_device_mem_space -- llvm_omp_target_host_mem_alloc -- llvm_omp_target_shared_mem_alloc -- llvm_omp_target_device_mem_alloc Differential Revision: https://reviews.llvm.org/D96669
-