summaryrefslogtreecommitdiffstats
path: root/llvm/docs
Commit message (Collapse)AuthorAgeFilesLines
* Add AMDPAL Code Conventions section to AMD docsTim Corringham2018-04-041-0/+119
| | | | | | | | | | | | | Summary: This is a first version of the AMDPAL code conventions. Further updates will undoubtably be required to fully document AMDPAL. Subscribers: nhaehnle, llvm-commits Differential Revision: https://reviews.llvm.org/D45246 llvm-svn: 329188
* Re-land r329156 "Add llvm-exegesis tool."Clement Courbet2018-04-043-0/+64
| | | | | | Fixed to depend on and initialize the native target instead of X86. llvm-svn: 329169
* Revert r329156 "Add llvm-exegesis tool."Clement Courbet2018-04-043-64/+0
| | | | | | Breaks a bunch of bots. llvm-svn: 329157
* Add llvm-exegesis tool.Clement Courbet2018-04-043-0/+64
| | | | | | | | | | | | | | | | | Summary: [llvm-exegesis][RFC] Automatic Measurement of Instruction Latency/Uops This is the code corresponding to the RFC "llvm-exegesis Automatic Measurement of Instruction Latency/Uops". The RFC is available on the LLVM mailing lists as well as the following document for easier reading: https://docs.google.com/document/d/1QidaJMJUyQdRrFKD66vE1_N55whe0coQ3h1GpFzz27M/edit?usp=sharing Subscribers: mgorny, gchatelet, orwant, llvm-commits Differential Revision: https://reviews.llvm.org/D44519 llvm-svn: 329156
* Add the ShadowCallStack attributeVlad Tsyrklevich2018-04-032-0/+6
| | | | | | | | | | | | | | | | | | Summary: Introduce the ShadowCallStack function attribute. It's added to functions compiled with -fsanitize=shadow-call-stack in order to mark functions to be instrumented by a ShadowCallStack pass to be submitted in a separate change. Reviewers: pcc, kcc, kubamracek Reviewed By: pcc, kcc Subscribers: cryptoad, mehdi_amini, javed.absar, llvm-commits, kcc Differential Revision: https://reviews.llvm.org/D44800 llvm-svn: 329108
* [llvm-mca] Move the logic that prints register file statistics to its own ↵Andrea Di Biagio2018-04-031-0/+4
| | | | | | | | | | | | | view. NFCI Before this patch, the "BackendStatistics" view was responsible for printing the register file usage (as well as many other statistics). Now users can enable register file usage statistics using the command line flag `-register-file-stats`. By default, the tool doesn't print register file statistics. llvm-svn: 329083
* [LangRef] fix description and examples of fptruncSanjay Patel2018-04-031-6/+5
| | | | | | | | | | | | As noted in PR36966: https://bugs.llvm.org/show_bug.cgi?id=36966 The old description doesn't match what we do in code, so this just fixes the documentation to avoid confusion. Differential Revision: https://reviews.llvm.org/D45190 llvm-svn: 329065
* [coroutines] Add support for llvm.coro.noop intrinsicsGor Nishanov2018-04-021-0/+26
| | | | | | | | | | | | | | | | Summary: A recent addition to Coroutines TS (https://wg21.link/p0913) adds a pre-defined coroutine noop_coroutine that does nothing. To implement this feature, we implemented an llvm.coro.noop intrinsic that returns a coroutine handle to a coroutine that does nothing when resumed or destroyed. Reviewers: EricWF, modocache, rnk, lewissbaker Reviewed By: modocache Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D45114 llvm-svn: 328986
* [dsymutil] Upstream emitting of papertrail warnings.Jonas Devlieghere2018-04-021-0/+7
| | | | | | | | | | When running dsymutil as part of your build system, it can be desirable for warnings to be part of the end product, rather than just being emitted to the output stream. This patch upstreams that functionality. Differential revision: https://reviews.llvm.org/D44639 llvm-svn: 328965
* [Kaleidoscope] Tiny typo fixesSjoerd Meijer2018-03-295-14/+14
| | | | | | | | | | | Fixes for "lets" references which should be "let's" in the Kaleidoscope tutorial. Patch by: Robin Dupret Differential Revision: https://reviews.llvm.org/D44990 llvm-svn: 328772
* Rename llvm library from libLLVM-X.Y to libLLVM-XSylvestre Ledru2018-03-291-0/+3
| | | | | | | | | | | | | | | | | | Summary: As we are only doing X.0.Z releases (not using the minor version), there is no need to keep -X.Y in the version. Like patch https://reviews.llvm.org/D41808, I propose that we rename libLLVM-7.0svn.so to libLLVM-7svn.so This patch will also rename downstream libraries like liblldb-7.0 to liblldb-7 Reviewers: axw, beanz, dim, hans Reviewed By: dim, hans Subscribers: mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D41869 llvm-svn: 328768
* [AMDGPU] Define code object identification string used in AMDHSA runtimes.Tony Tye2018-03-271-0/+28
| | | | | | Differential Revision: https://reviews.llvm.org/D44718 llvm-svn: 328669
* Migrate dockerfiles to use multi-stage builds.Ilya Biryukov2018-03-261-36/+22
| | | | | | | | | | | | | | | | | | | | Summary: We previously emulated multi-staged builds using two dockerfiles, native support from Docker allows us to merge them into one, simplifying our scripts. For more details about multi-stage builds, see: https://docs.docker.com/develop/develop-images/multistage-build/ Reviewers: mehdi_amini, klimek, sammccall Reviewed By: sammccall Subscribers: llvm-commits, ioeric, cfe-commits Differential Revision: https://reviews.llvm.org/D44787 llvm-svn: 328503
* [llvm-mca] Add a flag -instruction-info to enable/disable the instruction ↵Andrea Di Biagio2018-03-261-0/+4
| | | | | | info view. llvm-svn: 328493
* [llvm-mca] Update the commandline docs after r328305.Andrea Di Biagio2018-03-261-0/+4
| | | | | | | Document that flag -resource-pressure can be used to enable/disable the resource pressure view. This change should have been part of r328305. llvm-svn: 328492
* [llvm-mca] Add flag -instruction-tables to print the theoretical resource ↵Andrea Di Biagio2018-03-261-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | pressure distribution for instructions (PR36874) The goal of this patch is to address most of PR36874. To fully fix PR36874 we need to split the "InstructionInfo" view from the "SummaryView". That would make easy to check the latency and rthroughput as well. The patch reuses all the logic from ResourcePressureView to print out the "instruction tables". We have an entry for every instruction in the input sequence. Each entry reports the theoretical resource pressure distribution. Resource pressure is uniformly distributed across all the processor resource units of a group. At the moment, the backend pipeline is not configurable, so the only way to fix this is by creating a different driver that simply sends instruction events to the resource pressure view. That means, we don't use the Backend interface. Instead, it is simpler to just have a different code-path for when flag -instruction-tables is specified. Once Clement addresses bug 36663, then we can port the "instruction tables" logic into a stage of our configurable pipeline. Updated the BtVer2 test cases (thanks Simon for the help). Now we pass flag -instruction-tables to each modified test. Differential Revision: https://reviews.llvm.org/D44839 llvm-svn: 328487
* [AMDGPU] Update OpenCL to use 48 bytes of implicit arguments for AMDGPUTony Tye2018-03-231-4/+8
| | | | | | | | Add two additional implicit arguments for OpenCL for the AMDGPU target using the AMDHSA runtime to support device enqueue. Differential Revision: https://reviews.llvm.org/D44697 llvm-svn: 328351
* [AMDGPU] Remove use of OpenCL triple environment and replace with function ↵Tony Tye2018-03-231-18/+18
| | | | | | | | | | | attribute for AMDGPU - Remove use of the opencl and amdopencl environment member of the target triple for the AMDGPU target. - Use function attribute to communicate to the AMDGPU backend to add implicit arguments for OpenCL kernels for the AMDHSA OS. Differential Revision: https://reviews.llvm.org/D43736 llvm-svn: 328349
* Document optforfuzzing attribute created in r328214.Matt Morehouse2018-03-222-0/+4
| | | | llvm-svn: 328236
* [Docs] Remove some WIP X86 documentation I accidentally leaked into r328031.Craig Topper2018-03-214-97/+0
| | | | | | I didn't mean to commit it, but I guess I failed to switch branches or stash it in my local tree. llvm-svn: 328124
* [Documentation] Fix markup problems in X86Usage.rstEugene Zelenko2018-03-211-3/+3
| | | | llvm-svn: 328121
* [Documentation] Fix markup problem in AMDGPUUsage.rst.Eugene Zelenko2018-03-211-1/+1
| | | | llvm-svn: 328116
* [LangRef] add note about format of FP typesSanjay Patel2018-03-211-0/+4
| | | | llvm-svn: 328105
* [LangRef] more hyphens: always write "floating-point"Sanjay Patel2018-03-211-192/+192
| | | | | | | | | We were inconsistent, sometimes even within a single sentence. The consensus seems clear that the FP we're looking for is spelled "floating-point". Without the hyphen, it's a "surprisingly fine" jazz album. llvm-svn: 328098
* [TableGen] Pass result of std::unique to vector::erase instead of ↵Craig Topper2018-03-205-1/+98
| | | | | | calculating a size and calling resize. llvm-svn: 328031
* [LangRef] fix link formattingSanjay Patel2018-03-201-11/+11
| | | | llvm-svn: 328001
* [LangRef] describe the default FP environmentSanjay Patel2018-03-201-15/+38
| | | | | | | | | | Follow-up for D44216: add a section and examples to describe the FP env. Also, add pointers from the FP instructions to this new section to reduce bloat. Differential Revision: https://reviews.llvm.org/D44318 llvm-svn: 327998
* [Kaleidoscope] doc fixSjoerd Meijer2018-03-201-5/+5
| | | | | | | | This fixes the compile command of the example in Chapter 2. Differential Revision: https://reviews.llvm.org/D43196 llvm-svn: 327989
* [Release Notes] Add release note for llvm-mca.Andrea Di Biagio2018-03-201-0/+5
| | | | | | Differential Revision: https://reviews.llvm.org/D44636 llvm-svn: 327965
* TableGen: Remove the cast-from-string-to-variable-reference featureNicolai Haehnle2018-03-191-4/+0
| | | | | | | | | | | | | | | | | | | Summary: Cast-from-string for records isn't going away, but cast-from-string for variables is a pretty dodgy feature to have, especially when referencing template arguments. It's doubtful that this ever worked in a reliable way, and nobody seems to be using it, so let's get rid of it and get some related cleanups. Change-Id: I395ac8a43fef4cf98e611f2f552300d21e99b66a Reviewers: arsenm, craig.topper, tra, MartinO Subscribers: wdng, llvm-commits Differential Revision: https://reviews.llvm.org/D44195 llvm-svn: 327844
* [dsymutil] Rename llvm-dsymutil -> dsymutilJonas Devlieghere2018-03-181-8/+8
| | | | | | | | | | | Now that almost all functionality of Apple's dsymutil has been upstreamed, the open source variant can be used as a drop in replacement. Hence we feel it's no longer necessary to have the llvm prefix. Differential revision: https://reviews.llvm.org/D44527 llvm-svn: 327790
* [X86] Added support for nocf_check attribute for indirect Branch TrackingOren Ben Simhon2018-03-172-0/+7
| | | | | | | | | | | | | | | X86 Supports Indirect Branch Tracking (IBT) as part of Control-Flow Enforcement Technology (CET). IBT instruments ENDBR instructions used to specify valid targets of indirect call / jmp. The `nocf_check` attribute has two roles in the context of X86 IBT technology: 1. Appertains to a function - do not add ENDBR instruction at the beginning of the function. 2. Appertains to a function pointer - do not track the target function of this pointer by adding nocf_check prefix to the indirect-call instruction. This patch implements `nocf_check` context for Indirect Branch Tracking. It also auto generates `nocf_check` prefixes before indirect branchs to jump tables that are guarded by range checks. Differential Revision: https://reviews.llvm.org/D41879 llvm-svn: 327767
* [IR] Avoid the need to prefix MS C++ symbols with '\01'Reid Kleckner2018-03-162-5/+13
| | | | | | | | | | | | | | | | | | | | Now the Windows mangling modes ('w' and 'x') do not do any mangling for symbols starting with '?'. This means that clang can stop adding the hideous '\01' leading escape. This means LLVM debug logs are less likely to contain ASCII escape characters and it will be easier to copy and paste MS symbol names from IR. Finally. For non-Windows platforms, names starting with '?' still get IR mangling, so once clang stops escaping MS C++ names, we will get extra '_' prefixing on MachO. That's fine, since it is currently impossible to construct a triple that uses the MS C++ ABI in clang and emits macho object files. Differential Revision: https://reviews.llvm.org/D7775 llvm-svn: 327734
* TableGen: Add !ne, !le, !lt, !ge, and !gt comparisonsNicolai Haehnle2018-03-142-1/+9
| | | | | | | | Change-Id: I8e2ece677268972d578a787467f7ef52a1f33a71 Differential revision: https://reviews.llvm.org/D44114 llvm-svn: 327496
* TableGen: Type-check BinOpsNicolai Haehnle2018-03-141-2/+6
| | | | | | | | | | | Additionally, allow more than two operands to !con, !add, !and, !or in the same way as is already allowed for !listconcat and !strconcat. Change-Id: I9659411f554201b90cd8ed7c7e004d381a66fa93 Differential revision: https://reviews.llvm.org/D44112 llvm-svn: 327494
* TableGen: Allow ? in listsNicolai Haehnle2018-03-141-3/+3
| | | | | | | | | | This makes using !dag more convenient in some cases. Change-Id: I0a8c35e15ccd1ecec778fd1c8d64eee38d74517c Differential revision: https://reviews.llvm.org/D44111 llvm-svn: 327493
* TableGen: Add !dag function for constructionNicolai Haehnle2018-03-142-1/+19
| | | | | | | | | | | | | | | This allows constructing DAG nodes with programmatically determined names, and can simplify constructing DAG nodes in other cases as well. Also, add documentation and some very simple tests for the already existing !con. Change-Id: Ida61cd82e99752548d7109ce8da34d29da56a5f7 Differential revision: https://reviews.llvm.org/D44110 llvm-svn: 327492
* Remove the LoopInstSimplify pass (-loop-instsimplify)Vedant Kumar2018-03-121-0/+2
| | | | | | | | | | | | LoopInstSimplify is unused and untested. Reading through the commit history the pass also seems to have a high maintenance burden. It would be best to retire the pass for now. It should be easy to recover if we need something similar in the future. Differential Revision: https://reviews.llvm.org/D44053 llvm-svn: 327329
* [AMDGPU][MC][DOC] Updated AMD GPU assembler descriptionDmitry Preobrazhensky2018-03-125-29/+5790
| | | | | | | | | See bug 36572: https://bugs.llvm.org/show_bug.cgi?id=36572 Differential Revision: https://reviews.llvm.org/D44020 Reviewers: artem.tamazov, vpykhtin llvm-svn: 327288
* Updating MIR Language Reference to include new syntax for symbols and physregs.Puyan Lotfi2018-03-121-32/+32
| | | | | | | External symbols now get the sigil '&' while physical registers get the sigil '$' for their prefix. llvm-svn: 327276
* [LangRef] make it clear that FP instructions do not have side effectsSanjay Patel2018-03-091-5/+20
| | | | | | | | | | | | | | | | | Also, fix the undef vs. UB example to use 'sdiv' because that can trigger div-by-zero UB. The existing text for the constrained intrinsics says: "By default, LLVM optimization passes assume that the rounding mode is round-to-nearest and that floating point exceptions will not be monitored. Constrained FP intrinsics are used to support non-default rounding modes and accurately preserve exception behavior without compromising LLVM’s ability to optimize FP code when the default behavior is used." ...so the additional text with the normal FP opcodes should make the different modes clear. Differential Revision: https://reviews.llvm.org/D44216 llvm-svn: 327138
* TableGen: Add a defset statementNicolai Haehnle2018-03-091-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | Allows capturing a list of concrete instantiated defs. This can be combined with foreach to create parallel sets of def instantiations with less repetition in the source. This purpose is largely also served by multiclasses, but in some cases multiclasses can't be used. The motivating example for this change is having a large set of intrinsics, which are generated from the IntrinsicsBackend.td file included by Intrinsics.td, and a corresponding set of instruction selection patterns, which are generated via the backend's .td files. Multiclasses cannot be used to eliminate the redundancy in this case, because a multiclass cannot span both LLVM's common .td files and the backend .td files at the same time. Change-Id: I879e35042dceea542a5e6776fad23c5e0e69e76b Differential revision: https://reviews.llvm.org/D44109 llvm-svn: 327121
* TableGen: Allow arbitrary list values as ranges of foreachNicolai Haehnle2018-03-091-2/+6
| | | | | | | | | The changes to FieldInit are required to make field references (Def.field) work inside a ForeachDeclaration: previously, Def.field wasn't resolved immediately when Def was already a fully resolved DefInit. Change-Id: I9875baec2fc5aac8c2b249e45b9cf18c65ae699b llvm-svn: 327120
* TableGen: add !isa operationNicolai Haehnle2018-03-092-0/+4
| | | | | | | | Change-Id: Iddb724c3ae706d82933a2d82c91d07e0e36b30e3 Differential revision: https://reviews.llvm.org/D44105 llvm-svn: 327117
* Use ellipsis ... to indicate omitted commandsEd Maste2018-03-081-2/+2
| | | | | | | | In an example like "clang -fxray-instrument .." the .. could be confused with a literal .. (parent directory), which is used in commands like "cmake -GNinja .." llvm-svn: 327000
* Add llvm-mca.rst to the table of contents in docs/CommandGuide.Andrea Di Biagio2018-03-081-0/+1
| | | | | | | This should fix the documentation error reported by builder llvm-sphinx-docs (build #16407) after r326998. llvm-svn: 326999
* [llvm-mca] LLVM Machine Code Analyzer.Andrea Di Biagio2018-03-081-0/+133
| | | | | | | | | | | | | | | | | | | | | | | | | | | llvm-mca is an LLVM based performance analysis tool that can be used to statically measure the performance of code, and to help triage potential problems with target scheduling models. llvm-mca uses information which is already available in LLVM (e.g. scheduling models) to statically measure the performance of machine code in a specific cpu. Performance is measured in terms of throughput as well as processor resource consumption. The tool currently works for processors with an out-of-order backend, for which there is a scheduling model available in LLVM. The main goal of this tool is not just to predict the performance of the code when run on the target, but also help with diagnosing potential performance issues. Given an assembly code sequence, llvm-mca estimates the IPC (instructions per cycle), as well as hardware resources pressure. The analysis and reporting style were mostly inspired by the IACA tool from Intel. This patch is related to the RFC on llvm-dev visible at this link: http://lists.llvm.org/pipermail/llvm-dev/2018-March/121490.html Differential Revision: https://reviews.llvm.org/D43951 llvm-svn: 326998
* [dsymutil] Embed toolchain in dSYM bundleJonas Devlieghere2018-03-081-0/+4
| | | | | | | | | Allow us to embed the (Xcode) toolchain in the dSYM bundle's property list. Differential revision: https://reviews.llvm.org/D44151 llvm-svn: 326994
* [AMDGPU] Update AMDGOUUsage.rst descriptionsTony Tye2018-03-081-27/+32
| | | | | | | | | - Improve description of XNACK ELF flag. - Rename all uses of wave to wavefront to be consistent. Differential Revision: https://reviews.llvm.org/D43983 llvm-svn: 326989
* [LangRef] fix formatting in FP descriptions; NFCSanjay Patel2018-03-071-21/+22
| | | | | | | | This is a clean-up step to reduce diffs ahead of real changes to the FP semantics as discussed on llvm-dev: http://lists.llvm.org/pipermail/llvm-dev/2018-February/121444.html llvm-svn: 326913
OpenPOWER on IntegriCloud