- Jan 13, 2021
-
-
Zequan Wu authored
Move nomerge attribute from function declaration/definition to callsites to allow virtual function calls attach the attribute. Differential Revision: https://reviews.llvm.org/D94537
-
Florian Hahn authored
Similar to D94125, derive `willreturn` for functions that are `readonly` and `mustprogress` in FunctionAttrs. To quote the reasoning from D94125: Since D86233 we have `mustprogress` which, in combination with `readonly`, implies `willreturn`. The idea is that every side-effect has to be modeled as a "write". Consequently, `readonly` means there is no side-effect, and `mustprogress` guarantees that we cannot "loop" forever without side-effect. Reviewed By: jdoerfert, nikic Differential Revision: https://reviews.llvm.org/D94502 -
David Truby authored
MSVC on WoA64 includes isCXX14Aggregate in its definition. This is de-facto specification on that platform, so match msvc's behaviour. Fixes: https://bugs.llvm.org/show_bug.cgi?id=47611 Co-authored-by:
Peter Waller <peter.waller@arm.com> Differential Revision: https://reviews.llvm.org/D92751
-
Jon Chesterfield authored
[libomptarget][amdgpu][nfc] Fix build on centos rtl.cpp replaced 224 with a #define from elf.h, but that doesn't work on a centos 7 build machine with an old elf.h Reviewed By: ronlieb Differential Revision: https://reviews.llvm.org/D94528
-
Shilei Tian authored
Some LLVM headers are generated by CMake. Before the installation, LLVM's headers are distributed everywhere, some of which are in `${LLVM_SRC_ROOT}/llvm/include/llvm`, and some are in `${LLVM_BINARY_ROOT}/include/llvm`. After intallation, they're all in `${LLVM_INSTALLATION_ROOT}/include/llvm`. OpenMP now depends on LLVM headers. Some headers depend on headers generated by CMake. When building OpenMP along with LLVM, a.k.a via `LLVM_ENABLE_RUNTIMES`, we need to tell OpenMP where it can find those headers, especially those still have not been copied/installed. Reviewed By: jdoerfert, jhuber6 Differential Revision: https://reviews.llvm.org/D94534 -
Nikita Popov authored
This is a partial fix for https://bugs.llvm.org/show_bug.cgi?id=44403. Folding gep p, q-p to q is only legal if p and q have the same provenance. This fold should probably be guarded by something like getUnderlyingObject(p) == getUnderlyingObject(q). This patch is a partial fix that removes the special handling for gep p, 0-p, which will fold to a null pointer, which would certainly not pass an underlying object check (unless p is also null, in which case this would fold trivially anyway). Folding to a null pointer is particularly problematic due to the special handling it receives in many places, making end-to-end miscompiles more likely. Differential Revision: https://reviews.llvm.org/D93820
-
Brad Smith authored
Add initial OpenBSD support. Reviewed By: ldionne Differential Revision: https://reviews.llvm.org/D94205
-
Arthur O'Dwyer authored
Sometimes `_Compare` is an lvalue reference type, so letting it be deduced is pretty much always wrong. (Well, less efficient than it could be, anyway.) Differential Revision: https://reviews.llvm.org/D93562
-
Florian Hahn authored
Tests for D94502.
-
Craig Topper authored
We can use a 0 immediate to avoid needing to materialize 0 into an FPR first. Reviewed By: frasercrmck Differential Revision: https://reviews.llvm.org/D94459
-
Arthur Eubanks authored
Fixes https://bugs.llvm.org/show_bug.cgi?id=48715. Reviewed By: asbirlea Differential Revision: https://reviews.llvm.org/D94448
-
Nathan Ridge authored
Fixes https://github.com/clangd/clangd/issues/633 Differential Revision: https://reviews.llvm.org/D94382
-
Craig Topper authored
[LegalizeDAG][RISCV][PowerPC][AMDGPU][WebAssembly] Improve expansion of SETONE/SETUEQ on targets without SETO/SETUO. If SETO/SETUO aren't legal, they'll be expanded and we'll end up with 3 comparisons. SETONE is equivalent to (SETOGT || SETOLT) so if one of those operations is supported use that expansion. We don't need both since we can commute the operands to make the other. SETUEQ can be implemented with !(SETOGT || SETOLT) or (SETULE && SETUGE). I've only implemented the first because it didn't look like most of the affected targets had legal SETULE/SETUGE. Reviewed By: frasercrmck, tlively, nemanjai Differential Revision: https://reviews.llvm.org/D94450
-
sameeran joshi authored
`CheckNoBranching` is currently handling only illegal branching out for constructs with `Parser::Name` in them. Extend the same for handling illegal branching out caused by `Parser::Label` based statements. This patch could possibly solve one of the issues(typically branching out) mentioned in D92735. Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D93447
-
Dávid Bolvanský authored
define i32 @src(i32 %x, i32 %y) { %0: %xor = xor i32 %y, %x %or = or i32 %y, %x %neg = xor i32 %or, 4294967295 %or1 = or i32 %xor, %neg ret i32 %or1 } => define i32 @tgt(i32 %x, i32 %y) { %0: %and = and i32 %x, %y %neg = xor i32 %and, 4294967295 ret i32 %neg } Transformation seems to be correct! https://alive2.llvm.org/ce/z/Cvca4a -
Dávid Bolvanský authored
-
Michał Górny authored
Remove the hack adding /usr/local paths on FreeBSD and DragonFlyBSD. It does not seem to be necessary today, and it breaks cross builds. Differential Revision: https://reviews.llvm.org/D94491
-
Timm Bäder authored
Currently, projects can check for __has_declspec_attribute() and use it accordingly, but the check for __has_declspec_attribute will return true even if declspec attributes are not enabled for the target. This changes Clang to instead return false when declspec attributes are not supported for the target.
-
Emil Engler authored
Reviewed By: smeenai Differential Revision: https://reviews.llvm.org/D93984
-
Timm Bäder authored
-ansi is documented as being the "same as -std=c89", but there are differences when passing it to a link. Adding -ansi to said group makes sense since it's supposed to be an alias for -std=c89 and resolves this inconsistency.
-
Cullen Rhodes authored
Regenerated using llvm/utils/update_llc_test_checks.py as part of D94504, committing separately to reduce the diff for D94504.
-
Simon Pilgrim authored
-
Akira Hatanaka authored
rdar://66684531
-
Simon Pilgrim authored
Adding missing libcall PLT qualifiers
-
Rahul Joshi authored
[MLIR] Disallow `sym_visibility`, `sym_name` and `type` attributes in the parsed attribute dictionary. Differential Revision: https://reviews.llvm.org/D94200
-
Jinsong Ji authored
Subtarget feature bits are needed to change instprinter's behavior based on feature bits. Most of the other popular targets were updated back in 2015, in https://reviews.llvm.org/rGb46d0234a6969 we should update it too. Reviewed By: sfertile Differential Revision: https://reviews.llvm.org/D94449
-
Lei Zhang authored
This avoids large source files and gives a better structure. It also allows leveraging compilation parallelism. Reviewed By: mravishankar Differential Revision: https://reviews.llvm.org/D94360
-
Marek Kurdej authored
* https://wg21.link/p1048 Reviewed By: ldionne, #libc Differential Revision: https://reviews.llvm.org/D94409
-
Vladislav Vinogradov authored
Add `MLIR_SPIRV_CPU_RUNNER_ENABLED` to `llvm_canonicalize_cmake_booleans`. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D94407
-
Vladislav Vinogradov authored
Add `static` keyword, otherwise build fail with linker error for some cases. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D94496
-
- Jan 12, 2021
-
-
Lei Zhang authored
With this, now we can specify a list of attributes on named ops generated from the spec. The format is defined as ``` attr-id ::= bare-id (`?`)? attr-typedef ::= type (`[` `]`)? attr-def ::= attr-id `:` attr-typedef tc-attr-def ::= `attr` `(` attr-def-list `)` tc-def ::= `def` bare-id `(`tensor-def-list`)` `->` `(` tensor-def-list`)` (tc-attr-def)? ``` For example, ``` ods_def<SomeCppOp> def some_op(...) -> (...) attr( f32_attr: f32, i32_attr: i32, array_attr : f32[], optional_attr? : f32 ) ``` where `?` means optional attribute and `[]` means array type. Reviewed By: hanchung, nicolasvasilache Differential Revision: https://reviews.llvm.org/D94240
-
Nemanja Ivanovic authored
PowerPC cores like e200z759n3 [1] using an efpu2 only support single precision hardware floating point instructions. The single precision instructions efs* and evfs* are identical to the spe float instructions while efd* and evfd* instructions trigger a not implemented exception. This patch introduces a new command line option -mefpu2 which leads to single-hardware / double-software code generation. [1] Core reference: https://www.nxp.com/files-static/32bit/doc/ref_manual/e200z759CRM.pdf Differential revision: https://reviews.llvm.org/D92935
-
Bjorn Pettersson authored
We shouldn't vectorize stores of non-packed types (i.e. types that has padding between consecutive variables in a scalar layout, but being packed in a vector layout). The problem was detected as a miscompile in a downstream test case. This is a pre-commit of a test case for the fix in D94446.
-
Lei Zhang authored
This commit moves dangling ops in the main ops.td file to the proper file matching their categories. This makes ops.td as purely including all category files. Differential Revision: https://reviews.llvm.org/D94413
-
Kazushi (Jam) Marukawa authored
Update comment and style of regression tests for VELIntrinsic Reviewed By: simoll Differential Revision: https://reviews.llvm.org/D94490
-
Bevin Hansson authored
Adapted from D54696 by @nikic. This patch improves lowering of saturating float to int conversions, FP_TO_[SU]INT_SAT, for X86. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D86079
-
Valentin Clement authored
Use TableGen and information in ACC.td for the Default enum in the OpenACC dialect. This patch generalize what was done for OpenMP for directives. Follow up patch after D93576 Reviewed By: kiranchandramohan Differential Revision: https://reviews.llvm.org/D93710
-
Paul C. Anagnostopoulos authored
Add a test for this message. Differential Revision: https://reviews.llvm.org/D94412
-
Nicolas Vasilache authored
This revision uniformizes fusion APIs to allow passing OpOperand, OpResult and adds a finer level of control fusion. Differential Revision: https://reviews.llvm.org/D94493
-
Simon Pilgrim authored
We can't easily treat ASHR a faux shuffle, but if it was just feeding a PACKSS then it was likely being used as sign-extension for a truncation, so just peek through and adjust the mask accordingly.
-