llvm.org GIT mirror llvm / ae4a9ae
Documentation: replace some non-ASCII characters by equivalent markup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172917 91177308-0d34-0410-b5e6-96231b3b80d8 Dmitri Gribenko 7 years ago
3 changed file(s) with 28 addition(s) and 28 deletion(s). Raw diff Collapse all Expand all
261261 Some languages allow differing globals to be merged, such as two
262262 functions with different semantics. Other languages, such as
263263 ``C++``, ensure that only equivalent globals are ever merged (the
264 "one definition rule" — "ODR"). Such languages can use the
264 "one definition rule" --- "ODR"). Such languages can use the
265265 ``linkonce_odr`` and ``weak_odr`` linkage types to indicate that the
266266 global will only be merged with equivalent globals. These linkage
267267 types are otherwise the same as their non-``odr`` versions.
820820 functions.
821821 ``ssp``
822822 This attribute indicates that the function should emit a stack
823 smashing protector. It is in the form of a "canary"a random value
823 smashing protector. It is in the form of a "canary" --- a random value
824824 placed on the stack before the local variables that's checked upon
825825 return from the function to see if it has been overwritten. A
826826 heuristic is used to determine if a function needs stack protectors
20782078 This value only has defined behavior when used as an operand to the
20792079 ':ref:`indirectbr `' instruction, or for comparisons
20802080 against null. Pointer equality tests between labels addresses results in
2081 undefined behavior though, again, comparison against null is ok, and
2081 undefined behavior --- though, again, comparison against null is ok, and
20822082 no label is equal to the null pointer. This may be passed around as an
20832083 opaque pointer sized value as long as the bits are not inspected. This
20842084 allows ``ptrtoint`` and arithmetic to be performed on these values so
24492449 Information about the module as a whole is difficult to convey to LLVM's
24502450 subsystems. The LLVM IR isn't sufficient to transmit this information.
24512451 The ``llvm.module.flags`` named metadata exists in order to facilitate
2452 this. These flags are in the form of key / value pairs — much like a
2453 dictionary — making it easy for any subsystem who cares about a flag to
2452 this. These flags are in the form of key / value pairs --- much like a
2453 dictionary --- making it easy for any subsystem who cares about a flag to
24542454 look it up.
24552455
24562456 The ``llvm.module.flags`` metadata contains a list of metadata triplets.
25782578 - Value
25792579
25802580 * - ``Objective-C Version``
2581 - **[Required]** The Objective-C ABI version. Valid values are 1 and 2.
2581 - **[Required]** --- The Objective-C ABI version. Valid values are 1 and 2.
25822582
25832583 * - ``Objective-C Image Info Version``
2584 - **[Required]** The version of the image info section. Currently
2584 - **[Required]** --- The version of the image info section. Currently
25852585 always 0.
25862586
25872587 * - ``Objective-C Image Info Section``
2588 - **[Required]** The section to place the metadata. Valid values are
2588 - **[Required]** --- The section to place the metadata. Valid values are
25892589 ``"__OBJC, __image_info, regular"`` for Objective-C ABI version 1, and
25902590 ``"__DATA,__objc_imageinfo, regular, no_dead_strip"`` for
25912591 Objective-C ABI version 2.
25922592
25932593 * - ``Objective-C Garbage Collection``
2594 - **[Required]** Specifies whether garbage collection is supported or
2594 - **[Required]** --- Specifies whether garbage collection is supported or
25952595 not. Valid values are 0, for no garbage collection, and 2, for garbage
25962596 collection supported.
25972597
25982598 * - ``Objective-C GC Only``
2599 - **[Optional]** Specifies that only garbage collection is supported.
2599 - **[Optional]** --- Specifies that only garbage collection is supported.
26002600 If present, its value must be 6. This flag requires that the
26012601 ``Objective-C Garbage Collection`` flag have the value 2.
26022602
58295829
58305830 The '``landingpad``' instruction is used by `LLVM's exception handling
58315831 system `_ to specify that a basic block
5832 is a landing pad one where the exception lands, and corresponds to the
5832 is a landing pad --- one where the exception lands, and corresponds to the
58335833 code found in the ``catch`` portion of a ``try``/``catch`` sequence. It
58345834 defines values supplied by the personality function (``pers_fn``) upon
58355835 re-entry to the function. The ``resultval`` has the type ``resultty``.
58415841 function associated with the unwinding mechanism. The optional
58425842 ``cleanup`` flag indicates that the landing pad block is a cleanup.
58435843
5844 A ``clause`` begins with the clause type — ``catch`` or ``filter`` — and
5844 A ``clause`` begins with the clause type --- ``catch`` or ``filter`` --- and
58455845 contains the global variable representing the "type" that may be caught
58465846 or filtered respectively. Unlike the ``catch`` clause, the ``filter``
58475847 clause takes an array constant as its argument. Use
74407440 """"""""""
74417441
74427442 The '``llvm.sadd.with.overflow``' family of intrinsic functions perform
7443 a signed addition of the two variables. They return a structure the
7443 a signed addition of the two variables. They return a structure --- the
74447444 first element of which is the signed summation, and the second element
74457445 of which is a bit specifying if the signed summation resulted in an
74467446 overflow.
74907490 """"""""""
74917491
74927492 The '``llvm.uadd.with.overflow``' family of intrinsic functions perform
7493 an unsigned addition of the two arguments. They return a structure the
7493 an unsigned addition of the two arguments. They return a structure --- the
74947494 first element of which is the sum, and the second element of which is a
74957495 bit specifying if the unsigned summation resulted in a carry.
74967496
75397539 """"""""""
75407540
75417541 The '``llvm.ssub.with.overflow``' family of intrinsic functions perform
7542 a signed subtraction of the two arguments. They return a structure the
7542 a signed subtraction of the two arguments. They return a structure --- the
75437543 first element of which is the subtraction, and the second element of
75447544 which is a bit specifying if the signed subtraction resulted in an
75457545 overflow.
75897589 """"""""""
75907590
75917591 The '``llvm.usub.with.overflow``' family of intrinsic functions perform
7592 an unsigned subtraction of the two arguments. They return a structure
7592 an unsigned subtraction of the two arguments. They return a structure ---
75937593 the first element of which is the subtraction, and the second element of
75947594 which is a bit specifying if the unsigned subtraction resulted in an
75957595 overflow.
76397639 """"""""""
76407640
76417641 The '``llvm.smul.with.overflow``' family of intrinsic functions perform
7642 a signed multiplication of the two arguments. They return a structure
7642 a signed multiplication of the two arguments. They return a structure ---
76437643 the first element of which is the multiplication, and the second element
76447644 of which is a bit specifying if the signed multiplication resulted in an
76457645 overflow.
76897689 """"""""""
76907690
76917691 The '``llvm.umul.with.overflow``' family of intrinsic functions perform
7692 an unsigned multiplication of the two arguments. They return a structure
7693 — the first element of which is the multiplication, and the second
7692 an unsigned multiplication of the two arguments. They return a structure ---
7693 the first element of which is the multiplication, and the second
76947694 element of which is a bit specifying if the unsigned multiplication
76957695 resulted in an overflow.
76967696
22482248 A bit-encoding in the 2 LSBits (least significant bits) of the ``Use::Prev``
22492249 allows to find the start of the ``User`` object:
22502250
2251 * ``00`` –> binary digit 0
2252
2253 * ``01`` –> binary digit 1
2254
2255 * ``10`` –> stop and calculate (``s``)
2256
2257 * ``11`` –> full stop (``S``)
2251 * ``00`` --- binary digit 0
2252
2253 * ``01`` --- binary digit 1
2254
2255 * ``10`` --- stop and calculate (``s``)
2256
2257 * ``11`` --- full stop (``S``)
22582258
22592259 Given a ``Use*``, all we have to do is to walk till we get a stop and we either
22602260 have a ``User`` immediately behind or we have to walk to the next stop picking
637637
638638 To be translated to or from a YAML sequence for your type T you must specialize
639639 llvm::yaml::SequenceTraits on T and implement two methods:
640 “size_t size(IO &io, T&)” and “T::value_type& element(IO &io, T&, size_t indx)”.
641 For example:
640 ``size_t size(IO &io, T&)`` and
641 ``T::value_type& element(IO &io, T&, size_t indx)``. For example:
642642
643643 .. code-block:: c++
644644