1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 11:42:57 +01:00
Commit Graph

4224 Commits

Author SHA1 Message Date
David Greene
ae3329d597 Remove Multidefs
Multidefs are a bit unwieldy and incomplete.  Remove them in favor of
another mechanism, probably for loops.

Revert "Make Test More Thorough"
Revert "Fix a typo."
Revert "Vim Support for Multidefs"
Revert "Emacs Support for Multidefs"
Revert "Document Multidefs"
Revert "Add a Multidef Test"
Revert "Update Test for Multidefs"
Revert "Process Multidefs"
Revert "Parser Multidef Support"
Revert "Lexer Support for Multidefs"
Revert "Add Multidef Data Structures"

llvm-svn: 141378
2011-10-07 18:25:05 +00:00
Evan Cheng
c956dcb888 Jakob is the code owner of register allocation and TableGen.
llvm-svn: 141372
2011-10-07 17:26:38 +00:00
David Greene
fa0c5e33b7 Fix a typo.
Fix the argument passed in the multidef example.

llvm-svn: 141243
2011-10-05 23:16:44 +00:00
David Greene
14c2928601 Document Multidefs
Provide documentation for multidefs, explaining in detail how they
work.

llvm-svn: 141236
2011-10-05 22:42:49 +00:00
David Chisnall
b71d0322f9 Tell people using the tutorial how to make it actually work.
llvm-svn: 141103
2011-10-04 19:36:30 +00:00
Rafael Espindola
0158ec7cce Remove last references to hotpatch.
llvm-svn: 141057
2011-10-04 03:08:43 +00:00
Rafael Espindola
4700f53cee Add the returns_twice attribute to LLVM.
llvm-svn: 141001
2011-10-03 14:45:37 +00:00
Torok Edwin
774d60816b some 3.0 API notes
llvm-svn: 140851
2011-09-30 13:07:52 +00:00
Eric Christopher
c22f168cd8 Add a note on removing LLVMC.
llvm-svn: 140715
2011-09-28 19:47:28 +00:00
Bill Wendling
8fff17764c Remove incorrect passage.
llvm-svn: 140631
2011-09-27 20:16:57 +00:00
Bill Wendling
430c373009 Add FCA to the lexicon.
llvm-svn: 140619
2011-09-27 18:44:01 +00:00
Bill Wendling
d5449fa478 Remove some not-really-correct wording.
llvm-svn: 140600
2011-09-27 10:37:28 +00:00
Bill Wendling
25243542da Fix grammar.
llvm-svn: 140564
2011-09-26 21:10:31 +00:00
Bill Wendling
8e22ba15b1 Remove dead table entry.
llvm-svn: 140563
2011-09-26 21:08:28 +00:00
Bill Wendling
df9218305c Some minor (and more involved) cleanups. No real context changes.
llvm-svn: 140561
2011-09-26 21:06:33 +00:00
Chris Lattner
162cff8104 Duncan owns dragonegg too, it's all his fault :)
llvm-svn: 140430
2011-09-23 22:46:43 +00:00
Chris Lattner
966f637ca8 Resynch intro to section with copyright section.
llvm-svn: 140326
2011-09-22 18:54:31 +00:00
Bill Wendling
0e0049385b Remove mention of llvm-gcc and llvm-g++. -Ministry of Truth
llvm-svn: 140163
2011-09-20 18:24:04 +00:00
Bill Wendling
ec67102f5c Remove some missed references to dead intrinsics.
llvm-svn: 140129
2011-09-20 01:14:54 +00:00
Bill Wendling
9950cfb492 Update the EH doc to reflect the new EH model.
This basically involved removing references to llvm.eh.exception,
llvm.eh.selector, and llvm.eh.resume and replacing them with references to the
landingpad and resume instructions.

llvm-svn: 140128
2011-09-20 01:08:53 +00:00
Eric Christopher
a8a9910f4c More llvmc bits. Spotted by Benjamin on IRC.
llvm-svn: 140124
2011-09-20 00:42:28 +00:00
Eric Christopher
6cf9c3efe8 Remove more of llvmc and dependencies.
llvm-svn: 140121
2011-09-20 00:34:27 +00:00
Jakob Stoklund Olesen
884abe4bba X86 has asterisk-free inline asm support now.
Floating point stack inline asm works.

llvm-svn: 140033
2011-09-19 18:15:46 +00:00
Bill Wendling
f29791020b Remove obsolete .pod files.
llvm-svn: 140000
2011-09-18 12:52:55 +00:00
Bill Wendling
911a44ba8a Fix up the formating and change llvm-gcc to clang.
Note that this example doesn't work anymore!

llvm-svn: 139999
2011-09-18 12:51:05 +00:00
Bill Wendling
2b453ef022 Remove mention of llvm-gcc/llvm-g++ from doc.
llvm-svn: 139998
2011-09-18 12:37:20 +00:00
Chad Rosier
01ea3b0adf Add -rfunc and -rglob options to llvm-extract to support regular
expression matching.

llvm-svn: 139945
2011-09-16 21:09:17 +00:00
Nick Lewycky
1226a13418 s/SequeuentiallyConsistent/SequentiallyConsistent/g
llvm-svn: 139481
2011-09-11 15:50:05 +00:00
Nick Lewycky
9f071eb204 Fix verb tense agreement.
llvm-svn: 139480
2011-09-11 15:30:08 +00:00
Devang Patel
8a2e622f38 Update docs to reflect recent addition of new CompileUnit elements.
llvm-svn: 139374
2011-09-09 17:07:15 +00:00
Duncan Sands
6939ae53ac Split the init.trampoline intrinsic, which currently combines GCC's
init.trampoline and adjust.trampoline intrinsics, into two intrinsics
like in GCC.  While having one combined intrinsic is tempting, it is
not natural because typically the trampoline initialization needs to
be done in one function, and the result of adjust trampoline is needed
in a different (nested) function.  To get around this llvm-gcc hacks the
nested function lowering code to insert an additional parent variable
holding the adjust.trampoline result that can be accessed from the child
function.  Dragonegg doesn't have the luxury of tweaking GCC code, so it
stored the result of adjust.trampoline in the memory GCC set aside for
the trampoline itself (this is always available in the child function),
and set up some new memory (using an alloca) to hold the trampoline.
Unfortunately this breaks Go which allocates trampoline memory on the
heap and wants to use it even after the parent has exited (!).  Rather
than doing even more hacks to get Go working, it seemed best to just use
two intrinsics like in GCC.  Patch mostly by Sanjoy Das.

