1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 19:12:56 +02:00
Commit Graph

25 Commits

Author SHA1 Message Date
Bill Wendling
0835c19d36 Alphabetize the function attributes.
llvm-svn: 174490
2013-02-06 06:22:58 +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
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
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
Dmitri Gribenko
6d03603fc7 Documentation: fix syntax error
Patch by David Waggoner

llvm-svn: 173571
2013-01-26 13:30:13 +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
Dmitri Gribenko
b654055f0c Documentation: replace some non-ASCII characters by equivalent markup
llvm-svn: 172917
2013-01-19 20:34:20 +00:00
Daniel Dunbar
bda778db3b [MC/Mach-O] Implement integrated assembler support for linker options.
- Also, fixup syntax errors in LangRef and missing newline in the MCAsmStreamer.

llvm-svn: 172837
2013-01-18 19:37:00 +00:00
Daniel Dunbar
fef2075948 [docs] Get rid of some UTF8 characters (non-breaking space maybe).
llvm-svn: 172741
2013-01-17 18:57:32 +00:00
Daniel Dunbar
4ea84b0026 [IR] Reserve/define the purpose for the "Linker Options" metadata flags.
llvm-svn: 172681
2013-01-17 00:16:27 +00:00
Lang Hames
937caf3fb2 Update the description of the llvm.fmuladd.* intrinsics to avoid use of the
ambiguous term 'legal'.

Suggested by Andrew Booker. Thanks Andrew!

llvm-svn: 172680
2013-01-17 00:00:49 +00:00
Dmitri Gribenko
1c55c0f885 Documentation: fix a typo 'IEE754'
Reported on IRC by _savage

llvm-svn: 172677
2013-01-16 23:40:37 +00:00
Daniel Dunbar
677520900d [IR] Add 'Append' and 'AppendUnique' module flag behaviors.
llvm-svn: 172659
2013-01-16 21:38:56 +00:00
Daniel Dunbar
dedba23833 [IR] Add verifier support for llvm.module.flags.
- Also, update the LangRef documentation on module flags to match the
   implementation.

llvm-svn: 172498
2013-01-15 01:22:53 +00:00
James Molloy
de926c367f Add a new attribute, 'noduplicate'. If a function contains a noduplicate call, the call cannot be duplicated - Jump threading, loop unrolling, loop unswitching, and loop rotation are inhibited if they would duplicate the call.
Similarly inlining of the function is inhibited, if that would duplicate the call (in particular inlining is still allowed when there is only one callsite and the function has internal linkage).

llvm-svn: 170704
2012-12-20 16:04:27 +00:00
Chris Lattner
ae27e4b10f So many people have touched this, it doesn't make sense to ascribe authorship anymore.
llvm-svn: 169704
2012-12-09 16:55:39 +00:00
Sean Silva
856f24ce53 docs: Convert LangRef to reST.
NOTE: If you have any patches in the works that modify LangRef, you will
need to rewrite the changes to LangRef.html to their equivalents in
LangRef.rst. If you need assistance feel free to contact me.

Since LangRef is mission-critical for the project and "normative", I
have taken extra care to ensure that no content was lost or altered in
the conversion. The content was converted with a tool called `pandoc`,
so there is no chance for a human error like accidentally forgetting a
sentence or whatever. After the initial conversion by `pandoc`, only
changes to the markup were done.

This is just the most literal conversion of the HTML document as
possible. It might be worth exploring some way to chop up this massive
document into separate pages, e.g. something like
`docs/LangRef/Instructions.rst`, `docs/LangRef/Intrinsics.rst`, etc.
with `docs/LangRef.rst` being an "intro/navigation page" of sorts. On
the other hand, that loses the ability to {Ctrl,Cmd}-F for a given term
right from your browser.

IMO, I think our stylesheet needs some work because I find it hard to
tell what level of nesting some of the headings are at (e.g. "is this a
new section or is it a subsection?"). The issue is present on other
pages, but the sheer size and deep section structure of LangRef really
brings this issue out. If there are any web designers out there in the
community it would be awesome if you tried to come up with something
nicer.

llvm-svn: 169596
2012-12-07 10:36:55 +00:00