Zvi Rackover
3438d07f09
LoopVectorize: MaxVF should not be larger than the loop trip count
...
Summary:
Improve how MaxVF is computed while taking into account that MaxVF should not be larger than the loop's trip count.
Other than saving on compile-time by pruning the possible MaxVF candidates, this patch fixes pr34438 which exposed the following flow:
1. Short trip count identified -> Don't bail out, set OptForSize:=True to avoid tail-loop and runtime checks.
2. Compute MaxVF returned 16 on a target supporting AVX512.
3. OptForSize -> choose VF:=MaxVF.
4. Bail out because TripCount = 8, VF = 16, TripCount % VF !=0 means we need a tail loop.
With this patch step 2. will choose MaxVF=8 based on TripCount.
Reviewers: Ayal, dorit, mkuper, hfinkel
Reviewed By: hfinkel
Subscribers: hfinkel, llvm-commits
Differential Revision: https://reviews.llvm.org/D37425
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@312472 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-04 08:35:13 +00:00
..
2017-08-27 12:55:46 +00:00
2017-08-02 21:43:08 +00:00
2017-07-01 03:24:09 +00:00
2016-12-03 00:41:43 +00:00
2017-08-27 12:55:46 +00:00
2017-09-04 08:35:13 +00:00
2015-02-27 19:29:02 +00:00
2016-10-06 23:57:25 +00:00
2014-09-10 17:58:16 +00:00
2016-10-06 23:57:25 +00:00
2016-07-27 23:53:58 +00:00
2016-10-06 23:57:25 +00:00
2015-02-27 19:29:02 +00:00
2016-10-06 23:57:25 +00:00
2016-10-06 23:57:25 +00:00
2016-10-06 23:57:25 +00:00
2016-12-16 19:12:02 +00:00
2016-10-06 23:57:25 +00:00
2017-03-07 18:47:30 +00:00
2016-11-11 22:51:46 +00:00
2016-10-06 23:57:25 +00:00
2017-08-30 18:06:51 +00:00
2016-10-19 19:22:02 +00:00
2017-07-28 20:21:02 +00:00
2016-10-06 23:57:25 +00:00
2016-10-06 23:57:25 +00:00
2016-12-19 17:13:37 +00:00
2017-02-10 21:09:07 +00:00
2017-08-20 10:32:41 +00:00
2016-10-06 23:57:25 +00:00
2016-10-06 23:57:25 +00:00
2017-08-08 18:07:44 +00:00
2017-08-27 12:55:46 +00:00
2016-10-06 23:57:25 +00:00
2017-07-19 08:53:34 +00:00
2016-10-06 23:57:25 +00:00
2015-02-27 21:17:42 +00:00
2016-10-06 23:57:25 +00:00
2016-07-06 14:26:59 +00:00
2016-09-26 17:08:37 +00:00
2016-10-06 23:57:25 +00:00
2015-02-27 21:17:42 +00:00
2016-10-06 23:57:25 +00:00
2016-10-07 15:20:13 +00:00
2016-10-06 23:57:25 +00:00
2016-10-06 23:57:25 +00:00
2017-08-20 10:32:41 +00:00
2016-10-06 23:57:25 +00:00
2017-07-08 16:34:46 +00:00
2017-08-27 12:55:46 +00:00
2016-10-06 23:57:25 +00:00
2017-07-31 13:21:42 +00:00
2015-02-27 21:17:42 +00:00
2016-10-06 23:57:25 +00:00
2016-10-06 23:57:25 +00:00
2017-07-19 05:16:39 +00:00
2017-07-19 05:16:39 +00:00
2013-10-02 20:29:00 +00:00
2016-10-31 13:17:31 +00:00
2016-10-31 13:17:31 +00:00
2016-10-31 13:17:31 +00:00
2017-07-19 05:16:39 +00:00
2017-07-19 05:16:39 +00:00
2016-10-06 23:57:25 +00:00
2017-07-19 05:16:39 +00:00
2017-01-26 10:41:09 +00:00
2017-04-10 20:18:21 +00:00
2015-02-27 19:29:02 +00:00
2017-04-07 14:15:34 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2016-10-06 23:57:25 +00:00
2016-10-06 23:57:25 +00:00
2016-10-06 23:57:25 +00:00
2017-07-19 05:16:39 +00:00
2017-06-27 17:53:22 +00:00
2016-10-06 23:57:25 +00:00
2016-10-06 23:57:25 +00:00
2017-08-20 10:32:41 +00:00
2016-04-15 15:57:41 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2016-06-15 00:35:26 +00:00
2016-11-11 22:51:46 +00:00
2016-03-17 20:32:37 +00:00
2016-03-17 20:32:37 +00:00
2016-10-06 23:57:25 +00:00
2016-10-06 23:57:25 +00:00
2016-10-06 23:57:25 +00:00
2016-10-06 23:57:25 +00:00
2016-10-06 23:57:25 +00:00
2015-08-11 15:56:31 +00:00
2017-01-19 00:42:28 +00:00
2017-08-28 22:00:27 +00:00
2016-03-26 23:32:57 +00:00
2016-10-06 23:57:25 +00:00
2016-08-12 22:47:13 +00:00
2017-07-18 11:57:08 +00:00
2017-02-12 09:32:53 +00:00
2017-01-19 00:42:28 +00:00
2017-05-13 13:25:57 +00:00
2017-07-12 19:53:55 +00:00
2016-10-06 23:57:25 +00:00
2016-06-29 10:01:06 +00:00
2016-10-06 23:57:25 +00:00
2017-01-18 19:02:52 +00:00
2016-09-21 16:50:24 +00:00
2017-02-14 16:28:32 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2017-07-19 05:16:39 +00:00
2017-07-19 05:16:39 +00:00
2015-08-27 20:43:29 +00:00
2015-02-27 21:17:42 +00:00
2016-10-06 23:57:25 +00:00
2016-09-26 17:08:37 +00:00
2016-10-06 23:57:25 +00:00
2016-10-06 23:57:25 +00:00
2016-10-06 23:57:25 +00:00
2017-06-30 08:02:35 +00:00
2016-10-06 23:57:25 +00:00
2016-10-06 23:57:25 +00:00
2016-10-06 23:57:25 +00:00
2016-10-06 23:57:25 +00:00
2017-06-19 18:48:58 +00:00
2015-02-27 19:29:02 +00:00
2016-10-06 23:57:25 +00:00
2017-03-23 20:02:23 +00:00
2015-05-06 17:12:25 +00:00
2016-10-06 23:57:25 +00:00
2016-10-06 23:57:25 +00:00
2015-02-27 21:17:42 +00:00
2017-07-25 10:35:16 +00:00
2016-10-06 23:57:25 +00:00
2017-04-07 14:15:34 +00:00
2017-08-20 10:32:41 +00:00
2015-02-27 21:17:42 +00:00
2016-10-06 23:57:25 +00:00
2016-10-06 23:57:25 +00:00