Peter Collingbourne
74eabdd998
Introduce llvm.load.relative intrinsic.
...
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
2016-04-22 21:18:02 +00:00
..
2009-09-11 18:36:27 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2009-09-09 00:09:15 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2009-09-09 00:09:15 +00:00
2015-03-13 18:20:45 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2015-04-16 23:24:18 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2009-09-09 00:09:15 +00:00
2015-04-16 23:24:18 +00:00
2009-09-09 00:09:15 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2015-03-13 18:20:45 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-06-17 20:52:32 +00:00
2014-02-13 14:44:26 +00:00
2010-03-14 18:51:18 +00:00
2009-09-09 00:09:15 +00:00
2014-02-13 14:44:26 +00:00
2014-02-13 14:44:26 +00:00
2015-06-17 20:52:32 +00:00
2015-03-16 21:36:38 +00:00
2009-09-09 00:09:15 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2009-09-09 00:09:15 +00:00
2015-03-12 20:38:10 +00:00
2015-04-16 23:24:18 +00:00
2009-09-09 00:09:15 +00:00
2015-03-13 18:20:45 +00:00
2015-09-11 03:22:04 +00:00
2015-05-12 01:26:05 +00:00
2009-09-09 00:09:15 +00:00
2015-02-27 21:17:42 +00:00
2015-06-17 20:52:32 +00:00
2010-07-27 18:02:18 +00:00
2011-09-26 06:13:20 +00:00
2010-06-17 15:18:27 +00:00
2011-01-06 23:04:29 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2013-03-20 06:18:06 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2010-03-22 23:15:57 +00:00
2015-03-13 18:20:45 +00:00
2015-02-27 21:17:42 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2014-02-13 14:44:26 +00:00
2014-07-25 21:13:35 +00:00
2015-04-16 23:24:18 +00:00
2009-09-09 00:09:15 +00:00
2015-02-27 21:17:42 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2015-04-16 23:24:18 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2015-03-13 18:20:45 +00:00
2015-02-27 21:17:42 +00:00
2015-08-28 20:26:49 +00:00
2009-09-09 00:09:15 +00:00
2015-06-17 20:52:32 +00:00
2016-04-05 14:21:32 +00:00
2012-06-08 23:15:12 +00:00
2014-09-20 00:10:47 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-06-17 20:52:32 +00:00
2009-09-09 00:09:15 +00:00
2015-03-13 18:20:45 +00:00
2009-09-09 00:09:15 +00:00
2015-11-19 05:56:52 +00:00
2009-09-09 00:09:15 +00:00
2015-02-27 21:17:42 +00:00
2010-02-09 06:36:30 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-04-16 23:24:18 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2015-05-20 17:21:09 +00:00
2015-02-27 21:17:42 +00:00
2014-02-13 14:44:26 +00:00
2009-11-03 02:19:31 +00:00
2015-11-19 05:56:52 +00:00
2009-09-09 00:09:15 +00:00
2015-09-16 05:34:32 +00:00
2011-12-12 11:59:10 +00:00
2016-03-29 00:23:41 +00:00
2015-06-17 20:52:32 +00:00
2015-04-16 23:24:18 +00:00
2009-09-09 00:09:15 +00:00
2013-12-13 16:05:32 +00:00
2010-12-19 20:01:13 +00:00
2015-12-26 07:54:32 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2009-09-09 00:09:15 +00:00
2012-04-10 00:16:22 +00:00
2015-04-16 23:24:18 +00:00
2014-02-28 19:08:01 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2014-12-13 04:52:04 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2015-04-16 23:24:18 +00:00
2015-03-13 18:20:45 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2015-07-06 17:44:26 +00:00
2013-03-25 21:04:16 +00:00
2015-02-27 21:17:42 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2016-04-22 21:18:02 +00:00
2009-09-09 00:09:15 +00:00
2010-02-09 06:19:20 +00:00
2009-11-07 07:50:34 +00:00
2009-09-09 00:09:15 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-07-03 08:02:12 +00:00
2009-09-09 00:09:15 +00:00
2015-02-27 21:17:42 +00:00
2016-02-24 23:40:36 +00:00
2015-10-09 20:10:14 +00:00
2011-05-13 15:18:06 +00:00