summaryrefslogtreecommitdiffstats
path: root/llvm/docs
Commit message (Collapse)AuthorAgeFilesLines
...
* [globalisel][docs] Rework GMIR documentation and add an early GenericOpcode ↵Daniel Sanders2019-11-055-73/+799
| | | | | | | | | | | | | | | | | | | | | | | | | | | reference Summary: Rework the GMIR documentation to focus more on the end user than the implementation and tie it in to the MIR document. There was also some out-of-date information which has been removed. The quality of the GenericOpcode reference is highly variable and drops sharply as I worked through them all but we've got to start somewhere :-). It would be great if others could expand on this too as there is an awful lot to get through. Also fix a typo in the definition of G_FLOG. Previously, the comments said we had two base-2's (G_FLOG and G_FLOG2). Reviewers: aemerson, volkan, rovka, arsenm Reviewed By: rovka Subscribers: wdng, arphaman, jfb, Petar.Avramovic, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69545
* [globalisel][docs] Add a section about debugging with the block extractorDaniel Sanders2019-11-052-0/+55
| | | | | | | | | | | | Summary: Depends on D69644 Reviewers: rovka, volkan, arsenm Subscribers: wdng, Petar.Avramovic, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69645
* [globalisel][docs] Add KnownBits Analysis documentationDaniel Sanders2019-11-052-0/+101
| | | | | | | | | | | | | | | Summary: This is largely based off of the slides from the keynote Depends on D69545 Reviewers: volkan, rovka, arsenm Subscribers: wdng, arphaman, Petar.Avramovic, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69644
* [llvm-objcopy][ELF] Implement --only-keep-debugFangrui Song2019-11-051-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | --only-keep-debug produces a debug file as the output that only preserves contents of sections useful for debugging purposes (the binutils implementation preserves SHT_NOTE and non-SHF_ALLOC sections), by changing their section types to SHT_NOBITS and rewritting file offsets. See https://sourceware.org/gdb/onlinedocs/gdb/Separate-Debug-Files.html The intended use case is: ``` llvm-objcopy --only-keep-debug a a.dbg llvm-objcopy --strip-debug a b llvm-objcopy --add-gnu-debuglink=a.dbg b ``` The current layout algorithm is incapable of deleting contents and shrinking segments, so it is not suitable for implementing the functionality. This patch adds a new algorithm which assigns sh_offset to sections first, then modifies p_offset/p_filesz of program headers. It bears a resemblance to lld/ELF/Writer.cpp. Reviewed By: jhenderson, jakehehrlich Differential Revision: https://reviews.llvm.org/D67137
* [Docs] Add LangRef documentation for freeze instructionNuno Lopes2019-11-051-33/+81
| | | | | | | | | | | | Summary: - Describe the new freeze instruction - Make it explicit that branch on undef/poison is UB Reviewers: chandlerc, majnemer, efriedma, nikic, reames, jdoerfert, lebedev.ri, regehr Subscribers: fhahn, bollu, lebedev.ri, delcypher, spatel, filcab, llvm-commits, aqjune Differential Revision: https://reviews.llvm.org/D29121
* [X86] Add support for -mvzeroupper and -mno-vzeroupper to match gccCraig Topper2019-11-041-4/+7
| | | | | | | | | | | | | | | | | -mvzeroupper will force the vzeroupper insertion pass to run on CPUs that normally wouldn't. -mno-vzeroupper disables it on CPUs where it normally runs. To support this with the default feature handling in clang, we need a vzeroupper feature flag in X86.td. Since this flag has the opposite polarity of the fast-partial-ymm-or-zmm-write we used to use to disable the pass, we now need to add this new flag to every CPU except KNL/KNM and BTVER2 to keep identical behavior. Remove -fast-partial-ymm-or-zmm-write which is no longer used. Differential Revision: https://reviews.llvm.org/D69786
* Recommit "[CodeView] Add option to disable inline line tables."Amy Huang2019-11-041-0/+7
| | | | | | | | | | | | This reverts commit 004ed2b0d1b86d424643ffc88fce20ad8bab6804. Original commit hash 6d03890384517919a3ba7fe4c35535425f278f89 Summary: This adds a clang option to disable inline line tables. When it is used, the inliner uses the call site as the location of the inlined function instead of marking it as an inline location with the function location. https://reviews.llvm.org/D67723
* NoFree argument attribute.Stefan Stipanovic2019-11-021-0/+4
| | | | | | | | | | | | Summary: Deducing nofree atrribute for function arguments. Reviewers: jdoerfert Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D67886
* Revert "NoFree argument attribute."Stefan Stipanovic2019-11-021-4/+0
| | | | This reverts commit c12efa2ed0547f7f9f8fba0ad7a76a4cb08bf53a.
* NoFree argument attribute.Stefan Stipanovic2019-11-021-0/+4
| | | | | | | | | | | | Summary: Deducing nofree atrribute for function arguments. Reviewers: jdoerfert Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D67886
* Revert BCmp Loop Idiom recognition transform (PR43870)Roman Lebedev2019-11-021-3/+0
| | | | | | | | | | | | | | | | | As discussed in https://bugs.llvm.org/show_bug.cgi?id=43870, this transform is missing a crucial legality check: the old (non-countable) loop would early-return upon first mismatch, but there is no such guarantee for bcmp/memcmp. We'd need to ensure that [PtrA, PtrA+NBytes) and [PtrB, PtrB+NBytes) are fully dereferenceable memory regions. But that would limit the transform to constant loop trip counts and would further cripple it because dereferenceability analysis is *very* partial. Furthermore, even if all that is done, every single test would need to be rewritten from scratch. So let's just give up.
* Add MemTagSanitizer documentation.Evgenii Stepanov2019-11-012-0/+103
| | | | | | | | | | | | Summary: A lot of this is work in progress... Reviewers: kcc, pcc Subscribers: cryptoad, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69289
* Fix a few typos in SourceLevelDebugging.rstAdrian Prantl2019-10-311-5/+5
|
* [llvm-objcopy] Preserve .ARM.attributes section when stripping filesJames Henderson2019-10-312-2/+4
| | | | | | | | | | | | | | This works around a bug in Debian's patchset for glibc. The bug is described in detail in the upstream debian bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=943798, but the short version of it is that glibc on any Debian based distro don't load libraries unless it has a .ARM.attribute section. Reviewed by: jhenderson, rupprecht, MaskRay, jakehehrlich Differential Revision: https://reviews.llvm.org/D69188 Patch by Tobias Hieta.
* [llvm-objcopy][MachO] Implement --strip-allSeiya Nuta2019-10-311-2/+2
| | | | | | | | | | | | Reviewers: alexshap, rupprecht, jdoerfert, jhenderson Reviewed By: alexshap Subscribers: jakehehrlich, abrachet, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66281
* Revert "[CodeView] Add option to disable inline line tables."Amy Huang2019-10-301-7/+0
| | | | | | because it breaks compiler-rt tests. This reverts commit 6d03890384517919a3ba7fe4c35535425f278f89.
* [CodeView] Add option to disable inline line tables.Amy Huang2019-10-301-0/+7
| | | | | | | | | | | | | | | | | Summary: This adds a clang option to disable inline line tables. When it is used, the inliner uses the call site as the location of the inlined function instead of marking it as an inline location with the function location. See https://bugs.llvm.org/show_bug.cgi?id=42344 Reviewers: rnk Subscribers: hiraditya, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D67723
* [globalisel][docs] Add the tutorial to the Porting documentDaniel Sanders2019-10-301-0/+7
| | | | | In lieu of converting that tutorial to text, add a link to the porting tutorial from the 2017 Dev Meeting to the porting page
* [ReleaseNotes] Add item on deleting the BasicBlockPass(Manager).Alina Sbirlea2019-10-301-0/+2
|
* [globalisel][docs] Rework the Legalizer page slightlyDaniel Sanders2019-10-301-21/+17
| | | | | | | | | | The legalizer page was in a fairly good state. I've mostly just inlined some information as a note and removed a reference to potential future work that I think is very unlikely to be done (it's very hard to tell if a pattern or set of patterns fully covers a node due to C++ predicates). Also added a note that 'selectable' doesn't mean that InstructionSelect must do it.
* [clang][llvm] Obsolete Exynos M1 and M2Evandro Menezes2019-10-301-3/+3
|
* [globalisel][docs] Add a pass indexDaniel Sanders2019-10-301-0/+9
|
* [globalisel][docs] Fix a label that was renamedDaniel Sanders2019-10-301-2/+2
|
* [LegacyPassManager] Delete BasicBlockPass/Manager.Alina Sbirlea2019-10-302-70/+3
| | | | | | | | | | | | | | | | Summary: Delete the BasicBlockPass and BasicBlockManager, all its dependencies and update documentation. The BasicBlockManager was improperly tested and found to be potentially broken, and was deprecated as of rL373254. In light of the switch to the new pass manager coming before the next release, this patch is a first cleanup of the LegacyPassManager. Reviewers: chandlerc, echristo Subscribers: mehdi_amini, sanjoy.google, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69121
* [IR] Allow fast math flags on calls with floating point array type.Jay Foad2019-10-301-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: This extends the rules for when a call instruction is deemed to be an FPMathOperator, which is based on the type of the call (i.e. the return type of the function being called). Previously we only allowed floating-point and vector-of-floating-point types. Now we also allow arrays (nested to any depth) of floating-point and vector-of-floating-point types. This was motivated by llpc, the pipeline compiler for AMD GPUs (https://github.com/GPUOpen-Drivers/llpc). llpc has many math library functions that operate on vectors, typically represented as <4 x float>, and some that operate on matrices, typically represented as [4 x <4 x float>], and it's useful to be able to decorate calls to all of them with fast math flags. Reviewers: spatel, wristow, arsenm, hfinkel, aemerson, efriedma, cameron.mcinally, mcberg2017, jmolloy Subscribers: wdng, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69161
* Revert "[llvm-cov] Add option to whitelist filenames"Vlad Tsyrklevich2019-10-291-4/+0
| | | | | | This reverts commit bfed824b57d14e2ba98ddbaf1a1410cf04a3e279, the included test fails on many bots including the sanitier bots, e.g. in http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/36140
* [llvm-cov] Add option to whitelist filenamesVedant Kumar2019-10-291-0/+4
| | | | | | | | | Add the `-whitelist-filename-regex` option to restrict coverage reporting to file paths that match a whitelist regex. Patch by Michael Daniels! rdar://56720320
* [DWARF5] Added support for deleted C++ special member functions.Adrian Prantl2019-10-291-0/+33
| | | | | | | | | | This patch adds support for deleted C++ special member functions in clang and llvm. Also added Defaulted member encodings for future support for defaulted member functions. Patch by Sourabh Singh Tomar! Differential Revision: https://reviews.llvm.org/D69215
* [globalisel][docs] Fix warning treated as errorDaniel Sanders2019-10-291-1/+1
| | | | | | | | | I had hoped that I could have some ``` .. code-block:: MIR ``` sections for MIR examples which causes a warning about pygments not supporting it but we have warnings treated as errors
* [globalisel][docs] Rewrite the IRTranslator documentationDaniel Sanders2019-10-291-27/+65
| | | | | | | | | | | | | | | | | | | | | | Summary: I haven't refreshed the Function Calls section as I don't feel I have sufficient knowledge of that area. It would be appreciated if someone could review that section. Note: I'm aware that pygments doesn't support 'mir' as used in one of the code-block directives. This currently emits a warning and I decided to keep it to enable finding them later. Maybe we can teach pygments to support it. Depends on D69456 Reviewers: volkan, aditya_nandakumar Subscribers: rovka, Petar.Avramovic, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69457
* [Docs] Reflect the slow migration from guard to widenable condition which is ↵Philip Reames2019-10-291-0/+4
| | | | currently in progress.
* [globalisel][docs] Rewrite the pipeline overviewDaniel Sanders2019-10-296-51/+106
| | | | | | | | | | | | | | | | | | | | Summary: Rewrite the pipeline overview to be more focused on the structure and flexibility as well as highlight the increased usefulness of MachineVerifier and increased testability resulting from the smaller incremental passes approach. The diagrams are lifted from the slides for the LLVMDev 2019 talk 'Generating Optimized Code with GlobalISel' and adapted to be readable on the white background used in the docs. Reviewers: volkan Subscribers: rovka, Petar.Avramovic, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69456
* [Remarks] Remove references to ELF supportFrancis Visoiu Mistrih2019-10-282-3/+2
| | | | | | There is no ELF support at the moment. Remove all the references to the `.remarks` section.
* [Remarks] Emit the remarks section by default for certain formatsFrancis Visoiu Mistrih2019-10-281-3/+7
| | | | | | | | | Emit a remarks section by default for the following formats: * bitstream * yaml-strtab while still providing -remarks-section=<bool> to override the defaults.
* Add Windows Control Flow Guard checks (/guard:cf).Andrew Paverd2019-10-282-0/+16
| | | | | | | | | | | | | | | | | | | Summary: A new function pass (Transforms/CFGuard/CFGuard.cpp) inserts CFGuard checks on indirect function calls, using either the check mechanism (X86, ARM, AArch64) or or the dispatch mechanism (X86-64). The check mechanism requires a new calling convention for the supported targets. The dispatch mechanism adds the target as an operand bundle, which is processed by SelectionDAG. Another pass (CodeGen/CFGuardLongjmp.cpp) identifies and emits valid longjmp targets, as required by /guard:cf. This feature is enabled using the `cfguard` CC1 option. Reviewers: thakis, rnk, theraven, pcc Subscribers: ychen, hans, metalcanine, dmajor, tomrittervg, alex, mehdi_amini, mgorny, javed.absar, kristof.beyls, hiraditya, steven_wu, dexonsmith, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D65761
* [llvm-objcopy][MachO] Implement --only-sectionSeiya Nuta2019-10-281-0/+3
| | | | | | | | | | | | Reviewers: alexshap, rupprecht, jdoerfert, jhenderson Reviewed By: alexshap, rupprecht, jhenderson Subscribers: mgorny, jakehehrlich, abrachet, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65541
* [globalisel] Restructure the GlobalISel documentationDaniel Sanders2019-10-2512-945/+949
| | | | | There's a couple minor deletions amongst this but 99% of it is just moving the documentation around to prepare the way for more meaningful changes.
* [globalisel] Fix typo in 'Add LLVMDev 2019 talks and links for the 2017 talks'Daniel Sanders2019-10-251-1/+1
|
* [globalisel] Add LLVMDev 2019 talks and links for the 2017 talksDaniel Sanders2019-10-251-2/+3
|
* build: remove `LLVM_CXX_STD` extension pointSaleem Abdulrasool2019-10-251-3/+11
| | | | | | This extension point is not needed. Provide the equivalent option through `CMAKE_CXX_STANDARD` which mirrors the previous extension point. Rely on CMake to provide the check for the compiler instead.
* [docs] Update Mips feature table in CodeGenerator.rstSimon Atanasyan2019-10-251-5/+5
| | | | | | Patch by Miloš Stojanović Differential Revision: https://reviews.llvm.org/D69381
* docs: Update instructions for requesting commit accessTom Stellard2019-10-241-43/+12
|
* [docs] Add Mips as a supported architecture in GettingStarted.rstSimon Atanasyan2019-10-241-0/+1
| | | | | | Patch by Miloš Stojanović Differential Revision: https://reviews.llvm.org/D69380
* [docs] Update link to the MIPS 64-bit ELF object file specificationSimon Atanasyan2019-10-241-1/+1
| | | | | | Patch by Miloš Stojanović Differential Revision: https://reviews.llvm.org/D69377
* [libFuzzer] docs: update note to include REDUCE event.Marek Kurdej2019-10-241-4/+4
|
* Improve language in GettingStarted.rstMeike Baumgärtner2019-10-231-21/+16
| | | | | | | This patch was reviewed and approved by chandlerc. "Getting Started with the LLVM System" is the first point of contact for many newcomers in the LLVM community. * Make the first two paragraphs more welcoming * Use more inclusive language
* Remove a no longer accurate sentence from the coding standards.Chandler Carruth2019-10-231-2/+1
| | | | (And test my commit access. We're working on larger changes here.)
* Fix broken sphinx link in CMake.rst.Kit Barton2019-10-221-1/+1
| | | | | | | | | | Reviewers: delcypher, beanz Subscribers: mgorny, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D69325
* [docs][llvm-ar] Update llvm-ar command guideOwen Reynolds2019-10-211-193/+238
| | | | | | | | | | | | | | | | | The llvm-ar command guide had not been updated in some time, it was missing current functionality and contained information that was out of date. This change: - Updates the use of reStructuredText directives, as seen in other tools command guides. - Updates the command synopsis. - Updates the descriptions of the tool behaviour. - Updates the options section. - Adds details of MRI script functionality. - Removes the sections "Standards" and "File Format" Differential Revision: https://reviews.llvm.org/D68998 llvm-svn: 375412
* Explicit in the doc the current list of projects (with easy copy and paste)Sylvestre Ledru2019-10-191-0/+2
| | | | llvm-svn: 375339
OpenPOWER on IntegriCloud