summaryrefslogtreecommitdiffstats
path: root/llvm/docs
Commit message (Collapse)AuthorAgeFilesLines
* Generalize the pass registration mechanism used by Polly to any third-party toolserge_sans_paille2020-01-021-0/+45
| | | | | | | | | | | | | | | | | | | | | | | | There's quite a lot of references to Polly in the LLVM CMake codebase. However the registration pattern used by Polly could be useful to other external projects: thanks to that mechanism it would be possible to develop LLVM extension without touching the LLVM code base. This patch has two effects: 1. Remove all code specific to Polly in the llvm/clang codebase, replaicing it with a generic mechanism 2. Provide a generic mechanism to register compiler extensions. A compiler extension is similar to a pass plugin, with the notable difference that the compiler extension can be configured to be built dynamically (like plugins) or statically (like regular passes). As a result, people willing to add extra passes to clang/opt can do it using a separate code repo, but still have their pass be linked in clang/opt as built-in passes. Differential Revision: https://reviews.llvm.org/D61446
* [PowerPC][docs] Update Embedded PowerPC docs in Compiler Writers Info pageJinsong Ji2019-12-301-1/+11
| | | | | | | | | | | | | | | | | | | | | Summary: Embedded PowerPC are still actively supported, especially SPE... So update some important references here: * adding EREF * adding SPE/VLE ref Delete deprecated ones into "Other documents..". Reviewers: #powerpc, jhibbits, hfinkel Reviewed By: #powerpc, jhibbits Subscribers: wuzish, merge_guards_bot, nemanjai, shchenz, steven.zhang, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72008
* Ignore "no-frame-pointer-elim" and "no-frame-pointer-elim-non-leaf" in favor ↵Fangrui Song2019-12-301-0/+5
| | | | | | | | | | | | | of "frame-pointer" D56351 (included in LLVM 8.0.0) introduced "frame-pointer". All tests which use "no-frame-pointer-elim" or "no-frame-pointer-elim-non-leaf" have been migrated to use "frame-pointer". Implement UpgradeFramePointerAttributes to upgrade the two obsoleted function attributes for bitcode. Their semantics are ignored. Differential Revision: https://reviews.llvm.org/D71863
* [AMDGPU][MC][DOC] Updated AMD GPU assembler syntax description.Dmitry Preobrazhensky2019-12-2562-109/+1464
| | | | | | | | | | | Summary of changes: - added description of GFX9 subtargets: - gfx900; - gfx902; - gfx904; - gfx906; - gfx908; - gfx909.
* Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" ↵Fangrui Song2019-12-241-1/+1
| | | | as cleanups after D56351
* VariableName doc: fix the link to the mozilla docSylvestre Ledru2019-12-241-1/+1
|
* [docs] fix typo in Lexicon.rstAlex Zinenko2019-12-241-4/+4
| | | | Differential revision: https://reviews.llvm.org/D71844
* [Docs] Fix sphinx build errors.Florian Hahn2019-12-233-9/+9
|
* fix another doc typo to cycle botsNico Weber2019-12-201-1/+1
|
* [llvm-symbolizer] Support reading options from environmentPetr Hosek2019-12-202-0/+8
| | | | | | | | | | | | | llvm-symbolizer is used by sanitizers to symbolize errors discovered by sanitizer, but there's no way to pass options to llvm-symbolizer since the tool is invoked directly by the sanitizer runtime. Therefore, we don't have a way to pass options needed to find debug symbols such as -dsym-hint or -debug-file-directory. This change enables reading options from the LLVM_SYMBOLIZER_OPTS in addition to command line which can be used to pass those additional options to llvm-symbolizer invocations made by sanitizer runtime. Differential Revision: https://reviews.llvm.org/D71668
* [Docs] Fix a typoYuanfang Chen2019-12-181-1/+1
|
* [FPEnv] Strict versions of llvm.minimum/llvm.maximumUlrich Weigand2019-12-181-0/+64
| | | | | | | | | | | | | Add new intrinsics llvm.experimental.constrained.minimum llvm.experimental.constrained.maximum as strict versions of llvm.minimum and llvm.maximum. Includes SystemZ back-end support. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D71624
* llvm-cxxmap: fix support for remapping non-mangled names.Richard Smith2019-12-181-0/+8
| | | | | | | Remappings involving extern "C" names were already supported in the context of <local-name>s, but this support didn't work for remapping the complete mangling itself. (Eg, we would remap X<foo> but not foo itself, if foo is an extern "C" function.)
* [docs] Remove `git llvm push` and `git llvm revert` from GettingStartedJustin Bogner2019-12-171-42/+14
| | | | | | These sections aren't accurate since the github move. Differential Revision: https://reviews.llvm.org/D71640
* [FPEnv] Remove unnecessary rounding mode argument for constrained intrinsicsUlrich Weigand2019-12-171-30/+8
| | | | | | | | | | | | | | | | | | | The following intrinsics currently carry a rounding mode metadata argument: llvm.experimental.constrained.minnum llvm.experimental.constrained.maxnum llvm.experimental.constrained.ceil llvm.experimental.constrained.floor llvm.experimental.constrained.round llvm.experimental.constrained.trunc This is not useful since the semantics of those intrinsics do not in any way depend on the rounding mode. In similar cases, other constrained intrinsics do not have the rounding mode argument. Remove it here as well. Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D71218
* This adds constrained intrinsics for the signed and unsigned conversionsKevin P. Neal2019-12-171-0/+72
| | | | | | | | | of integers to floating point. This includes some of Craig Topper's changes for promotion support from D71130. Differential Revision: https://reviews.llvm.org/D69275
* Fix title underline in LangRefDmitri Gribenko2019-12-161-1/+1
| | | | | The docs didn't compile: http://lab.llvm.org:8011/builders/llvm-sphinx-docs/builds/38906
* [llvm-objcopy][MachO] Implement --add-sectionSeiya Nuta2019-12-161-0/+3
| | | | | | | | | | | | Reviewers: alexshap, rupprecht, jhenderson Reviewed By: alexshap, jhenderson Subscribers: mgorny, jakehehrlich, abrachet, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66283
* [llvm-dwarfdump][Statistics] Don't count coverage less than 1% as 0%Kristina Bessonova2019-12-131-1/+1
| | | | | | | | | | | | | | | | | | | | | Summary: This is a follow up for D70548. Currently, variables with debug info coverage between 0% and 1% are put into zero-bucket. D70548 changed the way statistics calculate a variable's coverage: we began to use enclosing scope rather than a possible variable life range. Thus more variables might be moved to zero-bucket despite they have some debug info coverage. The patch is to distinguish between a variable that has location info but it's significantly less than its enclosing scope and a variable that doesn't have it at all. Reviewers: djtodoro, aprantl, dblaikie, avl Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D71070
* [llvm-dwarfdump][Statistics] Change the coverage buckets representation. NFCKristina Bessonova2019-12-131-12/+12
| | | | | | | | | | | | | | | | Summary: This changes the representation of 'coverage buckets' in llvm-dwarfdump and llvm-locstats to one that makes more clear what the buckets contain. See some related details in D71070. Reviewers: djtodoro, aprantl, cmtice, jhenderson Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D71366
* [Docs] Fix target feature matrix for PowerPC and SystemZKai Nacke2019-12-131-4/+4
| | | | | | | | | | | | | | The target feature matrix in the code generator documentation is outdated. This PR fixes some entries for PowerPC and SystemZ. Both have: - assembly parser - disassembler - .o file writing Reviewers: uweigand Differential Revision: https://reviews.llvm.org/D71004
* [AMDGPU] AMDGPUUsage clarify address space information and other typo and ↵Tony2019-12-121-435/+476
| | | | | | | | | | | | | | | | | | formatting fixes Summary: - Clarify AMDGPU address spaces. - Correct path to AMDGPU backend since now in the mono-repo. - Fix numerous text style and typo issues. - Correct reStructure text formatting warnings. - Made reStructure directive usage more consistent. - Add references for gfx10 ISA specification. Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, jfb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D71392
* [Matrix] Add first set of matrix intrinsics and initial lowering pass.Florian Hahn2019-12-121-0/+109
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the first patch adding an initial set of matrix intrinsics and a corresponding lowering pass. This has been discussed on llvm-dev: http://lists.llvm.org/pipermail/llvm-dev/2019-October/136240.html The first patch introduces four new intrinsics (transpose, multiply, columnwise load and store) and a LowerMatrixIntrinsics pass, that lowers those intrinsics to vector operations. Matrixes are embedded in a 'flat' vector (e.g. a 4 x 4 float matrix embedded in a <16 x float> vector) and the intrinsics take the dimension information as parameters. Those parameters need to be ConstantInt. For the memory layout, we initially assume column-major, but in the RFC we also described how to extend the intrinsics to support row-major as well. For the initial lowering, we split the input of the intrinsics into a set of column vectors, transform those column vectors and concatenate the result columns to a flat result vector. This allows us to lower the intrinsics without any shape propagation, as mentioned in the RFC. In follow-up patches, we plan to submit the following improvements: * Shape propagation to eliminate the embedding/splitting for each intrinsic. * Fused & tiled lowering of multiply and other operations. * Optimization remarks highlighting matrix expressions and costs. * Generate loops for operations on large matrixes. * More general block processing for operation on large vectors, exploiting shape information. We would like to add dedicated transpose, columnwise load and store intrinsics, even though they are not strictly necessary. For example, we could instead emit a large shufflevector instruction instead of the transpose. But we expect that to (1) become unwieldy for larger matrixes (even for 16x16 matrixes, the resulting shufflevector masks would be huge), (2) risk instcombine making small changes, causing us to fail to detect the transpose, preventing better lowerings For the load/store, we are additionally planning on exploiting the intrinsics for better alias analysis. Reviewers: anemet, Gerolf, reames, hfinkel, andrew.w.kaylor, efriedma, rengolin Reviewed By: anemet Differential Revision: https://reviews.llvm.org/D70456
* [TableGen] Add bang-operators !getop and !setop.Simon Tatham2019-12-112-1/+30
| | | | | | | | | | | | | | | | | | | | | | Summary: These allow you to get and set the operator of a dag node, without affecting its list of arguments. `!getop` is slightly fiddly because in many contexts you need its return value to have a static type more specific than 'any record'. It works to say `!cast<BaseClass>(!getop(...))`, but it's cumbersome, so I made `!getop` take an optional type suffix itself, so that can be written as the shorter `!getop<BaseClass>(...)`. Reviewers: hfinkel, nhaehnle Reviewed By: nhaehnle Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D71191
* [Docs] Improve SLP code snippetSanjay Patel2019-12-101-2/+4
| | | | | | | | New C code snippet is more viable for SLP vectorization in most architectures. Patch by: @lsandov1 (Leonardo Sandoval) Differential Revision: https://reviews.llvm.org/D70866
* Fix a few doc typos, to cycle bots.Nico Weber2019-12-081-6/+6
|
* [FPEnv] Constrained FCmp intrinsicsUlrich Weigand2019-12-071-0/+107
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds support for constrained floating-point comparison intrinsics. Specifically, we add: declare <ty2> @llvm.experimental.constrained.fcmp(<type> <op1>, <type> <op2>, metadata <condition code>, metadata <exception behavior>) declare <ty2> @llvm.experimental.constrained.fcmps(<type> <op1>, <type> <op2>, metadata <condition code>, metadata <exception behavior>) The first variant implements an IEEE "quiet" comparison (i.e. we only get an invalid FP exception if either argument is a SNaN), while the second variant implements an IEEE "signaling" comparison (i.e. we get an invalid FP exception if either argument is any NaN). The condition code is implemented as a metadata string. The same set of predicates as for the fcmp instruction is supported (except for the "true" and "false" predicates). These new intrinsics are mapped by SelectionDAG codegen onto two new ISD opcodes, ISD::STRICT_FSETCC and ISD::STRICT_FSETCCS, again representing quiet vs. signaling comparison operations. Otherwise those nodes look like SETCC nodes, with an additional chain argument and result as usual for strict FP nodes. The patch includes support for the common legalization operations for those nodes. The patch also includes full SystemZ back-end support for the new ISD nodes, mapping them to all available SystemZ instruction to fully implement strict semantics (scalar and vector). Differential Revision: https://reviews.llvm.org/D69281
* [CommandLine] Add callbacks to OptionsDon Hinton2019-12-062-0/+28
| | | | | | | | | | | | | | | | | | | | | | Summary: Add a new cl::callback attribute to Option. This attribute specifies a callback function that is called when an option is seen, and can be used to set other options, as in option A implies option B. If the option is a `cl::list`, and `cl::CommaSeparated` is also specified, the callback will fire once for each value. This could be used to validate combinations or selectively set other options. Reviewers: beanz, thomasfinch, MaskRay, thopre, serge-sans-paille Reviewed By: beanz Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D70620
* wrap an rst file to 80 cols, to cycle botsNico Weber2019-12-061-6/+8
|
* [llvm-readobj] - Implement --dependent-libraries flag.Georgii Rymar2019-12-061-0/+4
| | | | | | | | | | There is no way to dump SHT_LLVM_DEPENDENT_LIBRARIES sections currently. This patch implements this. The section is described here: https://llvm.org/docs/Extensions.html#sht-llvm-dependent-libraries-section-dependent-libraries Differential revision: https://reviews.llvm.org/D70665
* [lit] Document the undocumented pre-defined substitutionsDaniel Sanders2019-12-041-11/+32
|
* [LangRef] make per-element poison behavior explicitSanjay Patel2019-12-041-4/+10
| | | | | | | | | | | | | | | As discussed in D70246 and PR43958: https://bugs.llvm.org/show_bug.cgi?id=43958 The LangRef seems ambiguous about the behavior of poison with respect to vectors. We could go further with text and/or examples - suggestions welcome. Also, see discussion on llvm-dev; http://lists.llvm.org/pipermail/llvm-dev/2019-November/137243.html Differential Revision: https://reviews.llvm.org/D70641
* Revert "[Coverage] Revise format to reduce binary size"Vedant Kumar2019-12-041-59/+98
| | | | | | | | | | This reverts commit e18531595bba495946aa52c0a16b9f9238cff8bc. On Windows, there is an error: http://lab.llvm.org:8011/builders/sanitizer-windows/builds/54963/steps/stage%201%20check/logs/stdio error: C:\b\slave\sanitizer-windows\build\stage1\projects\compiler-rt\test\profile\Profile-x86_64\Output\instrprof-merging.cpp.tmp.v1.o: Failed to load coverage: Malformed coverage data
* [Coverage] Revise format to reduce binary sizeVedant Kumar2019-12-041-98/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Revise the coverage mapping format to reduce binary size by: 1. Naming function records and marking them `linkonce_odr`, and 2. Compressing filenames. This shrinks the size of llc's coverage segment by 82% (334MB -> 62MB) and speeds up end-to-end single-threaded report generation by 10%. For reference the compressed name data in llc is 81MB (__llvm_prf_names). Rationale for changes to the format: - With the current format, most coverage function records are discarded. E.g., more than 97% of the records in llc are *duplicate* placeholders for functions visible-but-not-used in TUs. Placeholders *are* used to show under-covered functions, but duplicate placeholders waste space. - We reached general consensus about giving (1) a try at the 2017 code coverage BoF [1]. The thinking was that using `linkonce_odr` to merge duplicates is simpler than alternatives like teaching build systems about a coverage-aware database/module/etc on the side. - Revising the format is expensive due to the backwards compatibility requirement, so we might as well compress filenames while we're at it. This shrinks the encoded filenames in llc by 86% (12MB -> 1.6MB). See CoverageMappingFormat.rst for the details on what exactly has changed. Fixes PR34533 [2], hopefully. [1] http://lists.llvm.org/pipermail/llvm-dev/2017-October/118428.html [2] https://bugs.llvm.org/show_bug.cgi?id=34533 Differential Revision: https://reviews.llvm.org/D69471
* Add discussion of git-format-patch to Phabricator.htmlKit Barton2019-12-032-1/+32
| | | | | | | | | | | | | | Summary: There is a discussion of git-format-patch in GettingStarted guide, but no mention of it in the Phabricator.html page. Reviewers: jyknight, delcypher Reviewed By: delcypher Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69323
* Recommit "[DWARF5]Addition of alignment atrribute in typedef DIE."Sourabh Singh Tomar2019-12-031-0/+10
| | | | | | | | | | | | | | | | This revision is revised to update Go-bindings and Release Notes. The original commit message follows. This patch, adds support for DW_AT_alignment[DWARF5] attribute, to be emitted with typdef DIE. When explicit alignment is specified. Patch by Awanish Pandey <Awanish.Pandey@amd.com> Reviewers: aprantl, dblaikie, jini.susan.george, SouraVX, alok, deadalinx Differential Revision: https://reviews.llvm.org/D70111
* [llvm-objcopy][MachO] Implement --dump-sectionSeiya Nuta2019-11-251-9/+12
| | | | | | | | | | | | Reviewers: alexshap, rupprecht, jhenderson Reviewed By: alexshap, rupprecht, jhenderson Subscribers: MaskRay, jakehehrlich, abrachet, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66408
* [FileCheck] Make FILECHECK_OPTS useful for its test suiteJoel E. Denny2019-11-211-0/+7
| | | | | | | | | | | | | | | | | | | | Without this patch, `FILECHECK_OPTS` isn't propagated to FileCheck's test suite so that `FILECHECK_OPTS` doesn't inadvertently affect test results by affecting the output of FileCheck calls under test. As a result, `FILECHECK_OPTS` is useless for debugging FileCheck's test suite. In `llvm/test/FileCheck/lit.local.cfg`, this patch provides a new subsitution, `%ProtectFileCheckOutput`, to address this problem for both `FILECHECK_OPTS` and the deprecated `FILECHECK_DUMP_INPUT_ON_FAILURE`. The rest of the patch uses `%ProtectFileCheckOutput` throughout the test suite Fixes PR40284. Reviewed By: probinson, thopre Differential Revision: https://reviews.llvm.org/D65121
* Make coding standards document more inclusiveDmitri Gribenko2019-11-212-332/+180
| | | | | | | | | | | | Summary: Patch by Doug Gregor, Tres Popp, and Dmitri Gribenko. Reviewers: chandlerc Subscribers: hfinkel, bmcreusillet, arsenm, doug.gregor, mgrang, arphaman, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69354
* [docs] Tiny rewording in the portability FAQ entryJosh Kunz2019-11-201-1/+1
| | | | The entry reads better with these two words swapped.
* [DebugInfo] Remove the DIFlagArgumentNotModified debug info flagDjordje Todorovic2019-11-201-7/+0
| | | | | | | Due to changes in D68206, we remove the DIFlagArgumentNotModified and its usage. Differential Revision: https://reviews.llvm.org/D68207
* [AMDGPU] add support for hostcall buffer pointer as hidden kernel argumentSameer Sahasrabuddhe2019-11-201-0/+10
| | | | | | | | | | | Hostcall is a service that allows a kernel to submit requests to the host using shared buffers, and block until a response is received. This will eventually replace the shared buffer currently used for printf, and repurposes the same hidden kernel argument. This change introduces a new ValueKind in the HSA metadata to represent the hostcall buffer. Differential Revision: https://reviews.llvm.org/D70038
* [FEnv] Fix AddingConstrainedIntrinsics.rst after ↵Fangrui Song2019-11-191-1/+1
| | | | llvmorg-10-init-10282-g0c50c0b0552
* [FEnv] File with properties of constrained intrinsicsSerge Pavlov2019-11-201-32/+31
| | | | | | | | | | | | | | | | | | Summary In several places we need to enumerate all constrained intrinsics or IR nodes that should be represented by them. It is easy to miss some of the cases. To make working with these intrinsics more convenient and robust, this change introduces file containing definitions of all constrained intrinsics and some of their properties. This file can be included to generate constrained intrinsics processing code. Reviewers: kpn, andrew.w.kaylor, cameron.mcinally, uweigand Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69887
* [docs] Remove dangling parenthesis from documentationTim Northover2019-11-191-1/+1
| | | | Patch by leiteg.
* [docs] Fix broken links in Kaleidoscope chapter 3Brian Gesiak2019-11-171-4/+4
| | | | | | | Several links in this document referred to `LangImpl4.html` or `LangImpl7.html`. However, now these pages use two digits, so for these links to function they need to be modified to `LangImpl04.html`, and so on -- note the extra `0`.
* [Docs] Remove stray :doc: directive.kristina2019-11-161-1/+1
|
* [Docs] Fix sphinx warning.kristina2019-11-161-1/+1
| | | | Fix sphinx warning over an ambigious reference.
* [Docs] Try fixing the tutorial toctreekristina2019-11-1612-27/+21
| | | | | | Unorphan the old tutorial and reference every page in the index explicitly. This should hopefully make Sphinx generate correct hyperlinks now.
* [Docs] Fix relative links in tutorial.kristina2019-11-165-22/+22
| | | | Update relative links in Kaleidoscope tutorial.
OpenPOWER on IntegriCloud