llvm-svn: 139140
2011-09-06 13:37:06 +00:00
Chandler Carruth
41b078f160 Update the CMake documentation to the correct variables.
Patch by arrowdodger!

llvm-svn: 139106
2011-09-04 23:24:13 +00:00
Rafael Espindola
3bb0f9391c Remove the old tail duplication pass. It is not used and is unable to update
ssa, so it has to be run really early in the pipeline. Any replacement
should probably use the SSAUpdater.

llvm-svn: 138841
2011-08-30 23:03:45 +00:00
Rafael Espindola
b1ed13e0e1 Preliminary documentation in docs/SegmentedStacks.html.
llvm-svn: 138823
2011-08-30 20:25:49 +00:00
Tobias Grosser
660f6d2616 Update docs: Bugpoint understands -O[123]
Eli added this in revision 132695.

llvm-svn: 138805
2011-08-30 18:26:11 +00:00
Eli Friedman
67b35cbeee Some minor updates to atomic acquire/release docs in LangRef.
llvm-svn: 138472
2011-08-24 20:28:39 +00:00
Rafael Espindola
5ad9eaf265 Fix an example in the documentation.
Patch by Sanjoy Das!

llvm-svn: 138346
2011-08-23 18:26:56 +00:00
NAKAMURA Takumi
ab26f3c65b docs/ReleaseNotes.html: Mention that Windows 2000 will not be supported any more.
llvm-svn: 138297
2011-08-22 23:22:05 +00:00
Eli Friedman
e8cbd06288 Some minor wording updates and cross-linking for atomic docs. Explicitly note that we don't try to portably define what volatile in LLVM IR means.
llvm-svn: 138274
2011-08-22 21:35:27 +00:00
Devang Patel
e4127d626e Do not use named md nodes to track variables that are completely optimized. This does not scale while doing LTO with debug info. New approach is to include list of variables in the subprogram info directly.
llvm-svn: 138145
2011-08-19 23:28:12 +00:00
John Criswell
1e3b4b2f5b Fixed some punctuation. Sentences can be combined with semi-colons but not
commas.

llvm-svn: 138043
2011-08-19 16:57:55 +00:00
Devang Patel
630d8ce36b Until now all debug info MDNodes referred to a root MDNode, a compile unit. This simplified handling of these needs in dwarf writer. However, one side effect of this is that during link time optimization all these MDNodes are _not_ uniqued. In other words there will be N number of MDNodes describing "int", "char" and all other types, which would suddenly grow when each object file starts using libraries like STL.
MDNodes graph structure such that compiler unit keeps track of important MDNodes and update dwarf writer to process mdnodes top-down instead of bottom up.

llvm-svn: 137778
2011-08-16 22:09:43 +00:00
Devang Patel
f1b61abc8c Add a finalize() hook, that'll let DIBuilder construct compile unit lazily.
llvm-svn: 137673
2011-08-15 23:00:00 +00:00
Eli Friedman
ca9b9f06ee Fix the getelementptr description so it is extremely clear that array indices passed to getelementptr are signed.
llvm-svn: 137538
2011-08-12 23:37:55 +00:00
Eli Friedman
baf0f69f9a 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.

llvm-svn: 137527
2011-08-12 22:50:01 +00:00
Eli Friedman
a274534196 Some reorganization of atomic docs. Added explicit section for NonAtomic. Added example for illegal non-atomic operation.
llvm-svn: 137520
2011-08-12 21:50:54 +00:00
Bill Wendling
4cbbcd4f82 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.

llvm-svn: 137501
2011-08-12 20:24:12 +00:00
Chris Lattner
f3629f2b27 apparently variable naming conventions never got added, document the
prevailing convention.  Thanks to Dave Zarzycki for the patch.

llvm-svn: 137497
2011-08-12 19:49:16 +00:00
Chris Lattner
79a221790c minor typo
llvm-svn: 137496
2011-08-12 19:48:19 +00:00
Chris Lattner
72f9fbf34e fix one reference that slipped through, thanks Eli
llvm-svn: 137488
2011-08-12 18:12:40 +00:00
Chris Lattner
d666fbc755 add new accessors to reflect new terminology in struct types.
llvm-svn: 137468
2011-08-12 17:31:02 +00:00
NAKAMURA Takumi
02868897cc docs/GettingStarted.html: [Git] Add instructions how to generate patchset with Git.
llvm-svn: 137444
2011-08-12 07:48:06 +00:00
NAKAMURA Takumi
da50fb07b0 docs/GettingStarted.html: [Git] Mention branch.master.rebase for the tracking branch.
Thanks to Jeff Yasskin to reword.

