mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-11 05:35:11 +00:00
74eabdd998
This intrinsic takes two arguments, ``%ptr`` and ``%offset``. It loads a 32-bit value from the address ``%ptr + %offset``, adds ``%ptr`` to that value and returns it. The constant folder specifically recognizes the form of this intrinsic and the constant initializers it may load from; if a loaded constant initializer is known to have the form ``i32 trunc(x - %ptr)``, the intrinsic call is folded to ``x``. LLVM provides that the calculation of such a constant initializer will not overflow at link time under the medium code model if ``x`` is an ``unnamed_addr`` function. However, it does not provide this guarantee for a constant initializer folded into a function body. This intrinsic can be used to avoid the possibility of overflows when loading from such a constant. Differential Revision: http://reviews.llvm.org/D18367 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267223 91177308-0d34-0410-b5e6-96231b3b80d8 |
||
---|---|---|
.. | ||
2010-12-20-Boolean.ll | ||
2011-01-14-Thread.ll | ||
2011-02-01-Vector.ll | ||
2011-09-05-InsertExtractValue.ll | ||
2011-10-27-BinOpCrash.ll | ||
2011-11-23-MaskedBitsCrash.ll | ||
2013-04-19-ConstantFoldingCrash.ll | ||
add-mask.ll | ||
AndOrXor.ll | ||
apint-or.ll | ||
assume.ll | ||
bswap.ll | ||
call-callconv.ll | ||
call.ll | ||
compare.ll | ||
dead-code-removal.ll | ||
exact-nsw-nuw.ll | ||
fast-math.ll | ||
fdiv.ll | ||
floating-point-arithmetic.ll | ||
floating-point-compare.ll | ||
fold-builtin-fma.ll | ||
gep.ll | ||
implies.ll | ||
load-relative-32.ll | ||
load-relative.ll | ||
load.ll | ||
maxmin.ll | ||
noalias-ptr.ll | ||
past-the-end.ll | ||
phi.ll | ||
ptr_diff.ll | ||
reassociate.ll | ||
rem.ll | ||
select.ll | ||
shift-128-kb.ll | ||
shr-nop.ll | ||
undef.ll | ||
vector_gep.ll | ||
vector_ptr_bitcast.ll |