summaryrefslogtreecommitdiffstats
path: root/llvm/docs
Commit message (Collapse)AuthorAgeFilesLines
...
* [lib/Fuzzer] fix docsKostya Serebryany2015-05-261-3/+3
| | | | llvm-svn: 238236
* [lib/Fuzzer] mention the user-supplied mutatorsKostya Serebryany2015-05-221-0/+8
| | | | llvm-svn: 238062
* Document the CoreCLR GC StrategySwaroop Sridhar2015-05-211-0/+23
| | | | | | | Add notead about the CoreCLR GC Strategy to the Garbage Collection document. llvm-svn: 237869
* [doc] Update Lexicon with C++ unwinder acronymsNick Kledzik2015-05-201-0/+21
| | | | llvm-svn: 237840
* [lib/Fuzzer] more docsKostya Serebryany2015-05-201-2/+25
| | | | llvm-svn: 237836
* Dereferenceable, dereferenceable_or_null metadata for loadsSanjoy Das2015-05-191-1/+20
| | | | | | | | | | | | | | | | | | | | Summary: Introduce dereferenceable, dereferenceable_or_null metadata for loads with the same semantic as corresponding attributes. This patch depends on http://reviews.llvm.org/D9253 Patch by Artur Pilipenko! Reviewers: hfinkel, sanjoy, reames Reviewed By: sanjoy, reames Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D9365 llvm-svn: 237720
* Fix documentation for Set-Like ContainersArtyom Skrobov2015-05-191-10/+26
| | | | llvm-svn: 237677
* Doxygen: Enable autobrief feature and update coding standards.Matthias Braun2015-05-152-16/+17
| | | | llvm-svn: 237417
* docs: Fix up some .rst formattingJustin Bogner2015-05-141-3/+3
| | | | llvm-svn: 237409
* Add a missing piece of existing practice to the developer policy. This may ↵Nick Lewycky2015-05-141-0/+5
| | | | | | need further refinement, but I think is roughly correct. llvm-svn: 237405
* YAML: Add support for literal block scalar I/O.Alex Lorenz2015-05-141-0/+50
| | | | | | | | | | | | | This commit gives the users of the YAML Traits I/O library the ability to serialize scalars using the YAML literal block scalar notation by allowing them to implement a specialization of the `BlockScalarTraits` struct for their custom types. Reviewers: Duncan P. N. Exon Smith Differential Revision: http://reviews.llvm.org/D9613 llvm-svn: 237404
* Fixed some typos and broken links in source level debugging docs.Michael Kuperstein2015-05-142-11/+13
| | | | llvm-svn: 237357
* [lib/Fuzzer] update docs about test corpuses in gitKostya Serebryany2015-05-131-0/+24
| | | | llvm-svn: 237308
* [Statepoints][Docs] Fix a couple of out of date examples.Sanjoy Das2015-05-131-5/+5
| | | | | | Things I had missed in r237285. llvm-svn: 237290
* [Statepoints][Docs] Fix typo: change a period to a comma.Sanjoy Das2015-05-131-1/+1
| | | | llvm-svn: 237289
* [PlaceSafepoints] New attributes for patchable statepoints.Sanjoy Das2015-05-131-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch teaches the PlaceSafepoints pass about two `CallSite` function attributes: * "statepoint-id": if the string value of this attribute can be parsed as an integer, then it is propagated to the ID parameter of the statepoint created. * "statepoint-num-patch-bytes": if the string value of this attribute can be parsed as an integer, then it is propagated to the `num patch bytes` parameter of the statepoint created. This change intentionally does not assert on a malformed value for these attributes, given that they're not "official" attributes. Reviewers: reames, pgavlin Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D9735 llvm-svn: 237286
* [PlaceSafepoints] Update docs for r237214.Sanjoy Das2015-05-131-4/+4
| | | | | | | Show the two new ID and NumPatchBytes fields in the PlaceSafepoint examples in Statepoints.rst to avoid confusion. llvm-svn: 237285
* Add function entry count metadata.Diego Novillo2015-05-131-0/+23
| | | | | | | | | | | | | | | | | | | | Summary: This adds three Function methods to handle function entry counts: setEntryCount() and getEntryCount(). Entry counts are stored under the MD_prof metadata node with the name "function_entry_count". They are unsigned 64 bit values set by profilers (instrumentation and sample profiler changes coming up). Added documentation for new profile metadata and tests. Reviewers: dexonsmith, bogner Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D9628 llvm-svn: 237260
* [Statepoints] Support for "patchable" statepoints.Sanjoy Das2015-05-121-6/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This change adds two new parameters to the statepoint intrinsic, `i64 id` and `i32 num_patch_bytes`. `id` gets propagated to the ID field in the generated StackMap section. If the `num_patch_bytes` is non-zero then the statepoint is lowered to `num_patch_bytes` bytes of nops instead of a call (the spill and reload code remains unchanged). A non-zero `num_patch_bytes` is useful in situations where a language runtime requires complete control over how a call is lowered. This change brings statepoints one step closer to patchpoints. With some additional work (that is not part of this patch) it should be possible to get rid of `TargetOpcode::STATEPOINT` altogether. PlaceSafepoints generates `statepoint` wrappers with `id` set to `0xABCDEF00` (the old default value for the ID reported in the stackmap) and `num_patch_bytes` set to `0`. This can be made more sophisticated later. Reviewers: reames, pgavlin, swaroop.sridhar, AndyAyers Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D9546 llvm-svn: 237214
* [Statepoints] Split the calling convention and statepoint flags operand to ↵Pat Gavlin2015-05-121-0/+6
| | | | | | | | STATEPOINT into two separate operands. Differential Revision: http://reviews.llvm.org/D9623 llvm-svn: 237166
* [lib/Fuzzer] guess the right number of workers if -jobs=N is given but ↵Kostya Serebryany2015-05-121-6/+4
| | | | | | -workers=M is not. Update the docs. llvm-svn: 237163
* [Docs] Fix scoped noalias exampleAdam Nemet2015-05-111-1/+1
| | | | | | | | | | | | | | | | | | Summary: As far as I understand the entire point of this example is to show that if noalias is not a superset/equal to the alias.scope list on a scope domain then load could reference locations that the store is not known to not-alias i.e may alias. Reviewers: hfinkel Reviewed By: hfinkel Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D9598 llvm-svn: 236977
* Fix a docs build break introduced by rL236888.Pat Gavlin2015-05-081-1/+1
| | | | llvm-svn: 236891
* Extend the statepoint intrinsic to allow statepoints to be marked as ↵Pat Gavlin2015-05-081-9/+104
| | | | | | | | | | | | | | | | | | | | | | transitions from GC-aware code to code that is not GC-aware. This changes the shape of the statepoint intrinsic from: @llvm.experimental.gc.statepoint(anyptr target, i32 # call args, i32 unused, ...call args, i32 # deopt args, ...deopt args, ...gc args) to: @llvm.experimental.gc.statepoint(anyptr target, i32 # call args, i32 flags, ...call args, i32 # transition args, ...transition args, i32 # deopt args, ...deopt args, ...gc args) This extension offers the backend the opportunity to insert (somewhat) arbitrary code to manage the transition from GC-aware code to code that is not GC-aware and back. In order to support the injection of transition code, this extension wraps the STATEPOINT ISD node generated by the usual lowering lowering with two additional nodes: GC_TRANSITION_START and GC_TRANSITION_END. The transition arguments that were passed passed to the intrinsic (if any) are lowered and provided as operands to these nodes and may be used by the backend during code generation. Eventually, the lowering of the GC_TRANSITION_{START,END} nodes should be informed by the GC strategy in use for the function containing the intrinsic call; for now, these nodes are instead replaced with no-ops. Differential Revision: http://reviews.llvm.org/D9501 llvm-svn: 236888
* Update CMake flags, LibFuzzer comments and docs for new -fsanitize-coverage= ↵Alexey Samsonov2015-05-071-4/+5
| | | | | | flags. llvm-svn: 236797
* Masked Gather and Scatter intrinsics - updated documentation.Elena Demikhovsky2015-05-071-2/+113
| | | | llvm-svn: 236721
* [lib/Fuzzer] rename TestOneInput to LLVMFuzzerTestOneInput to make it more ↵Kostya Serebryany2015-05-061-5/+5
| | | | | | unique llvm-svn: 236652
* Document some of the options in test/lit.cfgMatthias Braun2015-05-041-0/+19
| | | | llvm-svn: 236462
* Lit: Allow overriding llvm tool paths+arguments, make -D an alias for --paramMatthias Braun2015-05-041-1/+1
| | | | | | | | | | | These changes allow usages where you want to pass an additional commandline option to all invocations of a specific llvm tool. Example: > llvm-lit -Dllc=llc -enable-misched -verify-machineinstrs Differential Revision: http://reviews.llvm.org/D9487 llvm-svn: 236461
* YAML: Add an optional 'flow' field to the mapping trait to allow flow ↵Alex Lorenz2015-05-041-0/+25
| | | | | | | | | | | | | mapping output. This patch adds an optional 'flow' field to the MappingTrait class so that yaml IO will be able to output flow mappings. Reviewers: Justin Bogner Differential Revision: http://reviews.llvm.org/D9450 llvm-svn: 236456
* Update YamlIO documentation for the ScalarTraits class.Alex Lorenz2015-05-011-2/+2
| | | | | | | | | This patch adds the missing context parameter to the input and output methods in ScalarTraits. Differential Revision: http://reviews.llvm.org/D9173 llvm-svn: 236328
* Add a note about permitting default member initializersReid Kleckner2015-04-301-1/+7
| | | | | | | Use them in WinEHPrepare so that we can spot any toolchain bugs that come up. llvm-svn: 236244
* Clean up docs references to './configure' in preparation for deprecating ↵Jonathan Roelofs2015-04-293-7/+7
| | | | | | | | in-source builds http://reviews.llvm.org/D8787 llvm-svn: 236144
* IR: Give 'DI' prefix to debug info metadataDuncan P. N. Exon Smith2015-04-294-160/+160
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Finish off PR23080 by renaming the debug info IR constructs from `MD*` to `DI*`. The last of the `DIDescriptor` classes were deleted in r235356, and the last of the related typedefs removed in r235413, so this has all baked for about a week. Note: If you have out-of-tree code (like a frontend), I recommend that you get everything compiling and tests passing with the *previous* commit before updating to this one. It'll be easier to keep track of what code is using the `DIDescriptor` hierarchy and what you've already updated, and I think you're extremely unlikely to insert bugs. YMMV of course. Back to *this* commit: I did this using the rename-md-di-nodes.sh upgrade script I've attached to PR23080 (both code and testcases) and filtered through clang-format-diff.py. I edited the tests for test/Assembler/invalid-generic-debug-node-*.ll by hand since the columns were off-by-three. It should work on your out-of-tree testcases (and code, if you've followed the advice in the previous paragraph). Some of the tests are in badly named files now (e.g., test/Assembler/invalid-mdcompositetype-missing-tag.ll should be 'dicompositetype'); I'll come back and move the files in a follow-up commit. llvm-svn: 236120
* [docs] Fix the link to SanitizerCoverage docs.Alexey Samsonov2015-04-271-2/+2
| | | | llvm-svn: 235934
* [PerformanceTips] Italics are *word*, not _word_Philip Reames2015-04-261-3/+3
| | | | llvm-svn: 235827
* [PerformanceTips] Provide context on the impact of assume(x)Philip Reames2015-04-262-1/+10
| | | | | | Sean Silva suggested I add something here a while back. Sorry it's taken so long to get back to this. llvm-svn: 235826
* Add two new items to PerformanceTipsPhilip Reames2015-04-261-2/+17
| | | | | | | | 1) Turns out we're not great at recognizing redundant checks when one is a != and the other is an ==. This is a bug, but it's one that matters to frontend authors. 2) Frontends shouldn't use intrinsics unless strictly neccessary. This has been pretty widely proven by this point and is good to document. llvm-svn: 235825
* Minor edits to the llvm-cov documentation.Bob Wilson2015-04-211-9/+9
| | | | | | This just changes a few places to use a slightly more formal style. llvm-svn: 235389
* docs: Update Kaleidoscope for recent DI changesDuncan P. N. Exon Smith2015-04-181-26/+26
| | | | | | | | This has been bit-rotting, so fix it up. I'll have to edit this again once the MD* classes have been renamed to DI* -- I'll try to remember to do that with the commit that renames them. llvm-svn: 235244
* [LangRef] Remove redundant and inconsistent condition.Sean Silva2015-04-171-1/+1
| | | | | | | | Just above, 'op2' is stated to be unsigned, so 'negative' doesn't make sense (and is handled by "larger than" anyway). The descriptions for lshr and ashr don't say 'negative or' either. llvm-svn: 235230
* [IR] Introduce a dereferenceable_or_null(N) attribute.Sanjoy Das2015-04-161-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: If a pointer is marked as dereferenceable_or_null(N), LLVM assumes it is either `null` or `dereferenceable(N)` or both. This change only introduces the attribute and adds a token test case for the `llvm-as` / `llvm-dis`. It does not hook up other parts of the optimizer to actually exploit the attribute -- those changes will come later. For pointers in address space 0, `dereferenceable(N)` is now exactly equivalent to `dereferenceable_or_null(N)` && `nonnull`. For other address spaces, `dereferenceable(N)` is potentially weaker than `dereferenceable_or_null(N)` && `nonnull` (since we could have a null `dereferenceable(N)` pointer). The motivating case for this change is Java (and other managed languages), where pointers are either `null` or dereferenceable up to some usually known-at-compile-time constant offset. Reviewers: rafael, hfinkel Reviewed By: hfinkel Subscribers: nicholas, llvm-commits Differential Revision: http://reviews.llvm.org/D8650 llvm-svn: 235132
* Editorial changes in the programmers manual.Charlie Turner2015-04-161-4/+5
| | | | | | | VMCore was renamed to IR back in 2013. The relevant "core" implementations were moved into the lib/IR directory at the same time. llvm-svn: 235116
* DebugInfo: Remove 'inlinedAt:' field from MDLocalVariableDuncan P. N. Exon Smith2015-04-151-9/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove 'inlinedAt:' from MDLocalVariable. Besides saving some memory (variables with it seem to be single largest `Metadata` contributer to memory usage right now in -g -flto builds), this stops optimization and backend passes from having to change local variables. The 'inlinedAt:' field was used by the backend in two ways: 1. To tell the backend whether and into what a variable was inlined. 2. To create a unique id for each inlined variable. Instead, rely on the 'inlinedAt:' field of the intrinsic's `!dbg` attachment, and change the DWARF backend to use a typedef called `InlinedVariable` which is `std::pair<MDLocalVariable*, MDLocation*>`. This `DebugLoc` is already passed reliably through the backend (as verified by r234021). This commit removes the check from r234021, but I added a new check (that will survive) in r235048, and changed the `DIBuilder` API in r235041 to require a `!dbg` attachment whose 'scope:` is in the same `MDSubprogram` as the variable's. If this breaks your out-of-tree testcases, perhaps the script I used (mdlocalvariable-drop-inlinedat.sh) will help; I'll attach it to PR22778 in a moment. llvm-svn: 235050
* Correct 'teh' and other typos / repeated words.Ed Maste2015-04-147-10/+10
| | | | | | | | Patch by Eitan Adler. Differential Revision: http://reviews.llvm.org/D8514 llvm-svn: 234939
* [docs] Update outdated ExtendingLLVM.rstDavid Blaikie2015-04-131-37/+60
| | | | | | | | | | | | | | | | | | | | | | | | Summary: The document is still incomplete in some degrees, but updated to reflect the latest changes. Anyway we can detail it if any one think it is not enough. For the sake of it, some useful examples are listed below: Refer to r113618 "Add X86 MMX type to bitcode and Type" for how to add a new type. > One notable change from then is only one thing that ``lib/VMCore`` is renamed to ``lib/IR``. Refer to r194760 "Add addrspacecast instruction" for how to add a new instruction. Patch by Chilledheart (rwindz0@gmail.com). Reviewed By: echristo Differential Revision: http://reviews.llvm.org/D8897 llvm-svn: 234757
* [lib/Fuzzer] Section: How good is my fuzzer?Kostya Serebryany2015-04-101-0/+15
| | | | llvm-svn: 234571
* [lib/Fuzzer] explain compatibility with AFLKostya Serebryany2015-04-101-0/+10
| | | | llvm-svn: 234570
* [lib/Fuzzer] show how to find Heartbleed with LibFuzzerKostya Serebryany2015-04-081-0/+63
| | | | llvm-svn: 234391
* R600/SI: Initial support for assembler and inline assemblyTom Stellard2015-04-081-7/+53
| | | | | | | | | | | | | This is currently considered experimental, but most of the more commonly used instructions should work. So far only SI has been extensively tested, CI and VI probably work too, but may be buggy. The current set of tests cases do not give complete coverage, but I think it is sufficient for an experimental assembler. See the documentation in R600Usage for more information. llvm-svn: 234381
OpenPOWER on IntegriCloud