llvm-svn: 137443
2011-08-12 07:48:01 +00:00
NAKAMURA Takumi
9e24849245 docs/GettingStarted.html: [Git] Split the subsubsection for committer's section.
llvm-svn: 137442
2011-08-12 07:47:55 +00:00
NAKAMURA Takumi
ecab34205a docs: Update HTML markup(s).
llvm-svn: 137433
2011-08-12 06:17:17 +00:00
NAKAMURA Takumi
1b975dd6ca docs/llvm.css: Introduce <blockquote><pre>. It may be used as blockquoted "doc_code".
llvm-svn: 137432
2011-08-12 06:17:11 +00:00
Eli Friedman
00e4369ab7 Misc atomic doc tweaks; reordering operations across Acquire/Release can be beneficial.
llvm-svn: 137425
2011-08-12 03:38:32 +00:00
Eli Friedman
60b18ddf69 Fix up this paragraph (including a nasty typo).
llvm-svn: 137408
2011-08-12 01:26:06 +00:00
Andrew Trick
3efc88b31f Clarify the definition of SequentiallyConsistent operations.
llvm-svn: 137403
2011-08-12 00:36:38 +00:00
Eli Friedman
15fda085c1 Fix mismatched tag.
llvm-svn: 137388
2011-08-11 23:48:52 +00:00
Eli Friedman
7f6e958efc Revision to Atomics guide, per Chris's comments.
llvm-svn: 137386
2011-08-11 23:44:25 +00:00
Justin Holewinski
08425ade9c PTX: Add basic documentation to CodeGenerator.html
llvm-svn: 137315
2011-08-11 17:34:16 +00:00
Eli Friedman
5c21e417bb Changes per Jeffrey's comments.
llvm-svn: 137243
2011-08-10 20:17:43 +00:00
Eli Friedman
306aa10c47 Fix minor typo.
llvm-svn: 137177
2011-08-09 23:26:12 +00:00
Eli Friedman
5a2d27800e Representation of 'atomic load' and 'atomic store' in IR.
llvm-svn: 137170
2011-08-09 23:02:53 +00:00
Eli Friedman
5927cb56e3 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
0f2208f619 Clean up the grammar for the landingpad instruction.
llvm-svn: 137042
2011-08-08 08:06:05 +00:00
Bill Wendling
83c0ada603 Fix typo found by John.
llvm-svn: 137040
2011-08-08 07:58:58 +00:00
Jay Foad
7713b0b4c9 Reword.
llvm-svn: 136866
2011-08-04 10:43:43 +00:00
Bill Wendling
fdea9930ac 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
6eae915356 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
da7eb90ea1 Explain how clauses are applied.
llvm-svn: 136790
2011-08-03 17:17:06 +00:00
Bill Wendling
9f3e3462b8 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
a780c5c9f1 no need to count the terminators.
llvm-svn: 136718
2011-08-02 20:29:13 +00:00
Bill Wendling
ea8143f430 Duncan's english is better than mine. :-)
llvm-svn: 136684
2011-08-02 06:39:13 +00:00
Bill Wendling
b37af02067 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
fcf5d9ff74 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
22875e2d35 Minor wording tweak for memory model.
llvm-svn: 136668
2011-08-02 01:15:34 +00:00
Roman Divacky
cda7c35eaf Fix a typo.
llvm-svn: 136646
2011-08-01 20:38:27 +00:00
Bill Wendling
108ce4478d Fix some validation errors.
llvm-svn: 136591
2011-07-31 06:47:33 +00:00
Bill Wendling
3f24afed54 Fix some validation errors.
llvm-svn: 136590
2011-07-31 06:45:03 +00:00
Bill Wendling
8a625cebd2 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
57ddbb84ac 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
f6797ffc9a 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
b20cfdfe95 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
cd7dd596b2 Update document listing DIVariable elements to reflect recent changes.
llvm-svn: 136228
2011-07-27 18:14:50 +00:00
Bill Wendling
470df5ce10 Fix a typo.
llvm-svn: 136133
2011-07-26 20:42:28 +00:00
Andrew Trick
0219419a01 Updating stale documentation on regalloc modes.
llvm-svn: 136112
2011-07-26 18:31:49 +00:00
Bill Wendling
82fa07e47a Clean up the HTML here a bit.
llvm-svn: 136074
2011-07-26 10:41:15 +00:00
Bill Wendling
5b637eedcd 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
50291d09da 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
d18e87a4dd 80 columns.
llvm-svn: 135972
2011-07-25 21:13:23 +00:00
Bill Wendling
90adf00b91 Fix some typos.
llvm-svn: 135956
2011-07-25 20:25:03 +00:00
Bill Wendling
27bbd5aa2f An initial description of the compact unwind encoding.
llvm-svn: 135955
2011-07-25 20:19:48 +00:00
Rafael Espindola
c04ccde860 Add uwtable to the langref.
llvm-svn: 135913
2011-07-25 15:27:59 +00:00
Jay Foad
6513dac6e2 Convert GetElementPtrInst to use ArrayRef.
llvm-svn: 135904
2011-07-25 09:48:08 +00:00
Chris Lattner
ec448a31de clarify that opaque is actually a struct type, PR10430
llvm-svn: 135861
2011-07-23 19:59:08 +00:00
Chris Lattner
418c6d4374 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
410e97a81b add section to ToC
llvm-svn: 135811
2011-07-22 21:36:29 +00:00
Chris Lattner
b687e3c0e6 write the long-overdue strings section of the data structure guide.
llvm-svn: 135809
2011-07-22 21:34:12 +00:00
Chris Lattner
2e2fa87d6b 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
42463ed852 Convert IRBuilder::CreateGEP and IRBuilder::CreateInBoundsGEP to use
ArrayRef.

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

llvm-svn: 135673
2011-07-21 14:31:17 +00:00
NAKAMURA Takumi
83acc80027 docs/GettingStarted.html: Tweak style.
llvm-svn: 135637
2011-07-20 23:37:51 +00:00
NAKAMURA Takumi
4634322bf4 docs/GettingStarted.html: Fix a typo and tweak a command line.
llvm-svn: 135632
2011-07-20 22:58:28 +00:00
Eli Friedman
d9ac7681be 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
c7cb9841ca Revert "Update docs to reflect r135457."
This reverts commit ba034c0a2e71303c7cf3f43ca8e69dc8436b32e2.

