summaryrefslogtreecommitdiff
path: root/docs/LangRef.rst
Commit message (Collapse)AuthorAge
* Correct logical shift documentationTim Northover2013-05-07
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181290 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove comment that no target supports 128-bit IEEE floatsRichard Sandiford2013-05-03
| | | | | | | | The soon-to-be-committed SystemZ port uses 128-bit IEEE floats. MIPS64 GNU/Linux does too (albeit with unusual NaNs). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181016 91177308-0d34-0410-b5e6-96231b3b80d8
* Clarify that llvm.used can contain aliases.Rafael Espindola2013-04-22
| | | | | | | Also add a check for llvm.used in the verifier and simplify clients now that they can assume they have a ConstantArray. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@180019 91177308-0d34-0410-b5e6-96231b3b80d8
* Add CodeGen support for functions that always return arguments via a new ↵Stephen Lin2013-04-20
| | | | | | parameter attribute 'returned', which is taken advantage of in target-independent tail call opportunity detection and in ARM call lowering (when placed on an integral first parameter). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179925 91177308-0d34-0410-b5e6-96231b3b80d8
* Fixes to LangRef.rst: incorrect attributes syntax and misplaced 'nobuiltin'Eli Bendersky2013-04-18
| | | | | | | Patch by Stephen Lin git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179763 91177308-0d34-0410-b5e6-96231b3b80d8
* More consistent formatting and tidying-upEli Bendersky2013-04-17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179716 91177308-0d34-0410-b5e6-96231b3b80d8
* Make formatting more consistent and tidy-up.Eli Bendersky2013-04-17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179689 91177308-0d34-0410-b5e6-96231b3b80d8
* Added documentation to LangRef for the intrinsic llvm.ptr.annotation.* which ↵Michael Gottesman2013-03-26
| | | | | | for some reason was never written. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177950 91177308-0d34-0410-b5e6-96231b3b80d8
* Missing period in docEli Bendersky2013-03-11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176809 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove tailing whitespacesMichael Liao2013-03-06
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176570 91177308-0d34-0410-b5e6-96231b3b80d8
* Unify clang/llvm attributes for asan/tsan/msan (LLVM part)Kostya Serebryany2013-02-26
| | | | | | | | | | | | | | | | | | | | These are two related changes (one in llvm, one in clang). LLVM: - rename address_safety => sanitize_address (the enum value is the same, so we preserve binary compatibility with old bitcode) - rename thread_safety => sanitize_thread - rename no_uninitialized_checks -> sanitize_memory CLANG: - add __attribute__((no_sanitize_address)) as a synonym for __attribute__((no_address_safety_analysis)) - add __attribute__((no_sanitize_thread)) - add __attribute__((no_sanitize_memory)) for S in address thread memory If -fsanitize=S is present and __attribute__((no_sanitize_S)) is not set llvm attribute sanitize_S git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176075 91177308-0d34-0410-b5e6-96231b3b80d8
* Made it more explicit that the self-referential llvm.loop identifier metadata Pekka Jaaskelainen2013-02-22
| | | | | | | | should be unique for each loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175888 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement the NoBuiltin attribute.Bill Wendling2013-02-22
| | | | | | | | | The 'nobuiltin' attribute is applied to call sites to indicate that LLVM should not treat the callee function as a built-in function. I.e., it shouldn't try to replace that function with different code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175835 91177308-0d34-0410-b5e6-96231b3b80d8
* add missing space which prevented the llvm.loop code-block from appearing in thePaul Redmond2013-02-21
| | | | | | | generated html. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175769 91177308-0d34-0410-b5e6-96231b3b80d8
* Metadata for annotating loops as parallel. The first consumer for this Pekka Jaaskelainen2013-02-13
| | | | | | | | | | metadata is the loop vectorizer. See the documentation update for more info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@175060 91177308-0d34-0410-b5e6-96231b3b80d8
* [tsan/msan] adding thread_safety and uninitialized_checks attributesKostya Serebryany2013-02-11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174864 91177308-0d34-0410-b5e6-96231b3b80d8
* Initial submission for the attribute group feature.Bill Wendling2013-02-06
| | | | | | | | | | | | | | | | | | Attribute groups are of the form: #0 = attributes { noinline "no-sse" "cpu"="cortex-a8" alignstack=4 } Target-dependent attributes are represented as strings. Attributes can have optional values associated with them. E.g., the "cpu" attribute has the value "cortex-a8". Target-independent attributes are listed as enums inside the attribute classes. Multiple attribute groups can be referenced by the same object. In that case, the attributes are merged together. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174493 91177308-0d34-0410-b5e6-96231b3b80d8
* Alphabetize the function attributes.Bill Wendling2013-02-06
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174490 91177308-0d34-0410-b5e6-96231b3b80d8
* Removed reference to LLVM as a project (since in LangRef it is used solely ↵Michael Gottesman2013-02-04
| | | | | | as a reference to the IR). Thanks silvas! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174301 91177308-0d34-0410-b5e6-96231b3b80d8
* Added new Global Variable marker ``externally_initialized'' to LangRef.Michael Gottesman2013-02-03
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174270 91177308-0d34-0410-b5e6-96231b3b80d8
* Added clarification paragraph to LangRef's documentation ofMichael Gottesman2013-02-03
| | | | | | | | | | | | | | | GlobalVariable about LLVM's assumptions vis-a-vis Global Variable initial values and Global Variable initializers. This is in preparation for adding the new keyword externally_initialized. Specifically, the patch explains how LLVM optimizes global initializers by assumign that global variables defined within the module are not modified from their initial values before the start of the global initializer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174269 91177308-0d34-0410-b5e6-96231b3b80d8
* Fixed a mistake in my previous commit where I changed the wording slightly ↵Michael Gottesman2013-01-31
| | | | | | and forgot to undo the change after changing my mind and deciding to only commit the style changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174041 91177308-0d34-0410-b5e6-96231b3b80d8
* Formatting Fix. Changed " to `` around the word 'constant' in the Lang RefMichael Gottesman2013-01-31
| | | | | | | section Global Variable so that the style matches the other keywords in said section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174040 91177308-0d34-0410-b5e6-96231b3b80d8
* LangRef: Add a Rationale for volatile rules.Andrew Trick2013-01-31
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174007 91177308-0d34-0410-b5e6-96231b3b80d8
* ...in light of recent activity related to llvm.memcpy flags. I want toAndrew Trick2013-01-30
| | | | | | | | | | | | | | | prevent an llvm developer from mistakenly thinking that just because the intrinsic has volatile flags that volatile operations can be converted to or folded into them. Platforms may rely on volatile loads and stores of natively supported data width to be executed as single instruction. When compiling C, this expectation likely holds for l-values of volatile primitive types with native hardware support, but not necessarily for aggregate types. The frontend upholds these expectations, which are not specified in the IR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173974 91177308-0d34-0410-b5e6-96231b3b80d8
* Documentation: Updating the data layout default specifications toPatrik Hagglund2013-01-30
| | | | | | | | correspond to the code. Patch by Stephen McGruer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173914 91177308-0d34-0410-b5e6-96231b3b80d8
* Documentation: add empty lines so that lists are properly recognizedDmitri Gribenko2013-01-29
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173845 91177308-0d34-0410-b5e6-96231b3b80d8
* Documentation: fix syntax errorDmitri Gribenko2013-01-26
| | | | | | | Patch by David Waggoner git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173571 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix small typoEli Bendersky2013-01-23
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173298 91177308-0d34-0410-b5e6-96231b3b80d8
* Add the heuristic to differentiate SSPStrong from SSPRequired.Bill Wendling2013-01-23
| | | | | | | | | | | | | | | | | | | The requirements of the strong heuristic are: * A Protector is required for functions which contain an array, regardless of type or length. * A Protector is required for functions which contain a structure/union which contains an array, regardless of type or length. Note, there is no limit to the depth of nesting. * A protector is required when the address of a local variable (i.e., stack based variable) is exposed. (E.g., such as through a local whose address is taken as part of the RHS of an assignment or a local whose address is taken as part of a function argument.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173231 91177308-0d34-0410-b5e6-96231b3b80d8
* Add the IR attribute 'sspstrong'.Bill Wendling2013-01-23
| | | | | | | | | | | | | | | | | | | | | | SSPStrong applies a heuristic to insert stack protectors in these situations: * A Protector is required for functions which contain an array, regardless of type or length. * A Protector is required for functions which contain a structure/union which contains an array, regardless of type or length. Note, there is no limit to the depth of nesting. * A protector is required when the address of a local variable (i.e., stack based variable) is exposed. (E.g., such as through a local whose address is taken as part of the RHS of an assignment or a local whose address is taken as part of a function argument.) This patch implements the SSPString attribute to be equivalent to SSPRequired. This will change in a subsequent patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173230 91177308-0d34-0410-b5e6-96231b3b80d8
* Documentation: replace some non-ASCII characters by equivalent markupDmitri Gribenko2013-01-19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172917 91177308-0d34-0410-b5e6-96231b3b80d8
* [MC/Mach-O] Implement integrated assembler support for linker options.Daniel Dunbar2013-01-18
| | | | | | - Also, fixup syntax errors in LangRef and missing newline in the MCAsmStreamer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172837 91177308-0d34-0410-b5e6-96231b3b80d8
* [docs] Get rid of some UTF8 characters (non-breaking space maybe).Daniel Dunbar2013-01-17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172741 91177308-0d34-0410-b5e6-96231b3b80d8
* [IR] Reserve/define the purpose for the "Linker Options" metadata flags.Daniel Dunbar2013-01-17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172681 91177308-0d34-0410-b5e6-96231b3b80d8
* Update the description of the llvm.fmuladd.* intrinsics to avoid use of theLang Hames2013-01-17
| | | | | | | | | ambiguous term 'legal'. Suggested by Andrew Booker. Thanks Andrew! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172680 91177308-0d34-0410-b5e6-96231b3b80d8
* Documentation: fix a typo 'IEE754'Dmitri Gribenko2013-01-16
| | | | | | | Reported on IRC by _savage git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172677 91177308-0d34-0410-b5e6-96231b3b80d8
* [IR] Add 'Append' and 'AppendUnique' module flag behaviors.Daniel Dunbar2013-01-16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172659 91177308-0d34-0410-b5e6-96231b3b80d8
* [IR] Add verifier support for llvm.module.flags.Daniel Dunbar2013-01-15
| | | | | | | - Also, update the LangRef documentation on module flags to match the implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172498 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a new attribute, 'noduplicate'. If a function contains a noduplicate ↵James Molloy2012-12-20
| | | | | | | | | | call, the call cannot be duplicated - Jump threading, loop unrolling, loop unswitching, and loop rotation are inhibited if they would duplicate the call. Similarly inlining of the function is inhibited, if that would duplicate the call (in particular inlining is still allowed when there is only one callsite and the function has internal linkage). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170704 91177308-0d34-0410-b5e6-96231b3b80d8
* So many people have touched this, it doesn't make sense to ascribe ↵Chris Lattner2012-12-09
| | | | | | authorship anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169704 91177308-0d34-0410-b5e6-96231b3b80d8
* docs: Convert LangRef to reST.Sean Silva2012-12-07
NOTE: If you have any patches in the works that modify LangRef, you will need to rewrite the changes to LangRef.html to their equivalents in LangRef.rst. If you need assistance feel free to contact me. Since LangRef is mission-critical for the project and "normative", I have taken extra care to ensure that no content was lost or altered in the conversion. The content was converted with a tool called `pandoc`, so there is no chance for a human error like accidentally forgetting a sentence or whatever. After the initial conversion by `pandoc`, only changes to the markup were done. This is just the most literal conversion of the HTML document as possible. It might be worth exploring some way to chop up this massive document into separate pages, e.g. something like `docs/LangRef/Instructions.rst`, `docs/LangRef/Intrinsics.rst`, etc. with `docs/LangRef.rst` being an "intro/navigation page" of sorts. On the other hand, that loses the ability to {Ctrl,Cmd}-F for a given term right from your browser. IMO, I think our stylesheet needs some work because I find it hard to tell what level of nesting some of the headings are at (e.g. "is this a new section or is it a subsection?"). The issue is present on other pages, but the sheer size and deep section structure of LangRef really brings this issue out. If there are any web designers out there in the community it would be awesome if you tried to come up with something nicer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169596 91177308-0d34-0410-b5e6-96231b3b80d8