Keno Fischer
ca6b59008b
[SCEV] Add explicit representations of umin/smin
...
Summary:
Currently we express umin as `~umax(~x, ~y)`. However, this becomes
a problem for operands in non-integral pointer spaces, because `~x`
is not something we can compute for `x` non-integral. However, since
comparisons are generally still allowed, we are actually able to
express `umin(x, y)` directly as long as we don't try to express is
as a umax. Support this by adding an explicit umin/smin representation
to SCEV. We do this by factoring the existing getUMax/getSMax functions
into a new function that does all four. The previous two functions were
largely identical.
Reviewed By: sanjoy
Differential Revision: https://reviews.llvm.org/D50167
llvm-svn: 360159
2019-05-07 15:28:47 +00:00
..
2015-02-27 19:29:02 +00:00
2015-02-27 21:17:42 +00:00
2019-05-07 15:28:47 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 19:29:02 +00:00
2015-02-27 21:17:42 +00:00
2017-01-15 09:29:27 +00:00
2015-04-16 23:24:18 +00:00
2017-01-15 09:29:27 +00:00
2018-06-13 02:25:32 +00:00
2018-06-14 17:13:48 +00:00
2015-09-09 20:47:30 +00:00
2015-02-27 21:17:42 +00:00
2017-01-15 09:29:27 +00:00
2015-02-27 21:17:42 +00:00
2018-01-19 17:13:12 +00:00
2018-11-01 06:18:27 +00:00
2017-08-03 08:41:30 +00:00
2015-10-07 18:14:25 +00:00
2018-07-13 23:58:46 +00:00
2018-05-03 02:37:55 +00:00
2019-03-02 02:31:44 +00:00
2016-06-30 02:47:28 +00:00
2016-05-11 17:41:41 +00:00
2017-04-24 00:09:46 +00:00
2015-03-26 17:28:26 +00:00
2018-07-13 23:58:46 +00:00
2018-06-20 07:54:11 +00:00
2018-06-20 07:54:11 +00:00
2018-06-20 07:54:11 +00:00
2018-05-09 02:40:45 +00:00
2017-08-04 20:19:46 +00:00
2017-09-01 14:59:59 +00:00
2018-06-11 19:56:12 +00:00
2018-06-13 02:25:32 +00:00
2019-01-31 06:19:25 +00:00
2017-03-31 12:05:30 +00:00
2017-03-31 12:05:30 +00:00
2015-02-09 18:34:55 +00:00
2016-03-09 01:51:44 +00:00
2016-05-29 00:32:17 +00:00
2015-03-18 00:41:29 +00:00
2018-03-19 06:35:30 +00:00
2017-01-15 00:26:18 +00:00
2015-04-01 18:24:06 +00:00
2019-03-12 18:28:05 +00:00
2015-02-27 21:17:42 +00:00
2015-03-09 21:43:39 +00:00
2018-07-13 23:58:46 +00:00
2017-01-26 13:33:17 +00:00
2017-07-23 15:40:19 +00:00
2017-10-25 21:41:00 +00:00
2019-05-07 15:28:47 +00:00
2016-10-20 21:38:39 +00:00
2018-06-14 17:13:35 +00:00
2018-03-27 07:30:38 +00:00
2018-06-29 11:46:30 +00:00
2019-05-07 15:28:47 +00:00
2018-07-24 21:48:56 +00:00
2016-12-19 08:22:17 +00:00
2015-10-30 15:02:28 +00:00
2016-05-29 00:32:17 +00:00
2018-07-13 23:58:46 +00:00
2018-07-13 23:58:46 +00:00
2018-07-13 23:58:46 +00:00
2016-05-29 00:34:42 +00:00
2019-02-25 13:12:33 +00:00
2019-02-25 13:12:33 +00:00
2015-03-13 18:20:45 +00:00
2015-02-24 01:02:42 +00:00
2015-02-27 21:17:42 +00:00
2015-03-13 18:31:19 +00:00
2017-01-18 23:56:42 +00:00
2015-11-02 02:06:01 +00:00
2016-05-29 00:32:17 +00:00
2018-11-08 11:54:35 +00:00
2017-11-13 16:43:24 +00:00
2018-02-12 05:09:38 +00:00
2019-01-29 05:37:59 +00:00
2019-05-07 15:28:47 +00:00
2015-03-09 21:43:43 +00:00
2016-07-11 02:48:23 +00:00
2016-02-20 04:01:45 +00:00
2016-02-09 00:07:08 +00:00
2016-05-03 17:49:57 +00:00
2016-08-09 20:37:50 +00:00
2015-02-25 20:02:59 +00:00
2016-09-14 04:39:50 +00:00
2016-08-25 16:17:18 +00:00
2016-08-25 16:17:18 +00:00
2015-02-27 21:17:42 +00:00
2018-06-14 17:13:35 +00:00
2015-03-09 21:43:39 +00:00
2015-02-27 21:17:42 +00:00
2015-03-13 18:20:45 +00:00
2018-07-13 23:58:46 +00:00
2016-03-03 18:31:23 +00:00
2018-06-19 04:09:44 +00:00
2017-12-08 12:19:45 +00:00
2018-07-13 23:58:46 +00:00
2015-02-27 21:17:42 +00:00
2016-08-05 18:34:14 +00:00
2018-08-02 19:13:35 +00:00
2018-08-02 19:13:35 +00:00
2018-12-02 16:49:28 +00:00
2015-02-27 19:29:02 +00:00
2018-06-14 17:13:35 +00:00
2015-02-27 19:29:02 +00:00
2019-05-07 15:28:47 +00:00
2015-02-27 21:17:42 +00:00
2016-08-05 20:33:49 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2015-03-09 21:43:39 +00:00
2015-02-27 21:17:42 +00:00
2016-10-21 11:08:48 +00:00
2019-05-07 15:28:47 +00:00
2018-07-13 23:58:46 +00:00
2016-09-16 14:38:13 +00:00
2018-01-19 17:13:12 +00:00
2017-03-20 20:25:46 +00:00
2018-06-14 17:13:35 +00:00
2018-07-19 01:46:21 +00:00
2018-03-01 06:56:48 +00:00
2019-02-04 05:04:19 +00:00
2017-09-01 14:59:59 +00:00
2017-05-03 23:53:38 +00:00
2018-06-21 21:29:54 +00:00
2018-07-13 23:58:46 +00:00
2015-04-16 23:24:18 +00:00
2017-03-16 21:07:38 +00:00