Commit Graph

4937 Commits

Author SHA1 Message Date
Tom Stellard
898b9f020d TableGen: Generate a function for getting operand indices based on their defined names
This patch modifies TableGen to generate a function in
${TARGET}GenInstrInfo.inc called getNamedOperandIdx(), which can be used
to look up indices for operands based on their names.

In order to activate this feature for an instruction, you must set the
UseNamedOperandTable bit.

For example, if you have an instruction like:

def ADD : TargetInstr <(outs GPR:$dst), (ins GPR:$src0, GPR:$src1)>;

You can look up the operand indices using the new function, like this:

Target::getNamedOperandIdx(Target::ADD, Target::OpName::dst)  => 0
Target::getNamedOperandIdx(Target::ADD, Target::OpName::src0) => 1
Target::getNamedOperandIdx(Target::ADD, Target::OpName::src1) => 2

The operand names are case sensitive, so $dst and $DST are considered
different operands.

This change is useful for R600 which has instructions with a large number
of operands, many of which model single bit instruction configuration
values.  These configuration bits are common across most instructions,
but may have a different operand index depending on the instruction type.
It is useful to have a convenient way to look up the operand indices,
so these bits can be generically set on any instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184879 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-25 21:22:09 +00:00
Meador Inge
47afd0b77a Add a release note for removing the simplify-libcalls pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184522 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-21 03:08:23 +00:00
Sean Silva
d6e7daecf9 [docs] Fix broken link.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184514 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-21 01:11:52 +00:00
Sean Silva
a5706fcd80 [docs] Fix formatting.
'\n' was displaying as 'n'

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184507 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-21 00:27:54 +00:00
Stephen Lin
8592fba155 Minor grammar and word usage fix to 'returned' parameter attribute section of LangRef
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184479 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-20 21:55:10 +00:00
Michael Gottesman
51d1bda39b [ReleaseNotes] Added bullet point stating that APFloat::isNormal() is now IEEE 754R-2008 compliant and that the relevant method renaming occurred.
For more information see r184449, r184350, r184356, r184366.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184452 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-20 18:47:51 +00:00
Stefanus Du Toit
afea27befa Fix typos "metatadata" -> "metadata" in the LangRef.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184426 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-20 14:02:44 +00:00
JF Bastien
bd4bd3686d Small correction to unordered memory code generation of ARM LDRD
The information was correct pre-LPAE.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184253 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-18 23:07:16 +00:00
Rafael Espindola
250bfb1745 Remove the LLVM specific archive index.
Archive files (.a) can have a symbol table indicating which object
files in them define which symbols. The purpose of this symbol table
is to speed up linking by allowing the linker the read only the .o
files it is actually going to use instead of having to parse every
object's symbol table.

LLVM's archive library currently supports a LLVM specific format for
such table. It is hard to see any value in that now that llvm-ld is
gone:

* System linkers don't use it: GNU ar uses the same plugin as the
linker to create archive files with a regular index. The OS X ar
creates no symbol table for IL files, I assume the linker just parses
all IL files.

* It doesn't interact well with archives having both IL and native objects.

* We probably don't want to be responsible for yet another archive
format variant.

This patch then:

* Removes support for creating and reading such index from lib/Archive.
* Remove llvm-ranlib, since there is nothing left for it to do.

We should in the future add support for regular indexes to llvm-ar for
both native and IL objects. When we do that, llvm-ranlib should be
reimplemented as a symlink to llvm-ar, as it is equivalent to "ar s".

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184019 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-14 23:25:53 +00:00
Renato Golin
f42b14e2a8 Update Release Process doc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183825 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-12 11:35:33 +00:00
Michael Liao
0262db3b55 Fix documentation on the path to Bitcode reader/writer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183761 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-11 18:09:21 +00:00
Rafael Espindola
9f8e6da019 Require members of llvm.used to be named.
The effect of llvm.used is to introduce an invisible reference, so this seems
a reasonable restriction. It will be used to provide an easy ordering of
the entries in llvm.used.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183743 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-11 13:18:13 +00:00
Logan Chien
2dce4f27ef Update code listings in LLVM tutorial.
Several LLVM headers are moved.  The code listings in
LLVM tutorial are not updated yet.

