summaryrefslogtreecommitdiffstats
path: root/llvm/docs
Commit message (Collapse)AuthorAgeFilesLines
...
* [docs] Document how to merge patches into release branchesVedant Kumar2016-01-251-0/+17
| | | | llvm-svn: 258736
* [libFuzzer] add -abort_on_timeout optionKostya Serebryany2016-01-231-0/+1
| | | | llvm-svn: 258631
* Add a "gc-transition" operand bundleSanjoy Das2016-01-202-1/+15
| | | | | | | | | | | | | | | | | | | Summary: This adds a new kind of operand bundle to LLVM denoted by the `"gc-transition"` tag. Inputs to `"gc-transition"` operand bundle are lowered into the "transition args" section of `gc.statepoint` by `RewriteStatepointsForGC`. This removes the last bit of functionality that was unsupported in the deopt bundle based code path in `RewriteStatepointsForGC`. Reviewers: pgavlin, JosephTremoulet, reames Subscribers: sanjoy, mcrosier, llvm-commits Differential Revision: http://reviews.llvm.org/D16342 llvm-svn: 258338
* docs: address post-commit reviewAndrew Wilkins2016-01-191-6/+9
| | | | | | | | | Rewording/expansion of CMake options suggested by Dan Liew. See http://reviews.llvm.org/D16208. llvm-svn: 258112
* [libFuzzer] introduce LLVMFuzzerInitializeKostya Serebryany2016-01-161-0/+29
| | | | llvm-svn: 257980
* [docs] Document LLVM_{BUILD,LINK}_LLVM_DYLIBAndrew Wilkins2016-01-151-6/+21
| | | | | | | | | | | | | | | Summary: Document the LLVM_BUILD_LLVM_DYLIB and LLVM_LINK_LLVM_DYLIB CMake options, move BUILD_SHARED_LIBS out of frequently-used, and add a note/warning to BUILD_SHARED_LIBS. Reviewers: beanz, delcypher, mjacob Subscribers: mjacob, llvm-commits Differential Revision: http://reviews.llvm.org/D16208 llvm-svn: 257864
* [docs] Restructure description of records created by StatepointsPhilip Reames2016-01-151-12/+23
| | | | | | The previous text was hard to understand even for me and I wrote it. Hopefully the new structure makes it a bit more clear what's going on. If anyone has word smithing suggestion or clarification questions, please let me know. llvm-svn: 257847
* [docs] Update Statepoint docs to clarify format for recent changesPhilip Reames2016-01-141-6/+16
| | | | llvm-svn: 257843
* [docs] Improve the documentation on committing code reviewed onDan Liew2016-01-142-17/+62
| | | | | | | | | | | | | | | | | | | | | | Phabricator to trunk. The previous documentation had a few issues: * It did not make it explicit that code could be committed without using the Arcanist tool and how this should be done. * There was also an implicit assumption on using Subversion rather than git-svn in the example using Arcanist. The documentation now explicitly mentions both cases and details how to commit to trunk in each case. Reviewers: klimek, probinson Subscribers: probinson, nwilson, reames, llvm-commits Differential Revision: http://reviews.llvm.org/D15801 llvm-svn: 257764
* Unbreak the sphinx buildHans Wennborg2016-01-131-2/+2
| | | | llvm-svn: 257659
* Update version to 3.9.Hans Wennborg2016-01-132-45/+11
| | | | llvm-svn: 257627
* fix typoSanjay Patel2016-01-131-1/+1
| | | | llvm-svn: 257617
* fix typoSanjay Patel2016-01-131-1/+1
| | | | llvm-svn: 257611
* Doc fix: code-quote load / store doc the same wayJF Bastien2016-01-131-1/+1
| | | | llvm-svn: 257573
* The --debug-only option now takes a comma separated list of debug types.Christof Douma2016-01-121-1/+5
| | | | | | | | | This means that the DEBUG_TYPE cannot take a comma anymore. All existing passes conform to this rule. Differential Revision: http://reviews.llvm.org/D15645 llvm-svn: 257466
* Update the VS getting started docs to reflect the current state of supportReid Kleckner2016-01-111-20/+14
| | | | llvm-svn: 257381
* [LangRef] Move catchpad to "Other Operators" (NFC)Joseph Tremoulet2016-01-101-68/+68
| | | | | | It is no longer a terminator, so should no longer be grouped with them. llvm-svn: 257276
* [WinEH] Disallow cyclic unwindsJoseph Tremoulet2016-01-101-0/+4
| | | | | | | | | | | | | | | | Summary: Funclet-based EH personalities/tables likely can't handle these, and they can't be generated at source, so make them officially illegal in IR as well. Reviewers: andrew.w.kaylor, rnk, majnemer Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D15963 llvm-svn: 257274
* [WinEH] Verify consistent funclet unwind exitsJoseph Tremoulet2016-01-102-4/+17
| | | | | | | | | | | | | | | | | | | | Summary: A funclet EH pad may be exited by an unwind edge, which may be a cleanupret exiting its cleanuppad, an invoke exiting a funclet, or an unwind out of a nested funclet transitively exiting its parent. Funclet EH personalities require all such exceptional exits from a given funclet to have the same unwind destination, and EH preparation / state numbering / table generation implicitly depends on this. Formalize it as a rule of the IR in the LangRef and verifier. Reviewers: rnk, majnemer, andrew.w.kaylor Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D15962 llvm-svn: 257273
* [WinEH] Verify unwind edges against EH pad treeJoseph Tremoulet2016-01-102-41/+84
| | | | | | | | | | | | | | | | | | | | | | Summary: Funclet EH personalities require a tree-like nesting among funclets (enforced by the ParentPad linkage in the IR), and also require that unwind edges conform to certain rules with respect to the tree: - An unwind edge may exit 0 or more ancestor pads - An unwind edge must enter exactly one EH pad, which must be distinct from any exited pads - A cleanupret's edge must exit its cleanuppad Describe these rules in the LangRef, and enforce them in the verifier. Reviewers: rnk, majnemer, andrew.w.kaylor Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D15961 llvm-svn: 257272
* How to close a review manually.Paul Robinson2016-01-081-1/+7
| | | | llvm-svn: 257180
* [llvm-symbolizer] Print out non-address lines verbatim.Mike Aizatsky2016-01-071-3/+3
| | | | | | Differential Revision: http://reviews.llvm.org/D15876 llvm-svn: 257115
* More fix to coverage documentationXinliang David Li2016-01-061-7/+19
| | | | llvm-svn: 256895
* Update docs to recommend CMake >= v3.2.Eric Christopher2016-01-042-1/+6
| | | | | | | | | | CMake v3.2 or newer is necessary to get interactive output when running Lit via Ninja. Otherwise Ninja will buffer Lit's output, which makes for a crummy experience -- you can't tell if your tests are hung! Patch by Justin Lebar! llvm-svn: 256791
* Update documantationXinliang David Li2016-01-041-5/+9
| | | | llvm-svn: 256774
* Fix several accidental DOS line endings in source filesDimitry Andric2016-01-031-180/+180
| | | | | | | | | | | | | | | Summary: There are a number of files in the tree which have been accidentally checked in with DOS line endings. Convert these to native line endings. There are also a few files which have DOS line endings on purpose, and I have set the svn:eol-style property to 'CRLF' on those. Reviewers: joerg, aaron.ballman Subscribers: aaron.ballman, sanjoy, dsanders, llvm-commits Differential Revision: http://reviews.llvm.org/D15848 llvm-svn: 256707
* [gc.statepoint] Change gc.statepoint intrinsic's return type to token type ↵Chen Li2015-12-261-17/+17
| | | | | | | | | | | | | | instead of i32 type Summary: This patch changes gc.statepoint intrinsic's return type to token type instead of i32 type. Using token types could prevent LLVM to merge different gc.statepoint nodes into PHI nodes and cause further problems with gc relocations. The patch also changes the way on how gc.relocate and gc.result look for their corresponding gc.statepoint on unwind path. The current implementation uses the selector value extracted from a { i8*, i32 } landingpad as a hook to find the gc.statepoint, while the patch directly uses a token type landingpad (http://reviews.llvm.org/D15405) to find the gc.statepoint. Reviewers: sanjoy, JosephTremoulet, pgavlin, igor-laevsky, mjacob Subscribers: reames, mjacob, sanjoy, llvm-commits Differential Revision: http://reviews.llvm.org/D15662 llvm-svn: 256443
* Add advice on choosing reviewersPaul Robinson2015-12-221-1/+19
| | | | llvm-svn: 256265
* [Cygwin] Enable TLS as emutls.NAKAMURA Takumi2015-12-211-0/+8
| | | | | | | | It resolves clang selfhosting with std::once() for Cygwin. FIXME: It may be EmulatedTLS-generic also for X86-Android. FIXME: Pass EmulatedTLS to LLVM CodeGen from Clang with -femulated-tls. llvm-svn: 256134
* Delete APIs that have been deprecated since 2010.Rafael Espindola2015-12-191-0/+4
| | | | llvm-svn: 256107
* [libFuzzer] deprecate -save_minimized_corpus, -merge can be used insteadKostya Serebryany2015-12-191-1/+0
| | | | llvm-svn: 256086
* Deprecate a few C APIs.Rafael Espindola2015-12-181-0/+6
| | | | | | | | | | | | | This deprecates: * LLVMParseBitcode * LLVMParseBitcodeInContext * LLVMGetBitcodeModuleInContext * LLVMGetBitcodeModule They are replaced with the functions with a 2 suffix which do not record a diagnostic. llvm-svn: 256065
* Reorganize the C API headers to improve build times.Eric Christopher2015-12-181-0/+6
| | | | | | | | | Type specific declarations have been moved to Type.h and error handling routines have been moved to ErrorHandling.h. Both are included in Core.h so nothing should change for projects directly including the headers, but transitive dependencies may be affected. llvm-svn: 255965
* Polish atomic pointersJF Bastien2015-12-171-23/+20
| | | | | | | | | | | | | | | | | | | | | | Summary: I didn't realize that we already allowed atomic load/store of pointers, it was added in 2012 by r162146. This patch updates the documentation and tightens the verifier by using DataLayout to make sure that the stored size is byte-sized and power-of-two. DataLayout is also used for integers, and while I'm here I updated the corresponding code for cmpxchg and rmw. See the following discussion for context and upcoming changes to add floating-point and vector atomics: https://groups.google.com/forum/#!topic/llvm-dev/Nh0P_E3CRoo/discussion Reviewers: reames Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D15512 llvm-svn: 255931
* Drop function that are deprecated since 2010.Rafael Espindola2015-12-171-0/+3
| | | | | | These functions were deprecated in r97608. llvm-svn: 255927
* [docs] Motivate ninja in GettingStarted.rstVedant Kumar2015-12-171-1/+1
| | | | llvm-svn: 255924
* Change linkInModule to take a std::unique_ptr.Rafael Espindola2015-12-161-0/+11
| | | | | | | Passing in a std::unique_ptr should help find errors when the module is used after being linked into another module. llvm-svn: 255842
* Add InaccessibleMemOnly and inaccessibleMemOrArgMemOnly attributesVaivaswatha Nagaraj2015-12-161-0/+8
| | | | | | | | | | | | | | | | | | Summary: This patch introduces two new function attributes InaccessibleMemOnly: This attribute indicates that the function may only access memory that is not accessible by the program/IR being compiled. This is a weaker form of ReadNone. inaccessibleMemOrArgMemOnly: This attribute indicates that the function may only access memory that is either not accessible by the program/IR being compiled, or is pointed to by its pointer arguments. This is a weaker form of ArgMemOnly Test cases have been updated. This revision uses this (https://github.com/llvm-mirror/llvm/commit/d001932f3a8aa1ebd1555162fdce365f011bc292) as reference. Reviewers: jmolloy, hfinkel Subscribers: reames, joker.eph, llvm-commits Differential Revision: http://reviews.llvm.org/D15499 llvm-svn: 255778
* [IR] Add support for floating pointer atomic loads and storesPhilip Reames2015-12-161-12/+13
| | | | | | | | | | | | | | | | This patch allows atomic loads and stores of floating point to be specified in the IR and adds an adapter to allow them to be lowered via existing backend support for bitcast-to-equivalent-integer idiom. Previously, the only way to specify a atomic float operation was to bitcast the pointer to a i32, load the value as an i32, then bitcast to a float. At it's most basic, this patch simply moves this expansion step to the point we start lowering to the backend. This patch does not add canonicalization rules to convert the bitcast idioms to the appropriate atomic loads. I plan to do that in the future, but for now, let's simply add the support. I'd like to get instruction selection working through at least one backend (x86-64) without the bitcast conversion before canonicalizing into this form. Similarly, I haven't yet added the target hooks to opt out of the lowering step I added to AtomicExpand. I figured it would more sense to add those once at least one backend (x86) was ready to actually opt out. As you can see from the included tests, the generated code quality is not great. I plan on submitting some patches to fix this, but help from others along that line would be very welcome. I'm not super familiar with the backend and my ramp up time may be material. Differential Revision: http://reviews.llvm.org/D15471 llvm-svn: 255737
* [WinEH] Use operand bundles to describe call sitesDavid Majnemer2015-12-151-0/+9
| | | | | | | | | | | | | | | | | SimplifyCFG allows tail merging with code which terminates in unreachable which, in turn, makes it possible for an invoke to end up in a funclet which it was not originally part of. Using operand bundles on invokes allows us to determine whether or not an invoke was part of a funclet in the source program. Furthermore, it allows us to unambiguously answer questions about the legality of inlining into call sites which the personality may have trouble with. Differential Revision: http://reviews.llvm.org/D15517 llvm-svn: 255674
* LLVM tutorial: fix broken links/anchorsAlex Denisov2015-12-1517-52/+52
| | | | llvm-svn: 255671
* [Docs] Fix Unexpected indentation errors.Akira Hatanaka2015-12-151-0/+2
| | | | llvm-svn: 255665
* [llvm-profdata] Add support for weighted merge of profile data (2nd try)Nathan Slingerland2015-12-151-1/+40
| | | | | | | | | | | | | | | | | | | | Summary: This change adds support for specifying a weight when merging profile data with the llvm-profdata tool. Weights are specified by using the --weighted-input=<weight>,<filename> option. Input files not specified with this option (normal positional list after options) are given a default weight of 1. 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: davidxl, dnovillo, bogner, silvas Subscribers: silvas, davidxl, llvm-commits Differential Revision: http://reviews.llvm.org/D15306 llvm-svn: 255659
* add fast-math-flags to 'call' instructions (PR21290)Sanjay Patel2015-12-141-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds optional fast-math-flags (the same that apply to fmul/fadd/fsub/fdiv/frem/fcmp) to call instructions in IR. Follow-up patches would use these flags in LibCallSimplifier, add support to clang, and extend FMF to the DAG for calls. Motivating example: %y = fmul fast float %x, %x %z = tail call float @sqrtf(float %y) We'd like to be able to optimize sqrt(x*x) into fabs(x). We do this today using a function-wide attribute for unsafe-math, but we really want to trigger on the instructions themselves: %z = tail call fast float @sqrtf(float %y) because in an LTO build it's possible that calls with fast semantics have been inlined into a function with non-fast semantics. The code changes and tests are based on the recent commits that added "notail": http://reviews.llvm.org/rL252368 and added FMF to fcmp: http://reviews.llvm.org/rL241901 Differential Revision: http://reviews.llvm.org/D14707 llvm-svn: 255555
* docs: Correct wording in LangRef relating to available_externally linkage.Peter Collingbourne2015-12-141-8/+9
| | | | | | Differential Revision: http://reviews.llvm.org/D15343 llvm-svn: 255534
* [IR] Remove terminatepadDavid Majnemer2015-12-142-73/+12
| | | | | | | | | | | | | It turns out that terminatepad gives little benefit over a cleanuppad which calls the termination function. This is not sufficient to implement fully generic filters but MSVC doesn't support them which makes terminatepad a little over-designed. Depends on D15478. Differential Revision: http://reviews.llvm.org/D15479 llvm-svn: 255522
* [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
OpenPOWER on IntegriCloud