summaryrefslogtreecommitdiffstats
path: root/llvm/docs
Commit message (Collapse)AuthorAgeFilesLines
* [Docs] Fix underlines that were too short or too long.Akira Hatanaka2015-12-141-3/+3
| | | | llvm-svn: 255480
* Try to appease sphinxDavid Majnemer2015-12-121-0/+1
| | | | llvm-svn: 255429
* [IR] Reformulate LLVM's EH funclet IRDavid Majnemer2015-12-122-288/+225
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While we have successfully implemented a funclet-oriented EH scheme on top of LLVM IR, our scheme has some notable deficiencies: - catchendpad and cleanupendpad are necessary in the current design but they are difficult to explain to others, even to seasoned LLVM experts. - catchendpad and cleanupendpad are optimization barriers. They cannot be split and force all potentially throwing call-sites to be invokes. This has a noticable effect on the quality of our code generation. - catchpad, while similar in some aspects to invoke, is fairly awkward. It is unsplittable, starts a funclet, and has control flow to other funclets. - The nesting relationship between funclets is currently a property of control flow edges. Because of this, we are forced to carefully analyze the flow graph to see if there might potentially exist illegal nesting among funclets. While we have logic to clone funclets when they are illegally nested, it would be nicer if we had a representation which forbade them upfront. Let's clean this up a bit by doing the following: - Instead, make catchpad more like cleanuppad and landingpad: no control flow, just a bunch of simple operands; catchpad would be splittable. - Introduce catchswitch, a control flow instruction designed to model the constraints of funclet oriented EH. - Make funclet scoping explicit by having funclet instructions consume the token produced by the funclet which contains them. - Remove catchendpad and cleanupendpad. Their presence can be inferred implicitly using coloring information. N.B. The state numbering code for the CLR has been updated but the veracity of it's output cannot be spoken for. An expert should take a look to make sure the results are reasonable. Reviewers: rnk, JosephTremoulet, andrew.w.kaylor Differential Revision: http://reviews.llvm.org/D15139 llvm-svn: 255422
* Revert r248483, r242546, r242545, and r242409 - absdiff intrinsicsHal Finkel2015-12-111-62/+0
| | | | | | | | | | | | | | | | | | | | After much discussion, ending here: http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20151123/315620.html it has been decided that, instead of having the vectorizer directly generate special absdiff and horizontal-add intrinsics, we'll recognize the relevant reduction patterns during CodeGen. Accordingly, these intrinsics are not needed (the operations they represent can be pattern matched, as is already done in some backends). Thus, we're backing these out in favor of the current development work. r248483 - Codegen: Fix llvm.*absdiff semantic. r242546 - [ARM] Use [SU]ABSDIFF nodes instead of intrinsics for VABD/VABA r242545 - [AArch64] Use [SU]ABSDIFF nodes instead of intrinsics for ABD/ABA r242409 - [Codegen] Add intrinsics 'absdiff' and corresponding SDNodes for absolute difference operation llvm-svn: 255387
* Fix a spurious if.Eric Christopher2015-12-111-1/+1
| | | | llvm-svn: 255321
* s/need/needsEric Christopher2015-12-101-2/+2
| | | | llvm-svn: 255306
* Attempt to fix the ReST compilation to html of the C API docs.Eric Christopher2015-12-101-14/+14
| | | | llvm-svn: 255304
* More non-ascii quote characters.Eric Christopher2015-12-101-2/+2
| | | | llvm-svn: 255303
* Clarify some of the wording on adding a new subcomponent to theEric Christopher2015-12-101-2/+2
| | | | | | C API. llvm-svn: 255302
* Fix non-ascii quotes.Eric Christopher2015-12-101-4/+4
| | | | llvm-svn: 255301
* Add C API guidelines to the developer policy to match discussionsEric Christopher2015-12-101-0/+27
| | | | | | on the llvm mailing lists. llvm-svn: 255300
* Macro debug info support in LLVM IRAmjad Aboud2015-12-101-4/+30
| | | | | | | | Introduced DIMacro and DIMacroFile debug info metadata in the LLVM IR to support macros. Differential Revision: http://reviews.llvm.org/D14687 llvm-svn: 255245
* [OPENMP] Make -fopenmp to turn on OpenMP support by default.Alexey Bataev2015-12-102-3/+16
| | | | | | | Patch turns on OpenMP support in clang by default after fixing OpenMP buildbots. Differential Revision: http://reviews.llvm.org/D13802 llvm-svn: 255222
* Update doc for C++ TLS calling convention.Manman Ren2015-12-071-5/+15
| | | | llvm-svn: 254953
* [libFuzzer] one more trophieKostya Serebryany2015-12-051-0/+2
| | | | llvm-svn: 254825
* Fix incorrect quote. NFCPete Cooper2015-12-041-1/+1
| | | | llvm-svn: 254775
* [CXX TLS calling convention] Add CXX TLS calling convention.Manman Ren2015-12-042-0/+11
| | | | | | | | | | | | | | | | | | | | | This commit adds a new target-independent calling convention for C++ TLS access functions. It aims to minimize overhead in the caller by perserving as many registers as possible. The target-specific implementation for X86-64 is defined as following: Arguments are passed as for the default C calling convention The same applies for the return value(s) The callee preserves all GPRs - except RAX and RDI The access function makes C-style TLS function calls in the entry and exit block, C-style TLS functions save a lot more registers than normal calls. The added calling convention ties into the existing implementation of the C-style TLS functions, so we can't simply use existing calling conventions such as preserve_mostcc. rdar://9001553 llvm-svn: 254737
* ARM/AArch64: update reference documentation.Tim Northover2015-12-041-2/+4
| | | | | | There's a more comprehensive ACLE and a real v8 ARM ARM now. llvm-svn: 254720
* Revert "[llvm-profdata] Add support for weighted merge of profile data"Nathan Slingerland2015-12-041-5/+1
| | | | | | | | This reverts commit b7250858d96b8ce567681214273ac0e62713c661. Reverting in order to investigate Windows test failure. llvm-svn: 254687
* [llvm-profdata] Add support for weighted merge of profile dataNathan Slingerland2015-12-041-1/+5
| | | | | | | | | | | | | | | | | | This change adds support for an optional weight when merging profile data with the llvm-profdata tool. Weights are specified by adding an option ':<weight>' suffix to the input file names. Adding support for arbitrary weighting of input profile data allows for relative importance to be placed on the input data from multiple training runs. Both sampled and instrumented profiles are supported. Reviewers: dnovillo, bogner, davidxl Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D14547 llvm-svn: 254669
* Fix "WARNING: Title underline too short." introduced by r254404.Yury Gribov2015-12-011-1/+1
| | | | | | Patch by Max Ostapenko. llvm-svn: 254413
* Introduce new @llvm.get.dynamic.area.offset.i{32, 64} intrinsics.Yury Gribov2015-12-011-0/+42
| | | | | | | | | | | | | | | The @llvm.get.dynamic.area.offset.* intrinsic family is used to get the offset from native stack pointer to the address of the most recent dynamic alloca on the caller's stack. These intrinsics are intendend for use in combination with @llvm.stacksave and @llvm.restore to get a pointer to the most recent dynamic alloca. This is useful, for example, for AddressSanitizer's stack unpoisoning routines. Patch by Max Ostapenko. Differential Revision: http://reviews.llvm.org/D14983 llvm-svn: 254404
* Have 'optnone' respect the -fast-isel=false option.Paul Robinson2015-11-301-3/+3
| | | | | | | | This is primarily useful for debugging optnone v. ISel issues. Differential Revision: http://reviews.llvm.org/D14792 llvm-svn: 254335
* [libFuzzer] clean up the docs, add one more link Kostya Serebryany2015-11-261-3/+12
| | | | llvm-svn: 254115
* [libFuzzer] add a flag -exact_artifact_pathKostya Serebryany2015-11-251-0/+1
| | | | llvm-svn: 254100
* Doxygen: Use mathjax to create formulas.Matthias Braun2015-11-251-1/+1
| | | | | | | | | | | The main motivation is to not require a latex installation when building the documentation. I would also expect a better image quality and the ability to copy&paste from formulas with a javascript based solution for displaying the math. Differential Revision: http://reviews.llvm.org/D14960 llvm-svn: 254048
* Fix sphinx-build error when building documentation.Xinliang David Li2015-11-241-16/+10
| | | | | | | Consolidate the description of -binary/-text option description to avoid duplicate ID error by sphinux-build. llvm-svn: 254018
* [PGO] Add --text option for llvm-profdata show|merge commandsXinliang David Li2015-11-231-1/+18
| | | | | | | | | | | | | | The new option is similar to the SampleProfile dump option. - dump raw/indexed format into text profile format - merge the profile and output into text profile format. Note that Value Profiling data text format is not yet designed. That functionality will be added later. Differential Revision: http://reviews.llvm.org/D14894 llvm-svn: 253913
* [docs] Minor fixes to the operand bundle sectionSanjoy Das2015-11-211-5/+6
| | | | llvm-svn: 253771
* Pointers in Masked Load, Store, Gather, Scatter intrinsicsElena Demikhovsky2015-11-191-12/+22
| | | | | | | | | | The masked intrinsics support all integer and floating point data types. I added the pointer type to this list. Added tests for CodeGen and for Loop Vectorizer. Updated the Language Reference. Differential Revision: http://reviews.llvm.org/D14150 llvm-svn: 253544
* [doc] fix a wrong linkJingyue Wu2015-11-181-1/+1
| | | | llvm-svn: 253509
* [PGO] Value profiling supportBetul Buyukkurt2015-11-181-0/+49
| | | | | | | | | This change introduces an instrumentation intrinsic instruction for value profiling purposes, the lowering of the instrumentation intrinsic and raw reader updates. The raw profile data files for llvm-profdata testing are updated. llvm-svn: 253484
* Teach the inliner to track deoptimization stateSanjoy Das2015-11-181-0/+40
| | | | | | | | | | | | | | | | Summary: This change teaches LLVM's inliner to track and suitably adjust deoptimization state (tracked via deoptimization operand bundles) as it inlines through call sites. The operation is described in more detail in the LangRef changes. Reviewers: reames, majnemer, chandlerc, dexonsmith Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D14552 llvm-svn: 253438
* [doc] simplify the doc on compiling CUDAJingyue Wu2015-11-181-26/+3
| | | | | | CUDA support doesn't reply on temporary patches any more. Thanks Artem! llvm-svn: 253427
* [Documentation] Add guidelines for grouping tests together.Davide Italiano2015-11-171-0/+4
| | | | | | | | This was considered a good practice but it was not documented. Now it is. Differential Revision: http://reviews.llvm.org/D14733 llvm-svn: 253281
* [Docs] Fix typoAlex Denisov2015-11-152-2/+2
| | | | llvm-svn: 253167
* [Docs] Fix warning "Title underline too short."Akira Hatanaka2015-11-131-1/+1
| | | | llvm-svn: 253082
* Fixing a typo in docs/CodeGenerator.rstArtyom Skrobov2015-11-131-1/+1
| | | | llvm-svn: 253045
* [libFuzzer] more trophiesKostya Serebryany2015-11-131-0/+2
| | | | llvm-svn: 253006
* [SDAG] Introduce a new BITREVERSE node along with a corresponding LLVM intrinsicJames Molloy2015-11-121-0/+28
| | | | | | | | | | Several backends have instructions to reverse the order of bits in an integer. Conceptually matching such patterns is similar to @llvm.bswap, and it was mentioned in http://reviews.llvm.org/D14234 that it would be best if these patterns were matched in InstCombine instead of reimplemented in every different target. This patch introduces an intrinsic @llvm.bitreverse.i* that operates similarly to @llvm.bswap. For plumbing purposes there is also a new ISD node ISD::BITREVERSE, with simple expansion and promotion support. The intention is that InstCombine's BSWAP detection logic will be extended to support BITREVERSE too, and @llvm.bitreverse intrinsics emitted (if the backend supports lowering it efficiently). llvm-svn: 252878
* Fix docs build break for revision r252798Hemant Kulkarni2015-11-111-0/+2
| | | | llvm-svn: 252812
* [IR] Add support for empty tokensDavid Majnemer2015-11-111-0/+3
| | | | | | | | | | | | | | When working with tokens, it is often the case that one has instructions which consume a token and produce a new token. Currently, we have no mechanism to represent an initial token state. Instead, we can create a notional "empty token" by inventing a new constant which captures the semantics we would like. This new constant is called ConstantTokenNone and is written textually as "token none". Differential Revision: http://reviews.llvm.org/D14581 llvm-svn: 252811
* Introduce deoptimization operand bundlesSanjoy Das2015-11-111-0/+21
| | | | | | | | | | | | | | | | | | | | | Summary: This change introduces the notion of "deoptimization" operand bundles. LLVM can recognize and optimize these in more precise ways than it can a generic "unknown" operand bundles. The current form of this special recognition / optimization is an enum entry in LLVMContext, a LangRef blurb and a verifier rule. Over time we will teach LLVM to do more aggressive optimization around deoptimization operand bundles, exploiting known facts about kinds of state deoptimization operand bundles are allowed to track. Reviewers: reames, majnemer, chandlerc, dexonsmith Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D14551 llvm-svn: 252806
* [Symbolizer]: Add -pretty-print optionHemant Kulkarni2015-11-111-0/+12
| | | | | | Differential Revision: http://reviews.llvm.org/D13671 llvm-svn: 252798
* Reverting r252760Colin LeMahieu2015-11-111-12/+0
| | | | llvm-svn: 252770
* [Symbolizer]: Add -pretty-print optionHemant Kulkarni2015-11-111-0/+12
| | | | | | Differential Revision: http://reviews.llvm.org/D13671 llvm-svn: 252760
* [libFuzzer] better links Kostya Serebryany2015-11-111-3/+3
| | | | llvm-svn: 252705
* [libFuzzer] more trophiesKostya Serebryany2015-11-111-20/+4
| | | | llvm-svn: 252704
* [doc] Compile CUDA with LLVMJingyue Wu2015-11-102-0/+196
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch adds documentation on compiling CUDA with LLVM as requested by many engineers and researchers. It includes not only user guides but also some internals (mostly optimizations) so that early adopters can start hacking and contributing. Quite a few researchers who contacted us haven't used LLVM before, which is unsurprising as it hasn't been long since LLVM picked up CUDA. So I added a short summary to help these folks get started with LLVM. I expect this document to evolve substantially down the road. The user guides will be much simplified after the Clang integration is done. However, the internals should continue growing to include for example performance debugging and key areas to improve. Reviewers: chandlerc, meheff, broune, tra Subscribers: silvas, jingyue, llvm-commits, eliben Differential Revision: http://reviews.llvm.org/D14370 llvm-svn: 252660
* Deprecate AutoconfChris Bieneman2015-11-092-0/+10
| | | | | | | | As per the very positive feedback from llvm-dev (http://lists.llvm.org/pipermail/llvm-dev/2015-November/092150.html), this commit officially deprecates the LLVM autoconf-based build system. Anyone still using it should switch to CMake. llvm-svn: 252520
OpenPOWER on IntegriCloud