llvm-svn: 135485
2011-07-19 16:31:58 +00:00
Jay Foad
bbbf29aab7 Convert SimplifyGEPInst to use ArrayRef.
llvm-svn: 135482
2011-07-19 15:07:52 +00:00
Jay Foad
83a0e1fa99 Convert gep_type_begin and gep_type_end to use ArrayRef.
llvm-svn: 135481
2011-07-19 14:42:50 +00:00
Jay Foad
0974b71f17 Convert TargetData::getIndexedOffset to use ArrayRef.
llvm-svn: 135478
2011-07-19 14:01:37 +00:00
Jay Foad
ae5894c5cc Use ArrayRef in ConstantFoldInstOperands and ConstantFoldCall.
llvm-svn: 135477
2011-07-19 13:32:40 +00:00
Devang Patel
d1cdabf6dc Update docs to reflect r135457.
llvm-svn: 135458
2011-07-19 01:04:39 +00:00
Jeffrey Yasskin
dd9a2cc0d2 Document how to maintain a git-svn clone of the LLVM git repositories.
llvm-svn: 135453
2011-07-19 00:20:54 +00:00
Chris Lattner
0acd1a9d12 document this api change.
llvm-svn: 135376
2011-07-18 04:56:02 +00:00
Chris Lattner
fde62dcdb7 introduce a new TinyPtrVector class.
llvm-svn: 135365
2011-07-18 01:40:02 +00:00
Eli Friedman
c8f855380b A couple of minor fixes to the OCaml tutorial. PR10025 and PR10316. Patches by Damien Schoof!
llvm-svn: 135293
2011-07-15 20:03:30 +00:00
Jay Foad
c826df8fb7 Convert CallInst and InvokeInst APIs to use ArrayRef.
llvm-svn: 135265
2011-07-15 08:37:34 +00:00
Jay Foad
471e6f62b4 Mention all API changes I've made since 2.9 was branched.
llvm-svn: 135142
2011-07-14 09:19:05 +00:00
Tobias Grosser
c0e20d0db1 VectorType is also a SequentialType
llvm-svn: 134979
2011-07-12 11:37:02 +00:00
Chris Lattner
a106725fc5 Land the long talked about "type system rewrite" patch. This
patch brings numerous advantages to LLVM.  One way to look at it
is through diffstat:
 109 files changed, 3005 insertions(+), 5906 deletions(-)

Removing almost 3K lines of code is a good thing.  Other advantages
include:

1. Value::getType() is a simple load that can be CSE'd, not a mutating
   union-find operation.
2. Types a uniqued and never move once created, defining away PATypeHolder.
3. Structs can be "named" now, and their name is part of the identity that
   uniques them.  This means that the compiler doesn't merge them structurally
   which makes the IR much less confusing.
4. Now that there is no way to get a cycle in a type graph without a named
   struct type, "upreferences" go away.
5. Type refinement is completely gone, which should make LTO much MUCH faster
   in some common cases with C++ code.
6. Types are now generally immutable, so we can use "Type *" instead 
   "const Type *" everywhere.

Downsides of this patch are that it removes some functions from the C API,
so people using those will have to upgrade to (not yet added) new API.  
"LLVM 3.0" is the right time to do this.

There are still some cleanups pending after this, this patch is large enough
as-is.

llvm-svn: 134829
2011-07-09 17:41:24 +00:00
Cameron Zwarich
7375e5af26 Use add instead of accumulate.
llvm-svn: 134752
2011-07-08 22:13:55 +00:00
Cameron Zwarich
c23366d357 Add an intrinsic and codegen support for fused multiply-accumulate. The intent
is to use this for architectures that have a native FMA instruction.

llvm-svn: 134742
2011-07-08 21:39:21 +00:00
Jakub Staszak
4f5defff42 Add documenation about "branch_weight" metadata and __builtin_expect instruction
llvm-svn: 134517
2011-07-06 18:31:02 +00:00
Owen Anderson
dccc4e4b9a Generalize @llvm.ctlz, @llvm.cttz, and @llvm.ctpop to work on vectors of integers, and fix the one optimization pass that I'm aware of that needs updating for this. At least one current target, ARM NEON, can implement these operations on vectors directly.
llvm-svn: 134265
2011-07-01 21:52:38 +00:00
Duncan Sands
b86ccb525d The enum was moved to ISDOpcodes.h.
llvm-svn: 134134
2011-06-30 06:37:07 +00:00
Evan Cheng
91e568589d Add missing operand. rdar://9694169
llvm-svn: 134078
2011-06-29 17:14:00 +00:00
Dan Gohman
6251ddaa83 Document nonlazybind.
llvm-svn: 133160
2011-06-16 16:03:13 +00:00
Jakob Stoklund Olesen
d89900e14c Use set operations instead of plain lists to enumerate register classes.
This simplifies many of the target description files since it is common
for register classes to be related or contain sequences of numbered
registers.

I have verified that this doesn't change the files generated by TableGen
for ARM and X86. It alters the allocation order of MBlaze GPR and Mips
FGR32 registers, but I believe the change is benign.

llvm-svn: 133105
2011-06-15 23:28:14 +00:00
Argyrios Kyrtzidis
c9fe78d77e Document ADT/PackedVector.h in "Programmer's Manual" doc.
llvm-svn: 133077
2011-06-15 19:56:01 +00:00
Bruno Cardoso Lopes
b6afc5168f Add one more argument to the prefetch intrinsic to indicate whether it's a data
or instruction cache access. Update the targets to match it and also teach
autoupgrade.

