summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp
Commit message (Collapse)AuthorAgeFilesLines
* [CodeGen] Fix some Clang-tidy modernize and Include What You Use warnings; ↵Eugene Zelenko2017-09-131-11/+13
| | | | | | other minor fixes (NFC). llvm-svn: 313194
* [PM] Port PreISelIntrinsicLowering to the new PMMichael Kuperstein2016-06-241-11/+20
| | | | llvm-svn: 273713
* Introduce llvm.load.relative intrinsic.Peter Collingbourne2016-04-221-0/+85
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 llvm-svn: 267223
OpenPOWER on IntegriCloud