This CL removes the code replica in the .rst, and replace
them with a literalinclude directive, so that sphinx can
include the latest code automatically.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183607 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-08 09:03:03 +00:00
Rui Ueyama
8b0f77bb96 [docs] Add link to Microsoft PE/COFF Spec.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183562 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-07 20:30:27 +00:00
Eli Bendersky
88fe6824ee Add more explicit link targets to headers in LangRef.rst
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183555 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-07 20:24:43 +00:00
Eli Bendersky
1de1410bd2 Add explicit link targets to some headers in LangRef.rst
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183548 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-07 19:40:08 +00:00
Sean Silva
f41d317054 [docs] Add link to C++ ABI document.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183342 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-05 21:11:16 +00:00
Sean Silva
c85756f4b0 [docs] Add link to SysV ABI document.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183341 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-05 21:11:11 +00:00
Sean Silva
cc5a6cb0a2 [docs] Replace non-existent LLVM_YAML_UNIQUE_TYPE() macro
LLVM_YAML_STRONG_TYPEDEF() is the correct macro to perform this function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183280 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-04 23:36:41 +00:00
Richard Smith
2b18526696 Fix link.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183248 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-04 20:42:42 +00:00
Bill Wendling
1c611ecdfd We are now in 3.4 land. We don't need the 3.3 releaese notes in ToT anymore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183210 91177308-0d34-0410-b5e6-96231b3b80d8
2013-06-04 06:12:31 +00:00
Richard Sandiford
5434f123e9 Add links to the System z architecture manual and ABI
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182990 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-31 09:14:54 +00:00
Paul Redmond
26266a1ece Fix warning and resulting formatting issue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182939 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-30 17:24:32 +00:00
Paul Redmond
f95ac8a474 Revise llvm.vectorizer.width documentation
- clarify that vectorizer.width only applies if the vectorizer decides to
  vectorize.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182938 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-30 17:22:46 +00:00
Ashok Thirumurthi
71f2df0e28 Added a sub-project status update section to the release notes with details
on the LLDB 3.3 release.

Reviewed by: Greg Clayton and Bill Wendling


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182931 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-30 14:23:07 +00:00
Sergey Matveev
52d65ab72d Fix incorrect parameter name in LIT docs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182926 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-30 12:37:52 +00:00
David Blaikie
61212bcaff Debug Info: Update documentation to match recent (& not so recent) schema changes
This updates the debug info metadata schema documentation for various
schema changes made recently surrounding filename information for
scopes and the representation of imported entities.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182817 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-29 02:05:13 +00:00
Paul Redmond
ee21b6f7b4 Add support for llvm.vectorizer metadata
- llvm.loop.parallel metadata has been renamed to llvm.loop to be more generic
  by making the root of additional loop metadata.
  - Loop::isAnnotatedParallel now looks for llvm.loop and associated
    llvm.mem.parallel_loop_access
  - document llvm.loop and update llvm.mem.parallel_loop_access
- add support for llvm.vectorizer.width and llvm.vectorizer.unroll
  - document llvm.vectorizer.* metadata
  - add utility class LoopVectorizerHints for getting/setting loop metadata
  - use llvm.vectorizer.width=1 to indicate already vectorized instead of
    already_vectorized
- update existing tests that used llvm.loop.parallel and
  llvm.vectorizer.already_vectorized

Reviewed by: Nadav Rotem


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182802 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-28 20:00:34 +00:00
Renato Golin
988005ab49 Typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182766 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-28 11:28:37 +00:00
Renato Golin
fe4716f7cf Linking ReleaseProcess doc with the world
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182763 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-28 10:32:55 +00:00
Renato Golin
e5ee3cfbc1 Adding ReleaseProcess doc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182759 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-28 09:48:52 +00:00
Kai Nacke
ea991637e4 Add LDC compiler to list of external OS projects using LLVM 3.3
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182718 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-26 17:37:43 +00:00
Diego Novillo
77226a03dc Add a new function attribute 'cold' to functions.
Other than recognizing the attribute, the patch does little else.
It changes the branch probability analyzer so that edges into
blocks postdominated by a cold function are given low weight.

