Commit Graph

3962 Commits

Author SHA1 Message Date
Eli Friedman 224fe0d4cb Changes per Jeffrey's comments.
llvm-svn: 137243
2011-08-10 20:17:43 +00:00
Eli Friedman 753625397b Fix minor typo.
llvm-svn: 137177
2011-08-09 23:26:12 +00:00
Eli Friedman 59b66883ea Representation of 'atomic load' and 'atomic store' in IR.
llvm-svn: 137170
2011-08-09 23:02:53 +00:00
Eli Friedman 84cd7927b9 First draft of the practical guide to atomics.
This is mostly descriptive of the intended state once atomic load and store have landed.  

llvm-svn: 137145
2011-08-09 21:07:10 +00:00
Bill Wendling 49bfb12c46 Clean up the grammar for the landingpad instruction.
llvm-svn: 137042
2011-08-08 08:06:05 +00:00
Bill Wendling a503fc0494 Fix typo found by John.
llvm-svn: 137040
2011-08-08 07:58:58 +00:00
Jay Foad 2755e07e1e Reword.
llvm-svn: 136866
2011-08-04 10:43:43 +00:00
Bill Wendling 2d3138c112 Remove the LowerSetJmp pass. It wasn't used effectively by any of the targets.
This is some of my original LLVM code. *wipes tear*

llvm-svn: 136821
2011-08-03 22:18:20 +00:00
Bill Wendling c5a136103b 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.
llvm-svn: 136799
2011-08-03 18:37:32 +00:00
Bill Wendling 0524b8d1f4 Explain how clauses are applied.
llvm-svn: 136790
2011-08-03 17:17:06 +00:00
Bill Wendling bbcb7cde34 Add the documentation for the 'landingpad' instruction. Improve the 'invoke'
instruction's documentation to reference the landingpad and resume instructions.

llvm-svn: 136729
2011-08-02 21:52:38 +00:00
Chris Lattner d3d65ab791 no need to count the terminators.
llvm-svn: 136718
2011-08-02 20:29:13 +00:00
Bill Wendling 6bc7caa334 Duncan's english is better than mine. :-)
llvm-svn: 136684
2011-08-02 06:39:13 +00:00
Bill Wendling 46ffaa95bd 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.

llvm-svn: 136683
2011-08-02 06:20:17 +00:00
John McCall c26ea5a51a 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.

llvm-svn: 136673
2011-08-02 01:38:19 +00:00
Eli Friedman 4bc9f3c174 Minor wording tweak for memory model.
llvm-svn: 136668
2011-08-02 01:15:34 +00:00
Roman Divacky 2fbb48ae20 Fix a typo.
llvm-svn: 136646
2011-08-01 20:38:27 +00:00
Bill Wendling ae8b5ea838 Fix some validation errors.
llvm-svn: 136591
2011-07-31 06:47:33 +00:00
Bill Wendling 537603b35d Fix some validation errors.
llvm-svn: 136590
2011-07-31 06:45:03 +00:00
Bill Wendling f891bf8b30 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).

llvm-svn: 136589
2011-07-31 06:30:59 +00:00
Bill Wendling ad088e6724 Revert r136253, r136263, r136269, r136313, r136325, r136326, r136329, r136338,
r136339, r136341, r136369, r136387, r136392, r136396, r136429, r136430, r136444,
r136445, r136446, r136253 pending review.

llvm-svn: 136556
2011-07-30 05:42:50 +00:00
Eli Friedman c9a551ebed 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.

llvm-svn: 136404
2011-07-28 21:48:00 +00:00
Bill Wendling 6c923bb8d9 Merge the contents from exception-handling-rewrite to the mainline.
This adds the new instructions 'landingpad' and 'resume'.

llvm-svn: 136253
2011-07-27 20:18:04 +00:00
Devang Patel ac0a1f6146 Update document listing DIVariable elements to reflect recent changes.
llvm-svn: 136228
2011-07-27 18:14:50 +00:00
Bill Wendling f6a91cf41b Fix a typo.
llvm-svn: 136133
2011-07-26 20:42:28 +00:00
Andrew Trick e69a19569b Updating stale documentation on regalloc modes.
llvm-svn: 136112
2011-07-26 18:31:49 +00:00
Bill Wendling 16b867416f Clean up the HTML here a bit.
llvm-svn: 136074
2011-07-26 10:41:15 +00:00
Bill Wendling dd7805a24d Describe the reasoning for compact unwind in better terms. Thanks to Nick Kledzik for the description.
llvm-svn: 136064
2011-07-26 07:58:09 +00:00
Eli Friedman fee02c6c13 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.

