- Dec 02, 2020
-
-
Michael Liao authored
- `__hip_fatbin` should a symbol in `.hip_fatbin` section. Differential Revision: https://reviews.llvm.org/D92418
-
Vitaly Buka authored
-
Yaxun (Sam) Liu authored
This patch diagnoses invalid references of global host variables in device, global, or host device functions. Differential Revision: https://reviews.llvm.org/D91281
-
Yaxun (Sam) Liu authored
In C++ when a reference variable is captured by copy, the lambda is supposed to make a copy of the referenced variable in the captures and refer to the copy in the lambda. Therefore, it is valid to capture a reference to a host global variable in a device lambda since the device lambda will refer to the copy of the host global variable instead of access the host global variable directly. However, clang tries to avoid capturing of reference to a host global variable if it determines the use of the reference variable in the lambda function is not odr-use. Clang also tries to emit load of the reference to a global variable as load of the global variable if it determines that the reference variable is a compile-time constant. For a device lambda to capture a reference variable to host global variable and use the captured value, clang needs to be taught that in such cases the use of the reference variable is odr-use and the reference variable is not compile-time constant. This patch fixes that. Differential Revision: https://reviews.llvm.org/D91088
-
Bardia Mahjour authored
This is yet another attempt at providing support for epilogue vectorization following discussions raised in RFC http://llvm.1065342.n5.nabble.com/llvm-dev-Proposal-RFC-Epilog-loop-vectorization-tt106322.html#none and reviews D30247 and D88819. Similar to D88819, this patch achieve epilogue vectorization by executing a single vplan twice: once on the main loop and a second time on the epilogue loop (using a different VF). However it's able to handle more loops, and generates more optimal control flow for cases where the trip count is too small to execute any code in vector form. Reviewed By: SjoerdMeijer Differential Revision: https://reviews.llvm.org/D89566
-
Ahsan Saghir authored
The author of "https://reviews.llvm.org/D92428" marked 'resize_tls_dynamic.cpp' with XFAIL for powerpc64 since it fails on a bunch of PowerPC buildbots. However, the original test case passes on clang-ppc64le-rhel bot. So marking this as XFAIL makes this bot to fail as the test case passes unexpectedly. We are marking this unsupported on all PowerPC64 for now until it is fixed for all the PowerPC buildbots.
-
Nico Weber authored
See http://reviews.llvm.org/rL268229 and http://reviews.llvm.org/rL313832 which did the same for the ELF port. Differential Revision: https://reviews.llvm.org/D92456
-
Christian Sigg authored
Given that OpState already implicit converts to Operator*, this seems reasonable. The alternative would be to add more functions to OpState which forward to Operation. Reviewed By: rriddle, ftynse Differential Revision: https://reviews.llvm.org/D92266
-
Sanjay Patel authored
This might be a small improvement in readability, but the real motivation is to make it easier to adapt the code to deal with intrinsics like 'maxnum' and/or integer min/max. There is potentially help in doing that with D92086, but we might also just add specialized wrappers here to deal with the expected patterns.
-
Alex Zinenko authored
OpenMPIRBuilder::createParallel outlines the body region of the parallel construct into a new function that accepts any value previously defined outside the region as a function argument. This function is called back by OpenMP runtime function __kmpc_fork_call, which expects trailing arguments to be pointers. If the region uses a value that is not of a pointer type, e.g. a struct, the produced code would be invalid. In such cases, make createParallel emit IR that stores the value on stack and pass the pointer to the outlined function instead. The outlined function then loads the value back and uses as normal. Reviewed By: jdoerfert, llitchev Differential Revision: https://reviews.llvm.org/D92189
-
Hans Wennborg authored
When importing symbols from another module, also import any corresponding symver directives. Differential revision: https://reviews.llvm.org/D92335
-
Hans Wennborg authored
This also removes the empty extra "module asm" that would be created, and updates the test to reflect that while making it more explicit. Broken out from https://reviews.llvm.org/D92335
-
Kazushi (Jam) Marukawa authored
Add vand, vor, and vxor intrinsic instructions and regression tests. Reviewed By: simoll Differential Revision: https://reviews.llvm.org/D92454
-
Anirudh Prasad authored
This patch consists of the addition of some common additional extended mnemonics to the SystemZ target. - These are jnop, jct, jctg, jas, jasl, jxh, jxhg, jxle, jxleg, bru, brul, br*, br*l. - These mnemonics and the instructions they map to are defined here, Chapter 4 - Branching with extended mnemonic codes. - Except for jnop (which is a variant of brc 0, label), every other mnemonic is marked as a MnemonicAlias since there is already a "defined" instruction with the same encoding and/or condition mask values. - brc 0, label doesn't have a defined extended mnemonic, thus jnop is defined using as an InstAlias. Furthermore, the applyMnemonicAliases function is called in the overridden parseInstruction function in SystemZAsmParser.cpp to ensure any mnemonic aliases are applied before any further processing on the instruction is done. Reviewed By: uweigand Differential Revision: https://reviews.llvm.org/D92185
-
David Sherwood authored
In this patch I have added support for a new loop hint called vectorize.scalable.enable that says whether we should enable scalable vectorization or not. If a user wants to instruct the compiler to vectorize a loop with scalable vectors they can now do this as follows: br i1 %exitcond, label %for.end, label %for.body, !llvm.loop !2 ... !2 = !{!2, !3, !4} !3 = !{!"llvm.loop.vectorize.width", i32 8} !4 = !{!"llvm.loop.vectorize.scalable.enable", i1 true} Setting the hint to false simply reverts the behaviour back to the default, using fixed width vectors. Differential Revision: https://reviews.llvm.org/D88962 -
Abhina Sreeskantharajan authored
This patch moves all s390x tests in init.c and init-zos.c to init-s390x.c. Reviewed By: muiez Differential Revision: https://reviews.llvm.org/D92048
-
Cheng Wang authored
Add libc strncpy implementation. Reviewed By: sivachandra, gchatelet Differential Revision: https://reviews.llvm.org/D91399
-
Pedro Tammela authored
The code that gets the ScriptInterpreter was not considering the case that it receives a Lua interpreter. Differential Revision: https://reviews.llvm.org/D92249
-
Georgii Rymar authored
This implementation of `ELFDumper<ELFT>::printAttributes()` in llvm-readobj has issues: 1) It crashes when the content of the attribute section is empty. 2) It uses `unwrapOrError` and `reportWarning` calls, though ideally we want to use `reportUniqueWarning`. 3) It contains a TODO about redundant format version check. `lib/Support/ELFAttributeParser.cpp` uses a hardcoded constant instead of the named constant. This patch fixes all these issues. Differential revision: https://reviews.llvm.org/D92318
-
Cullen Rhodes authored
Reviewed By: sdesmalen Differential Revision: https://reviews.llvm.org/D92467
-
Marek Kurdej authored
std::addressof was made constexpr in gcc 7. libc++ fixed it in ac473034 (Provide a constexpr addressof with GCC 7.)
-
Marek Kurdej authored
-
Jay Foad authored
This doesn't seem to be needed for anything. Differential Revision: https://reviews.llvm.org/D92400
-
Georgii Rymar authored
Our warnings/errors reported are using lowercase normally. This addresses one of review comments from D92382.
-
Georgii Rymar authored
This makes the warnings reported to be unique and adds test cases. Differential revision: https://reviews.llvm.org/D92382
-
Raphael Isemann authored
We currently reject all templates that have either zero args or that have a parameter pack without a name. Both cases are actually allowed in C++, so rejecting them leads to LLDB instead falling back to a dummy 'void' type. This leads to all kind of errors later on (most notable, variables that have such template types appear to be missing as we can't have 'void' variables and inheriting from such a template type will cause Clang to hit some asserts when finding that the base class is 'void'). This just removes the too strict tests and adds a few tests for this stuff (+ some combinations of these tests with preceding template parameters). Things that I left for follow-up patches: * All the possible interactions with template-template arguments which seem like a whole new source of possible bugs. * Function templates which completely lack sanity checks. * Variable templates are not implemented. * Alias templates are not implemented too. * The rather strange checks that just make sure that the separate list of template arg names and values always have the same length. I believe those ought to be asserts, but my current plan is to move both those things into a single list that can't end up in this inconsistent state. Reviewed By: JDevlieghere, shafik Differential Revision: https://reviews.llvm.org/D92425
-
David Green authored
These were re-added by fbfb1c79 but should not have been. This removes the old experimental versions of the reduction intrinsics again, leaving the new non experimental ones. Differential Revision: https://reviews.llvm.org/D92411
-
Qiu Chaofan authored
In lowering of FLT_ROUNDS_, FPSCR content will be moved into FP register and then GPR, and then truncated into word. For subtargets without direct move support, it will store and then load. The load address needs adjustment (+4) only on big-endian targets. This patch fixes it on using generic opcodes on little-endian and subtargets with direct-move. Reviewed By: steven.zhang Differential Revision: https://reviews.llvm.org/D91845
-
Georgii Rymar authored
This: 1) Changes `reportWarning` to `reportUniqueWarning` (no-op here). 2) Adds more context to the message. 3) Merges `broken-dynsym-link.test` into `dyn-symbols.test`, adds more testing. Differential revision: https://reviews.llvm.org/D92380
-
Qiu Chaofan authored
Commit 6b1341eb fixed alignment for 128-bit FP types on PowerPC. However, the quadword alignment adjustment shouldn't be applied to IBM extended double (ppc_fp128 in IR) values. Reviewed By: jsji Differential Revision: https://reviews.llvm.org/D92278
-
Georgii Rymar authored
This reverts a side effect introduced in the code cleanup patch D43571: LLD started to emit empty output sections that are explicitly assigned to a segment. This patch fixes the issue by removing the !sec.phdrs.empty() special case from isDiscardable. As compensation, we add an early phdrs propagation step (see the inline comment). This is similar to one that we do in adjustSectionsAfterSorting. Differential revision: https://reviews.llvm.org/D92301
-
Hanhan Wang authored
Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D92416
-
Marek Kurdej authored
Add codecvt*<char16_t, char8_t> and codecvt*<char32_t, char8_t>. Deprecate codecvt<char(16|32)_t, char>. Enable disabled tests. Update _LIBCPP_STD_VER to use 20 for C++20. Add _LIBCPP_DEPRECATED_IN_CXX20 macro. Reviewed By: ldionne, #libc, #libc_abi Differential Revision: https://reviews.llvm.org/D91517
-
Martin Storsjö authored
This fixes linking code that uses some bits of the <random> header on mingw targets. Differential Revision: https://reviews.llvm.org/D92379
-
Marek Kurdej authored
Also, add notes about exporting ABI symbols. Later, we can add notes about using git-clang-format before sending a patch for review. Reviewed By: ldionne, #libc Differential Revision: https://reviews.llvm.org/D92300
-
Raphael Isemann authored
The 'AlignAsBaseClass' part was a leftover form the align_as test that served as the template for this test.
-
Max Kazantsev authored
-
Max Kazantsev authored
-
QingShan Zhang authored
i1 is the native type for PowerPC if crbits is enabled. However, we need to promote the i1 to i64 as we didn't have the pattern for i1. Reviewed By: Qiu Chao Fang Differential Revision: https://reviews.llvm.org/D92067
-
River Riddle authored
-