Commit Graph

4800 Commits

Author SHA1 Message Date
Pekka Jaaskelainen
7e2908d0f3 Metadata for annotating loops as parallel. The first consumer for this
metadata is the loop vectorizer.

See the documentation update for more info.

llvm-svn: 175060
2013-02-13 18:08:57 +00:00
Tim Northover
6f37a3070c Mention AArch64 in release notes for 3.3
llvm-svn: 175055
2013-02-13 12:46:32 +00:00
Manuel Klimek
1cd92e6900 Update phab docs to clarify how to accept a change.
llvm-svn: 175047
2013-02-13 09:07:18 +00:00
Eric Christopher
5821e56ae7 This is actually located at the end, not the middle.
llvm-svn: 175041
2013-02-13 07:22:25 +00:00
Dmitri Gribenko
e7a571489a Documentation: HowToUseAttributes: formatting (use monospaced font)
llvm-svn: 174982
2013-02-12 18:26:08 +00:00
Joe Abbey
2a0a9b8280 Adding a HowTo for Attributes.
This is based on Bill Wendling's email.  No additional content has been added,
but now there's a place for Attributes to capture future information.

llvm-svn: 174961
2013-02-12 11:45:22 +00:00
Bill Schmidt
be9ad5cfe1 Restore the resurrected doc link previously deleted
llvm-svn: 174884
2013-02-11 14:14:32 +00:00
Bill Schmidt
8cab270b2e Remove a dead PowerPC doc link
llvm-svn: 174881
2013-02-11 13:16:30 +00:00
Kostya Serebryany
8e2f1fbfb7 [tsan/msan] adding thread_safety and uninitialized_checks attributes
llvm-svn: 174864
2013-02-11 08:13:54 +00:00
Tom Stellard
bf3d7c2f65 ReleaseNotes: Add section for R600 backend
llvm-svn: 174764
2013-02-08 22:24:41 +00:00
Sean Silva
69b48e13eb [docs] Tweaks for clarity, readability, and correctness.
llvm-svn: 174749
2013-02-08 21:51:26 +00:00
Bill Schmidt
d00b56718d More modifications to PowerPC doc links
llvm-svn: 174742
2013-02-08 21:08:22 +00:00
Hal Finkel
e3a550877d Update PowerPC links in CompilerWriterInfo.rst
This updates the current references to links that work for me.
In the future, we should update the list of references itself to provide
information on newer architecture variants.

Thanks to Sean Silva for pointing out that the current links were broken!

llvm-svn: 174739
2013-02-08 20:24:46 +00:00
Sean Silva
6ec34b832b [ReleaseNotes] tidy up organization and formatting
llvm-svn: 174587
2013-02-07 05:56:46 +00:00
Nadav Rotem
51abb84770 Update Release notes regarding TTI.
llvm-svn: 174586
2013-02-07 05:44:58 +00:00
Nadav Rotem
6820ae33ab Document the loop vectorizer changes.
llvm-svn: 174585
2013-02-07 05:42:31 +00:00
Guy Benyei
e5a7b5054c Canonicalize line endings to Linux style also when the --strict-whitespace flag is in use. This flag is supposed to affect horizontal whitespaces only.
llvm-svn: 174541
2013-02-06 20:40:38 +00:00
Bill Wendling
2da9899378 Initial submission for the attribute group feature.
Attribute groups are of the form:

  #0 = attributes { noinline "no-sse" "cpu"="cortex-a8" alignstack=4 }

Target-dependent attributes are represented as strings. Attributes can have
optional values associated with them. E.g., the "cpu" attribute has the value
"cortex-a8".

Target-independent attributes are listed as enums inside the attribute classes.

Multiple attribute groups can be referenced by the same object. In that case,
the attributes are merged together.

llvm-svn: 174493
2013-02-06 06:52:58 +00:00
Bill Wendling
0835c19d36 Alphabetize the function attributes.
llvm-svn: 174490
2013-02-06 06:22:58 +00:00
Dmitri Gribenko
8e9bbe5822 Coding standards: don't use `inline` when defining a function in a class
definition

Current practice is not to use 'inline' in:

  class Foo {
  public:
    inline void bar() {
      // ...
    }
  };

llvm-svn: 174317
2013-02-04 10:24:58 +00:00
Patrik Hagglund
93e7ff6633 Pass CPPFLAGS/CFLAGS/CXXFLAGS from the environment of configure to
Makefile.config.

