summaryrefslogtreecommitdiffstats
path: root/llvm/docs
Commit message (Collapse)AuthorAgeFilesLines
* ReleaseNotes: some notes from Andres FreundHans Wennborg2018-09-111-0/+5
| | | | llvm-svn: 341916
* ReleaseNotes.rst: Add Zig to External Open Source Projects Using LLVM 7Hans Wennborg2018-09-111-0/+16
| | | | | | Differential revision: https://reviews.llvm.org/D51118 llvm-svn: 341911
* docs: drop another in-progress warningHans Wennborg2018-09-101-5/+0
| | | | llvm-svn: 341828
* ReleaseNotes: minor tweaksHans Wennborg2018-09-101-3/+3
| | | | llvm-svn: 341804
* ReleaseNotes: tidy up for the releaseHans Wennborg2018-09-071-86/+42
| | | | llvm-svn: 341640
* ReleaseNotes: ARM SVE asm/disasm supportHans Wennborg2018-09-061-0/+3
| | | | llvm-svn: 341522
* ReleaseNotes: support for new-pm passes in the opt toolHans Wennborg2018-09-061-0/+3
| | | | llvm-svn: 341520
* ReleaseNotes for PowerPCHans Wennborg2018-09-051-1/+25
| | | | | | Patch by Lei Huang! llvm-svn: 341453
* [docs][mips] 7.0 Release notesSimon Atanasyan2018-08-311-1/+38
| | | | | | Differential revision: https://reviews.llvm.org/D51355 llvm-svn: 341203
* [ReleaseNotes] Fix a typoKrzysztof Parzyszek2018-08-141-1/+1
| | | | llvm-svn: 339718
* [ReleaseNotes] Add release notes for HexagonKrzysztof Parzyszek2018-08-141-0/+12
| | | | llvm-svn: 339717
* [ReleaseNotes] Mention various windows related changes in 7.0Martin Storsjo2018-08-141-4/+32
| | | | llvm-svn: 339646
* [7.0 branch] Update release notes (SystemZ, TableGen)Ulrich Weigand2018-08-091-0/+24
| | | | | | | | | | | This updates the 7.0 branch release notes to mention the SystemZ specific changes, and also the new support for multi-alternative patterns in TableGen (see D48545). Reviewed by: hans Differential Revision: https://reviews.llvm.org/D50514 llvm-svn: 339355
* ReleaseNotes: the new vs integrationHans Wennborg2018-08-071-0/+6
| | | | llvm-svn: 339133
* Release note for DWARF v5 supportPaul Robinson2018-08-031-0/+6
| | | | llvm-svn: 338891
* Release notes: fix -fno-strict-float-cast-overflow quotingHans Wennborg2018-08-021-1/+1
| | | | llvm-svn: 338724
* [llvm-mca][docs] Replace "temporary" with "physical registers". NFC.Matt Davis2018-07-311-4/+4
| | | | llvm-svn: 338415
* [llvm-mca][docs] Improve the "How LLVM-MCA works" section.Andrea Di Biagio2018-07-311-4/+24
| | | | llvm-svn: 338410
* [llvm-mca][docs] Always use `llvm-mca` in place of `MCA`.Andrea Di Biagio2018-07-311-50/+47
| | | | llvm-svn: 338394
* [llvm-mca][docs] Add instruction flow documentation. NFC.Matt Davis2018-07-301-0/+177
| | | | | | | | | | | | | | | | | | | | Summary: This patch mostly copies the existing Instruction Flow, and stage descriptions from the mca README. I made a few text tweaks, but no semantic changes, and made reference to the "default pipeline." I also removed the internals references (e.g., reference to class names and header files). I did leave the LSUnit name around, but only as an abbreviated word for the load-store unit. Reviewers: andreadb, courbet, RKSimon, gbedwell, filcab Reviewed By: andreadb Subscribers: tschuett, jfb, llvm-commits Differential Revision: https://reviews.llvm.org/D49692 llvm-svn: 338319
* [doc] Fix Getting Started typo.Joel Galenson2018-07-301-1/+1
| | | | | | | | This makes it easier for someone to copy-paste this line, change the path, and run the command. Differential Revision: https://reviews.llvm.org/D49201 llvm-svn: 338254
* [docs] Clarify role of DIExpressions within debug intrinsicsVedant Kumar2018-07-282-8/+34
| | | | | | | | | This should make the semantics of DIExpressions within llvm.dbg.{addr, declare, value} easier to understand. Differential Revision: https://reviews.llvm.org/D49572 llvm-svn: 338182
* [AMDGPU][MC][DOC] Updated AMD GPU assembler descriptionDmitry Preobrazhensky2018-07-274-22/+151
| | | | llvm-svn: 338125
* [Docs] Remove hard tab character from code block in optbisect documentationCraig Topper2018-07-271-1/+1
| | | | llvm-svn: 338105
* ADT: Document advantages of SmallVector<T,0> over std::vectorDuncan P. N. Exon Smith2018-07-262-7/+28
| | | | | | | | | | | | In light of the recent changes to SmallVector in r335421, r337514, and r337820, document its advantages over std::vector (see r175906 and r266909). Also add a release note. https://reviews.llvm.org/D49748 llvm-svn: 338071
* [Docs] Update of Xray pageDavid Carlier2018-07-261-2/+3
| | | | | | | | | | | | Update of supported oses. Reviewers: dberris Reviewed By: dberris Differential Revision: https://reviews.llvm.org/D49789 llvm-svn: 338003
* [LangRef] Clarify undefined behavior for function attributes.Eli Friedman2018-07-251-6/+23
| | | | | | | | | | Violating the invariants specified by attributes is undefined behavior. Maybe we could use poison instead for some of the parameter attributes, but I don't think it's worthwhile. Differential Revision: https://reviews.llvm.org/D49041 llvm-svn: 337947
* Add PerfJITEventListener for perf profiling support.Andres Freund2018-07-241-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This new JIT event listener supports generating profiling data for the linux 'perf' profiling tool, allowing it to generate function and instruction level profiles. Currently this functionality is not enabled by default, but must be enabled with LLVM_USE_PERF=yes. Given that the listener has no dependencies, it might be sensible to enable by default once the initial issues have been shaken out. I followed existing precedent in registering the listener by default in lli. Should there be a decision to enable this by default on linux, that should probably be changed. Please note that until https://reviews.llvm.org/D47343 is resolved, using this functionality with mcjit rather than orcjit will not reliably work. Disregarding the previous comment, here's an example: $ cat /tmp/expensive_loop.c bool stupid_isprime(uint64_t num) { if (num == 2) return true; if (num < 1 || num % 2 == 0) return false; for(uint64_t i = 3; i < num / 2; i+= 2) { if (num % i == 0) return false; } return true; } int main(int argc, char **argv) { int numprimes = 0; for (uint64_t num = argc; num < 100000; num++) { if (stupid_isprime(num)) numprimes++; } return numprimes; } $ clang -ggdb -S -c -emit-llvm /tmp/expensive_loop.c -o /tmp/expensive_loop.ll $ perf record -o perf.data -g -k 1 ./bin/lli -jit-kind=mcjit /tmp/expensive_loop.ll 1 $ perf inject --jit -i perf.data -o perf.jit.data $ perf report -i perf.jit.data - 92.59% lli jitted-5881-2.so [.] stupid_isprime stupid_isprime main llvm::MCJIT::runFunction llvm::ExecutionEngine::runFunctionAsMain main __libc_start_main 0x4bf6258d4c544155 + 0.85% lli ld-2.27.so [.] do_lookup_x And line-level annotations also work: │ for(uint64_t i = 3; i < num / 2; i+= 2) { │1 30: movq $0x3,-0x18(%rbp) 0.03 │1 38: mov -0x18(%rbp),%rax 0.03 │ mov -0x10(%rbp),%rcx │ shr $0x1,%rcx 3.63 │ ┌──cmp %rcx,%rax │ ├──jae 6f │ │ if (num % i == 0) 0.03 │ │ mov -0x10(%rbp),%rax │ │ xor %edx,%edx 89.00 │ │ divq -0x18(%rbp) │ │ cmp $0x0,%rdx 0.22 │ │↓ jne 5f │ │ return false; │ │ movb $0x0,-0x1(%rbp) │ │↓ jmp 73 │ │ } 3.22 │1 5f:│↓ jmp 61 │ │ for(uint64_t i = 3; i < num / 2; i+= 2) { Subscribers: mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D44892 llvm-svn: 337789
* [llvm-mca][docs] Define IPC where it is first mentioned. NFC.Matt Davis2018-07-231-7/+7
| | | | | | Expand the abbreviation where it is first used, and use IPC elsewhere. llvm-svn: 337739
* Revert "[docs] Add support for Markdown documentation in Sphinx"Michael J. Spencer2018-07-233-165/+1
| | | | | | Looks like this bot hasn't been updated yet. llvm-svn: 337731
* [docs] Add support for Markdown documentation in SphinxMichael J. Spencer2018-07-233-1/+165
| | | | | | Differential Revision: https://reviews.llvm.org/D44910 llvm-svn: 337730
* [Docs] Fix LLVM_YAML_IS_DOCUMENT_LIST_VECTORJonas Devlieghere2018-07-231-1/+1
| | | | | | | The docs incorrectly said to repeat std::vector inside LLVM_YAML_IS_DOCUMENT_LIST_VECTOR. llvm-svn: 337695
* [llvm-mca][docs] Add documentation for the statistic outputs from mca. NFCMatt Davis2018-07-211-3/+125
| | | | | | | | | | | | | | Summary: The original text was lifted from the MCA README. I re-ran the dot-product example and updated the output seen in the docs. I also added a few paragraphs discussing the instruction issued and retired histograms, as well as discussing the register file stats. Reviewers: andreadb, RKSimon, courbet, gbedwell, filcab Reviewed By: andreadb Subscribers: tschuett Differential Revision: https://reviews.llvm.org/D49614 llvm-svn: 337648
* [FileCheck] Provide an option for FileCheck to dump original input to stderr ↵George Karpenkov2018-07-201-0/+4
| | | | | | | | | | | | | | | | on failure The option can be either set using environment variable (e.g. env FILECHECK_DUMP_INPUT_ON_FAILURE=1 ninja check-fuzzer) or with a FileCheck flag. This can be extremely useful for debugging, cf. https://groups.google.com/forum/#!topic/llvm-dev/kLrzg8OM_h8 for discussion. Differential Revision: https://reviews.llvm.org/D49328 llvm-svn: 337609
* Revert "[docs] Add support for Markdown documentation in Sphinx"Michael J. Spencer2018-07-203-165/+1
| | | | | | The buildbots have an old version of Sphinx (need at least 1.3). Revert until they are upgraded. llvm-svn: 337513
* [docs] Add support for Markdown documentation in SphinxMichael J. Spencer2018-07-193-1/+165
| | | | | | Differential Revision: https://reviews.llvm.org/D44910 llvm-svn: 337509
* [llvm-mca][docs] Add Timeline and How MCA works.Matt Davis2018-07-191-3/+223
| | | | | | | | | | For the most part, these changes were from the RFC. I made a few minor word/structure changes, but nothing significant. I also regenerated the example output, and adjusted the text accordingly. Differential Revision: https://reviews.llvm.org/D49527 llvm-svn: 337496
* [libFuzzer] Update documentation regarding MSan.Matt Morehouse2018-07-191-5/+3
| | | | | | | | | | | | | | Summary: -fsanitize=fuzzer,memory now works out-of-the-box. Reviewers: kcc Reviewed By: kcc Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D49441 llvm-svn: 337476
* [Docs] Testing Debug Info Preservation in OptimizationsAnastasis Grammenos2018-07-191-2/+179
| | | | | | Differential Revision: https://reviews.llvm.org/D49053 llvm-svn: 337457
* [UnJ] Document unroll and jam pass and loop metadataDavid Green2018-07-192-0/+76
| | | | | | | | | Add some quick words for unroll and jam to the list of passes and add unroll_and_jam metadata to the language ref. Differential Revision: https://reviews.llvm.org/D49349 llvm-svn: 337448
* [docs] Update GoldPlugin documentationTeresa Johnson2018-07-181-17/+30
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: Updated and reorganized. Made the following additions: 1) How to see if ld.gold is installed, and whether it is the current default. 2) How to install ld.gold as the default or alternatively use -fuse-ld=gold. 3) Move the part about installing the newly built ld-new as the default to the prior section and how to use --enable-gold=default to do it automatically on install. 4) Add a note about ld.bfd supporting plugins but indicate that it is not tested by the LLVM project and gold is the recommended linker for use with the gold plugin. Fixes PR32760. Reviewers: davide Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D49490 llvm-svn: 337404
* [x86/SLH] Add the design document for Speculative Load Hardening,Chandler Carruth2018-07-182-0/+1099
| | | | | | | | | | | | | | | | | | | | | | | | | | a Spectre v1 mitigation. This was initially posted w/ the patch implementing this, got some basic review there. Also, it is generated from a the Google doc that I shared as part of the Speculative Load Hardening RFC and which has seen pretty widespread review at this point. However, as the patches are landing in LLVM, I wanted to land the docs as well. But it seemed like a bad idea to have them in the same commit in case of reverts or other things. So the docs are split out here. Thanks for all the review so far, and further review and improvements to the documentation here welcome. Please feel free to keep hammering on the code review or Google document. Note that this is a markdown document which Sphinx doesn't yet process. But we can add support for that after and this should get picked up (and I'm preparing patches for that). Also, this gets the document itself into a nice shared place where we can iterate on it. Differential Revision: https://reviews.llvm.org/D49433 llvm-svn: 337391
* MC: Implement support for new .addrsig and .addrsig_sym directives.Peter Collingbourne2018-07-171-0/+30
| | | | | | | | | Part of the address-significance tables proposal: http://lists.llvm.org/pipermail/llvm-dev/2018-May/123514.html Differential Revision: https://reviews.llvm.org/D47744 llvm-svn: 337328
* [LangRef] Clarify semantics of load metadata.Eli Friedman2018-07-171-9/+12
| | | | | | | | | | | | | | | | We need to explicitly state what happens when an invariant promised by load metadata is violated at runtime, since it's come up repeatedly. It's possible we want to specify that the result of the load is poison in some cases, rather than undefined behavior, if the constraint is violated. That would allow preserving the metadata when the load is hoisted, but doesn't allow propagating metadata based on control flow. We currently do transforms based on control flow for nonnull metadata (in PromoteMemToReg). Differential Revision: https://reviews.llvm.org/D47854 llvm-svn: 337325
* [LangRef] nnan and ninf produce poison.Eli Friedman2018-07-171-4/+4
| | | | | | | | | Clarify that violating nnan and ninf can lead to undefined behavior. This allows more aggressive optimizations based on those assumptions. Differential Revision: https://reviews.llvm.org/D47963 llvm-svn: 337323
* [LangRef] Clarify which fast-math flags affect fcmp.Eli Friedman2018-07-171-1/+1
| | | | | | | nsz has no effect due to the way fcmp is defined; +0 and -0 compare equal anyway. reassoc could have the obvious effect. llvm-svn: 337322
* [llvm-mca][docs] Revert mca internals docs.Matt Davis2018-07-171-98/+3
| | | | | | | | | We're going to work on this in a separate review focusing more on documenting the View and probably removing some of the less-interesting/less-useful pieces. This reverts r337219,337225 llvm-svn: 337295
* [llvm-mca][docs] Add notes about cycle and resource callbacks. NFC.Matt Davis2018-07-161-0/+8
| | | | llvm-svn: 337225
* [Intrinsics] define funnel shift IR intrinsics + DAG builder supportSanjay Patel2018-07-161-0/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | As discussed here: http://lists.llvm.org/pipermail/llvm-dev/2018-May/123292.html http://lists.llvm.org/pipermail/llvm-dev/2018-July/124400.html We want to add rotate intrinsics because the IR expansion of that pattern is 4+ instructions, and we can lose pieces of the pattern before it gets to the backend. Generalizing the operation by allowing 2 different input values (plus the 3rd shift/rotate amount) gives us a "funnel shift" operation which may also be a single hardware instruction. Initially, I thought we needed to define new DAG nodes for these ops, and I spent time working on that (much larger patch), but then I concluded that we don't need it. At least as a first step, we have all of the backend support necessary to match these ops...because it was required. And shepherding these through the IR optimizer is the primary concern, so the IR intrinsics are likely all that we'll ever need. There was also a question about converting the intrinsics to the existing ROTL/ROTR DAG nodes (along with improving the oversized shift documentation). Again, I don't think that's strictly necessary (as the test results here prove). That can be an efficiency improvement as a small follow-up patch. So all we're left with is documentation, definition of the IR intrinsics, and DAG builder support. Differential Revision: https://reviews.llvm.org/D49242 llvm-svn: 337221
* [llvm-mca][docs] Initial description of mca internals. NFCMatt Davis2018-07-161-3/+90
| | | | | | | | | | | | This patch introduces a brief description of the components of MCA. The main focus is on Views. This is a work in progress, and more descriptions will be introduced later. I want to flesh-out the Views section more and provide a detailed description of eventing in MCA. Eventually a brief code example of a View should accompany the description. Also, we should consider moving the MCA internals guide elsewhere at some point. llvm-svn: 337219
OpenPOWER on IntegriCloud