- Jun 09, 2020
-
-
Adam Balogh authored
Retrieving the parameter location of functions was disabled because it may causes crashes due to the fact that functions may have multiple declarations and without definition it is difficult to ensure that always the same declration is used. Now parameters are stored in `ParamRegions` which are independent of the declaration of the function, therefore the same parameters always have the same regions, independently of the function declaration used actually. This allows us to remove the limitation described above. Differential Revision: https://reviews.llvm.org/D80286
-
Adam Balogh authored
Currently, parameters of functions without their definition present cannot be represented as regions because it would be difficult to ensure that the same declaration is used in every case. To overcome this, we split `VarRegion` to two subclasses: `NonParamVarRegion` and `ParamVarRegion`. The latter does not store the `Decl` of the parameter variable. Instead it stores the index of the parameter which enables retrieving the actual `Decl` every time using the function declaration of the stack frame. To achieve this we also removed storing of `Decl` from `DeclRegion` and made `getDecl()` pure virtual. The individual `Decl`s are stored in the appropriate subclasses, such as `FieldRegion`, `ObjCIvarRegion` and the newly introduced `NonParamVarRegion`. Differential Revision: https://reviews.llvm.org/D80522
-
Adam Balogh authored
Checkers should be able to get the return value under construction for a `CallEvenet`. This patch adds a function to achieve this which retrieves the return value from the construction context of the call. Differential Revision: https://reviews.llvm.org/D80366
-
Pavel Labath authored
The code is correct without these default values, but it is freaking the compiler out.
-
Abbas Sabra authored
Summary: LoopWidening is invalidating references coming from type aliases which lead to a crash. Patch by Abbas Sabra! Differential Revision: https://reviews.llvm.org/D80669
-
Jonathan Coe authored
Reviewers: krasimir, MyDeveloperDay Reviewed By: krasimir Subscribers: cfe-commits Tags: #clang-format, #clang Differential Revision: https://reviews.llvm.org/D81394
-
Florian Hahn authored
This patch add __builtin_matrix_transpose to Clang, as described in clang/docs/MatrixTypes.rst. Reviewers: rjmccall, jfb, rsmith, Bigcheese Reviewed By: rjmccall Differential Revision: https://reviews.llvm.org/D72778
-
Cullen Rhodes authored
Summary: In the parsing of BTIHint, PSBHint and Prefetch the identifier token should be lexed after creating the operand, otherwise the StringRef is moved before being copied and the debug output is incorrect. Prefetch example: $ echo "prfm pldl1keep, [x2]" | ./bin/llvm-mc \ -triple aarch64-none-linux-gnu -show-encoding -debug Before: Matching formal operand class MCK_Prefetch against actual operand at index 1 (<prfop ,>): match success using generic matcher After: Matching formal operand class MCK_Prefetch against actual operand at index 1 (<prfop pldl1keep>): match success using generic matcher Reviewed By: david-arm Differential Revision: https://reviews.llvm.org/D80620
-
James Henderson authored
Previously, if an extended opcode was truncated, it would manifest as an "unexpected line op length error" which wasn't quite accurate. This change checks for errors any time data is read whilst parsing an extended opcode, and reports any errors detected. Reviewed by: MaskRay, labath, aprantl Differential Revision: https://reviews.llvm.org/D80797
-
Guillaume Chatelet authored
-
Cullen Rhodes authored
Summary: This patch adds initial support for the following instrinsics: * llvm.aarch64.sve.ld2 * llvm.aarch64.sve.ld3 * llvm.aarch64.sve.ld4 For loading two, three and four vectors worth of data. Basic codegen is implemented with reg+reg and reg+imm addressing modes being addressed in a later patch. The types returned by these intrinsics have a number of elements that is a multiple of the elements in a 128-bit vector for a given type and N, where N is the number of vectors being loaded, i.e. 2, 3 or 4. Thus, for 32-bit elements the types are: LD2 : <vscale x 8 x i32> LD3 : <vscale x 12 x i32> LD4 : <vscale x 16 x i32> This is implemented with target-specific intrinsics for each variant that take the same operands as the IR intrinsic but return N values, where the type of each value is a full vector, i.e. <vscale x 4 x i32> in the above example. These values are then concatenated using the standard concat_vector intrinsic to maintain type legality with the IR. These intrinsics are intended for use in the Arm C Language Extension (ACLE). Reviewed By: sdesmalen Differential Revision: https://reviews.llvm.org/D75751
-
Kazushi (Jam) Marukawa authored
Summary: Add regression tests of asmparser, mccodeemitter, and disassembler for transfer control instructions. Add FENCEI/FENCEM/FENCEC/SVOB instructions also. Add new instruction format to represent FENCE* instructions too. Differential Revision: https://reviews.llvm.org/D81440
-
hsmahesha authored
Summary: Make use of both the - (1) clustered bytes and (2) cluster length, to decide on the max number of mem ops that can be clustered. On an average, when loads are dword or smaller, consider `5` as max threshold, otherwise `4`. This heuristic is purely based on different experimentation conducted, and there is no analytical logic here. Reviewers: foad, rampitec, arsenm, vpykhtin Reviewed By: foad, rampitec Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, Anastasia, t-tye, hiraditya, kerbowa, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D81085
-
Kazushi (Jam) Marukawa authored
Summary: Support NND instruction of Aurora VE. Add hasAndNot function also for optimization. Differential Revision: https://reviews.llvm.org/D81383
-
Simon Wallis authored
Summary: Remove an old test for an explicit return in a naked function from test/CodeGen/AVR/return.ll clang no longer allows a C return in a naked function. This test is causing failure of the patch https://reviews.llvm.org/D80715 Reviewers: llvm-commits, dylanmckay Reviewed By: dylanmckay Subscribers: Jim Tags: #llvm Differential Revision: https://reviews.llvm.org/D81099 Change-Id: Id218027e520247ae480b92e7801a660fbe0cf29b
-
Guillaume Chatelet authored
-
Sameer Sahasrabuddhe authored
Reviewed By: nhaehnle Differential Revision: https://reviews.llvm.org/D81211
-
Kang Zhang authored
Summary: Currently, MachineVerifier will attempt to verify that tied operands satisfy register constraints as soon as the function is no longer in SSA form. However, PHIElimination will take the function out of SSA form while TwoAddressInstructionPass will actually rewrite tied operands to match the constraints. PHIElimination runs first in the pipeline. Therefore, whenever the MachineVerifier is run after PHIElimination, it will encounter verification errors on any tied operands. This patch adds a function property called TiedOpsRewritten that will be set by TwoAddressInstructionPass and will control when the verifier checks tied operands. Reviewed By: nemanjai Differential Revision: https://reviews.llvm.org/D80538
-
Kristof Beyls authored
Tests relying on some of these fixes will be added for this in follow-on patches that introduce new features that require these properties to be correct. Differential Revision: https://reviews.llvm.org/D81399
-
David Sherwood authored
In two instances of CreateStackTemporary we are sometimes promoting alignments beyond the stack alignment. I have introduced a new function called getReducedAlign that will return the alignment for the broken down parts of illegal vector types. For example, on NEON a <32 x i8> type is made up of two <16 x i8> types - in this case the sensible alignment is 16 bytes, not 32. In the legalization code wherever we create stack temporaries I have started using the reduced alignments instead for illegal vector types. I added a test to CodeGen/AArch64/build-one-lane.ll that tries to insert an element into an illegal fixed vector type that involves creating a temporary stack object. Differential Revision: https://reviews.llvm.org/D80370
-
Sam Parker authored
Add cases for icmp, fcmp and select into the switch statement of the generic getUserCost implementation with getInstructionThroughput then calling into it. The BasicTTI and backend implementations have be set to return a default value (1) when a cost other than throughput is being queried. Differential Revision: https://reviews.llvm.org/D80550
-
David Sherwood authored
The code for trying to split up stores is designed for NEON vectors, where we support arbitrary alignments. It's an optimisation designed to improve performance by using smaller, aligned stores. However, we currently only support 16 byte alignments for SVE vectors anyway so we may as well bail out early. This change fixes up remaining warnings in a couple of tests: CodeGen/AArch64/sve-callbyref-notailcall.ll CodeGen/AArch64/sve-calling-convention-byref.ll Differential Revision: https://reviews.llvm.org/D80720
-
Stanislav Mekhanoshin authored
Differential Revision: https://reviews.llvm.org/D81430
-
Craig Topper authored
I think we're using an inefficient CMP encoding for absolute symbols that would fit in an 8-bit value. This is a pattern priority issue in isel.
-
Siva Chandra Reddy authored
They were likely missed while rebasing.
-
Siva Chandra Reddy authored
A new LLVM libc specific extension standard spec has been added.
-
Kang Zhang authored
Summary: We have handle the InstAlias for OR instructions, but we handle it agagin in PPCInstPrinter.cpp. This patch is to Remove the redundant InstAlias for OR instruction. Reviewed By: steven.zhang Differential Revision: https://reviews.llvm.org/D80502
-
Saleem Abdulrasool authored
Add the explicit `-arch x86_64` to the invocation.
-
Chen Zheng authored
differentiate getBitsSetWithWrap & getBitsSet when loBit == hiBit getBitsSetWithWrap sets all bits; getBitsSet does nothing. Reviewed By: lkail, RKSimon, lebedev.ri Differential Revision: https://reviews.llvm.org/D81325
-
Anil Mahmud authored
The previous implementation used "asm parser only" pseudo-instructions in their output patterns. Those are not meant to emit code and will caused crashes when built with -filetype=obj. Differential Revision: https://reviews.llvm.org/D80151
-
Anil Mahmud authored
The function emitRLDICWhenLoweringJumpTables in PPCMIPeephole.cpp was supposed to convert a pair of RLDICL and RLDICR to a single RLDIC, but it was leaving out the RLDICL instruction. This PR fixes the bug. Differential Revision: https://reviews.llvm.org/D78063
-
Stefan Pintilie authored
Fix the incorrect PC Relative relocations for Big Endian for 34 bit offsets. The offset should be zero for both BE and LE in this situation. Differential Revision: https://reviews.llvm.org/D81033
-
Matt Arsenault authored
The original author isn't active, and I've made most of the commits to it.
-
Saleem Abdulrasool authored
Add support to lld to use Text Based API stubs for linking. This is support is incomplete not filtering out platforms. It also does not account for architecture specific API handling and potentially does not correctly handle trees of re-exports with inlined libraries being treated as direct children of the top level library.
-
Jacques Pienaar authored
Summary: UnrankedMemRefType doesn't have a rank but previously this was just checking for unranked tensor. Avoids failure later if one queries the shape post checking if ranked. Differential Revision: https://reviews.llvm.org/D81441
-
Jian Cai authored
Summary: This patch adds support of using the result of an expression as an immediate value. For example, 0: .skip 4 1: mov x0, 1b - 0b is assembled to mov x0, #4 Currently it does not support expressions requiring relocation unless explicitly specified. This fixes PR#45781. Reviewers: peter.smith, ostannard, efriedma Reviewed By: efriedma Subscribers: nickdesaulniers, llozano, manojgupta, efriedma, ostannard, kristof.beyls, hiraditya, danielkiss, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D80028
-
dfukalov authored
Reviewers: rampitec Reviewed By: rampitec Subscribers: arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, kerbowa, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D81260
-
Siva Chandra Reddy authored
-
Eli Friedman authored
This reverts commit 2ba016cd. This is causing a failure on the clang-cmake-armv7-full bot, and there are outstanding review comments.
-
Petr Hosek authored
This was accidentally omitted in 603d58b5 leading to a test failure on some of the bots that don't use lld as the default linker.
-