llvm-svn: 132976
2011-06-14 04:58:37 +00:00
Chris Lattner
71a35fd7e7 mention graph vis isn't available in Release builds.
llvm-svn: 132916
2011-06-13 15:59:35 +00:00
Chad Rosier
dde3ea46e9 Typo.
llvm-svn: 132730
2011-06-07 20:03:13 +00:00
Andrew Trick
e9e48acf00 Corrections and additional information for "Creating and LLVM Project"
documentation. This should now reflect the current state of LLVM Makefiles.

llvm-svn: 132527
2011-06-03 02:20:48 +00:00
Andrew Trick
fa7de8e32b whitespace
llvm-svn: 132526
2011-06-03 02:16:53 +00:00
Devang Patel
67a308861a Fix html formatting.
llvm-svn: 132345
2011-05-31 18:06:14 +00:00
Devang Patel
485b3d7ca4 Clarify documentation and remove guarantees that are not fulfilled.
llvm-svn: 132344
2011-05-31 17:45:27 +00:00
Chris Lattner
a2c4fe8eea replace the intro tutorial from 2004 with a more recent work.
llvm-svn: 132310
2011-05-30 03:36:58 +00:00
John McCall
119a0222f5 Implement and document the llvm.eh.resume intrinsic, which is
transformed by the inliner into a branch to the enclosing landing pad
(when inlined through an invoke).  If not so optimized, it is lowered
DWARF EH preparation into a call to _Unwind_Resume (or _Unwind_SjLj_Resume
as appropriate).  Its chief advantage is that it takes both the
exception value and the selector value as arguments, meaning that there
is zero effort in recovering these;  however, the frontend is required
to pass these down, which is not actually particularly difficult.

Also document the behavior of landing pads a bit better, and make it
clearer that it's okay that personality functions don't always land at
landing pads.  This is just a fact of life.  Don't write optimizations that
rely on pushing things over an unwind edge.

llvm-svn: 132253
2011-05-28 07:45:59 +00:00
Chad Rosier
a4732c4a96 Clean out the 2.9 Release Notes. Mostly limited to What's New in LLVM
and enhancements in sub-project status updates.

llvm-svn: 132227
2011-05-27 22:50:46 +00:00
Chad Rosier
fe86df1e51 Add change of crc32 intrinsic to release notes
llvm-svn: 132212
2011-05-27 20:13:10 +00:00
Dan Gohman
0181c67669 Fix copy+pastos.
llvm-svn: 132168
2011-05-27 00:36:31 +00:00
Dan Gohman
f2c4a47575 Update documentation: -basicaa does chaining these days.
llvm-svn: 132010
2011-05-24 22:01:32 +00:00
Dan Gohman
3dd68e8eca Document llvm.exp and llvm.pow.
llvm-svn: 131921
2011-05-23 21:13:03 +00:00
Chris Lattner
9275a4413b document thiscall, PR9101
llvm-svn: 131873
2011-05-22 22:28:47 +00:00
Chris Lattner
2be4296485 insertvalue takes a variable number of arguments, document this, fixing PR9935.
llvm-svn: 131850
2011-05-22 07:18:08 +00:00
Chad Rosier
2d11812d9a Correct typos in TestingGuide.html
llvm-svn: 131546
2011-05-18 18:07:16 +00:00
Nick Lewycky
441a5d42ed Fix errors in this llvm ir example.
llvm-svn: 131416
2011-05-16 19:29:30 +00:00
Akira Hatanaka
fe1f642eb1 1. Keep lines in 80 columns.
2. Remove unused function.
3. Correct indentation.

llvm-svn: 131028
2011-05-06 22:11:29 +00:00
Bill Wendling
08ab6e7d9c Document the automatic alias printing of InstAliases.
llvm-svn: 130889
2011-05-04 23:40:14 +00:00
Devang Patel
f40a9eda2e Use llvm.dbg.cu named metadata to collect compile units.
llvm-svn: 130756
2011-05-03 16:18:28 +00:00
Oscar Fuentes
37e20483df Update instructions: LLVM.cmake is now LLVMConfig.cmake
llvm-svn: 130631
2011-05-01 02:12:20 +00:00
NAKAMURA Takumi
70fa3c7039 docs/doxygen.css: Tweak padding on memdoc.
llvm-svn: 130493
2011-04-29 09:59:12 +00:00
NAKAMURA Takumi
236c7ad0ca docs/doxygen.css: Tweak style for readability.
A few styles are brought from http://llvm.org/test-doxygen/api/api.css

llvm-svn: 130333
2011-04-27 21:53:35 +00:00
Mikhail Glushenkov
0d5d2e214c Regenerate.
llvm-svn: 130091
2011-04-24 14:17:37 +00:00
Andrew Trick
db92825944 Comment edit.
llvm-svn: 130047
2011-04-23 03:27:19 +00:00
NAKAMURA Takumi
ada5cc7c01 docs: Introduce cascading style <div> and <p> continued on <h[2-5]>.
<h2>Section Example</h2>
<div> <!-- h2+div is applied -->
<p>Section preamble.</p>

<h3>Subsection Example</h3>
<p> <!-- h3+p is applied -->
Subsection body
</p>

<!-- End of section body -->
</div>

FIXME: Care H5 better.
llvm-svn: 130040
2011-04-23 00:30:22 +00:00
Devang Patel
929bbb6bf9 Let front-end tie subprogram declaration with subprogram definition directly.
llvm-svn: 130028
2011-04-22 23:10:17 +00:00
NAKAMURA Takumi
e5837f1317 docs/llvm.css: Introduce cascading style <div> and <p> continued on <h[2-5]>. For now, it is applied in AliasAnalysis.html and ReleaseNotes.html.
<h2>Section Example</h2>
<div> <!-- h2+div is applied -->
<p>Section preamble.</p>

<h3>Subsection Example</h3>
<p> <!-- h3+p is applied -->
Subsection body
</p>

