|
Revision tags: llvmorg-3.9.0, llvmorg-3.9.0-rc3, llvmorg-3.9.0-rc2, llvmorg-3.9.0-rc1 |
|
| #
cffc0d20 |
| 20-Jul-2016 |
Tim Northover <[email protected]> |
GlobalISel: Remove explicit enumerator values from .def file.
They were all auto-incremented from 0 anyway, and I'm getting really annoying conflicts and runtime failures when different people add m
GlobalISel: Remove explicit enumerator values from .def file.
They were all auto-incremented from 0 anyway, and I'm getting really annoying conflicts and runtime failures when different people add more for GlobalISel (and even when I'm refactoring my own patches).
NFC.
llvm-svn: 276204
show more ...
|
| #
92a8c611 |
| 15-Jul-2016 |
Justin Bogner <[email protected]> |
IR: Sort generic intrinsics before target specific ones
This splits out the intrinsic table such that generic intrinsics come first and target specific intrinsics are grouped by target. From here we
IR: Sort generic intrinsics before target specific ones
This splits out the intrinsic table such that generic intrinsics come first and target specific intrinsics are grouped by target. From here we can find out which target an intrinsic is for or differentiate between generic and target intrinsics.
The motivation here is to make it easier to move target specific intrinsic handling out of generic code.
llvm-svn: 275575
show more ...
|
| #
1e641615 |
| 14-Jul-2016 |
Justin Bogner <[email protected]> |
TableGen: Fix a confusing use of both i and I as variables. NFC
llvm-svn: 275450
|
| #
47646c09 |
| 11-Jul-2016 |
Hal Finkel <[email protected]> |
Add a 'Returned' intrinsic property corresponding to the 'returned' argument attribute
This will be used by the upcoming llvm.noalias intrinsic.
Differential Revision: http://reviews.llvm.org/D2220
Add a 'Returned' intrinsic property corresponding to the 'returned' argument attribute
This will be used by the upcoming llvm.noalias intrinsic.
Differential Revision: http://reviews.llvm.org/D22201
llvm-svn: 275034
show more ...
|
| #
84c9f991 |
| 04-Jul-2016 |
Nicolai Haehnle <[email protected]> |
Add writeonly IR attribute
Summary: This complements the earlier addition of IntrWriteMem and IntrWriteArgMem LLVM intrinsic properties, see D18291.
Also start using the attribute for memset, memcp
Add writeonly IR attribute
Summary: This complements the earlier addition of IntrWriteMem and IntrWriteArgMem LLVM intrinsic properties, see D18291.
Also start using the attribute for memset, memcpy, and memmove intrinsics, and remove their special-casing in BasicAliasAnalysis.
Reviewers: reames, joker.eph
Subscribers: joker.eph, llvm-commits
Differential Revision: http://reviews.llvm.org/D18714
llvm-svn: 274485
show more ...
|
|
Revision tags: llvmorg-3.8.1, llvmorg-3.8.1-rc1 |
|
| #
4fb996e8 |
| 25-May-2016 |
Matt Arsenault <[email protected]> |
TableGen: Use StringRef instead of std::string
llvm-svn: 270741
|
| #
97788020 |
| 21-Apr-2016 |
Nicolai Haehnle <[email protected]> |
Split IntrReadArgMem into IntrReadMem and IntrArgMemOnly
Summary: IntrReadWriteArgMem simply becomes IntrArgMemOnly.
So there are fewer intrinsic properties that express their orthogonality better,
Split IntrReadArgMem into IntrReadMem and IntrArgMemOnly
Summary: IntrReadWriteArgMem simply becomes IntrArgMemOnly.
So there are fewer intrinsic properties that express their orthogonality better, and correspond more closely to the corresponding IR attributes.
Suggested by: Philip Reames
Reviewers: joker.eph, reames, tstellarAMD
Subscribers: jholewinski, arsenm, llvm-commits
Differential Revision: http://reviews.llvm.org/D19291
llvm-svn: 267021
show more ...
|
| #
b48275f1 |
| 19-Apr-2016 |
Nicolai Haehnle <[email protected]> |
Add IntrWrite[Arg]Mem intrinsic property
Summary: This property is used to mark an intrinsic that only writes to memory, but neither reads from memory nor has other side effects.
An example where t
Add IntrWrite[Arg]Mem intrinsic property
Summary: This property is used to mark an intrinsic that only writes to memory, but neither reads from memory nor has other side effects.
An example where this is useful is the llvm.amdgcn.buffer.store.format.* intrinsic, which corresponds to a store instruction that goes through a special buffer descriptor rather than through a plain pointer.
With this property, the intrinsic should still be handled as having side effects at the LLVM IR level, but machine scheduling can make smarter decisions.
Reviewers: tstellarAMD, arsenm, joker.eph, reames
Subscribers: arsenm, llvm-commits
Differential Revision: http://reviews.llvm.org/D18291
llvm-svn: 266826
show more ...
|
| #
9154b88c |
| 12-Apr-2016 |
Junmo Park <[email protected]> |
Minor code cleanup. NFC.
llvm-svn: 266045
|
|
Revision tags: llvmorg-3.8.0, llvmorg-3.8.0-rc3 |
|
| #
f6d32496 |
| 10-Feb-2016 |
Matt Arsenault <[email protected]> |
SelectionDAG: Make Properties a field of SDPatternOperator
Currently you can't specify node properties like commutativity on a PatFrag. If you want to create a PatFrag on a commutative node with a h
SelectionDAG: Make Properties a field of SDPatternOperator
Currently you can't specify node properties like commutativity on a PatFrag. If you want to create a PatFrag on a commutative node with a hasOneUse predicate, this enables you to specify that the PatFrag is also commutable.
llvm-svn: 260404
show more ...
|
| #
f24d409d |
| 03-Feb-2016 |
David L Kreitzer <[email protected]> |
Unify the target opcode enum in TargetOpcodes.h and the FixedInstrs array in CodeGenTarget.cpp to avoid the ordering dependence. NFCI.
Differential Revision: http://reviews.llvm.org/D16826
llvm-svn
Unify the target opcode enum in TargetOpcodes.h and the FixedInstrs array in CodeGenTarget.cpp to avoid the ordering dependence. NFCI.
Differential Revision: http://reviews.llvm.org/D16826
llvm-svn: 259726
show more ...
|
| #
45b6159e |
| 03-Feb-2016 |
Reid Kleckner <[email protected]> |
Minor performance tweaks to llvm-tblgen (and a few that might be a good idea)
Summary: This patch adds a reserve call to an expensive function (`llvm::LoadIntrinsics`), and may fix a few other low h
Minor performance tweaks to llvm-tblgen (and a few that might be a good idea)
Summary: This patch adds a reserve call to an expensive function (`llvm::LoadIntrinsics`), and may fix a few other low hanging performance fruit (I've put them in comments for now, so we can discuss).
**Motivation:**
As I'm sure other developers do, when I build LLVM, I build the entire project with the same config (`Debug`, `MinSizeRel`, `Release`, or `RelWithDebInfo`). However, the `Debug` config also builds llvm-tblgen in `Debug` mode. Later build steps that run llvm-tblgen then can actually be the slowest steps in the entire build. Nobody likes slow builds.
Reviewers: rnk, dblaikie
Differential Revision: http://reviews.llvm.org/D16832
Patch by Alexander G. Riccio
llvm-svn: 259683
show more ...
|
|
Revision tags: llvmorg-3.8.0-rc2 |
|
| #
86ff2689 |
| 26-Jan-2016 |
Reid Kleckner <[email protected]> |
Sort intrinsics by LLVM intrinsic name, rather than tablegen def name
Step one towards using a simple binary search to lookup intrinsic IDs instead of our crazy table generated switch+memcmp+startsw
Sort intrinsics by LLVM intrinsic name, rather than tablegen def name
Step one towards using a simple binary search to lookup intrinsic IDs instead of our crazy table generated switch+memcmp+startswith code that makes Function.cpp take about a minute to compile. See PR24785 and PR11951 for why we should do this.
The X86 backend contains tables that need to be sorted on intrinsic ID, so reorder those.
llvm-svn: 258757
show more ...
|
| #
2d7fa706 |
| 20-Jan-2016 |
Quentin Colombet <[email protected]> |
[GlobalISel] Add a generic machine opcode for ADD. The selection process being split into separate passes, we need generic opcodes to translate the LLVM IR to target independent code.
This patch add
[GlobalISel] Add a generic machine opcode for ADD. The selection process being split into separate passes, we need generic opcodes to translate the LLVM IR to target independent code.
This patch adds an opcode for addition: G_ADD.
Differential Revision: http://reviews.llvm.org/D15472
llvm-svn: 258333
show more ...
|
|
Revision tags: llvmorg-3.8.0-rc1 |
|
| #
8cc904d6 |
| 17-Jan-2016 |
Craig Topper <[email protected]> |
[TableGen] Replace instructions() with getInstructionsByEnumValue(). No need to make an iterator_range when we already have a function that returns an ArrayRef. NFC
llvm-svn: 258019
|
|
Revision tags: llvmorg-3.7.1 |
|
| #
47c1baeb |
| 24-Nov-2015 |
Krzysztof Parzyszek <[email protected]> |
Add names for the new vector types in CodeGenTarget.cpp
llvm-svn: 253989
|
| #
d324d751 |
| 24-Nov-2015 |
Craig Topper <[email protected]> |
Revert change that accidentally snuck into r253955.
llvm-svn: 253956
|
| #
03041880 |
| 24-Nov-2015 |
Craig Topper <[email protected]> |
[TableGen] Use array_pod_sort. NFC
llvm-svn: 253955
|
|
Revision tags: llvmorg-3.7.1-rc2, llvmorg-3.7.1-rc1 |
|
| #
917c7382 |
| 02-Sep-2015 |
Joseph Tremoulet <[email protected]> |
[TableGen] Allow TokenTy in intrinsic signatures
Summary: Add the necessary plumbing so that llvm_token_ty can be used as an argument/return type in intrinsic definitions and correspondingly require
[TableGen] Allow TokenTy in intrinsic signatures
Summary: Add the necessary plumbing so that llvm_token_ty can be used as an argument/return type in intrinsic definitions and correspondingly require TokenTy in function types. TokenTy is an opaque type that has no target lowering, but can be used in machine-independent intrinsics. It is required for the upcoming llvm.eh.padparam intrinsic.
Reviewers: majnemer, rnk
Subscribers: stoklund, llvm-commits
Differential Revision: http://reviews.llvm.org/D12532
llvm-svn: 246651
show more ...
|
|
Revision tags: llvmorg-3.7.0, llvmorg-3.7.0-rc4, llvmorg-3.7.0-rc3, llvmorg-3.7.0-rc2, llvmorg-3.7.0-rc1 |
|
| #
60381791 |
| 07-Jul-2015 |
Reid Kleckner <[email protected]> |
Rename llvm.frameescape and llvm.framerecover to localescape and localrecover
Summary: Initially, these intrinsics seemed like part of a family of "frame" related intrinsics, but now I think that's
Rename llvm.frameescape and llvm.framerecover to localescape and localrecover
Summary: Initially, these intrinsics seemed like part of a family of "frame" related intrinsics, but now I think that's more confusing than helpful. Initially, the LangRef specified that this would create a new kind of allocation that would be allocated at a fixed offset from the frame pointer (EBP/RBP). We ended up dropping that design, and leaving the stack frame layout alone.
These intrinsics are really about sharing local stack allocations, not frame pointers. I intend to go further and add an `llvm.localaddress()` intrinsic that returns whatever register (EBP, ESI, ESP, RBX) is being used to address locals, which should not be confused with the frame pointer.
Naming suggestions at this point are welcome, I'm happy to re-run sed.
Reviewers: majnemer, nicholas
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D11011
llvm-svn: 241633
show more ...
|
|
Revision tags: llvmorg-3.6.2, llvmorg-3.6.2-rc1 |
|
| #
c63244da |
| 15-Jun-2015 |
Sanjoy Das <[email protected]> |
[CodeGen] Introduce a FAULTING_LOAD_OP pseudo-op.
Summary: This instruction encodes a loading operation that may fault, and a label to branch to if the load page-faults. The locations of potentiall
[CodeGen] Introduce a FAULTING_LOAD_OP pseudo-op.
Summary: This instruction encodes a loading operation that may fault, and a label to branch to if the load page-faults. The locations of potentially faulting loads and their "handler" destinations are recorded in a FaultMap section, meant to be consumed by LLVM's clients.
Nothing generates FAULTING_LOAD_OP instructions yet, but they will be used in a future change.
The documentation (FaultMaps.rst) needs improvement and I will update this diff with a more expanded version shortly.
Depends on D10196
Reviewers: rnk, reames, AndyAyers, ab, atrick, pgavlin
Reviewed By: atrick, pgavlin
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D10197
llvm-svn: 239740
show more ...
|
| #
664f6a04 |
| 02-Jun-2015 |
Craig Topper <[email protected]> |
[TableGen] Rename ListInit::getSize to just 'size' to be more consistent.
llvm-svn: 238806
|
| #
85fa7d50 |
| 26-May-2015 |
Owen Anderson <[email protected]> |
Add initial support for the convergent attribute.
llvm-svn: 238264
|
|
Revision tags: llvmorg-3.6.1 |
|
| #
e452e271 |
| 11-May-2015 |
James Y Knight <[email protected]> |
Fix tablegen's PrintFatalError function to run registered file cleanups.
Also, change code in tablegen which printed a message and then called "exit(1)" to use PrintFatalError, instead.
This fixes
Fix tablegen's PrintFatalError function to run registered file cleanups.
Also, change code in tablegen which printed a message and then called "exit(1)" to use PrintFatalError, instead.
This fixes instances where an empty output file was left behind after a failed tablegen invocation, which would confuse subsequent ninja runs into not attempting to rebuild.
Differential Revision: http://reviews.llvm.org/D9608
llvm-svn: 237058
show more ...
|
|
Revision tags: llvmorg-3.6.1-rc1 |
|
| #
f4669f59 |
| 17-Apr-2015 |
Kit Barton <[email protected]> |
Add support for v1i128 type. The v1i128 type is needed for the quadword add/substract instructions introduced in POWER8. Futhermore, the PowerPC ABI specifies that parameters of type v1i128 are to be
Add support for v1i128 type. The v1i128 type is needed for the quadword add/substract instructions introduced in POWER8. Futhermore, the PowerPC ABI specifies that parameters of type v1i128 are to be passed in a single vector register, while parameters of type i128 are passed in pairs of GPRs. Thus, it is necessary to be able to differentiate between v1i128 and i128 in LLVM.
http://reviews.llvm.org/D8564
llvm-svn: 235198
show more ...
|