Hal Finkel
01719c8ac0
[Inliner] Preserve llvm.mem.parallel_loop_access metadata
...
When inlining a call site with llvm.mem.parallel_loop_access metadata, this
metadata needs to be propagated to all cloned memory-accessing instructions.
Otherwise, inlining parts of the loop body will invalidate the annotation.
With this functionality, we now vectorize the following as expected:
void Body(int *res, int *c, int *d, int *p, int i) {
res[i] = (p[i] == 0) ? res[i] : res[i] + d[i];
}
void Test(int *res, int *c, int *d, int *p, int n) {
int i;
#pragma clang loop vectorize(assume_safety)
for (i = 0; i < 1600; i++) {
Body(res, c, d, p, i);
}
}
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@267949 91177308-0d34-0410-b5e6-96231b3b80d8
2016-04-28 23:00:04 +00:00
..
2015-07-02 01:36:31 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +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-06-17 20:52:32 +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-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2016-04-15 15:57:41 +00:00
2016-04-23 21:08:00 +00:00
2015-02-27 19:29:02 +00:00
2015-03-04 18:43:29 +00:00
2014-05-19 18:25:54 +00:00
2016-03-29 17:46:23 +00:00
2015-02-27 21:17:42 +00:00
2016-04-06 02:25:12 +00:00
2015-02-27 21:17:42 +00:00
2015-06-16 20:24:25 +00:00
2015-03-13 18:20:45 +00:00
2015-06-17 20:52:32 +00:00
2016-04-08 00:48:30 +00:00
2015-02-27 21:17:42 +00:00
2015-04-20 16:11:05 +00:00
2015-06-17 20:52:32 +00:00
2016-04-15 15:57:41 +00:00
2016-04-15 15:57:41 +00:00
2015-12-19 22:40:28 +00:00
2016-04-09 00:22:59 +00:00
2015-04-16 23:24:18 +00:00
2015-02-27 21:17:42 +00:00
2015-03-13 18:20:45 +00:00
2015-02-27 21:17:42 +00:00
2015-07-07 22:25:32 +00:00
2016-03-31 00:18:46 +00:00
2015-02-27 21:17:42 +00:00
2016-04-15 15:57:41 +00:00
2015-02-27 21:17:42 +00:00
2016-04-15 15:57:41 +00:00
2015-11-11 02:11:46 +00:00
2015-02-27 21:17:42 +00:00
2015-06-17 20:52:32 +00:00
2015-04-16 23:24:18 +00:00
2016-04-13 19:43:31 +00:00
2016-02-01 20:55:11 +00:00
2015-09-23 15:49:08 +00:00
2015-02-27 21:17:42 +00:00
2016-04-18 15:31:11 +00:00
2015-02-27 21:17:42 +00:00
2015-07-27 18:31:03 +00:00
2015-02-27 21:17:42 +00:00
2015-02-27 21:17:42 +00:00
2016-01-20 02:15:15 +00:00
2016-04-18 15:31:11 +00:00
2015-02-12 21:04:22 +00:00
2015-11-19 05:56:52 +00:00
2015-06-17 20:52:32 +00:00
2015-04-16 23:24:18 +00:00
2013-11-18 21:44:03 +00:00
2016-01-28 23:44:41 +00:00
2014-11-04 02:02:14 +00:00
2015-11-19 05:56:52 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2015-03-04 18:43:29 +00:00
2016-04-15 15:57:41 +00:00
2015-11-22 00:16:24 +00:00
2015-11-19 05:56:52 +00:00
2015-11-22 00:16:24 +00:00
2015-02-27 21:17:42 +00:00
2015-06-26 20:51:17 +00:00
2014-07-03 02:11:49 +00:00
2015-02-27 21:17:42 +00:00
2016-04-28 23:00:04 +00:00
2015-01-06 22:55:16 +00:00
2015-05-05 20:14:22 +00:00
2016-02-23 17:11:04 +00:00
2016-03-16 18:15:34 +00:00
2015-02-27 21:17:42 +00:00
2015-03-20 18:33:12 +00:00
2014-04-28 08:52:44 +00:00
2015-05-27 02:49:05 +00:00
2015-11-10 09:47:48 +00:00