summaryrefslogtreecommitdiffstats
path: root/llvm/docs
Commit message (Collapse)AuthorAgeFilesLines
* [llvm-symbolizer] Add llvm-addr2lineIgor Kudrin2019-04-193-0/+39
| | | | | | | | | | | | | This adds an alias for llvm-symbolizer with different defaults so that it can be used as a drop-in replacement for GNU's addr2line. If a substring "addr2line" is found in the tool's name: * it defaults "-i", "-f" and "-C" to OFF; * it uses "--output-style=GNU" by default. Differential Revision: https://reviews.llvm.org/D60067 llvm-svn: 358749
* [llvm-symbolizer] Unhide and document the "-output-style" optionIgor Kudrin2019-04-191-0/+31
| | | | | | | | | With the latest changes, the option gets useful for users of llvm-symbolizer, not only for the upcoming llvm-addr2line. Differential Revision: https://reviews.llvm.org/D60816 llvm-svn: 358748
* [llvm-profdata] Fix one bad format in llvm-profdata CommandGuide doc. NFCRong Xu2019-04-181-0/+1
| | | | llvm-svn: 358643
* [CommandLineParser] Add DefaultOption flagDon Hinton2019-04-151-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: Add DefaultOption flag to CommandLineParser which provides a default option or alias, but allows users to override it for some other purpose as needed. Also, add `-h` as a default alias to `-help`, which can be seamlessly overridden by applications like llvm-objdump and llvm-readobj which use `-h` as an alias for other options. (relanding after revert, r358414) Added DefaultOptions.clear() to reset(). Reviewers: alexfh, klimek Reviewed By: klimek Subscribers: kristina, MaskRay, mehdi_amini, inglorion, dexonsmith, hiraditya, llvm-commits, jhenderson, arphaman, cfe-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D59746 llvm-svn: 358428
* Revert r358337: "[CommandLineParser] Add DefaultOption flag"Ilya Biryukov2019-04-151-10/+0
| | | | | | | The change causes test failures under asan. Reverting to unbreak our integrate. llvm-svn: 358414
* [Docs] Switch a code block from LLVM to textJeremy Morse2019-04-151-1/+1
| | | | | | | | | | While I can't replicate this locally, it looks like the buildbots don't recognize the IR block in r358385 l764 as IR. Downgrade it to being just text while I look into it. http://lab.llvm.org:8011/builders/llvm-sphinx-docs/builds/30132 llvm-svn: 358391
* [Docs] Correct some indentation muppetry that trips buildbotsJeremy Morse2019-04-151-3/+3
| | | | llvm-svn: 358388
* [DebugInfo][Docs] Document variable location metadata transformationsJeremy Morse2019-04-151-0/+310
| | | | | | | | | | | | | This patch adds documentation explaining how variable location information is compiled from the IR representation down to the end of the codegen pipeline, but avoiding discussion of file formats and encoding. This should make it clearer how the dbg.value / dbg.declare etc intrinsics are transformed and arranged into DBG_VALUE instructions, and their meaning. Differential Revision: https://reviews.llvm.org/D59790 llvm-svn: 358385
* [CommandLineParser] Add DefaultOption flagDon Hinton2019-04-131-0/+10
| | | | | | | | | | | | | | | | | | | | | | Summary: Add DefaultOption flag to CommandLineParser which provides a default option or alias, but allows users to override it for some other purpose as needed. Also, add `-h` as a default alias to `-help`, which can be seamlessly overridden by applications like llvm-objdump and llvm-readobj which use `-h` as an alias for other options. Reviewers: alexfh, klimek Reviewed By: klimek Subscribers: MaskRay, mehdi_amini, inglorion, dexonsmith, hiraditya, llvm-commits, jhenderson, arphaman, cfe-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D59746 llvm-svn: 358337
* [PDB Docs] Add some prose describing public and global symbols.Zachary Turner2019-04-121-1/+38
| | | | llvm-svn: 358289
* Fix missing arguments in tutorialHans Wennborg2019-04-121-1/+1
| | | | | | | | | | | | In tutorial "8. Kaleidoscope: Compiling to Object Code" a call to TargetMachine->addPassesToEmitFile(pass, dest, FileType) is missing nullptr as its 3rd value. Patch by Sajjad Heydari! Differential revision: https://reviews.llvm.org/D60369 llvm-svn: 358267
* Fix sphinx documentation warning.Zachary Turner2019-04-111-1/+1
| | | | llvm-svn: 358198
* [PDB Docs] Add skeleton of documentation for CodeView symbols.Zachary Turner2019-04-112-28/+259
| | | | llvm-svn: 358197
* New document skeleton describing how to add a constrained floating-pointKevin P. Neal2019-04-112-0/+99
| | | | | | | | | intrinsic. Reviewed by: andrew.w.kaylor, cameron.mcinally Differential Revision: https://reviews.llvm.org/D59833 llvm-svn: 358194
* try to fix the sphinx build some moreHans Wennborg2019-04-1111-0/+22
| | | | llvm-svn: 358156
* Try to fix the shpinx buildHans Wennborg2019-04-119-9/+9
| | | | llvm-svn: 358154
* [PDB Docs] Start documenting CodeView Type Records.Zachary Turner2019-04-101-3/+260
| | | | | | | | This puts the general layout of the document in place and fully describes 1 simple type record. Followups will fill out more pieces. llvm-svn: 358119
* [TableGen] Introduce !listsplat 'binary' operatorRoman Lebedev2019-04-102-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: ``` ``!listsplat(a, size)`` A list value that contains the value ``a`` ``size`` times. Example: ``!listsplat(0, 2)`` results in ``[0, 0]``. ``` I plan to use this in X86ScheduleBdVer2.td for LoadRes handling. This is a little bit controversial because unlike every other binary operator the types aren't identical. Reviewers: stoklund, javed.absar, nhaehnle, craig.topper Reviewed By: javed.absar Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60367 llvm-svn: 358117
* [PDB Docs] Clarifications and fixes for DBI Stream.Zachary Turner2019-04-091-41/+58
| | | | llvm-svn: 358022
* [llvm-mca][scheduler-stats] Print issued micro opcodes per cycle. NFCIAndrea Di Biagio2019-04-081-4/+4
| | | | | | | | | It makes more sense to print out the number of micro opcodes that are issued every cycle rather than the number of instructions issued per cycle. This behavior is also consistent with the dispatch-stats: numbers from the two views can now be easily compared. llvm-svn: 357919
* [CMake] Replace LLVM_ENABLE_CXX1Y and friends with LLVM_CXX_STDJustin Bogner2019-04-081-2/+2
| | | | | | | | | | | | | Simplify building with particular C++ standards by replacing the specific "enable standard X" flags with a flag that allows specifying the standard you want directly. We preserve compatibility with the existing flags so that anyone with those flags in existing caches won't break mysteriously. Differential Revision: https://reviews.llvm.org/D60399 llvm-svn: 357899
* last changes for nowChris Lattner2019-04-071-2/+2
| | | | llvm-svn: 357868
* various improvements in wording, also unbreak the botChris Lattner2019-04-073-42/+44
| | | | llvm-svn: 357867
* make a bunch of cleanups in wording and toneChris Lattner2019-04-071-75/+52
| | | | llvm-svn: 357865
* remove some unhelpful language from the tutorialChris Lattner2019-04-072-7/+106
| | | | llvm-svn: 357863
* Copy the C++ kaleidoscope tutorial into a subdirectory and clean up various ↵Chris Lattner2019-04-0711-0/+5560
| | | | | | things, aligning with the direction of the WiCT workshop, and Meike Baumgärtner's view of how this should work. The old version of the documentation is unmodified, this is an experiment. llvm-svn: 357862
* [PDB Docs] Add documentation for the hash table format.Zachary Turner2019-04-051-0/+101
| | | | llvm-svn: 357826
* [PDB Docs] The IPI Stream actually has index 4.Zachary Turner2019-04-051-1/+1
| | | | llvm-svn: 357825
* [PDB Docs] Delete * LINKER * Stream information.Zachary Turner2019-04-051-4/+0
| | | | | | | This is actually just a module debug info stream, so it should technically be covered by a discussion of the module list. llvm-svn: 357819
* Try to fix Sphinx bot.Zachary Turner2019-04-051-8/+6
| | | | llvm-svn: 357790
* [PDB Docs] Finish documentation for PDB Info Stream.Zachary Turner2019-04-051-0/+74
| | | | | | | The information about the named stream map and feature codes was not present. This patch adds it. llvm-svn: 357788
* [PDB Docs] Add info about the hash adjustment buffer.Zachary Turner2019-04-054-8/+15
| | | | | | | | This necessitates adding a document describing the serialized hash table format. This document is currently empty, although it will be filled out in followup patches. llvm-svn: 357784
* Add documentation for PDB TPI/IPI Stream.Zachary Turner2019-04-052-5/+311
| | | | llvm-svn: 357777
* Add an option do not dump the generated object on diskGuillaume Chatelet2019-04-051-3/+9
| | | | | | | | | | | | Reviewers: courbet Subscribers: llvm-commits, bdb Tags: #llvm Differential Revision: https://reviews.llvm.org/D60317 llvm-svn: 357769
* [llvm] Add isa_and_nonnullDon Hinton2019-04-051-0/+6
| | | | | | | | | | | | | | | | | | | Summary: Add new ``isa_and_nonnull<>`` operator that works just like the ``isa<>`` operator, except that it allows for a null pointer as an argument (which it then returns false). Reviewers: lattner, aaron.ballman, greened Reviewed By: lattner Subscribers: hubert.reinterpretcast, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D60291 llvm-svn: 357761
* AMDGPU: Remove dx10-clamp from subtarget featuresMatt Arsenault2019-03-291-0/+8
| | | | | | | | | | | | | | | | | | Since this can be set with s_setreg*, it should not be a subtarget property. Set a default based on the calling convention, and Introduce a new amdgpu-dx10-clamp attribute to override this if desired. Also introduce a new amdgpu-ieee attribute to match. The values need to match to allow inlining. I think it is OK for the caller's dx10-clamp attribute to override the callee, but there doesn't appear to be the infrastructure to do this currently without definining the attribute in the generic Attributes.td. Eventually the calling convention lowering will need to insert a mode switch somewhere for these. llvm-svn: 357302
* [AMDGPU] Add an additional Code Object V3 assembler exampleScott Linder2019-03-291-0/+78
| | | | | | | | | Document the intended use of the `.amdgcn.next_free_{s,v}gpr` in the context of multiple kernels and functions. Differential Revision: https://reviews.llvm.org/D59949 llvm-svn: 357289
* AMDGPU: Make sram-ecc off by default for Vega20Konstantin Zhuravlyov2019-03-291-2/+0
| | | | | | Differential Revision: https://reviews.llvm.org/D59718 llvm-svn: 357247
* [AMDGPU] Clarify Code Object V2/V3 differences in AMDGPUUsageScott Linder2019-03-281-25/+128
| | | | | | | | | | | | Ensure Code Object V2 documentation is complete, but always contains a warning and a link to the equivalent Code Object V3 documentation. Explicitly indicate that any note records present in a code object that are not documented must be considered deprecated and ignored. Differential Revision: https://reviews.llvm.org/D59782 llvm-svn: 357176
* [Documentation] Proposal to change variable namesMichael Platings2019-03-282-0/+403
| | | | | | Differential Revision: https://reviews.llvm.org/D59251 llvm-svn: 357174
* [llvm-exegesis] Introduce a 'naive' clustering algorithm (PR40880)Roman Lebedev2019-03-281-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This is an alternative to D59539. Let's suppose we have measured 4 different opcodes, and got: `0.5`, `1.0`, `1.5`, `2.0`. Let's suppose we are using `-analysis-clustering-epsilon=0.5`. By default now we will start processing the `0.5` point, find that `1.0` is it's neighbor, add them to a new cluster. Then we will notice that `1.5` is a neighbor of `1.0` and add it to that same cluster. Then we will notice that `2.0` is a neighbor of `1.5` and add it to that same cluster. So all these points ended up in the same cluster. This may or may not be a correct implementation of dbscan clustering algorithm. But this is rather horribly broken for the reasons of comparing the clusters with the LLVM sched data. Let's suppose all those opcodes are currently in the same sched cluster. If i specify `-analysis-inconsistency-epsilon=0.5`, then no matter the LLVM values this cluster will **never** match the LLVM values, and thus this cluster will **always** be displayed as inconsistent. The solution is obviously to split off some of these opcodes into different sched cluster. But how do i do that? Out of 4 opcodes displayed in the inconsistency report, which ones are the "bad ones"? Which ones are the most different from the checked-in data? I'd need to go in to the `.yaml` and look it up manually. The trivial solution is to, when creating clusters, don't use the full dbscan algorithm, but instead "pick some unclustered point, pick all unclustered points that are it's neighbor, put them all into a new cluster, repeat". And just so as it happens, we can arrive at that algorithm by not performing the "add neighbors of a neighbor to the cluster" step. But that won't work well once we teach analyze mode to operate in on-1D mode (i.e. on more than a single measurement type at a time), because the clustering would depend on the order of the measurements. Instead, let's just create a single cluster per opcode, and put all the points of that opcode into said cluster. And simultaneously check that every point in that cluster is a neighbor of every other point in the cluster, and if they are not, the cluster (==opcode) is unstable. This is //yet another// step to bring me closer to being able to continue cleanup of bdver2 sched model.. Fixes [[ https://bugs.llvm.org/show_bug.cgi?id=40880 | PR40880 ]]. Reviewers: courbet, gchatelet Reviewed By: courbet Subscribers: tschuett, jdoerfert, RKSimon, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D59820 llvm-svn: 357152
* [Remarks] Emit a section containing remark diagnostics metadataFrancis Visoiu Mistrih2019-03-272-0/+15
| | | | | | | | | | | | | | | | A section containing metadata on remark diagnostics will be emitted if the flag (-mllvm) -remarks-section is present. For now, the metadata is: * a magic number for remarks: "REMARKS\0" * the version number: a little-endian uint64_t * the absolute file path to the serialized remark diagnostics: a null-terminated string. Differential Revision: https://reviews.llvm.org/D59571 llvm-svn: 357043
* Test commit: fix typoRonald Wampler2019-03-261-1/+1
| | | | llvm-svn: 356999
* AMDGPU: Add support for cross address space synchronization scopesKonstantin Zhuravlyov2019-03-251-56/+74
| | | | | | Differential Revision: https://reviews.llvm.org/D59517 llvm-svn: 356946
* IR: Support parsing numeric block ids, and emit them in textual output.James Y Knight2019-03-221-5/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Just as as llvm IR supports explicitly specifying numeric value ids for instructions, and emits them by default in textual output, now do the same for blocks. This is a slightly incompatible change in the textual IR format. Previously, llvm would parse numeric labels as string names. E.g. define void @f() { br label %"55" 55: ret void } defined a label *named* "55", even without needing to be quoted, while the reference required quoting. Now, if you intend a block label which looks like a value number to be a name, you must quote it in the definition too (e.g. `"55":`). Previously, llvm would print nameless blocks only as a comment, and would omit it if there was no predecessor. This could cause confusion for readers of the IR, just as unnamed instructions did prior to the addition of "%5 = " syntax, back in 2008 (PR2480). Now, it will always print a label for an unnamed block, with the exception of the entry block. (IMO it may be better to print it for the entry-block as well. However, that requires updating many more tests.) Thus, the following is supported, and is the canonical printing: define i32 @f(i32, i32) { %3 = add i32 %0, %1 br label %4 4: ret i32 %3 } New test cases covering this behavior are added, and other tests updated as required. Differential Revision: https://reviews.llvm.org/D58548 llvm-svn: 356789
* [DebugInfo] Introduce DW_OP_LLVM_convertMarkus Lavin2019-03-191-0/+4
| | | | | | | | | | | | | | | | | | | | | Introduce a DW_OP_LLVM_convert Dwarf expression pseudo op that allows for a convenient way to perform type conversions on the Dwarf expression stack. As an additional bonus it paves the way for using other Dwarf v5 ops that need to reference a base_type. The new DW_OP_LLVM_convert is used from lib/Transforms/Utils/Local.cpp to perform sext/zext on debug values but mainly the patch is about preparing terrain for adding other Dwarf v5 ops that need to reference a base_type. For Dwarf v5 the op maps to DW_OP_convert and for earlier versions a complex shift & mask pattern is generated to emulate sext/zext. This is a recommit of r356442 with trivial fixes for the failing tests. Differential Revision: https://reviews.llvm.org/D56587 llvm-svn: 356451
* Revert "[DebugInfo] Introduce DW_OP_LLVM_convert"Markus Lavin2019-03-191-4/+0
| | | | | | | | | | | | | This reverts commit 1cf4b593a7ebd666fc6775f3bd38196e8e65fafe. Build bots found failing tests not detected locally. Failing Tests (3): LLVM :: DebugInfo/Generic/convert-debugloc.ll LLVM :: DebugInfo/Generic/convert-inlined.ll LLVM :: DebugInfo/Generic/convert-linked.ll llvm-svn: 356444
* [DebugInfo] Introduce DW_OP_LLVM_convertMarkus Lavin2019-03-191-0/+4
| | | | | | | | | | | | | | | | | | | Introduce a DW_OP_LLVM_convert Dwarf expression pseudo op that allows for a convenient way to perform type conversions on the Dwarf expression stack. As an additional bonus it paves the way for using other Dwarf v5 ops that need to reference a base_type. The new DW_OP_LLVM_convert is used from lib/Transforms/Utils/Local.cpp to perform sext/zext on debug values but mainly the patch is about preparing terrain for adding other Dwarf v5 ops that need to reference a base_type. For Dwarf v5 the op maps to DW_OP_convert and for earlier versions a complex shift & mask pattern is generated to emulate sext/zext. Differential Revision: https://reviews.llvm.org/D56587 llvm-svn: 356442
* [libFuzzer] document -len_controlKostya Serebryany2019-03-181-0/+4
| | | | llvm-svn: 356422
* [AMDGPU] Add an experimental buffer fat pointer address space.Neil Henning2019-03-181-3/+11
| | | | | | | | | | | | Add an experimental buffer fat pointer address space that is currently unhandled in the backend. This commit reserves address space 7 as a non-integral pointer repsenting the 160-bit fat pointer (128-bit buffer descriptor + 32-bit offset) that is heavily used in graphics workloads using the AMDGPU backend. Differential Revision: https://reviews.llvm.org/D58957 llvm-svn: 356373
OpenPOWER on IntegriCloud