summaryrefslogtreecommitdiffstats
path: root/llvm/docs
Commit message (Collapse)AuthorAgeFilesLines
...
* Document how to fetch monorepo SVN revision notesReid Kleckner2017-03-241-6/+18
| | | | llvm-svn: 298733
* Document the status quo of DIExpression semantics in LangRef.rstAdrian Prantl2017-03-221-7/+20
| | | | llvm-svn: 298528
* Let llvm.objectsize be conservative with null pointersGeorge Burgess IV2017-03-211-7/+12
| | | | | | | | | | | This adds a parameter to @llvm.objectsize that makes it return conservative values if it's given null. This fixes PR23277. Differential Revision: https://reviews.llvm.org/D28494 llvm-svn: 298430
* Fix RST docs AttributeList heading underlineReid Kleckner2017-03-211-1/+1
| | | | llvm-svn: 298398
* Rename AttributeSet to AttributeListReid Kleckner2017-03-211-17/+16
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: This class is a list of AttributeSetNodes corresponding the function prototype of a call or function declaration. This class used to be called ParamAttrListPtr, then AttrListPtr, then AttributeSet. It is typically accessed by parameter and return value index, so "AttributeList" seems like a more intuitive name. Rename AttributeSetImpl to AttributeListImpl to follow suit. It's useful to rename this class so that we can rename AttributeSetNode to AttributeSet later. AttributeSet is the set of attributes that apply to a single function, argument, or return value. Reviewers: sanjoy, javed.absar, chandlerc, pete Reviewed By: pete Subscribers: pete, jholewinski, arsenm, dschuff, mehdi_amini, jfb, nhaehnle, sbc100, void, llvm-commits Differential Revision: https://reviews.llvm.org/D31102 llvm-svn: 298393
* Mention that the Sphinx docs build wants version 1.5 or laterJonathan Roelofs2017-03-201-1/+2
| | | | | | | `misc.highlighting_failure` support was added to `suppress_warnings` in that version, and the warnings-as-errors docs build relies on it. llvm-svn: 298277
* Fix docs-llvm-html build.Evgeniy Stepanov2017-03-171-1/+2
| | | | llvm-svn: 298163
* Add !associated metadata.Evgeniy Stepanov2017-03-171-0/+25
| | | | | | | | | | | | | | | | This is an ELF-specific thing that adds SHF_LINK_ORDER to the global's section pointing to the metadata argument's section. The effect of that is a reverse dependency between sections for the linker GC. !associated does not change the behavior of global-dce. The global may also need to be added to llvm.compiler.used. Since SHF_LINK_ORDER is per-section, !associated effectively enables fdata-sections for the affected globals, the same as comdats do. Differential Revision: https://reviews.llvm.org/D29104 llvm-svn: 298157
* Resubmit r297897: [PGO] Value profile for size of memory intrinsic callsRong Xu2017-03-161-0/+4
| | | | | | | R297897 inadvertently enabled annotation for memop profiling. This new patch fixed it. llvm-svn: 297996
* Revert "[PGO] Value profile for size of memory intrinsic calls"Eric Liu2017-03-161-4/+0
| | | | | | This commit reverts r297897 and r297909. llvm-svn: 297951
* [PGO] Value profile for size of memory intrinsic callsRong Xu2017-03-151-0/+4
| | | | | | | | | This patch adds the value profile support to profile the size parameter of memory intrinsic calls: memcpy, memcmp, and memmov. Differential Revision: http://reviews.llvm.org/D28965 llvm-svn: 297897
* Fix some indenting and line-wrapping issues identified in ProgrammersManual. ↵Daniel Berlin2017-03-131-26/+28
| | | | | | Make description of debugCounters a little clearer llvm-svn: 297656
* Add documentation on debug counters to Programmers Manual.Daniel Berlin2017-03-121-0/+63
| | | | | | | | | | Reviewers: mehdi_amini Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D30842 llvm-svn: 297575
* Remove opt-bisect support for "cases" in favor of debug countersDaniel Berlin2017-03-111-9/+2
| | | | | | | | | | | | | | | | | | Summary: Ths "cases" support was not quite finished, is unused, and is really just debug counters. (well, almost, debug counters are slightly more powerful, in that they can skip things at the start, too). Note, opt-bisect itself could also be implemented as a wrapper around debug counters, but not sure it's worth it ATM. I'll shove it on a todo list if we think it is. Reviewers: MatzeB, chandlerc Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D30856 llvm-svn: 297542
* [FileCheck] Added --enable-var-scope option to enable scope for regex variables.Artem Belevich2017-03-091-0/+19
| | | | | | | | | | | | | If `--enable-var-scope` is in effect, variables with names that start with `$` are considered to be global. All other variables are local. All local variables get undefined at the beginning of each CHECK-LABEL block. Global variables are not affected by CHECK-LABEL. This makes it easier to ensure that individual tests are not affected by variables set in preceding tests. Differential Revision: https://reviews.llvm.org/D30749 llvm-svn: 297396
* [InstSimplify] vector div/rem with any zero element in divisor is undefSanjay Patel2017-03-091-7/+14
| | | | | | | | | | | This was suggested as a DAG simplification in the review for rL297026 : http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20170306/435253.html ...but let's start with IR since we have actual docs for IR (LangRef). Differential Revision: https://reviews.llvm.org/D30665 llvm-svn: 297390
* [DebugInfo] Emit address space with DW_AT_address_class attribute for ↵Konstantin Zhuravlyov2017-03-081-10/+14
| | | | | | | | pointer and reference types Differential Revision: https://reviews.llvm.org/D29670 llvm-svn: 297320
* [DebugInfo] Make legal and emit DW_OP_swap and DW_OP_xderefKonstantin Zhuravlyov2017-03-081-0/+5
| | | | | | Differential Revision: https://reviews.llvm.org/D29672 llvm-svn: 297247
* [coroutines] Add handling for unwind coro.endsGor Nishanov2017-03-071-18/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: The purpose of coro.end intrinsic is to allow frontends to mark the cleanup and other code that is only relevant during the initial invocation of the coroutine and should not be present in resume and destroy parts. In landing pads coro.end is replaced with an appropriate instruction to unwind to caller. The handling of coro.end differs depending on whether the target is using landingpad or WinEH exception model. For landingpad based exception model, it is expected that frontend uses the `coro.end`_ intrinsic as follows: ``` ehcleanup: %InResumePart = call i1 @llvm.coro.end(i8* null, i1 true) br i1 %InResumePart, label %eh.resume, label %cleanup.cont cleanup.cont: ; rest of the cleanup eh.resume: %exn = load i8*, i8** %exn.slot, align 8 %sel = load i32, i32* %ehselector.slot, align 4 %lpad.val = insertvalue { i8*, i32 } undef, i8* %exn, 0 %lpad.val29 = insertvalue { i8*, i32 } %lpad.val, i32 %sel, 1 resume { i8*, i32 } %lpad.val29 ``` The `CoroSpit` pass replaces `coro.end` with ``True`` in the resume functions, thus leading to immediate unwind to the caller, whereas in start function it is replaced with ``False``, thus allowing to proceed to the rest of the cleanup code that is only needed during initial invocation of the coroutine. For Windows Exception handling model, a frontend should attach a funclet bundle referring to an enclosing cleanuppad as follows: ``` ehcleanup: %tok = cleanuppad within none [] %unused = call i1 @llvm.coro.end(i8* null, i1 true) [ "funclet"(token %tok) ] cleanupret from %tok unwind label %RestOfTheCleanup ``` The `CoroSplit` pass, if the funclet bundle is present, will insert ``cleanupret from %tok unwind to caller`` before the `coro.end`_ intrinsic and will remove the rest of the block. Reviewers: majnemer Reviewed By: majnemer Subscribers: llvm-commits, mehdi_amini Differential Revision: https://reviews.llvm.org/D25543 llvm-svn: 297223
* [X86][AVX512] Adding new LLVM TableGen backend which generates the EVEX2VEX ↵Ayman Musa2017-03-071-0/+6
| | | | | | | | | | | | compressing tables. X86EvexToVex machine instruction pass compresses EVEX encoded instructions by replacing them with their identical VEX encoded instructions when possible. It uses manually supported 2 large tables that map the EVEX instructions to their VEX ideticals. This TableGen backend replaces the tables by automatically generating them. Differential Revision: https://reviews.llvm.org/D30451 llvm-svn: 297127
* Revert commit r296967, no typoSylvestre Ledru2017-03-051-1/+1
| | | | llvm-svn: 296984
* Fix a typo. Patch by fcrick on github ↵Sylvestre Ledru2017-03-041-1/+1
| | | | | | https://github.com/llvm-mirror/llvm/pull/23 llvm-svn: 296969
* Remove redundant code block and update comment.Sylvestre Ledru2017-03-041-13/+1
| | | | | | By patch zoren here: https://github.com/llvm-mirror/llvm/pull/20 llvm-svn: 296968
* Fix a typo. Thanks to huangml. Reported here: ↵Sylvestre Ledru2017-03-041-1/+1
| | | | | | https://github.com/llvm-mirror/llvm/pull/6 llvm-svn: 296967
* [XRay][Docs] Update the XRay documentationDean Michael Berris2017-02-281-26/+93
| | | | | | | | | | | | | | | Summary: Update the XRay docs to mention new subcomands to the llvm-xray tool, and details on FDR mode logging. Also list down available libraries for use part of the LLVM distribution. Reviewers: rSerge, pelikan, echristo, timshen, sdardis, rengolin Subscribers: mehdi_amini, llvm-commits Differential Revision: https://reviews.llvm.org/D30395 llvm-svn: 296528
* Add function importing info from samplepgo profile to the module summary.Dehao Chen2017-02-281-5/+15
| | | | | | | | | | | | | | Summary: For SamplePGO, the profile may contain cross-module inline stacks. As we need to make sure the profile annotation happens when all the hot inline stacks are expanded, we need to pass this info to the module importer so that it can import proper functions if necessary. This patch implemented this feature by emitting cross-module targets as part of function entry metadata. In the module-summary phase, the metadata is used to build call edges that points to functions need to be imported. Reviewers: mehdi_amini, tejohnson Reviewed By: tejohnson Subscribers: davidxl, llvm-commits Differential Revision: https://reviews.llvm.org/D30053 llvm-svn: 296498
* [docs] Fix a think-o in the Programmer's Manual.Lang Hames2017-02-281-1/+1
| | | | llvm-svn: 296421
* [Support][Error] Add a 'cantFail' utility function for known-safe calls toLang Hames2017-02-271-4/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fallible functions. Some fallible functions (those returning Error or Expected<T>) may only fail for a subset of their inputs. For example, a "safe" square root function will succeed for all finite positive inputs: Expected<double> safeSqrt(double d) { if (d < 0 && !isnan(d) && !isinf(d)) return make_error<...>("Cannot sqrt -ve values, nans or infs"); return sqrt(d); } At a safe callsite for such a function, checking the error return value is redundant: if (auto ValOrErr = safeSqrt(42.0)) { // use *ValOrErr. } else llvm_unreachable("safeSqrt should always succeed for +ve values"); The cantFail function wraps this check and extracts the contained value, simplifying control flow: double Result = cantFail(safeSqrt(42.0)); This function should be used with care: it is a programmatic error to wrap a call with cantFail if it can in fact fail. For debug builds this will result in llvm_unreachable being called. For release builds the behavior is undefined. Use of this function is likely to be rare in library code, but more common for tool and unit-test code where inputs and mock functions may be known to be safe. llvm-svn: 296384
* [Doc] Modernize programmers manualPiotr Padlewski2017-02-251-28/+21
| | | | | | | | | | | | | | Summary: Fixed bunch of for loops to range based for loop and bunch of rendundat types with auto. Reviewers: echristo, silvas, chandlerc Subscribers: mehdi_amini, llvm-commits Differential Revision: https://reviews.llvm.org/D30338 llvm-svn: 296251
* [docs] Add information about how to checkout polly to getting started pageTobias Grosser2017-02-231-0/+6
| | | | llvm-svn: 295974
* Explicitly state the behavior of inbounds with a null pointer.Eli Friedman2017-02-231-2/+4
| | | | | | | | | See https://llvm.org/bugs/show_bug.cgi?id=31439; this reflects LLVM's behavior in practice, and should be compatible with C/C++ rules. Differential Revision: https://reviews.llvm.org/D28026 llvm-svn: 295916
* AMDGPU : AMDGPU : Update AMDGPU Trap Handler ABI.Wei Ding2017-02-211-41/+49
| | | | | | Differential Revision: http://reviews.llvm.org/D29913 llvm-svn: 295745
* Update Bugzilla URLs in docsIsmail Donmez2017-02-175-6/+6
| | | | llvm-svn: 295432
* [LangRef] Explicitly allow readnone and reaodnly functions to unwindSanjoy Das2017-02-131-5/+8
| | | | | | | | | | | | | | | | | | Summary: This change edits the language reference to explicitly allow the existence of readnone and readonly functions that can throw. Full discussion at http://lists.llvm.org/pipermail/llvm-dev/2017-January/108637.html Reviewers: dberlin, chandlerc, hfinkel, majnemer Reviewed By: majnemer Subscribers: majnemer, mcrosier, llvm-commits Differential Revision: https://reviews.llvm.org/D28740 llvm-svn: 295000
* [LangRef] Update the TBAA sectionSanjoy Das2017-02-131-27/+146
| | | | | | | | | | | | | | | | | | | | Summary: Update the TBAA section to mention the struct path TBAA that LLVM implements today. This is not a proposal or change in semantics -- it is intended only to **document** what LLVM already does today. This is related to https://reviews.llvm.org/D26438 where I've tried to implement some of the constraints as verifier checks. Reviewers: anna, reames, rsmith, chandlerc, hfinkel, rjmccall, mehdi_amini, dexonsmith, manmanren Reviewed By: manmanren Subscribers: dberlin, dberris, mcrosier, llvm-commits Differential Revision: https://reviews.llvm.org/D26831 llvm-svn: 294999
* Update Kaleidoscope tutorial and improve Windows supportMehdi Amini2017-02-118-169/+237
| | | | | | | | | | | | | | | Many quoted code blocks were not in sync with the actual toy.cpp files. Improve tutorial text slightly in several places. Added some step descriptions crucial to avoid crashes (like InitializeNativeTarget* calls). Solve/workaround problems with Windows (JIT'ed method not found, using custom and standard library functions from host process). Patch by: Moritz Kroll <moritz.kroll@gmx.de> Differential Revision: https://reviews.llvm.org/D29864 llvm-svn: 294870
* Correcting several sphinx errors; should fix the LLVM documentation build.Aaron Ballman2017-02-111-6/+8
| | | | llvm-svn: 294865
* Encode duplication factor from loop vectorization and loop unrolling to ↵Dehao Chen2017-02-101-1/+3
| | | | | | | | | | | | | | | | | | | | | discriminator. Summary: This patch starts the implementation as discuss in the following RFC: http://lists.llvm.org/pipermail/llvm-dev/2016-October/106532.html When optimization duplicates code that will scale down the execution count of a basic block, we will record the duplication factor as part of discriminator so that the offline process tool can find the duplication factor and collect the accurate execution frequency of the corresponding source code. Two important optimization that fall into this category is loop vectorization and loop unroll. This patch records the duplication factor for these 2 optimizations. The recording will be guarded by a flag encode-duplication-in-discriminators, which is off by default. Reviewers: probinson, aprantl, davidxl, hfinkel, echristo Reviewed By: hfinkel Subscribers: mehdi_amini, anemet, mzolotukhin, llvm-commits Differential Revision: https://reviews.llvm.org/D26420 llvm-svn: 294782
* Fix doc for `-opt-bisect-limit`: the LTO option prefix for lld is -mllvmMehdi Amini2017-02-101-3/+3
| | | | | | Thanks Davide to catch it in my previous patch. llvm-svn: 294759
* Fix doc for `-opt-bisect-limit`: the LTO option is linker specificMehdi Amini2017-02-101-1/+4
| | | | llvm-svn: 294725
* AMDGPU : Add trap handler support.Wei Ding2017-02-101-0/+39
| | | | | | Differential Revision: http://reviews.llvm.org/D26010 llvm-svn: 294692
* docs/conf.py: Suppress sphinx highlighting failure warningsMatthias Braun2017-02-101-0/+4
| | | | | | | | | | | | | The pygments syntax highlighting package used by sphinx fails to parse newer LLVM constructs or valid (at least to me) gas constructs like `.secrel32 _function_name + 0`. Disable this particular warning so the build doesn't abort as fixing pygments doesn't seem a workable option here. Differential Revision: https://reviews.llvm.org/D29794 llvm-svn: 294672
* Don't try to link to the 4.0 release notesHans Wennborg2017-02-091-3/+3
| | | | llvm-svn: 294647
* lit.rst: Fix sphinx complaint about multiple option definitionsMatthias Braun2017-02-091-1/+1
| | | | llvm-svn: 294646
* [docs] Fix typoJonathan Roelofs2017-02-091-2/+2
| | | | llvm-svn: 294645
* [docs] Documentation update for ScudoKostya Kortchinsky2017-02-091-41/+44
| | | | | | | | | | | | | | | | Summary: Documentation update to reflect the changes that occured in the allocator: - additional architectures support; - modification of the header; - options default values for 32 & 64-bit. Reviewers: kcc, alekseyshl Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D29592 llvm-svn: 294595
* Make it possible to set SHF_LINK_ORDER explicitly.Rafael Espindola2017-02-091-0/+18
| | | | | | | This will make it possible to add support for gcing user metadata (asan for example). llvm-svn: 294589
* [docs] cleanup documentation on lit substitutionsDavid Bozier2017-02-092-9/+24
| | | | | | | | | | | 1. Added missing substitutions to the documentation in docs/TestingGuide.rst 2. Modified docs/CommandGuide/lit.rst to only document the "base" set of substitutions and to refer the reader to docs/TestingGuide.rst for more detailed info on substitutions. Patch by bd1976llvm Differential Revision: https://reviews.llvm.org/D29281 llvm-svn: 294586
* Fix the docs buildSanjoy Das2017-02-071-5/+6
| | | | | | (and add a bit of formatting.) llvm-svn: 294347
* This patch adds a ssa_copy intrinsic, as part of splitting up D29316.Daniel Berlin2017-02-071-0/+27
| | | | | | | | | | | | | | | | | | | | | | | | Summary: The intrinsic, marked as returning it's first argument, has no code generation effect (though currently not every optimization pass knows that intrinsics with the returned attribute can be looked through). It is about to be used to by the PredicateInfo pass to attach predicate information to existing operands, and be able to tell what the predicate information affects. We deliberately do not attach any info through a second operand so that the intrinsics do not need to dominate the comparisons/etc (since in the case of assume, we may want to push them up the post-dominator tree). Reviewers: davide, sanjoy Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D29517 llvm-svn: 294341
OpenPOWER on IntegriCloud