llvm-svn: 136009
2011-07-25 23:16:38 +00:00
Nick Lewycky f6e3711674 80 columns.
llvm-svn: 135972
2011-07-25 21:13:23 +00:00
Bill Wendling e2225058ac Fix some typos.
llvm-svn: 135956
2011-07-25 20:25:03 +00:00
Bill Wendling c708441e3f An initial description of the compact unwind encoding.
llvm-svn: 135955
2011-07-25 20:19:48 +00:00
Rafael Espindola 163d675e72 Add uwtable to the langref.
llvm-svn: 135913
2011-07-25 15:27:59 +00:00
Jay Foad d1b7849d49 Convert GetElementPtrInst to use ArrayRef.
llvm-svn: 135904
2011-07-25 09:48:08 +00:00
Chris Lattner 2a843827a2 clarify that opaque is actually a struct type, PR10430
llvm-svn: 135861
2011-07-23 19:59:08 +00:00
Chris Lattner 57132e88b7 how about that, StringRef doesn't allow any mutation, thanks to
Frits for straightening me out.

llvm-svn: 135856
2011-07-23 17:18:57 +00:00
Chris Lattner 2e3b0769da add section to ToC
llvm-svn: 135811
2011-07-22 21:36:29 +00:00
Chris Lattner 3dbcd8eca7 write the long-overdue strings section of the data structure guide.
llvm-svn: 135809
2011-07-22 21:34:12 +00:00
Chris Lattner 355f4bb960 move the section for string-like containers to follow the section for sequential containers.
llvm-svn: 135799
2011-07-22 20:46:49 +00:00
Jay Foad 040dd82f44 Convert IRBuilder::CreateGEP and IRBuilder::CreateInBoundsGEP to use
ArrayRef.

llvm-svn: 135761
2011-07-22 08:16:57 +00:00
Eli Friedman f12e4e914b Some LangRef tweaks, per Dan's comments.
llvm-svn: 135744
2011-07-22 03:04:45 +00:00
Jay Foad 857a48a8d7 Sort case-insensitively.
llvm-svn: 135674
2011-07-21 14:42:51 +00:00
Jay Foad ed8db7d9df Convert ConstantExpr::getGetElementPtr and
ConstantExpr::getInBoundsGetElementPtr to use ArrayRef.

llvm-svn: 135673
2011-07-21 14:31:17 +00:00
NAKAMURA Takumi 72c4af5d66 docs/GettingStarted.html: Tweak style.
llvm-svn: 135637
2011-07-20 23:37:51 +00:00
NAKAMURA Takumi 5d2a7328ed docs/GettingStarted.html: Fix a typo and tweak a command line.
llvm-svn: 135632
2011-07-20 22:58:28 +00:00
Eli Friedman 35b54aa148 Commit LangRef changes for LLVM concurrency model. Start of supporting C++0x memory model and atomics. See thread on llvmdev titled "Reviving the new LLVM concurrency model".
llvm-svn: 135624
2011-07-20 21:35:53 +00:00
Bob Wilson 088df09f27 Revert "Update docs to reflect r135457."
This reverts commit ba034c0a2e71303c7cf3f43ca8e69dc8436b32e2.

llvm-svn: 135485
2011-07-19 16:31:58 +00:00
Jay Foad b992a635fb Convert SimplifyGEPInst to use ArrayRef.
llvm-svn: 135482
2011-07-19 15:07:52 +00:00
Jay Foad 528bedaf5d Convert gep_type_begin and gep_type_end to use ArrayRef.
llvm-svn: 135481
2011-07-19 14:42:50 +00:00
Jay Foad bf904773bb Convert TargetData::getIndexedOffset to use ArrayRef.
llvm-svn: 135478
2011-07-19 14:01:37 +00:00