Added analysis and code generation tests.  Added documentation for the
new attribute.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182638 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-24 12:26:52 +00:00
Tim Northover
5a02fc4b5f ARM: implement @llvm.readcyclecounter intrinsic
This implements the @llvm.readcyclecounter intrinsic as the specific
MRC instruction specified in the ARM manuals for CPUs with the Power
Management extensions.

Older CPUs had slightly different methods which may also have to be
implemented eventually, but this should cover all v7 cases.

rdar://problem/13939186

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182603 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-23 19:11:20 +00:00
Rui Ueyama
e0f26bc008 Fix typo in docs/GettingStarted.rst.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182496 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-22 18:09:39 +00:00
Rafael Espindola
059d360266 Make R600 non-experimental.
The r600 backend has been in tree for some time now. Marking it as
non-experimental to avoid accidental breakage.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182442 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-22 00:35:47 +00:00
Sean Silva
57f429fcac LangRef.rst: Clarify how basic blocks without named label are handled.
Describe that they are assigned numbered label using the same counter
as for unnamed temporaries.

Based on http://llvm.org/bugs/show_bug.cgi?id=16043 and mailing list
discussion.

Patch by Paul Sokolovsky!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182332 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-20 23:31:12 +00:00
Daniel Dunbar
ff2515ef2c [docs] Minor doc tweaks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182324 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-20 22:39:48 +00:00
Dmitri Gribenko
edc399aceb docs/Passes: fix some typos
Patch by Yacine Belkadi.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182197 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-18 18:01:44 +00:00
Arnaud A. de Grandmaison
38286bee4d Add Jade to the list of external projects using LLVM in the release notes.
Patch by: Antoine Lorence <Antoine.Lorence@insa-rennes.fr>

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181886 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-15 14:05:01 +00:00
Michael Liao
95ab326674 Add 'CHECK-DAG' support
Refer to 'FileCheck.rst'f for details of 'CHECK-DAG'.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181827 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-14 20:34:12 +00:00
Richard Sandiford
c3b20c260e [SystemZ] Add disassembler support
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181777 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-14 10:17:52 +00:00
Alexander Kornienko
2e24e19cac Better output for long help strings for command-line options.
Summary:
This patch allows using \n inside long help strings for command-line
options, so that all lines are equally indented. This is not a perfect solution,
as we don't (and probably don't want to) know about terminal width, but it
allows to format long help strings somehow readable without manually padding
them with spaces. A motivating example is -help output from clang-format (source
code in tools/clang-format/ClangFormat.cpp, see cl options offset, length,
style, and dump-config).

Reviewers: atrick, alexfh

Reviewed By: alexfh

CC: llvm-commits, rafael

Differential Revision: http://llvm-reviews.chandlerc.com/D779

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181608 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-10 17:15:51 +00:00
Richard Sandiford
a571a93ebc Add SystemZ feats to CodeGenerator.rst
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181431 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-08 14:23:43 +00:00
Rafael Espindola
e449654815 Remove exception handling support from the old JIT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181354 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-07 20:53:59 +00:00
Bill Wendling
0c25b8f07e We're in 3.4 land now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181350 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-07 20:31:28 +00:00
Rafael Espindola
4247ca40d3 Add empty release notes for 3.4.
The idea is that docs/ReleaseNotes.rst is 3.3 and will be copied to the
branch by the release manager just before creating the release
candidates.

This ReleaseNotes_34.rst will then be moved over ReleaseNotes.rst after
the 3.3 release.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181349 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-07 20:26:16 +00:00
Andrew Trick
eb4d746d7d Add two points to release notes about recent command line library changes.
Patch by Dan Liew!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181335 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-07 17:34:35 +00:00
Richard Sandiford
46eb4a61c8 Mention SystemZ in the release notes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181328 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-07 15:52:32 +00:00
Rafael Espindola
d31ba134bb Note that EH is now supported in MCJIT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181305 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-07 12:29:17 +00:00