Eli Friedman
f03bb260c9
Move "atomic" and "volatile" designations on instructions after the opcode
...
of the instruction.
Note that this change affects the existing non-atomic load and store
instructions; the parser now accepts both forms, and the change is noted
in the release notes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137527 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 22:50:01 +00:00
Eli Friedman
91a44dd9cc
Some reorganization of atomic docs. Added explicit section for NonAtomic. Added example for illegal non-atomic operation.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137520 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 21:50:54 +00:00
Bill Wendling
e6e8826870
Initial commit of the 'landingpad' instruction.
...
This implements the 'landingpad' instruction. It's used to indicate that a basic
block is a landing pad. There are several restrictions on its use (see
LangRef.html for more detail). These restrictions allow the exception handling
code to gather the information it needs in a much more sane way.
This patch has the definition, implementation, C interface, parsing, and bitcode
support in it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137501 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 20:24:12 +00:00
Chris Lattner
c513309224
apparently variable naming conventions never got added, document the
...
prevailing convention. Thanks to Dave Zarzycki for the patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137497 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 19:49:16 +00:00
Chris Lattner
9a5ffbfa6e
minor typo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137496 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 19:48:19 +00:00
Chris Lattner
aa175c37d1
fix one reference that slipped through, thanks Eli
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137488 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 18:12:40 +00:00
Chris Lattner
2c38d65fd9
add new accessors to reflect new terminology in struct types.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137468 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 17:31:02 +00:00
NAKAMURA Takumi
3c757ef2ef
docs/GettingStarted.html: [Git] Add instructions how to generate patchset with Git.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137444 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 07:48:06 +00:00
NAKAMURA Takumi
7a362f4111
docs/GettingStarted.html: [Git] Mention branch.master.rebase for the tracking branch.
...
Thanks to Jeff Yasskin to reword.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137443 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 07:48:01 +00:00
NAKAMURA Takumi
24ad111a05
docs/GettingStarted.html: [Git] Split the subsubsection for committer's section.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137442 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 07:47:55 +00:00
NAKAMURA Takumi
b5bb29c71f
docs: Update HTML markup(s).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137433 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 06:17:17 +00:00
NAKAMURA Takumi
3cc8482b06
docs/llvm.css: Introduce <blockquote><pre>. It may be used as blockquoted "doc_code".
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137432 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 06:17:11 +00:00
Eli Friedman
79d7de7650
Misc atomic doc tweaks; reordering operations across Acquire/Release can be beneficial.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137425 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 03:38:32 +00:00
Eli Friedman
d577a0669b
Fix up this paragraph (including a nasty typo).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137408 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 01:26:06 +00:00
Andrew Trick
a1b953b61a
Clarify the definition of SequentiallyConsistent operations.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137403 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-12 00:36:38 +00:00
Eli Friedman
5093fe69b4
Fix mismatched tag.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137388 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-11 23:48:52 +00:00
Eli Friedman
1bf4ad4870
Revision to Atomics guide, per Chris's comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137386 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-11 23:44:25 +00:00
Justin Holewinski
dceb002f82
PTX: Add basic documentation to CodeGenerator.html
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137315 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-11 17:34:16 +00:00
Eli Friedman
e2d8cf77c8
Changes per Jeffrey's comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137243 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-10 20:17:43 +00:00
Eli Friedman
8fa281a471
Fix minor typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137177 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-09 23:26:12 +00:00
Eli Friedman
21006d40ac
Representation of 'atomic load' and 'atomic store' in IR.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137170 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-09 23:02:53 +00:00
Eli Friedman
138515df66
First draft of the practical guide to atomics.
...
This is mostly descriptive of the intended state once atomic load and store have landed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137145 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-09 21:07:10 +00:00
Bill Wendling
bf13ee1941
Clean up the grammar for the landingpad instruction.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137042 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-08 08:06:05 +00:00
Bill Wendling
2905c32335
Fix typo found by John.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137040 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-08 07:58:58 +00:00
Jay Foad
f42e9b2491
Reword.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136866 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-04 10:43:43 +00:00
Bill Wendling
2626dba9c5
Remove the LowerSetJmp pass. It wasn't used effectively by any of the targets.
...
This is some of my original LLVM code. *wipes tear*
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136821 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-03 22:18:20 +00:00
Bill Wendling
e4ad50bb43
Go back to the old definition. It's not clear that a 'resume' can be 'outlined' from the function with the landing pad for all platforms.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136799 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-03 18:37:32 +00:00
Bill Wendling
b7a01353ea
Explain how clauses are applied.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136790 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-03 17:17:06 +00:00
Bill Wendling
f78faf84a8
Add the documentation for the 'landingpad' instruction. Improve the 'invoke'
...
instruction's documentation to reference the landingpad and resume instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136729 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-02 21:52:38 +00:00
Chris Lattner
6445ecbdb9
no need to count the terminators.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136718 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-02 20:29:13 +00:00
Bill Wendling
086da7e680
Duncan's english is better than mine. :-)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136684 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-02 06:39:13 +00:00
Bill Wendling
1600525385
Remove the LLVMBuildUnwind C API function.
...
The 'unwind' function is going away with the new EH rewrite. This is step 0 in
keeping front-ends from using it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136683 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-02 06:20:17 +00:00
John McCall
74699fda15
I am the code owner for Clang's IR generation; this has been true
...
for awhile, but it's good to make this official.
Just to be clear, Doug and Ted "elected" me to this position.
Might as well add myself to the credits list while I'm at it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136673 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-02 01:38:19 +00:00
Eli Friedman
101c81da45
Minor wording tweak for memory model.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136668 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-02 01:15:34 +00:00
Roman Divacky
4d7ce32147
Fix a typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136646 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-01 20:38:27 +00:00
Bill Wendling
af75f0ca86
Fix some validation errors.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136591 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-31 06:47:33 +00:00
Bill Wendling
0246bb77db
Fix some validation errors.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136590 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-31 06:45:03 +00:00
Bill Wendling
dccc03b242
Add the 'resume' instruction for the new EH rewrite.
...
This adds the 'resume' instruction class, IR parsing, and bitcode reading and
writing. The 'resume' instruction resumes propagation of an existing (in-flight)
exception whose unwinding was interrupted with a 'landingpad' instruction (to be
added later).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136589 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-31 06:30:59 +00:00
Bill Wendling
10c6d12a9f
Revert r136253, r136263, r136269, r136313, r136325, r136326, r136329, r136338,
...
r136339, r136341, r136369, r136387, r136392, r136396, r136429, r136430, r136444,
r136445, r136446, r136253 pending review.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136556 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-30 05:42:50 +00:00
Eli Friedman
ff03048c13
LangRef and basic memory-representation/reading/writing for 'cmpxchg' and
...
'atomicrmw' instructions, which allow representing all the current atomic
rmw intrinsics.
The allowed operands for these instructions are heavily restricted at the
moment; we can probably loosen it a bit, but supporting general
first-class types (where it makes sense) might get a bit complicated,
given how SelectionDAG works.
As an initial cut, these operations do not support specifying an alignment,
but it would be possible to add if we think it's useful. Specifying an
alignment lower than the natural alignment would be essentially
impossible to support on anything other than x86, but specifying a greater
alignment would be possible. I can't think of any useful optimizations which
would use that information, but maybe someone else has ideas.
Optimizer/codegen support coming soon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136404 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-28 21:48:00 +00:00
Bill Wendling
772fe17a6d
Merge the contents from exception-handling-rewrite to the mainline.
...
This adds the new instructions 'landingpad' and 'resume'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136253 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-27 20:18:04 +00:00
Devang Patel
0a2a306be2
Update document listing DIVariable elements to reflect recent changes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136228 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-27 18:14:50 +00:00
Bill Wendling
194229e591
Fix a typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136133 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-26 20:42:28 +00:00
Andrew Trick
5acaeb5121
Updating stale documentation on regalloc modes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136112 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-26 18:31:49 +00:00
Bill Wendling
b3aa4715c1
Clean up the HTML here a bit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136074 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-26 10:41:15 +00:00
Bill Wendling
75471d698f
Describe the reasoning for compact unwind in better terms. Thanks to Nick Kledzik for the description.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136064 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-26 07:58:09 +00:00
Eli Friedman
47f3513dd5
Initial implementation of 'fence' instruction, the new C++0x-style replacement for llvm.memory.barrier.
...
This is just a LangRef entry and reading/writing/memory representation; optimizer+codegen support coming soon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136009 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-25 23:16:38 +00:00
Nick Lewycky
f3379da7c6
80 columns.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135972 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-25 21:13:23 +00:00
Bill Wendling
3ef750d4b6
Fix some typos.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135956 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-25 20:25:03 +00:00
Bill Wendling
66bc5c602a
An initial description of the compact unwind encoding.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135955 91177308-0d34-0410-b5e6-96231b3b80d8
2011-07-25 20:19:48 +00:00