<!-- End of section body -->
</div>

llvm-svn: 129901
2011-04-21 01:52:00 +00:00
NAKAMURA Takumi
b4d0713c60 docs/Passes.html: Fix a garbage.
llvm-svn: 129900
2011-04-21 01:32:19 +00:00
NAKAMURA Takumi
3edcd4ba6a docs: Use <Hn> as Heading elements instead of <DIV class="doc_foo">.
H1 ... doc_title
H2 ... doc_section
H3 ... doc_subsection
H4 ... doc_subsubsection

llvm-svn: 129736
2011-04-18 23:59:50 +00:00
NAKAMURA Takumi
75a5311a8e docs: Redefine Heading elements as below;
H1 ... Title (and might be Chapter in future)
H2 ... Section
H3 ... Subsection
H4 ... Sub-subsection

llvm-svn: 129683
2011-04-18 01:17:51 +00:00
Devang Patel
eddab1d186 Introduce support to encode Objective-C property information in debugging information generated for an interface.
llvm-svn: 129624
2011-04-16 00:11:51 +00:00
Douglas Gregor
054dd418ca Fix some broken links, from Matthieu Monrocq
llvm-svn: 129609
2011-04-15 21:21:31 +00:00
Chris Lattner
0304b82f80 Fix a ton of comment typos found by codespell. Patch by
Luis Felipe Strano Moraes!

llvm-svn: 129558
2011-04-15 05:18:47 +00:00
Andrew Trick
85a4af977a Documented bugpoint --compile-custom --compile-command.
I've used it a few times to reduce unit tests and gotten one request for information on it. It's not easy to use correctly because bugpoint doesn't tell you when you're doing it wrong.

llvm-svn: 129507
2011-04-14 05:05:36 +00:00
Jay Foad
6466c4de3d Fix typo.
llvm-svn: 129437
2011-04-13 13:03:56 +00:00
Dan Gohman
4b96ea3283 Fix a hole in the definition of "dependence" used by trap values. Trap
values are also transmitted through branches which cause side effects to
be skipped altogether.

llvm-svn: 129404
2011-04-12 23:05:59 +00:00
Oscar Fuentes
e77e5f940d Document how to build a LLVM pass with CMake out of source.
Patch by arrowdodger!

llvm-svn: 129381
2011-04-12 19:40:35 +00:00
NAKAMURA Takumi
63fd32bda1 docs/CommandGuide/index.html: Fix CSS url to relative.
llvm-svn: 129268
2011-04-11 03:27:38 +00:00
NAKAMURA Takumi
522ce4a448 docs/CommandLine.html: &quot;ize.
llvm-svn: 129267
2011-04-11 03:27:31 +00:00
Oscar Fuentes
2509b58c75 CMake: support for using LLVM from client projects with find_package.
Patch by arrowdodger!

llvm-svn: 129247
2011-04-10 16:17:49 +00:00
Oscar Fuentes
0185398e19 Reword instructions for running tests on Visual Studio.
Suggested by Maël Hörz.