This is implied at the bottom of the help text of configure (besides
CC/CXX/LDFLAGS, already passed to Makefile.config).

For backward compatibility, the values of CFLAGS and CXXFLAGS defaults
to empty, overriding the default values provided by autoconf (for
example, '-g -O2' when CC=gcc').

$(CPP) is not used by our makefiles. Therefore, the value of CPP is
not passed to Makefile.config, despite beeing mentioned by 'configure
--help'.

llvm-svn: 174313
2013-02-04 08:15:53 +00:00
Michael Gottesman
e74e216583 Removed reference to LLVM as a project (since in LangRef it is used solely as a reference to the IR). Thanks silvas!
llvm-svn: 174301
2013-02-04 03:22:00 +00:00
Michael Gottesman
0d83ea84f2 Added new Global Variable marker ``externally_initialized'' to LangRef.
llvm-svn: 174270
2013-02-03 09:57:18 +00:00
Michael Gottesman
cc7d91476c Added clarification paragraph to LangRef's documentation of
GlobalVariable about LLVM's assumptions vis-a-vis Global Variable
initial values and Global Variable initializers.

This is in preparation for adding the new keyword
externally_initialized.

Specifically, the patch explains how LLVM optimizes global initializers
by assumign that global variables defined within the module are not
modified from their initial values before the start of the global
initializer.

llvm-svn: 174269
2013-02-03 09:57:15 +00:00
Sean Silva
1aaa6caadc [docs] Fixup fallout from other grammar fixup.
My "excuse" for not refactoring the grammar here is to not diverge too
far from the grammar in the comments of TGParser.cpp, since I'm not
taking on the quest of majorly refactoring TGParser.cpp at the moment.

One benefit of doing this is that Ideas for refactoring and clarifying
the grammar in this document should translate almost immediately to
beneficial refactorings that can be made to TGParser.cpp.

llvm-svn: 174144
2013-02-01 03:50:20 +00:00
Sean Silva
041e217ae9 [docs] Add missing colon to TableGen grammar.
Spotted by Eli Bendersky.

llvm-svn: 174143
2013-02-01 03:32:38 +00:00
Tim Northover
e2b0519ed8 Add AArch64 as an experimental target.
This patch adds support for AArch64 (ARM's 64-bit architecture) to
LLVM in the "experimental" category. Currently, it won't be built
unless requested explicitly.

This initial commit should have support for:
    + Assembly of all scalar (i.e. non-NEON, non-Crypto) instructions
      (except the late addition CRC instructions).
    + CodeGen features required for C++03 and C99.
    + Compilation for the "small" memory model: code+static data <
      4GB.
    + Absolute and position-independent code.
    + GNU-style (i.e. "__thread") TLS.
    + Debugging information.

The principal omission, currently, is performance tuning.

This patch excludes the NEON support also reviewed due to an outbreak of
batshit insanity in our legal department. That will be committed soon bringing
the changes to precisely what has been approved.

Further reviews would be gratefully received.

llvm-svn: 174054
2013-01-31 12:12:40 +00:00
Michael Gottesman
6223b4bbb2 Fixed a mistake in my previous commit where I changed the wording slightly and forgot to undo the change after changing my mind and deciding to only commit the style changes.
llvm-svn: 174041
2013-01-31 05:48:48 +00:00
Michael Gottesman
960bb82c24 Formatting Fix. Changed " to `` around the word 'constant' in the Lang Ref
section Global Variable so that the style matches the other keywords in
said section.

llvm-svn: 174040
2013-01-31 05:44:04 +00:00
Andrew Trick
74ca4e1a3a LangRef: Add a Rationale for volatile rules.
llvm-svn: 174007
2013-01-31 00:49:39 +00:00
Andrew Trick
4699474140 ...in light of recent activity related to llvm.memcpy flags. I want to
prevent an llvm developer from mistakenly thinking that just because the
intrinsic has volatile flags that volatile operations can be converted
to or folded into them.

Platforms may rely on volatile loads and stores of natively supported
data width to be executed as single instruction. When compiling
C, this expectation likely holds for l-values of volatile primitive
types with native hardware support, but not necessarily for aggregate
types. The frontend upholds these expectations, which are not
specified in the IR.

llvm-svn: 173974
2013-01-30 21:19:35 +00:00
Eli Bendersky
7ab8793a0a Remove a mention of TargetInstrDescriptor, which no longer exists in the code
llvm-svn: 173971
2013-01-30 20:54:21 +00:00
Sean Silva
f99a14bada [docs] Guide prospective TableGen backend writers.
Boilerplate is often the hardest part of getting started with these
kinds of things, so throw them a bone.

llvm-svn: 173969
2013-01-30 20:39:46 +00:00
Patrik Hagglund
44913fd94d Documentation: Updating the data layout default specifications to
correspond to the code.

Patch by Stephen McGruer.

llvm-svn: 173914
2013-01-30 09:02:06 +00:00
Dmitri Gribenko
b2ec842ce9 Documentation: add empty lines so that lists are properly recognized
llvm-svn: 173845
2013-01-29 23:14:41 +00:00
Sean Silva
a3d3900178 docs: reorganize front page slightly
llvm-svn: 173718
2013-01-28 21:28:10 +00:00
Dmitri Gribenko
6d03603fc7 Documentation: fix syntax error
Patch by David Waggoner

llvm-svn: 173571
2013-01-26 13:30:13 +00:00
Michael Gottesman
71284bf062 Fixed typo.
llvm-svn: 173478
2013-01-25 20:20:00 +00:00
Michael Gottesman
5f9d6677fd Added new section to the git-svn getting started section that provides a
custom git script called git-svnup which handles all of the work of
using the git-mirrors/keeping the git-svn numbers in sync.

llvm-svn: 173472
2013-01-25 19:31:09 +00:00
Hal Finkel
4279c8573b Add an addition operator to TableGen
This adds an !add(a, b) operator to tablegen; this will be used
to cleanup the PPC register definitions.

llvm-svn: 173445
2013-01-25 14:49:08 +00:00
Eli Bendersky
eb5e2ba129 Fix small typo
llvm-svn: 173298
2013-01-23 22:05:19 +00:00
Bill Wendling
fd64018774 Add the heuristic to differentiate SSPStrong from SSPRequired.
The requirements of the strong heuristic are:

* A Protector is required for functions which contain an array, regardless of
  type or length.

* A Protector is required for functions which contain a structure/union which
  contains an array, regardless of type or length.  Note, there is no limit to
  the depth of nesting.

* A protector is required when the address of a local variable (i.e., stack
  based variable) is exposed. (E.g., such as through a local whose address is
  taken as part of the RHS of an assignment or a local whose address is taken as
  part of a function argument.)

llvm-svn: 173231
2013-01-23 06:43:53 +00:00
Bill Wendling
9e0064d80b Add the IR attribute 'sspstrong'.
SSPStrong applies a heuristic to insert stack protectors in these situations:

* A Protector is required for functions which contain an array, regardless of
  type or length.

* A Protector is required for functions which contain a structure/union which
  contains an array, regardless of type or length.  Note, there is no limit to
  the depth of nesting.

* A protector is required when the address of a local variable (i.e., stack
  based variable) is exposed. (E.g., such as through a local whose address is
  taken as part of the RHS of an assignment or a local whose address is taken as
  part of a function argument.)

This patch implements the SSPString attribute to be equivalent to
SSPRequired. This will change in a subsequent patch.

llvm-svn: 173230
2013-01-23 06:41:41 +00:00
Sean Silva
847c45cff5 docs: Update title of external tutorial.
llvm-svn: 173224
2013-01-23 03:21:41 +00:00
Joel Jones
59aa8060b1 Fix spelling
llvm-svn: 173103
2013-01-21 23:20:47 +00:00
Michael Ilseman
ef3b757d74 Docs for SparseMultiSet
llvm-svn: 173092
2013-01-21 21:46:32 +00:00
Michael J. Spencer
65d4a2e470 [docs] Update IRC information.
llvm-svn: 172970
2013-01-20 09:38:14 +00:00
Nadav Rotem
cfc4ad5d79 Update the gcc-loops benchmark
llvm-svn: 172966
2013-01-20 07:01:04 +00:00
Nadav Rotem
0653c71f8b Update the linpack benchmark with different array sizes.
llvm-svn: 172965
2013-01-20 06:52:47 +00:00
Sean Silva
c141261c41 ReleaseNotes: note Sphinx migration.
llvm-svn: 172955
2013-01-20 03:32:55 +00:00