Revision tags: llvmorg-7.0.0, llvmorg-7.0.0-rc3, llvmorg-7.0.0-rc2, llvmorg-7.0.0-rc1 |
|
#
fdd089aa |
| 26-Jul-2018 |
Amara Emerson <aemerson@apple.com> |
[GlobalISel] Fall back to SDISel for swifterror/swiftself attributes.
We don't currently support these, fall back until we do.
llvm-svn: 337994
|
Revision tags: llvmorg-6.0.1, llvmorg-6.0.1-rc3, llvmorg-6.0.1-rc2, llvmorg-6.0.1-rc1, llvmorg-5.0.2, llvmorg-5.0.2-rc2, llvmorg-5.0.2-rc1, llvmorg-6.0.0, llvmorg-6.0.0-rc3, llvmorg-6.0.0-rc2, llvmorg-6.0.0-rc1 |
|
#
f1caa283 |
| 15-Dec-2017 |
Matthias Braun <matze@braunis.de> |
MachineFunction: Return reference from getFunction(); NFC
The Function can never be nullptr so we can return a reference.
llvm-svn: 320884
|
Revision tags: llvmorg-5.0.1, llvmorg-5.0.1-rc3, llvmorg-5.0.1-rc2 |
|
#
b3bde2ea |
| 17-Nov-2017 |
David Blaikie <dblaikie@gmail.com> |
Fix a bunch more layering of CodeGen headers that are in Target
All these headers already depend on CodeGen headers so moving them into CodeGen fixes the layering (since CodeGen depends on Target, n
Fix a bunch more layering of CodeGen headers that are in Target
All these headers already depend on CodeGen headers so moving them into CodeGen fixes the layering (since CodeGen depends on Target, not the other way around).
llvm-svn: 318490
show more ...
|
Revision tags: llvmorg-5.0.1-rc1 |
|
#
c3bfc81a |
| 09-Oct-2017 |
Aditya Nandakumar <aditya_nandakumar@apple.com> |
[GISel]: Fix generation of illegal COPYs during CallLowering
We end up creating COPY's that are either truncating/extending and this should be illegal.
https://reviews.llvm.org/D37640
Patch for X8
[GISel]: Fix generation of illegal COPYs during CallLowering
We end up creating COPY's that are either truncating/extending and this should be illegal.
https://reviews.llvm.org/D37640
Patch for X86 and ARM by igorb, rovka
llvm-svn: 315240
show more ...
|
Revision tags: llvmorg-5.0.0, llvmorg-5.0.0-rc5, llvmorg-5.0.0-rc4, llvmorg-5.0.0-rc3, llvmorg-5.0.0-rc2, llvmorg-5.0.0-rc1, llvmorg-4.0.1, llvmorg-4.0.1-rc3, llvmorg-4.0.1-rc2 |
|
#
a0b45f4b |
| 03-May-2017 |
Reid Kleckner <rnk@google.com> |
[IR] Abstract away ArgNo+1 attribute indexing as much as possible
Summary: Do three things to help with that: - Add AttributeList::FirstArgIndex, which is an enumerator currently set to 1. It allo
[IR] Abstract away ArgNo+1 attribute indexing as much as possible
Summary: Do three things to help with that: - Add AttributeList::FirstArgIndex, which is an enumerator currently set to 1. It allows us to change the indexing scheme with fewer changes. - Add addParamAttr/removeParamAttr. This just shortens addAttribute call sites that would otherwise need to spell out FirstArgIndex. - Remove some attribute-specific getters and setters from Function that take attribute list indices. Most of these were only used from BuildLibCalls, and doesNotAlias was only used to test or set if the return value is malloc-like.
I'm happy to split the patch, but I think they are probably easier to review when taken together.
This patch should be NFC, but it sets the stage to change the indexing scheme to this, which is more convenient when indexing into an array: 0: func attrs 1: retattrs 2...: arg attrs
Reviewers: chandlerc, pete, javed.absar
Subscribers: david2050, llvm-commits
Differential Revision: https://reviews.llvm.org/D32811
llvm-svn: 302060
show more ...
|
#
ee4930b6 |
| 02-May-2017 |
Reid Kleckner <rnk@google.com> |
Re-land r301697 "[IR] Make add/remove Attributes use AttrBuilder instead of AttributeList"
This time, I fixed, built, and tested clang.
This reverts r301712.
llvm-svn: 301981
|
#
0f88d863 |
| 28-Apr-2017 |
Hans Wennborg <hans@hanshq.net> |
Revert r301697 "[IR] Make add/remove Attributes use AttrBuilder instead of AttributeList"
This broke the Clang build. (Clang-side patch missing?)
Original commit message:
> [IR] Make add/remove At
Revert r301697 "[IR] Make add/remove Attributes use AttrBuilder instead of AttributeList"
This broke the Clang build. (Clang-side patch missing?)
Original commit message:
> [IR] Make add/remove Attributes use AttrBuilder instead of > AttributeList > > This change cleans up call sites and avoids creating temporary > AttributeList objects. > > NFC
llvm-svn: 301712
show more ...
|
#
608c8b63 |
| 28-Apr-2017 |
Reid Kleckner <rnk@google.com> |
[IR] Make add/remove Attributes use AttrBuilder instead of AttributeList
This change cleans up call sites and avoids creating temporary AttributeList objects.
NFC
llvm-svn: 301697
|
#
859f8b54 |
| 28-Apr-2017 |
Reid Kleckner <rnk@google.com> |
Make getParamAlignment use argument numbers
The method is called "get *Param* Alignment", and is only used for return values exactly once, so it should take argument indices, not attribute indices.
Make getParamAlignment use argument numbers
The method is called "get *Param* Alignment", and is only used for return values exactly once, so it should take argument indices, not attribute indices.
Avoids confusing code like: IsSwiftError = CS->paramHasAttr(ArgIdx, Attribute::SwiftError); Alignment = CS->getParamAlignment(ArgIdx + 1);
Add getRetAlignment to handle the one case in Value.cpp that wants the return value alignment.
This is a potentially breaking change for out-of-tree backends that do their own call lowering.
llvm-svn: 301682
show more ...
|
Revision tags: llvmorg-4.0.1-rc1 |
|
#
b518054b |
| 21-Mar-2017 |
Reid Kleckner <rnk@google.com> |
Rename AttributeSet to AttributeList
Summary: This class is a list of AttributeSetNodes corresponding the function prototype of a call or function declaration. This class used to be called ParamAttr
Rename AttributeSet to AttributeList
Summary: This class is a list of AttributeSetNodes corresponding the function prototype of a call or function declaration. This class used to be called ParamAttrListPtr, then AttrListPtr, then AttributeSet. It is typically accessed by parameter and return value index, so "AttributeList" seems like a more intuitive name.
Rename AttributeSetImpl to AttributeListImpl to follow suit.
It's useful to rename this class so that we can rename AttributeSetNode to AttributeSet later. AttributeSet is the set of attributes that apply to a single function, argument, or return value.
Reviewers: sanjoy, javed.absar, chandlerc, pete
Reviewed By: pete
Subscribers: pete, jholewinski, arsenm, dschuff, mehdi_amini, jfb, nhaehnle, sbc100, void, llvm-commits
Differential Revision: https://reviews.llvm.org/D31102
llvm-svn: 298393
show more ...
|
#
d79253a9 |
| 20-Mar-2017 |
Diana Picus <diana.picus@linaro.org> |
[GlobalISel] Use the correct calling conv for calls
This commit adds a parameter that lets us pass in the calling convention of the call to CallLowering::lowerCall. This allows us to handle situatio
[GlobalISel] Use the correct calling conv for calls
This commit adds a parameter that lets us pass in the calling convention of the call to CallLowering::lowerCall. This allows us to handle situations where the calling convetion of the callee is different from that of the caller.
Differential Revision: https://reviews.llvm.org/D31039
llvm-svn: 298254
show more ...
|
#
d22b84b9 |
| 10-Mar-2017 |
Ahmed Bougacha <ahmed.bougacha@gmail.com> |
[GlobalISel] Use ImmutableCallSite instead of templates. NFC.
ImmutableCallSite abstracts away CallInst and InvokeInst. Use it!
llvm-svn: 297426
|
Revision tags: llvmorg-4.0.0, llvmorg-4.0.0-rc4, llvmorg-4.0.0-rc3 |
|
#
ca6a890d |
| 16-Feb-2017 |
Diana Picus <diana.picus@linaro.org> |
[ARM] GlobalISel: Lower double precision FP args
For the hard float calling convention, we just use the D registers.
For the soft-fp calling convention, we use the R registers and move values to/fr
[ARM] GlobalISel: Lower double precision FP args
For the hard float calling convention, we just use the D registers.
For the soft-fp calling convention, we use the R registers and move values to/from the D registers by means of G_SEQUENCE/G_EXTRACT. While doing so, we make sure to honor the endianness of the target, since the CCAssignFn doesn't do that for us.
For pure soft float targets, we still bail out because we don't support the libcalls yet.
llvm-svn: 295295
show more ...
|
Revision tags: llvmorg-4.0.0-rc2 |
|
#
293f7435 |
| 31-Jan-2017 |
Tim Northover <tnorthover@apple.com> |
GlobalISel: merge invoke and call translation paths.
Well, sort of. But the lower-level code that invoke used to be using completely botched the handling of varargs functions, which hopefully won't
GlobalISel: merge invoke and call translation paths.
Well, sort of. But the lower-level code that invoke used to be using completely botched the handling of varargs functions, which hopefully won't be possible if they're using the same code.
llvm-svn: 293670
show more ...
|
Revision tags: llvmorg-4.0.0-rc1 |
|
#
d9433542 |
| 17-Jan-2017 |
Tim Northover <tnorthover@apple.com> |
GlobalISel: correctly handle varargs
Some platforms (notably iOS) use a different calling convention for unnamed vs named parameters in varargs functions, so we need to keep track of this informatio
GlobalISel: correctly handle varargs
Some platforms (notably iOS) use a different calling convention for unnamed vs named parameters in varargs functions, so we need to keep track of this information when translating calls.
Since not many platforms are involved, the guts of the special handling is in the ValueHandler class (with a generic implementation that should work for most targets).
llvm-svn: 292283
show more ...
|
#
2d9adbf5 |
| 13-Dec-2016 |
Diana Picus <diana.picus@linaro.org> |
[GlobalISel] Move extendRegister where it belongs. NFCI
Apparently I missed this one when I moved ValueHandler back in r288658. Sorry!
llvm-svn: 289528
|
#
14ceb45f |
| 06-Dec-2016 |
Tim Northover <tnorthover@apple.com> |
GlobalISel: correctly handle small args via memory.
We were rounding size in bits down rather than up, leading to 0-sized slots for i1 (assert!) and bugs for other types not byte-aligned.
llvm-svn:
GlobalISel: correctly handle small args via memory.
We were rounding size in bits down rather than up, leading to 0-sized slots for i1 (assert!) and bugs for other types not byte-aligned.
llvm-svn: 288848
show more ...
|
Revision tags: llvmorg-3.9.1, llvmorg-3.9.1-rc3 |
|
#
c0bd197c |
| 05-Dec-2016 |
Tim Northover <tnorthover@apple.com> |
GlobalISel: handle pointer arguments that get assigned to the stack.
llvm-svn: 288717
|
#
f11f042e |
| 05-Dec-2016 |
Diana Picus <diana.picus@linaro.org> |
[GlobalISel] Extract handleAssignments out of AArch64CallLowering
This function seems target-independent so far: all the target-specific behaviour is isolated in the CCAssignFn and the ValueHandler
[GlobalISel] Extract handleAssignments out of AArch64CallLowering
This function seems target-independent so far: all the target-specific behaviour is isolated in the CCAssignFn and the ValueHandler (which we're also extracting into the generic CallLowering).
The intention is to use this in the ARM backend.
Differential Revision: https://reviews.llvm.org/D27045
llvm-svn: 288658
show more ...
|
Revision tags: llvmorg-3.9.1-rc2, llvmorg-3.9.1-rc1 |
|
#
9a467183 |
| 21-Sep-2016 |
Tim Northover <tnorthover@apple.com> |
GlobalISel: produce correct code for signext/zeroext ABI flags.
We still don't really have an equivalent of "AssertXExt" in DAG, so we don't exploit the guarantees on the receiving side yet, but thi
GlobalISel: produce correct code for signext/zeroext ABI flags.
We still don't really have an equivalent of "AssertXExt" in DAG, so we don't exploit the guarantees on the receiving side yet, but this should produce conservatively correct code on iOS ABIs.
llvm-svn: 282069
show more ...
|
#
b18ea162 |
| 20-Sep-2016 |
Tim Northover <tnorthover@apple.com> |
GlobalISel: split aggregates for PCS lowering
This should match the existing behaviour for passing complicated struct and array types, in particular HFAs come through like that from Clang.
For C &
GlobalISel: split aggregates for PCS lowering
This should match the existing behaviour for passing complicated struct and array types, in particular HFAs come through like that from Clang.
For C & C++ we still need to somehow support all the weird ABI flags, or at least those that are present in the IR (signext, byval, ...), and stack-based parameter passing.
llvm-svn: 281977
show more ...
|
#
11a23546 |
| 31-Aug-2016 |
Tim Northover <tnorthover@apple.com> |
GlobalISel: use G_TYPE to annotate physregs with a type.
More preparation for dropping source types from MachineInstrs: regsters coming out of already-selected code (i.e. non-generic instructions) d
GlobalISel: use G_TYPE to annotate physregs with a type.
More preparation for dropping source types from MachineInstrs: regsters coming out of already-selected code (i.e. non-generic instructions) don't have a type, but that information is needed so we must add it manually.
This is done via a new G_TYPE instruction.
llvm-svn: 280292
show more ...
|
#
fe5f89ba |
| 29-Aug-2016 |
Tim Northover <tnorthover@apple.com> |
GlobalISel: rework CallLowering so that it can be used for libcalls too.
There should be no functional change here, I'm just making the implementation of "frem" (to libcall) legalization easier for
GlobalISel: rework CallLowering so that it can be used for libcalls too.
There should be no functional change here, I'm just making the implementation of "frem" (to libcall) legalization easier for a followup.
llvm-svn: 279987
show more ...
|