llvm-svn: 129237
2011-04-10 01:41:55 +00:00
NAKAMURA Takumi
3a082d8a12 docs/*.html: Make W3C HTML 4.01 Strict more compliant.
FIXME: The logo handling in ReleaseNotes.html
llvm-svn: 129208
2011-04-09 09:51:57 +00:00
NAKAMURA Takumi
35b6a3c561 docs/tutorial/OCamlLangImpl7.html: Fix a href to missing Chapter 8.
llvm-svn: 129183
2011-04-09 02:14:41 +00:00
NAKAMURA Takumi
869d55fb5c docs: Fix some in-package URLs.
(eg. trim http://llvm.org/docs/foo -> foo)

llvm-svn: 129182
2011-04-09 02:13:48 +00:00
NAKAMURA Takumi
940b366f8c docs: Canonicalize URLs.
llvm-svn: 129181
2011-04-09 02:13:37 +00:00
Devang Patel
21b6ef4320 Simplify array bound checks and clarify comments. One element array can have same non-zero number as lower bound as well as upper bound.
llvm-svn: 129170
2011-04-08 23:39:38 +00:00
Devang Patel
39ac307002 Do not emit DW_AT_upper_bound and DW_AT_lower_bound for unbouded array.
If lower bound is more then upper bound then consider it is an unbounded array.
An array is unbounded if non-zero lower bound is same as upper bound.
If lower bound and upper bound are zero than array has one element.

llvm-svn: 129156
2011-04-08 21:55:10 +00:00
Bill Wendling
8bb9757054 Missing closed tag.
llvm-svn: 129155
2011-04-08 21:43:08 +00:00
Bruno Cardoso Lopes
fcd7917ed0 Also add the late notes for Mips in the current release note
llvm-svn: 129122
2011-04-08 03:06:22 +00:00
Jay Foad
9351e0c03e Fix a bit of nonsense.
llvm-svn: 129073
2011-04-07 12:41:09 +00:00
Chris Lattner
c0cc11ce0f add faust too
llvm-svn: 129053
2011-04-07 03:09:21 +00:00
Chris Lattner
af5e910e60 add a few late stragglers.
llvm-svn: 129052
2011-04-07 03:08:22 +00:00
Roman Divacky
ad7a68fff5 Fix a typo.
llvm-svn: 129019
2011-04-06 19:12:21 +00:00
Chris Lattner
6f4969e793 add rubinius
llvm-svn: 129006
2011-04-06 16:14:25 +00:00
Duncan Sands
dd20746250 Fix some typos. Minor tweaks to how some things were expressed.
llvm-svn: 128997
2011-04-06 08:07:40 +00:00
Jay Foad
c3de661aa8 Trivial typo fixes.
llvm-svn: 128996
2011-04-06 07:55:30 +00:00
Chris Lattner
a579f228bf Finish up the first draft of the release notes.
improvements are welcome, please commit any changes directly to SVN.

llvm-svn: 128992
2011-04-06 06:29:50 +00:00
Chris Lattner
aa6816aa16 continue writing.
llvm-svn: 128990
2011-04-06 05:50:04 +00:00
Chris Lattner
a2c6b5c1c3 add the external users that emailed me.
llvm-svn: 128974
2011-04-06 01:13:49 +00:00
Chris Lattner
430be971a9 some libc++ notes.
llvm-svn: 128970
2011-04-06 00:59:18 +00:00
Chris Lattner
d1df6aa094 some edits.
llvm-svn: 128969
2011-04-06 00:56:12 +00:00
Chris Lattner
379ef843a9 distribute content out to the appropriate sections
llvm-svn: 128968
2011-04-06 00:45:11 +00:00
Chris Lattner
362c5df787 finished my pass through all the 2.9 commits, now to make this intelligible
llvm-svn: 128955
2011-04-05 23:22:33 +00:00
Chris Lattner
1dd86fd6f4 mention llvm::ArrayRef, which should be use much more pervasively than
it already is.

llvm-svn: 128954
2011-04-05 23:18:20 +00:00
Devang Patel
03d0891c10 Add support to encode function's template parameters.
llvm-svn: 128947
2011-04-05 22:52:06 +00:00
NAKAMURA Takumi
74a55198e0 docs/ReleaseNotes.html: Please use proper *Heading* elements instead of classified div.
It would be better to browse without stylesheet. (eg. on ViewVC)

llvm-svn: 128942
2011-04-05 21:55:14 +00:00
Chris Lattner
91618e9fd8 remove graphprinter support for domfrontier.
llvm-svn: 128938
2011-04-05 21:43:56 +00:00
Chris Lattner
bb45d35288 only 7 more weeks to go.
llvm-svn: 128933
2011-04-05 21:37:08 +00:00
Jakob Stoklund Olesen
e104258b57 Document llvm/ADT/IntEqClasses.h in ProgrammersManual.html
llvm-svn: 128927
2011-04-05 20:56:08 +00:00
Chris Lattner
85ebfdb7dd more notes to self.
llvm-svn: 128902
2011-04-05 18:38:45 +00:00
NAKAMURA Takumi
b6e583dc5f docs/ReleaseNotes.html: Add a few notes to MCCOFF and x64. FIXME: fixme!
llvm-svn: 128882
2011-04-05 08:24:22 +00:00
NAKAMURA Takumi
66a6d92da5 docs/GettingStarted.html: FIXME: dg, lit, and source tree layout.
llvm-svn: 128881
2011-04-05 08:24:15 +00:00
Chris Lattner
f3b6b30c34 add a bunch of notes to myself, this is not intended to be gramatic or
make sense to anyone else.

llvm-svn: 128879
2011-04-05 07:19:28 +00:00
Bill Wendling
6026cf5526 Add info on where to get 2.9 final svn sources.
llvm-svn: 128860
2011-04-04 23:42:51 +00:00
Duncan Sands
acc3119c41 Dragonegg release notes.
llvm-svn: 128812
2011-04-04 11:09:08 +00:00
Nick Lewycky
753ef5bbf0 Pick better examples. "fpext float 3.1415 to double" won't parse because 3.1415
isn't an exact float. Also "fpext float 1.0 to float" is invalid IR because
it's not performing an extension.

llvm-svn: 128647
2011-03-31 18:20:19 +00:00
Jay Foad
53632b7c03 Remove PHINode::reserveOperandSpace(). Instead, add a parameter to
PHINode::Create() giving the (known or expected) number of operands.

llvm-svn: 128537
2011-03-30 11:28:46 +00:00
Devang Patel
1b0c19617d Document llvm.dbg.sp, llvm.dbg.gv and llvm.dbg.enum
llvm-svn: 128466
2011-03-29 17:27:08 +00:00
NAKAMURA Takumi
2bdbab1457 docs/GettingStarted.html: [PR8850] Add a note for x86_64-w64-mingw32.
llvm-svn: 128404
2011-03-28 06:27:12 +00:00
NAKAMURA Takumi
f77260b34b docs/GettingStarted.html: Add blurb "--enable-shared" on cygming.
llvm-svn: 128403
2011-03-28 06:27:06 +00:00
Bill Wendling
fbff8d1e52 Remove redundant compression option.
llvm-svn: 128267
2011-03-25 06:43:59 +00:00
Chris Lattner
3385be615f fix description, PR9542
llvm-svn: 128214
2011-03-24 16:13:31 +00:00
Eli Friedman
7963b9cbf1 Update Passes.html, part 3: alphabetize descriptions.
llvm-svn: 127948
2011-03-19 05:02:14 +00:00
Eli Friedman
12058955b2 Update Passes.html, part 2: cleanup a bit more dead docs, a few more
description updates.

llvm-svn: 127947
2011-03-19 04:55:29 +00:00
Eli Friedman
186b255541 Update Passes.html, part 1: remove passes which were removed from the tree,
update short descriptions to match those from the options, alphabetize table
of contents.

llvm-svn: 127946
2011-03-19 04:47:52 +00:00
Rafael Espindola
77b5251619 Some release notes.
llvm-svn: 127867
2011-03-18 04:07:44 +00:00
Cameron Zwarich
0f031dccab Change the signext language in LangRef to closer match zeroext.
llvm-svn: 127808
2011-03-17 14:21:58 +00:00
Cameron Zwarich
2bb1e45ea3 The x86-64 ABI says that a bool is only guaranteed to be sign-extended to a byte
rather than an int. Thankfully, this only causes LLVM to miss optimizations, not
generate incorrect code.

This just fixes the zext at the return. We still insert an i32 ZextAssert when
reading a function's arguments, but it is followed by a truncate and another i8
ZextAssert so it is not optimized.

llvm-svn: 127766
2011-03-16 22:20:18 +00:00
Chris Lattner
bf47cbabd9 rip out llvm 2.8 release notes to make room for llvm 2.9 notes.
llvm-svn: 127399
2011-03-10 07:43:44 +00:00
Devang Patel
8108b711d9 Since last couple of days, argument number is encoded using 8 bits from line number field in argument's debug info.
llvm-svn: 127250
2011-03-08 16:29:40 +00:00
Devang Patel
21033e45be Update DILexicalBlock doc to mention new fields.
llvm-svn: 127249
2011-03-08 16:25:29 +00:00
Duncan Sands
1e5b90b716 Clarify that the result of an srem is only guaranteed to have the same sign as the
left-hand-side if the result is non-zero.

llvm-svn: 127156
2011-03-07 09:12:24 +00:00
Bill Wendling
b0d3caf6c9 Fix tagging name.
llvm-svn: 127154
2011-03-07 07:37:12 +00:00
Chris Lattner
3867e5f48e remove another jeff link
llvm-svn: 127135
2011-03-06 23:00:33 +00:00
Chris Lattner
bd5b38edb7 remove jeff's name (by his request)
llvm-svn: 127066
2011-03-05 07:23:02 +00:00
Oscar Fuentes
06f62a8581 Support for parallel compilation (/MP) when using the VS IDE.
Patch by Erik Olofsson!

llvm-svn: 126847
2011-03-02 17:47:37 +00:00
Bill Wendling
e65e2ba6c4 Small cleanup.
llvm-svn: 126821
2011-03-02 02:17:11 +00:00
Bill Wendling
bb975d9dcb Update the documentation on "How to Release LLVM". It lays out a new way of
tagging and branching for the release. I will update this more throughout the
2.9 release process.

llvm-svn: 126604
2011-02-28 01:10:44 +00:00
Duncan Sands
ab32f19034 Fix typo pointed out in pr9339.
llvm-svn: 126573
2011-02-27 13:54:01 +00:00
Nadav Rotem
ab7cf630f4 Enable support for vector sext and trunc:
Limit the folding of any_ext and sext  into the load operation to scalars.
Limit the active-bits trunc optimization to scalars.
Document vector trunc and vector sext in LangRef.

Similar to commit 126080 (for enabling zext).

llvm-svn: 126424
2011-02-24 21:01:34 +00:00
Oscar Fuentes
3a4a256da9 Remove the link to Projects.html. It is useless for people working on
Visual Studio.

llvm-svn: 126083
2011-02-20 15:34:12 +00:00
Nadav Rotem
1660c0bc25 Fix 9267; Add vector zext support.
The DAGCombiner folds the zext into complex load instructions. This patch
prevents this optimization on vectors since none of the supported targets
knows how to perform load+vector_zext in one instruction.

llvm-svn: 126080
2011-02-20 12:37:50 +00:00
Nick Lewycky
ff644b8ae6 Fix typo.
llvm-svn: 126065
2011-02-20 02:03:04 +00:00
Nick Lewycky
4e7ec00a1d Fix thinko, basic blocks are SESE. The exits may have many edges though.
llvm-svn: 125709
2011-02-17 02:19:22 +00:00
Duncan Sands
061150ac1b Spelling fix: consequtive -> consecutive.
llvm-svn: 125563
2011-02-15 09:23:02 +00:00
Chris Lattner
f661ea3f4a Minor fixes to tutorial, patch by Benjamin Meyer!
llvm-svn: 125544
2011-02-15 00:24:32 +00:00
Tobias Grosser
971b2df868 Adapt docs to '-loopsimplify -> -loop-simplify' change
llvm-svn: 125469
2011-02-13 20:57:25 +00:00
Chris Lattner
6db1d329ce attempt to capture recent discussion about overflow and inbounds geps.
llvm-svn: 125412
2011-02-11 21:50:52 +00:00
Erick Tryzelaar
bd07266baa Don't run ocamldoc if it's not installed
llvm-svn: 125203
2011-02-09 18:32:04 +00:00
Chris Lattner
6fbe8f23a6 fix typo
llvm-svn: 125192
2011-02-09 16:44:44 +00:00
NAKAMURA Takumi
0056752911 Add testing stuff to CMake documents.
- Note "GnuWin32".
  - Note LLVM_LIT_TOOLS_DIR
  - Now we can run tests on VS w/e all tests might pass or not!

llvm-svn: 125177
2011-02-09 04:19:28 +00:00
Chris Lattner
2fd09e3397 implement .ll and .bc support for nsw/nuw on shl and exact on lshr/ashr.
Factor some code better.

llvm-svn: 125006
2011-02-07 16:40:21 +00:00
Chris Lattner
7b6a968f5d enhance vmcore to know that udiv's can be exact, and add a trivial
instcombine xform to exercise this.

Nothing forms exact udivs yet though.  This is progress on PR8862

llvm-svn: 124992
2011-02-06 21:44:57 +00:00
Devang Patel
82e61a6ff3 Update docs to match reality.
llvm-svn: 124761
2011-02-03 00:22:17 +00:00
Anton Korobeynikov
4b076fdbdb Document the LLVM GIT mirror
llvm-svn: 124677
2011-02-01 20:08:28 +00:00
Devang Patel
b61c9bfa72 Remove stale references of obsolete @llvm.dbg.variable.
llvm-svn: 124664
2011-02-01 17:22:12 +00:00
Nick Lewycky
9fe6ef1bed Most browsers eliminate whitespace between anchor tags. Force whitespace with
&nbsp; so that the code reads properly.

llvm-svn: 124514
2011-01-29 01:09:53 +00:00