- Jun 28, 2021
-
-
Muhammad Omair Javaid authored
This test is again failing across multiple bots and passing on others there is no reliable way to enable it for some of the bots while disabling for the unsupported ones. Tagging it as unsupported across all types of Arm 32 bit cores.
-
Sushma Unnibhavi authored
Implementation of formal arguments lowering in the IRTranslator for the M68k backend Differential Revision: https://reviews.llvm.org/D104542
-
Muhammad Omair Javaid authored
This test has started passing consistently on 32bit arm where underlying core is reported as Armv7 or Thumbv7. However it still fails intermittently on 32bit AArch32 reported as Armv8l. https://lab.llvm.org/buildbot/#/builders/190/builds/20 https://lab.llvm.org/buildbot/#/builders/170/builds/41
-
David Blaikie authored
-
David Blaikie authored
PR37255: DebugInfo: LTO with -g inlined into -gmlt combined with Split DWARF without CU cross-references A combination of features ^ that lead to a mismatch of expectations about how a subprogram definition DIE would be produced with/without a declaration when taking full -g debug info and inlining it into a -gmlt CU - specifically when using Split DWARF that doesn't support cross-CU references, so we have to put the -g debug info into the -gmlt CU, which gets confusing about which mode is respected. This patch comes down on respecting the CU the debug info is emitted into, rather than preserving the full debug info when it's emitted into the gmlt CU.
-
Craig Topper authored
We use (and (ctpop X), 1) to represent parity. The generated code for i32 parity on RV64 has more instructions than necessary which I hope to improve in a followup patch. Also add missing test for i64 ctpop.
-
Nathan Chancellor authored
After D104475 / D104658, building the Linux kernel with ThinLTO is broken: ld.lld: error: Unknown attribute kind (73) (Producer: 'LLVM13.0.0git' Reader: 'LLVM 13.0.0git') getAttrFromCode() has never handled this attribute so it is written during the ThinLTO phase but it cannot be handled during the linking phase. Add noprofile to getAttrFromCode() so that disassembly works properly. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D104995
-
Nikita Popov authored
Preserve address space when inserting i8* cast.
-
Nikita Popov authored
Preserve address space when generating the cast to i8*.
-
Craig Topper authored
Revert "[RISCV] Use zexti32/sexti32 in srliw/sraiw isel patterns to improve usage of those instructions." I thought this might help with another optimization I was thinking about, but I don't think it will. So it just wastes compile time calling computeKnownBits for no benefit. This reverts commit 81b2f959.
-
- Jun 27, 2021
-
-
Nikita Popov authored
For the start shortening optimization, always use a i8 type for the GEP, as it is a raw offset calculation. Handling of non-i8* memset/memcpy arguments requires insertion of casts. These cases were previously miscompiled, as the offset calculation was performed on the wrong type.
-
Geoffrey Martin-Noble authored
Updates Bazel BUILD files for changes in https://github.com/llvm/llvm-project/commit/0813700de1 Differential Revision: https://reviews.llvm.org/D104990
-
Darwin Xu authored
This is a bug fix of https://bugs.llvm.org/show_bug.cgi?id=50116 Reviewed By: MyDeveloperDay Differential Revision: https://reviews.llvm.org/D104044
-
Nikita Popov authored
Apparently, it is legal to use memcpy/memset with pointer types other than i8*. Prior to 81fcdae6 this case was silently miscompiled, as the i8 offset calculation was performed on some other type. Now it would crash due to a type mismatch. Fix this by inserting an explicit bitcast to i8*.
-
Sanjay Patel authored
This is an extension of the handling for unary intrinsics and follows the logic that we use for binary ops. We don't canonicalize to min/max intrinsics yet, but this might help unlock other folds seen in D98152.
-
Nikita Popov authored
-
Nikita Popov authored
There are remaining redundant bitcasts.
-
Florian Hahn authored
This patch updates VPWidenPHI recipes for first-order recurrences to also track the incoming value from the back-edge. Similar to D99294, which did the same for reductions. Reviewed By: Ayal Differential Revision: https://reviews.llvm.org/D104197
-
Sanjay Patel authored
-
Sanjay Patel authored
This would crash later if we thought the parameters were valid for the standard library call as shown in: https://llvm.org/PR50846
-
Mara Sophie Grosch authored
-
Nico Weber authored
libunwind uses unwind info to find the function address belonging to the current instruction pointer. libunwind/src/CompactUnwinder.hpp's step functions read functionStart for UNWIND_X86_64_MODE_STACK_IND (and for nothing else), so these encodings need a dedicated entry per function, so that the runtime can get the stacksize off the `subq` instrunction in the function's prologue. This matches ld64. (CompactUnwinder.hpp from https://opensource.apple.com/source/libunwind/ also reads functionStart in a few more cases if `SUPPORT_OLD_BINARIES` is set, but it defaults to 0, and ld64 seems to not worry about these additional cases.) Related upstream bug: https://crbug.com/1220175 Differential Revision: https://reviews.llvm.org/D104978
-
Jan Kratochvil authored
D104271 broke buildbots for lld/test/ELF/non-abs-reloc.s .
-
Jan Kratochvil authored
llvm-dwarfdump was silent even when the format of DWARF was invalid and/or llvm-dwarfdump did not understand/support some of the constructs. This can be pretty confusing as llvm-dwarfdump is a tool for DWARF producers+consumers development. Review comments also by @dblaikie. Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D104271
-
Matthias Springer authored
Reduce code duplication: Move various helper functions, that are duplicated in TensorDialect, MemRefDialect, LinalgDialect, StandardDialect, into a new StaticValueUtils.cpp. Differential Revision: https://reviews.llvm.org/D104687
-
Craig Topper authored
Don't allow vectors to split into GPRs for 'r' and other scalar constraints. Prevents assertion in getCopyToPartsVector. Makes PR50907 give a better error instead of crashing.
-
Alexander Shaposhnikov authored
Fix the command line guide for -g/-s/-S. In particular, previously it was incorrectly stating that -S is an alias for --strip-all. Differential revision: https://reviews.llvm.org/D104888
-
Craig Topper authored
We need to mask the immediate to the width of a single vector rather than 2 vectors. If we use the width of 2 vectors then any shift larger than the length of 1 vector is going to overflow the shuffle indices. Fixes PR50895.
-
Ed Maste authored
In FreeBSD 14 the project will deprecate the _p special profiling libraries. Support for -pg (i.e., mcount) still exists but libraries compiled with -pg will not be built by default, so stop linking against them. Reviewed by: Dimitry Andric Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.llvm.org/D104753
-
David Green authored
The MVETRUNC node truncates two wide vectors to a single vector with narrower elements. This is usually lowered to a series of extract/insert elements, going via GPR registers. This patch changes that to instead use a pair of truncating stores and a stack reload. This cuts down the number of instructions at the expense of some stack space. Differential Revision: https://reviews.llvm.org/D104515
-
Matheus Izvekov authored
The feature was implemented in D99005, but we forgot to add the test macro. Reviewed By: Quuxplusone Differential Revision: https://reviews.llvm.org/D104984
-
David Green authored
Currently, when encountering store(trunc(..)) where the trunc is double a legal vector lenth in MVE, we spilt the node into two different stores each performing half of the trunc from the wider type. This works well for efficiently lowering wider than legal types, else the trunc becomes a series of individual lane moves. Unfortunately this splitting is currently one of the first combines attempted, so can happen before any other combines which might be more preferable. This patch instead introduces the concept of a MVETRUNC ISel node that the trunk is initially lowered to, to keep it intact as a single item as opposed to splitting it up. This allows us to push the store(trunc(..)) combine later, allowing other optimisations to potentially happen on the trunc first. The store(trunc(..)) splitting can then be done later in the legalisation period if needed, or else fall back to a buildvector as before. This can also be used in the future to lower to loads/stores, as opposed to the more expensive lane extracts/inserts. Some extra combines are added to keep all the existing tests happy. Differential Revision: https://reviews.llvm.org/D91921
-
Craig Topper authored
-
David Green authored
This adds MVE lowering for VABDS/VABDU, using the code parted from AArch64 in D91937. Differential Revision: https://reviews.llvm.org/D91938
-
David Green authored
This ports the AArch64 SABD and USBD over to DAG Combine, where they can be used by more backends (notably MVE in a follow-up patch). The matching code has changed very little, just to handle legal operations and types differently. It selects from (ABS (SUB (EXTEND a), (EXTEND b))), producing a ubds/abdu which is zexted to the original type. Differential Revision: https://reviews.llvm.org/D91937
-
Nikita Popov authored
-
- Jun 26, 2021
-
-
LLVM GN Syncbot authored
-
mydeveloperday authored
I find as I develop I'm moving between many different languages C++,C#,JavaScript all the time. As I move between the file types I like to keep `clang-format` as my formatting tool of choice. (hence why I initially added C# support in {D58404}) I know those other languages have their own tools but I have to learn them all, and I have to work out how to configure them, and they may or may not have integration into my IDE or my source code integration. I am increasingly finding that I'm editing additional JSON files as part of my daily work and my editor and git commit hooks are just not setup to go and run [[ https://stedolan.github.io/jq/ | jq ]], So I tend to go to [[ https://jsonformatter.curiousconcept.com/ | JSON Formatter ]] and copy and paste back and forth. To get nicely formatted JSON. This is a painful process and I'd like a new one that causes me much less friction. This has come up from time to time: {D10543} https://stackoverflow.com/questions/35856565/clang-format-a-json-file https://bugs.llvm.org/show_bug.cgi?id=18699 I would like to stop having to do that and have formatting JSON as a first class clang-format support `Language` (even if it has minimal style settings at present). This revision adds support for formatting JSON using the inbuilt JSON serialization library of LLVM, With limited control at present only over the indentation level This adds an additional Language into the .clang-format file to separate the settings from your other supported languages. Reviewed By: HazardyKnusperkeks Differential Revision: https://reviews.llvm.org/D93528 -
mydeveloperday authored
https://bugs.llvm.org/show_bug.cgi?id=50702 I believe {D44609} may be too aggressive with brace wrapping rules which doesn't always apply to Lamdbas The introduction of BeforeLambdaBody and AllowShortLambdasOnASingleLine has impact on brace handling on other block types, which I suspect we didn't see before as people may not be using the BeforeLambdaBody style From what I can tell this can be seen by the unit test I change as its not honouring the orginal LLVM brace wrapping style for the `Fct()` function I added a unit test from PR50702 and have removed some of the code (which has zero impact on the unit test, which kind of suggests its unnecessary), some additional attempt has been made to try and ensure we'll only break on what is actually a LamdbaLBrace Reviewed By: HazardyKnusperkeks Differential Revision: https://reviews.llvm.org/D104222
-
mydeveloperday authored
https://bugs.llvm.org/show_bug.cgi?id=50525 AlignConsecutiveAssignments/Declarations cause incorrect alignment in the presence of a DesignatedInitializerPeriod (https://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html) ``` static NTSTATUS stg(PLW_STREAM Stream, int identity) { NTSTATUS status; BYTE payload[256] = {'l', 'h', 'o', 't', 's', 'e'}; struct dm_rpc_header header = {.drh_magic = DRH_MAGIC, .drh_op_code = RPC_OP_ECHO, .drh_payload_size = sizeof(payload), .drh_body_size = sizeof(payload), .drh_request_id = 1}; header.drh_version = identity; ``` This fix addresses that by ensuring the period isn't ignored Reviewed By: HazardyKnusperkeks Differential Revision: https://reviews.llvm.org/D104900
-