summaryrefslogtreecommitdiffstats
path: root/llvm/docs
Commit message (Collapse)AuthorAgeFilesLines
...
* Rename llvm.frameescape and llvm.framerecover to localescape and localrecoverReid Kleckner2015-07-072-27/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Initially, these intrinsics seemed like part of a family of "frame" related intrinsics, but now I think that's more confusing than helpful. Initially, the LangRef specified that this would create a new kind of allocation that would be allocated at a fixed offset from the frame pointer (EBP/RBP). We ended up dropping that design, and leaving the stack frame layout alone. These intrinsics are really about sharing local stack allocations, not frame pointers. I intend to go further and add an `llvm.localaddress()` intrinsic that returns whatever register (EBP, ESI, ESP, RBX) is being used to address locals, which should not be confused with the frame pointer. Naming suggestions at this point are welcome, I'm happy to re-run sed. Reviewers: majnemer, nicholas Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D11011 llvm-svn: 241633
* [NFC] Minor editorial fixes to the CodeGen docs.Charlie Turner2015-07-021-2/+2
| | | | llvm-svn: 241249
* Expand Phabricator docs slightlyScott Douglass2015-07-011-7/+9
| | | | llvm-svn: 241161
* Getting started docs: https, and check signatureJF Bastien2015-07-011-1/+5
| | | | | | | | | | | | | | Summary: Download should be over https, not insecure ftp at least for the signature and key files. The signature should also get verified. Test Plan: None Reviewers: chandlerc Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D10845 llvm-svn: 241138
* Fix several typos in LangRef.rst related to loop unrolling metadata.Mark Heffernan2015-06-301-4/+4
| | | | llvm-svn: 241126
* [FaultMaps] Let the frontend pre-select implicit null check candidates.Sanjoy Das2015-06-301-1/+32
| | | | | | | | | | | | | | | | | | Summary: This change introduces a !make.implicit metadata that allows the frontend to pre-select the set of explicit null checks that will be considered for transformation into implicit null checks. The reason for not using profiling data instead of !make.implicit is explained in the change to `FaultMaps.rst`. Reviewers: atrick, reames, pgavlin, JosephTremoulet Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D10824 llvm-svn: 241116
* COFF: Do not assign linker-weak symbols to selectany comdat sections.Peter Collingbourne2015-06-301-3/+5
| | | | | | | | | | | | | | It is mandatory to specify a comdat in order to receive comdat semantics for a symbol. We were previously getting this wrong in -function-sections mode; linker-weak symbols were being emitted in a selectany comdat. This change causes such symbols to use a noduplicates comdat instead, fixing the inconsistency. Also correct an inaccuracy in the docs. Differential Revision: http://reviews.llvm.org/D10828 llvm-svn: 241103
* [FaultMaps][Docs] Document the ImplicitNullChecks pass.Sanjoy Das2015-06-291-0/+42
| | | | llvm-svn: 241009
* AMDGPU/SI: Update amd_kernel_code_t definition and add assembler supportTom Stellard2015-06-261-0/+57
| | | | | | | | | | Reviewers: arsenm Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D10772 llvm-svn: 240839
* AMDGPU/SI: Add hsa code object directivesTom Stellard2015-06-261-0/+26
| | | | | | | | | | Reviewers: arsenm Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D10757 llvm-svn: 240831
* Make llvm-dwarfdump exit with non-zero exit code if error was occured.Alexey Samsonov2015-06-251-2/+2
| | | | llvm-svn: 240729
* docs: Update allowed values for LLVM_USE_SANITIZERJustin Bogner2015-06-221-2/+2
| | | | | | | "Thread" and combinations of "Address" and "Undefined" have been accepted for a while now. llvm-svn: 240316
* [NFC] Capitalization in documentation.Sanjoy Das2015-06-221-1/+1
| | | | llvm-svn: 240303
* [PM/AA] Hoist the AliasResult enum out of the AliasAnalysis class.Chandler Carruth2015-06-221-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | This will allow classes to implement the AA interface without deriving from the class or referencing an internal enum of some other class as their return types. Also, to a pretty fundamental extent, concepts such as 'NoAlias', 'MayAlias', and 'MustAlias' are first class concepts in LLVM and we aren't saving anything by scoping them heavily. My mild preference would have been to use a scoped enum, but that feature is essentially completely broken AFAICT. I'm extremely disappointed. For example, we cannot through any reasonable[1] means construct an enum class (or analog) which has scoped names but converts to a boolean in order to test for the possibility of aliasing. [1]: Richard Smith came up with a "solution", but it requires class templates, and lots of boilerplate setting up the enumeration multiple times. Something like Boost.PP could potentially bundle this up, but even that would be quite painful and it doesn't seem realistically worth it. The enum class solution would probably work without the need for a bool conversion. Differential Revision: http://reviews.llvm.org/D10495 llvm-svn: 240255
* Fix "the the" in comments.Eric Christopher2015-06-192-2/+2
| | | | llvm-svn: 240112
* [docs] Fix "WARNING: Title underline too short."David Majnemer2015-06-171-1/+1
| | | | llvm-svn: 239947
* Move the personality function from LandingPadInst to FunctionDavid Majnemer2015-06-172-15/+24
| | | | | | | | | | | | | | | | | | | The personality routine currently lives in the LandingPadInst. This isn't desirable because: - All LandingPadInsts in the same function must have the same personality routine. This means that each LandingPadInst beyond the first has an operand which produces no additional information. - There is ongoing work to introduce EH IR constructs other than LandingPadInst. Moving the personality routine off of any one particular Instruction and onto the parent function seems a lot better than have N different places a personality function can sneak onto an exceptional function. Differential Revision: http://reviews.llvm.org/D10429 llvm-svn: 239940
* Protection against stack-based memory corruption errors using SafeStackPeter Collingbourne2015-06-151-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds the safe stack instrumentation pass to LLVM, which separates the program stack into a safe stack, which stores return addresses, register spills, and local variables that are statically verified to be accessed in a safe way, and the unsafe stack, which stores everything else. Such separation makes it much harder for an attacker to corrupt objects on the safe stack, including function pointers stored in spilled registers and return addresses. You can find more information about the safe stack, as well as other parts of or control-flow hijack protection technique in our OSDI paper on code-pointer integrity (http://dslab.epfl.ch/pubs/cpi.pdf) and our project website (http://levee.epfl.ch). The overhead of our implementation of the safe stack is very close to zero (0.01% on the Phoronix benchmarks). This is lower than the overhead of stack cookies, which are supported by LLVM and are commonly used today, yet the security guarantees of the safe stack are strictly stronger than stack cookies. In some cases, the safe stack improves performance due to better cache locality. Our current implementation of the safe stack is stable and robust, we used it to recompile multiple projects on Linux including Chromium, and we also recompiled the entire FreeBSD user-space system and more than 100 packages. We ran unit tests on the FreeBSD system and many of the packages and observed no errors caused by the safe stack. The safe stack is also fully binary compatible with non-instrumented code and can be applied to parts of a program selectively. This patch is our implementation of the safe stack on top of LLVM. The patches make the following changes: - Add the safestack function attribute, similar to the ssp, sspstrong and sspreq attributes. - Add the SafeStack instrumentation pass that applies the safe stack to all functions that have the safestack attribute. This pass moves all unsafe local variables to the unsafe stack with a separate stack pointer, whereas all safe variables remain on the regular stack that is managed by LLVM as usual. - Invoke the pass as the last stage before code generation (at the same time the existing cookie-based stack protector pass is invoked). - Add unit tests for the safe stack. Original patch by Volodymyr Kuznetsov and others at the Dependable Systems Lab at EPFL; updates and upstreaming by myself. Differential Revision: http://reviews.llvm.org/D6094 llvm-svn: 239761
* Unbreak docs build from r239740.Sanjoy Das2015-06-151-0/+4
| | | | | | Add FaultMaps.rst to toctree. llvm-svn: 239747
* Unbreak the build from r239740.Sanjoy Das2015-06-151-1/+1
| | | | | | Do not re-use an enum name as a field name. Some bots don't like this. llvm-svn: 239746
* [CodeGen] Introduce a FAULTING_LOAD_OP pseudo-op.Sanjoy Das2015-06-151-0/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This instruction encodes a loading operation that may fault, and a label to branch to if the load page-faults. The locations of potentially faulting loads and their "handler" destinations are recorded in a FaultMap section, meant to be consumed by LLVM's clients. Nothing generates FAULTING_LOAD_OP instructions yet, but they will be used in a future change. The documentation (FaultMaps.rst) needs improvement and I will update this diff with a more expanded version shortly. Depends on D10196 Reviewers: rnk, reames, AndyAyers, ab, atrick, pgavlin Reviewed By: atrick, pgavlin Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D10197 llvm-svn: 239740
* R600 -> AMDGPU renameTom Stellard2015-06-134-11/+11
| | | | llvm-svn: 239657
* R600/SI: Add assembler support for FLAT instructionsTom Stellard2015-06-121-0/+5
| | | | | | | | - Add glc, slc, and tfe operands to flat instructions - Add missing flat instructions - Fix the encoding of flat_load_dwordx3 and flat_store_dwordx3. llvm-svn: 239637
* [TableGen] Correct the documentation for 'foreach' in the Language Intro.Craig Topper2015-06-061-1/+1
| | | | llvm-svn: 239204
* [docs] Document "LGTM" in the lexicon.Sean Silva2015-06-041-0/+4
| | | | llvm-svn: 239085
* [IR/AsmWriter] Output escape sequences if the first character isdigit()Filipe Cabecinhas2015-06-021-0/+5
| | | | | | | | | | | | | | | If the first character in a metadata attachment's name is a digit, it has to be output using an escape sequence, otherwise it's not valid text IR. Removed an over-zealous assert from LLVMContext which didn't allow this. The rule should only apply to text IR. Actual names can have any sequence of non-NUL bytes. Also added some documentation on accepted names. Bug found with AFL fuzz. llvm-svn: 238867
* [docs] fix the declarations of the llvm.nvvm.ptr.gen.to.* intrinsicsJingyue Wu2015-05-291-4/+4
| | | | | | | | | | | | | | | | | | Summary: These intrinsics should take a generic input address space and outputs a non-generic address space. Test Plan: no Reviewers: jholewinski, eliben Reviewed By: eliben Subscribers: eliben, jholewinski, llvm-commits Differential Revision: http://reviews.llvm.org/D10132 llvm-svn: 238620
* [YAMLIO] Make line-wrapping configurable and test it.Frederic Riss2015-05-291-3/+11
| | | | | | | | | | | | | | | | Summary: We would wrap flow mappings and sequences when they go over a hardcoded 70 characters limit. Make the wrapping column configurable (and default to 70 co the change should be NFC for current users). Passing 0 allows to completely suppress the wrapping which makes it easier to handle in tools like FileCheck. Reviewers: bogner Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D10109 llvm-svn: 238584
* Update documentation for llvm-profdata.Diego Novillo2015-05-281-0/+30
| | | | | | | These options have been present for a while, but I had never updated the documentation. Fixed. llvm-svn: 238511
* Add some more detailed docs about the current state of Phabricator andChandler Carruth2015-05-271-1/+11
| | | | | | reviwes.llvm.org to help reduce confusion. llvm-svn: 238295
* Add initial support for the convergent attribute.Owen Anderson2015-05-261-0/+7
| | | | llvm-svn: 238264
* [lib/Fuzzer] make the fuzzing timeout 1200 seconds by default (was: infinity)Kostya Serebryany2015-05-261-1/+1
| | | | llvm-svn: 238251
* [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
OpenPOWER on IntegriCloud