summaryrefslogtreecommitdiffstats
path: root/llvm/docs
Commit message (Collapse)AuthorAgeFilesLines
* Be a bit more specific in the release notes.Rafael Espindola2014-05-051-1/+2
| | | | llvm-svn: 207981
* Remove the -disable-cfi option.Rafael Espindola2014-05-051-0/+2
| | | | | | | This also add a release note about it. If this stays I will cleanup MC next week. llvm-svn: 207977
* Update docs still mentioning LLVM_ENABLE_CXX11Alp Toker2014-05-031-2/+2
| | | | | | C++11 is now required. llvm-svn: 207914
* Updated Doxygen link for InstIterator.h.Yaron Keren2014-05-031-1/+1
| | | | llvm-svn: 207906
* InstIterator.h lives in llvm/IR.Yaron Keren2014-05-031-2/+2
| | | | llvm-svn: 207903
* [tablegen] !strconcat accepts more than two arguments but this wasn't ↵Daniel Sanders2014-05-021-1/+3
| | | | | | | | | | | | | | | | | | | | documented or tested. Summary: * Updated the documentation * Added a test for >2 arguments * Added a check for the lexical concatenation * Made the existing test a bit stricter. Reviewers: t.p.northover Reviewed By: t.p.northover Subscribers: t.p.northover, llvm-commits Differential Revision: http://reviews.llvm.org/D3485 llvm-svn: 207865
* Code style fix from Duncan P. N. Exon Smith.Yaron Keren2014-05-021-1/+1
| | | | llvm-svn: 207831
* [IR] Make {extract,insert}element accept an index of any integer type.Michael J. Spencer2014-05-011-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Given the following C code llvm currently generates suboptimal code for x86-64: __m128 bss4( const __m128 *ptr, size_t i, size_t j ) { float f = ptr[i][j]; return (__m128) { f, f, f, f }; } ================================================= define <4 x float> @_Z4bss4PKDv4_fmm(<4 x float>* nocapture readonly %ptr, i64 %i, i64 %j) #0 { %a1 = getelementptr inbounds <4 x float>* %ptr, i64 %i %a2 = load <4 x float>* %a1, align 16, !tbaa !1 %a3 = trunc i64 %j to i32 %a4 = extractelement <4 x float> %a2, i32 %a3 %a5 = insertelement <4 x float> undef, float %a4, i32 0 %a6 = insertelement <4 x float> %a5, float %a4, i32 1 %a7 = insertelement <4 x float> %a6, float %a4, i32 2 %a8 = insertelement <4 x float> %a7, float %a4, i32 3 ret <4 x float> %a8 } ================================================= shlq $4, %rsi addq %rdi, %rsi movslq %edx, %rax vbroadcastss (%rsi,%rax,4), %xmm0 retq ================================================= The movslq is uneeded, but is present because of the trunc to i32 and then sext back to i64 that the backend adds for vbroadcastss. We can't remove it because it changes the meaning. The IR that clang generates is already suboptimal. What clang really should emit is: %a4 = extractelement <4 x float> %a2, i64 %j This patch makes that legal. A separate patch will teach clang to do it. Differential Revision: http://reviews.llvm.org/D3519 llvm-svn: 207801
* Update post-r203364 ↵Yaron Keren2014-05-011-8/+4
| | | | | | | | | | http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20140303/207915.html and ranged for loops. http://reviews.llvm.org/D3582 llvm-svn: 207755
* ARM: support stack probe emission for Windows on ARMSaleem Abdulrasool2014-04-301-0/+31
| | | | | | | | | | | | | | | | | This introduces the stack lowering emission of the stack probe function for Windows on ARM. The stack on Windows on ARM is a dynamically paged stack where any page allocation which crosses a page boundary of the following guard page will cause a page fault. This page fault must be handled by the kernel to ensure that the page is faulted in. If this does not occur and a write access any memory beyond that, the page fault will go unserviced, resulting in an abnormal program termination. The watermark for the stack probe appears to be at 4080 bytes (for accommodating the stack guard canaries and stack alignment) when SSP is enabled. Otherwise, the stack probe is emitted on the page size boundary of 4096 bytes. llvm-svn: 207615
* Document recently added sphinx documentation options inDan Liew2014-04-291-0/+27
| | | | | | CMake. llvm-svn: 207543
* Add 'musttail' marker to call instructionsReid Kleckner2014-04-241-12/+29
| | | | | | | | | | | | This is similar to the 'tail' marker, except that it guarantees that tail call optimization will occur. It also comes with convervative IR verification rules that ensure that tail call optimization is possible. Reviewers: nicholas Differential Revision: http://llvm-reviews.chandlerc.com/D3240 llvm-svn: 207143
* [docs] Add a note to docs/README.txtSean Silva2014-04-221-0/+9
| | | | | | | | | Added note to docs/README.txt on how to check the reachibility of external links in the documentation. Patch by Dan Liew! llvm-svn: 206924
* Added Sphinx documentation generation to CMake build system.Reid Kleckner2014-04-181-0/+15
| | | | | | | | | | | | | | | | | | | | | The option LLVM_ENABLE_SPHINX option enables the "docs-llvm-html", "docs-llvm-man" targets but does not build them by default. The following CMake options have been added that control what targets are made available SPHINX_OUTPUT_HTML SPHINX_OUTPUT_MAN If LLVM_BUILD_DOCS is enabled then the enabled docs-llvm-* targets will be built by default and if ``make install`` is run then docs-llvm-html and docs-llvm-man will be installed (tested on Linux only). The add_sphinx_target function is in its own file so it can be included by other projects that use Sphinx for their documentation. Patch by Daniel Liew <daniel.liew@imperial.ac.uk>! llvm-svn: 206655
* Remove -simplify-libcalls pass form Passes documentationReid Kleckner2014-04-181-9/+10
| | | | | | | | | | | | This pass was removed in r184459. Also added note that the InstCombine pass does library call simplification. Patch slightly modified from one by Daniel Liew <daniel.liew@imperial.ac.uk>! llvm-svn: 206650
* Fix example for VS2012.Paul Robinson2014-04-181-1/+1
| | | | llvm-svn: 206544
* C++11: Compatibility with (C++03 => MSVC)Duncan P. N. Exon Smith2014-04-171-3/+3
| | | | llvm-svn: 206481
* C++11: Document some limitations imposed by MSVCDuncan P. N. Exon Smith2014-04-171-0/+6
| | | | llvm-svn: 206480
* Remove documentation for a deleted pass.Eric Christopher2014-04-121-9/+0
| | | | llvm-svn: 206097
* blockfreq: Document BlockFrequencyInfo terminologyDuncan P. N. Exon Smith2014-04-113-4/+140
| | | | | | | | | Documents terminology used in the forthcoming rewrite of BlockFrequencyInfo. <rdar://problem/14292693> llvm-svn: 206086
* Move the segmented stack switch to a function attributeReid Kleckner2014-04-101-3/+2
| | | | | | | | | This removes the -segmented-stacks command line flag in favor of a per-function "split-stack" attribute. Patch by Luqman Aden and Alex Crichton! llvm-svn: 205997
* YAMLIO: Allow scalars to dictate quotation rulesDavid Majnemer2014-04-101-1/+3
| | | | | | | Introduce ScalarTraits::mustQuote which determines whether or not a StringRef needs quoting before it is acceptable to output. llvm-svn: 205955
* Fix some doc and comment typosAlp Toker2014-04-092-2/+2
| | | | llvm-svn: 205899
* [docs] VCS contains a record of authorshipSean Silva2014-04-081-2/+0
| | | | | | No need to explicitly mention the author in the document. llvm-svn: 205793
* [docs] Fix up some links to the preferred style.Sean Silva2014-04-086-16/+18
| | | | | | | | | | | | | :doc:`...` and :ref:`...` links help Sphinx keep track the dependencies between documents and ensure that they are not pointing to nowhere. Raw HTML links work just fine and are easier for people less familiar with reST/Sphinx. They are easy to change over to the :doc:/:ref: style after the fact so this is not a problem. This commit doesn't fix all of them. llvm-svn: 205792
* [docs] Fix some linksSean Silva2014-04-075-7/+8
| | | | | | | | The TableGen docs have changed structure Patch by Tay Ray Chuan! llvm-svn: 205744
* [docs] Update link titleSean Silva2014-04-071-1/+1
| | | | | | | docs/TableGen/ is not really just "fundamentals" anymore, but rather more of a portal for all things TableGen. llvm-svn: 205743
* [docs] Fix some Sphinx warnings that have crept in.Sean Silva2014-04-072-4/+5
| | | | llvm-svn: 205742
* Make docs point to new domain.Manuel Klimek2014-04-071-3/+3
| | | | llvm-svn: 205701
* Stack map docs. Remove some stray markup.Andrew Trick2014-04-031-4/+3
| | | | llvm-svn: 205515
* Minor update to the stack map documentation.Andrew Trick2014-04-031-4/+10
| | | | llvm-svn: 205513
* Recover TableGen/LangRef, make it officialRenato Golin2014-04-015-1307/+911
| | | | | | | | | | | | | Making the new TableGen documentation official and marking the old file as "Moved". Also, reverting the original LangRef as the normative formal description of the language, while keeping the "new" LangRef as LangIntro for the less inlcined to reading language grammars. We should remove TableGenFundamentals.rst one day, but for now, just a warning that it moved will have to do, while we make sure there are no more links to it from elsewhere. llvm-svn: 205289
* [Stackmaps] Update the stackmap format to use 64-bit relocations for the ↵Juergen Ributzka2014-03-311-5/+11
| | | | | | | | | | | | function address and properly align all entries. This commit updates the stackmap format to version 1 to indicate the reorganizaion of several fields. This was done in order to align stackmap entries to their natural alignment and to minimize padding. Fixes <rdar://problem/16005902> llvm-svn: 205254
* Exception handling docs: Clarify how the llvm.eh.* intrinsics are usedMark Seaborn2014-03-281-4/+13
| | | | | | | | | The non-SJLJ and SJLJ intrinsics are generated by the frontend and backend respectively. Differential Revision: http://llvm-reviews.chandlerc.com/D3010 llvm-svn: 205017
* Prevent alias from pointing to weak aliases.Rafael Espindola2014-03-271-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds back r204781. Original message: Aliases are just another name for a position in a file. As such, the regular symbol resolutions are not applied. For example, given define void @my_func() { ret void } @my_alias = alias weak void ()* @my_func @my_alias2 = alias void ()* @my_alias We produce without this patch: .weak my_alias my_alias = my_func .globl my_alias2 my_alias2 = my_alias That is, in the resulting ELF file my_alias, my_func and my_alias are just 3 names pointing to offset 0 of .text. That is *not* the semantics of IR linking. For example, linking in a @my_alias = alias void ()* @other_func would require the strong my_alias to override the weak one and my_alias2 would end up pointing to other_func. There is no way to represent that with aliases being just another name, so the best solution seems to be to just disallow it, converting a miscompile into an error. llvm-svn: 204934
* inalloca: *Really* fix the docsReid Kleckner2014-03-271-4/+2
| | | | llvm-svn: 204890
* Remove unneeded stale type.Reid Kleckner2014-03-271-1/+0
| | | | llvm-svn: 204889
* inalloca: Fix incorrect example IR and remove LangRef warningReid Kleckner2014-03-272-16/+13
| | | | | | | | | | The LangRef warning wasn't formatting the way I intended it to anyway. Surprisingly inalloca appears to work, even when optimizations are enabled. We generate very bad code for it, but we can self-host and run lots of big tests. llvm-svn: 204888
* Clarify that select is only non-branching on the IR-level, it often endsJoerg Sonnenberger2014-03-261-1/+1
| | | | | | up as jump table or other forms of branches on the machine level. llvm-svn: 204819
* Clarify llvm.clear_cache description.Joerg Sonnenberger2014-03-261-20/+13
| | | | llvm-svn: 204812
* Change @llvm.clear_cache default to call rt-libRenato Golin2014-03-261-4/+14
| | | | | | | | | | | After some discussion on IRC, emitting a call to the library function seems like a better default, since it will move from a compiler internal error to a linker error, that the user can work around until LLVM is fixed. I'm also adding a note on the responsibility of the user to confirm that the cache was cleared on platforms where nothing is done. llvm-svn: 204806
* Add @llvm.clear_cache builtinRenato Golin2014-03-261-0/+30
| | | | | | | | | | | | | | | | | Implementing the LLVM part of the call to __builtin___clear_cache which translates into an intrinsic @llvm.clear_cache and is lowered by each target, either to a call to __clear_cache or nothing at all incase the caches are unified. Updating LangRef and adding some tests for the implemented architectures. Other archs will have to implement the method in case this builtin has to be compiled for it, since the default behaviour is to bail unimplemented. A Clang patch is required for the builtin to be lowered into the llvm intrinsic. This will be done next. llvm-svn: 204802
* Revert "Prevent alias from pointing to weak aliases."Rafael Espindola2014-03-261-4/+0
| | | | | | | | | This reverts commit r204781. I will follow up to with msan folks to see what is what they were trying to do with aliases to weak aliases. llvm-svn: 204784
* Prevent alias from pointing to weak aliases.Rafael Espindola2014-03-261-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Aliases are just another name for a position in a file. As such, the regular symbol resolutions are not applied. For example, given define void @my_func() { ret void } @my_alias = alias weak void ()* @my_func @my_alias2 = alias void ()* @my_alias We produce without this patch: .weak my_alias my_alias = my_func .globl my_alias2 my_alias2 = my_alias That is, in the resulting ELF file my_alias, my_func and my_alias are just 3 names pointing to offset 0 of .text. That is *not* the semantics of IR linking. For example, linking in a @my_alias = alias void ()* @other_func would require the strong my_alias to override the weak one and my_alias2 would end up pointing to other_func. There is no way to represent that with aliases being just another name, so the best solution seems to be to just disallow it, converting a miscompile into an error. llvm-svn: 204781
* Adding some very nascent information about the clang tablegen backends, with ↵Aaron Ballman2014-03-241-17/+49
| | | | | | a promise to add more information later. llvm-svn: 204635
* Update release notes with EHABI current behaviourRenato Golin2014-03-241-2/+1
| | | | llvm-svn: 204598
* Add overall description, file comments, some structureRenato Golin2014-03-211-23/+138
| | | | llvm-svn: 204479
* Remove LowerInvoke's obsolete "-enable-correct-eh-support" optionMark Seaborn2014-03-203-36/+6
| | | | | | | | | | | | | | | This option caused LowerInvoke to generate code using SJLJ-based exception handling, but there is no code left that interprets the jmp_buf stack that the resulting code maintained (llvm.sjljeh.jblist). This option has been obsolete for a while, and replaced by SjLjEHPrepare. This leaves the default behaviour of LowerInvoke, which is to convert invokes to calls. Differential Revision: http://llvm-reviews.chandlerc.com/D3136 llvm-svn: 204388
* Fix a few more grammatic errors in docs/TableGen/index.rstEli Bendersky2014-03-201-4/+4
| | | | llvm-svn: 204364
* Fix a couple of typos and an inaccurate description in the new TableGen docEli Bendersky2014-03-201-7/+6
| | | | llvm-svn: 204363
OpenPOWER on IntegriCloud