Nirav Dave
e791f411d3
[DAG] Improve Aliasing of operations to static alloca
...
Memory accesses offset from frame indices may alias, e.g., we
may merge write from function arguments passed on the stack when they
are contiguous. As a result, when checking aliasing, we consider the
underlying frame index's offset from the stack pointer.
Static allocs are realized as stack objects in SelectionDAG, but its
offset is not set until post-DAG causing DAGCombiner's alias check to
consider access to static allocas to frequently alias. Modify isAlias
to consider access between static allocas and access from other frame
objects to be considered aliasing.
Many test changes are included here. Most are fixes for tests which
indirectly relied on our aliasing ability and needed to be modified to
preserve their original intent.
The remaining tests have minor improvements due to relaxed
ordering. The exception is CodeGen/X86/2011-10-19-widen_vselect.ll
which has a minor degradation dispite though the pre-legalized DAG is
improved.
Reviewers: rnk, mkuper, jonpa, hfinkel, uweigand
Reviewed By: rnk
Subscribers: sdardis, nemanjai, javed.absar, llvm-commits
Differential Revision: https://reviews.llvm.org/D33345
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@307546 91177308-0d34-0410-b5e6-96231b3b80d8
2017-07-10 15:39:41 +00:00
..
2017-07-07 08:39:04 +00:00
2017-07-01 03:41:53 +00:00
2016-08-23 09:19:22 +00:00
2016-12-27 18:35:19 +00:00
2016-12-27 18:35:19 +00:00
2017-02-15 19:49:14 +00:00
2016-12-27 18:35:19 +00:00
2015-11-19 05:56:52 +00:00
2017-01-31 14:35:01 +00:00
2016-12-27 18:35:19 +00:00
2016-12-27 18:35:19 +00:00
2016-12-27 18:35:19 +00:00
2016-07-15 21:10:29 +00:00
2016-04-15 15:57:41 +00:00
2016-04-15 15:57:41 +00:00
2015-09-30 10:56:37 +00:00
2015-09-30 10:56:37 +00:00
2015-09-30 10:56:37 +00:00
2015-09-11 03:22:04 +00:00
2016-12-22 00:45:21 +00:00
2015-09-30 10:56:37 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2016-12-27 18:35:19 +00:00
2016-08-23 09:19:22 +00:00
2016-08-23 09:19:22 +00:00
2016-12-22 00:45:21 +00:00
2017-05-16 19:43:56 +00:00
2015-11-19 05:56:52 +00:00
2016-10-11 20:36:43 +00:00
2016-05-10 19:17:47 +00:00
2016-05-10 19:17:47 +00:00
2016-05-10 19:17:47 +00:00
2016-12-11 20:07:15 +00:00
2016-05-10 19:17:47 +00:00
2016-11-11 17:50:09 +00:00
2016-12-22 00:45:21 +00:00
2015-09-30 10:56:37 +00:00
2016-08-23 09:19:22 +00:00
2015-11-19 05:56:52 +00:00
2015-11-19 05:56:52 +00:00
2015-06-17 20:52:32 +00:00
2015-09-30 10:56:37 +00:00
2015-11-19 05:56:52 +00:00
2015-09-30 10:56:37 +00:00
2016-09-23 18:28:31 +00:00
2015-09-30 10:56:37 +00:00
2017-06-22 12:11:38 +00:00
2016-06-14 07:30:20 +00:00
2017-05-16 19:43:56 +00:00
2017-06-28 07:07:03 +00:00
2015-09-06 05:42:13 +00:00
2015-07-21 00:18:59 +00:00
2015-07-10 18:08:49 +00:00
2015-09-30 10:56:37 +00:00
2015-09-30 10:56:37 +00:00
2015-06-17 20:52:32 +00:00
2016-05-08 05:11:54 +00:00
2016-08-26 13:00:39 +00:00
2017-05-04 07:31:28 +00:00
2017-05-04 07:31:28 +00:00
2015-07-17 23:18:30 +00:00
2017-01-29 16:46:22 +00:00
2017-02-21 20:17:34 +00:00
2015-09-11 03:22:04 +00:00
2017-05-16 17:59:07 +00:00
2016-01-26 00:03:25 +00:00
2017-04-20 19:54:02 +00:00
2017-06-17 02:08:18 +00:00
2017-06-30 00:03:54 +00:00
2016-12-15 09:38:59 +00:00
2015-10-30 16:29:44 +00:00
2017-06-28 07:07:03 +00:00
2017-07-07 13:41:33 +00:00
2017-07-07 13:41:33 +00:00
2016-09-07 03:17:19 +00:00
2017-06-30 00:03:54 +00:00
2017-06-28 07:07:03 +00:00
2016-06-24 21:14:33 +00:00
2016-08-21 00:08:10 +00:00
2017-06-28 07:07:03 +00:00
2017-02-07 13:07:12 +00:00
2015-07-14 17:17:13 +00:00
2017-06-28 07:07:03 +00:00
2017-05-26 22:11:18 +00:00
2015-06-17 20:52:32 +00:00
2017-05-05 21:09:30 +00:00
2016-03-21 18:00:02 +00:00
2015-09-22 17:22:58 +00:00
2017-06-28 07:07:03 +00:00
2017-07-10 15:39:41 +00:00
2017-01-31 23:48:32 +00:00
2016-08-22 19:07:15 +00:00
2017-04-07 22:01:23 +00:00
2016-06-01 12:01:01 +00:00
2017-04-07 22:01:23 +00:00
2015-06-17 20:52:32 +00:00
2016-12-14 20:44:38 +00:00
2016-01-08 18:43:41 +00:00
2017-06-28 07:07:03 +00:00
2016-01-25 11:26:11 +00:00
2016-10-24 18:57:55 +00:00
2016-10-24 18:57:55 +00:00
2016-10-24 18:57:55 +00:00
2016-10-24 18:57:55 +00:00
2016-10-24 18:57:55 +00:00
2016-10-19 13:43:02 +00:00
2016-11-01 15:59:37 +00:00
2015-12-07 14:22:39 +00:00
2015-12-07 14:22:39 +00:00
2015-12-07 14:22:39 +00:00
2015-12-07 14:22:39 +00:00
2015-12-07 14:22:39 +00:00
2017-05-02 19:06:13 +00:00
2016-01-26 00:03:25 +00:00
2015-07-21 00:18:59 +00:00
2016-12-15 09:38:59 +00:00
2016-06-16 16:09:53 +00:00
2016-01-28 18:59:04 +00:00
2016-05-19 12:59:17 +00:00
2016-05-19 12:59:17 +00:00
2015-10-28 22:56:36 +00:00
2017-06-05 10:09:13 +00:00
2017-05-05 21:09:30 +00:00
2017-05-05 21:09:30 +00:00
2016-02-22 20:55:50 +00:00
2017-06-30 19:51:02 +00:00
2017-05-31 01:21:35 +00:00
2017-06-28 07:07:03 +00:00
2016-12-22 00:45:21 +00:00
2015-09-30 10:56:37 +00:00
2017-06-28 07:07:03 +00:00
2015-12-04 01:53:14 +00:00
2016-11-01 13:37:41 +00:00
2017-07-01 02:55:22 +00:00
2016-10-17 12:54:07 +00:00
2017-05-23 19:38:37 +00:00
2017-05-23 19:38:37 +00:00
2017-05-23 19:38:37 +00:00
2015-12-08 02:37:48 +00:00
2017-06-02 08:53:19 +00:00
2017-06-28 07:07:03 +00:00
2017-06-02 08:53:19 +00:00
2017-06-02 08:53:19 +00:00
2017-06-02 08:53:19 +00:00
2017-06-02 08:53:19 +00:00
2017-06-13 13:04:32 +00:00
2017-06-02 08:53:19 +00:00
2017-06-02 08:53:19 +00:00
2017-06-02 08:53:19 +00:00
2017-06-02 08:53:19 +00:00
2017-06-28 07:07:03 +00:00
2016-05-10 19:17:47 +00:00
2015-11-19 05:56:52 +00:00
2015-06-17 20:52:32 +00:00
2016-01-15 21:56:40 +00:00
2017-06-30 00:03:54 +00:00
2017-06-30 00:03:54 +00:00
2017-06-28 07:07:03 +00:00
2017-06-28 07:07:03 +00:00
2017-06-28 07:07:03 +00:00
2017-05-16 19:43:56 +00:00
2016-03-21 11:43:46 +00:00
2015-09-30 10:56:37 +00:00
2017-04-19 18:07:54 +00:00
2016-04-25 21:12:04 +00:00
2017-05-05 21:09:30 +00:00
2016-08-23 09:19:22 +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
2016-08-23 09:19:22 +00:00
2017-06-14 13:14:38 +00:00
2016-12-15 09:38:59 +00:00
2016-04-15 15:57:41 +00:00
2016-04-15 15:57:41 +00:00
2016-04-15 15:57:41 +00:00
2017-03-16 17:14:56 +00:00
2017-03-16 17:14:56 +00:00
2016-04-15 15:57:41 +00:00
2016-01-29 10:23:32 +00:00
2016-06-24 21:14:33 +00:00
2016-05-28 10:41:15 +00:00
2016-12-05 23:55:13 +00:00
2015-06-09 23:33:25 +00:00
2017-02-09 23:29:14 +00:00
2017-05-08 20:00:14 +00:00
2017-04-18 08:32:27 +00:00
2017-05-08 20:00:14 +00:00
2015-06-17 20:52:32 +00:00
2016-08-23 09:19:22 +00:00
2015-11-19 05:56:52 +00:00
2017-01-02 18:05:27 +00:00
2016-10-11 10:06:59 +00:00
2016-01-27 19:32:29 +00:00
2015-06-17 20:52:32 +00:00
2016-01-26 00:03:25 +00:00
2016-01-26 00:03:25 +00:00
2016-06-24 21:14:33 +00:00
2015-07-28 16:24:05 +00:00
2016-01-26 00:03:25 +00:00
2016-06-16 16:09:53 +00:00
2017-07-01 02:55:22 +00:00
2017-07-01 02:55:22 +00:00
2017-07-01 02:55:22 +00:00
2016-01-13 00:03:35 +00:00
2017-02-13 12:32:47 +00:00
2016-05-28 04:47:13 +00:00
2017-02-13 12:32:47 +00:00
2016-05-10 19:17:47 +00:00
2015-09-18 20:08:18 +00:00
2016-08-23 09:19:22 +00:00
2016-05-28 04:47:13 +00:00
2015-07-16 00:58:23 +00:00
2015-10-26 20:49:49 +00:00
2016-06-20 17:45:33 +00:00
2015-07-07 06:54:42 +00:00
2016-05-28 04:47:13 +00:00
2016-01-15 10:26:17 +00:00
2017-05-23 21:22:16 +00:00
2017-04-20 21:56:52 +00:00
2015-07-03 08:21:38 +00:00
2017-02-15 19:49:14 +00:00
2016-01-08 17:46:05 +00:00
2017-06-28 07:07:03 +00:00
2017-06-28 07:07:03 +00:00
2016-06-24 21:14:33 +00:00
2017-02-23 22:35:00 +00:00
2015-08-29 11:50:08 +00:00
2017-02-13 12:32:47 +00:00
2017-04-07 22:01:23 +00:00
2017-02-13 12:32:47 +00:00
2017-06-17 02:08:18 +00:00
2016-12-27 18:35:19 +00:00
2017-03-07 11:17:53 +00:00
2015-08-21 10:48:17 +00:00
2016-11-11 17:50:09 +00:00
2017-06-02 10:24:14 +00:00
2015-06-17 20:52:32 +00:00
2016-01-26 00:03:25 +00:00
2017-03-14 00:34:14 +00:00
2015-06-17 20:52:32 +00:00
2016-05-10 19:17:47 +00:00
2016-08-23 09:19:22 +00:00
2016-08-10 18:36:18 +00:00
2016-08-23 09:19:22 +00:00
2015-11-18 00:40:54 +00:00
2017-06-28 07:07:03 +00:00
2015-11-18 00:40:54 +00:00
2017-03-14 00:34:14 +00:00
2017-05-18 07:20:52 +00:00
2015-12-01 05:29:22 +00:00
2015-06-08 18:50:43 +00:00
2016-08-23 09:19:22 +00:00
2017-06-28 07:07:03 +00:00
2016-12-09 19:08:15 +00:00
2016-12-09 19:08:15 +00:00
2016-09-09 13:35:36 +00:00
2016-08-25 00:06:52 +00:00
2017-06-28 07:07:03 +00:00
2016-07-20 09:48:24 +00:00
2016-01-08 00:34:44 +00:00
2016-01-08 00:34:44 +00:00
2016-05-12 21:22:37 +00:00
2016-04-08 18:15:37 +00:00
2016-04-08 18:15:37 +00:00
2016-04-25 14:29:18 +00:00
2016-04-26 03:43:49 +00:00
2016-08-23 09:19:22 +00:00
2016-04-11 22:27:40 +00:00
2017-04-10 20:18:21 +00:00
2016-09-13 12:18:15 +00:00
2017-01-31 14:35:01 +00:00
2017-06-06 08:16:19 +00:00
2015-06-17 20:52:32 +00:00
2017-06-28 07:07:03 +00:00
2017-06-29 08:45:31 +00:00
2016-05-31 12:39:30 +00:00
2016-06-07 11:47:24 +00:00
2015-10-05 14:49:54 +00:00
2017-06-28 07:07:03 +00:00
2016-02-17 16:35:18 +00:00
2017-04-10 20:18:21 +00:00
2016-01-15 10:26:51 +00:00
2017-06-28 07:07:03 +00:00
2016-05-05 18:38:53 +00:00
2016-10-10 16:01:54 +00:00
2017-05-03 16:54:30 +00:00
2017-03-01 18:12:29 +00:00
2017-03-01 18:12:29 +00:00
2015-10-26 18:23:16 +00:00
2015-10-05 14:49:54 +00:00
2015-08-13 10:48:22 +00:00
2016-05-10 19:17:47 +00:00
2017-06-28 07:07:03 +00:00
2017-06-29 14:51:54 +00:00
2017-03-25 00:13:24 +00:00
2017-04-06 20:22:51 +00:00
2016-04-13 23:08:27 +00:00
2016-09-09 12:52:24 +00:00
2016-10-18 09:08:54 +00:00
2016-08-23 09:19:22 +00:00
2017-02-04 02:27:20 +00:00
2017-01-11 19:55:19 +00:00
2016-08-24 19:02:29 +00:00
2016-05-13 19:16:14 +00:00
2015-08-21 21:52:48 +00:00
2017-02-03 11:14:39 +00:00
2017-05-26 13:59:12 +00:00
2015-10-05 14:49:54 +00:00
2016-06-03 15:38:55 +00:00
2016-08-23 09:19:22 +00:00
2017-05-26 13:59:12 +00:00
2015-08-19 14:11:27 +00:00
2016-07-15 07:55:21 +00:00
2017-05-25 21:26:32 +00:00
2017-05-25 21:26:32 +00:00
2017-06-28 07:07:03 +00:00
2017-05-25 21:26:32 +00:00
2017-05-25 21:26:32 +00:00
2017-02-01 11:55:03 +00:00
2017-02-10 17:41:08 +00:00
2016-10-19 16:58:59 +00:00
2017-01-27 03:41:53 +00:00
2015-08-17 19:37:12 +00:00
2015-09-30 10:56:37 +00:00
2017-02-27 01:15:57 +00:00
2015-07-24 09:31:48 +00:00
2015-07-12 18:16:40 +00:00
2016-07-29 23:33:48 +00:00
2017-01-02 18:05:27 +00:00
2017-03-23 16:47:47 +00:00
2016-04-11 22:27:40 +00:00
2016-08-23 09:19:22 +00:00
2015-09-30 10:56:37 +00:00
2017-04-06 22:42:18 +00:00
2016-06-16 16:09:53 +00:00
2016-05-31 15:31:55 +00:00
2016-04-22 20:40:10 +00:00
2016-03-31 19:42:04 +00:00
2015-10-26 10:04:52 +00:00
2015-12-17 01:29:08 +00:00
2016-02-19 03:13:40 +00:00
2017-04-06 19:05:41 +00:00
2016-01-26 00:03:25 +00:00
2017-03-17 00:34:26 +00:00
2017-03-02 21:39:39 +00:00
2017-01-16 13:39:00 +00:00
2015-09-30 10:56:37 +00:00
2016-03-03 22:38:39 +00:00
2016-07-20 04:13:01 +00:00
2017-02-25 15:17:16 +00:00
2017-07-05 17:55:42 +00:00
2015-10-27 10:25:20 +00:00
2017-07-07 03:02:18 +00:00
2016-12-17 02:16:26 +00:00
2017-06-28 07:07:03 +00:00
2017-03-01 22:51:31 +00:00
2017-04-05 14:09:39 +00:00
2015-07-16 22:34:16 +00:00
2016-12-23 02:56:07 +00:00
2017-06-28 07:07:03 +00:00
2016-01-29 19:18:46 +00:00
2017-06-12 17:15:41 +00:00
2017-05-25 21:26:32 +00:00
2016-05-10 19:17:47 +00:00
2017-03-07 20:29:02 +00:00
2016-01-27 19:32:29 +00:00
2017-03-07 09:38:16 +00:00
2017-03-14 09:13:22 +00:00
2017-04-07 22:01:23 +00:00
2017-02-10 17:41:08 +00:00
2016-01-25 11:25:36 +00:00
2017-02-10 17:41:08 +00:00
2015-09-30 10:56:37 +00:00
2015-12-20 06:41:44 +00:00
2015-12-20 06:41:44 +00:00
2016-07-25 22:25:25 +00:00
2016-07-25 22:25:25 +00:00
2017-06-30 00:03:54 +00:00
2017-04-10 20:18:21 +00:00
2015-11-19 05:56:52 +00:00
2017-03-14 00:34:14 +00:00
2016-05-31 12:39:30 +00:00
2017-06-30 00:03:54 +00:00
2016-07-29 09:16:46 +00:00
2016-05-10 19:17:47 +00:00
2015-11-19 05:56:52 +00:00
2015-07-07 14:45:12 +00:00
2016-08-05 20:58:29 +00:00
2016-04-05 22:44:44 +00:00
2016-10-28 17:21:05 +00:00
2016-03-02 19:20:00 +00:00
2017-06-28 07:07:03 +00:00
2017-02-08 22:30:47 +00:00
2016-09-08 13:12:22 +00:00
2016-08-10 09:34:34 +00:00
2016-06-07 12:13:34 +00:00
2016-09-07 03:17:19 +00:00
2016-11-17 10:56:58 +00:00
2016-05-10 19:17:47 +00:00
2016-11-17 10:56:58 +00:00
2015-12-01 05:29:22 +00:00
2017-02-14 21:02:24 +00:00
2015-12-15 10:10:40 +00:00
2015-09-18 18:19:40 +00:00
2016-07-20 04:13:01 +00:00
2016-12-27 18:35:19 +00:00
2015-11-30 20:37:58 +00:00
2017-02-20 12:05:07 +00:00
2016-07-13 20:36:03 +00:00
2016-05-10 19:17:47 +00:00
2017-06-29 14:51:54 +00:00
2016-09-19 09:11:09 +00:00
2015-08-31 21:10:35 +00:00
2016-01-26 00:03:25 +00:00
2016-06-01 21:57:11 +00:00
2016-12-27 18:35:19 +00:00
2016-01-26 00:03:25 +00:00
2016-01-29 10:23:32 +00:00
2016-02-17 16:35:18 +00:00
2016-07-15 22:31:14 +00:00
2015-10-26 21:32:53 +00:00
2015-07-28 22:44:28 +00:00
2017-04-11 08:43:32 +00:00
2016-10-03 10:12:32 +00:00
2015-12-20 06:41:44 +00:00
2015-12-20 06:41:44 +00:00
2016-07-25 22:25:25 +00:00
2016-08-10 09:34:34 +00:00
2016-12-27 18:35:19 +00:00
2017-05-30 21:28:57 +00:00
2017-04-26 13:41:43 +00:00
2017-06-20 15:01:38 +00:00
2016-08-23 09:19:22 +00:00
2016-06-24 00:08:01 +00:00
2016-05-10 19:17:47 +00:00
2017-02-03 11:15:53 +00:00
2017-02-13 14:07:45 +00:00
2017-04-07 22:01:23 +00:00
2017-05-08 10:37:34 +00:00
2017-04-19 21:23:09 +00:00
2015-09-30 10:56:37 +00:00
2017-06-28 07:07:03 +00:00
2017-02-13 17:18:00 +00:00
2016-04-26 05:04:37 +00:00
2017-05-27 14:07:03 +00:00
2016-03-17 20:10:28 +00:00
2016-03-17 20:10:28 +00:00
2017-01-10 22:02:30 +00:00
2017-06-28 07:07:03 +00:00
2017-04-20 19:54:02 +00:00
2017-06-22 12:11:38 +00:00
2017-04-20 19:54:02 +00:00
2017-06-28 07:07:03 +00:00
2016-09-12 13:14:14 +00:00
2016-05-10 19:17:47 +00:00
2015-10-28 22:56:36 +00:00
2016-04-15 15:57:41 +00:00
2017-06-28 07:07:03 +00:00
2016-10-18 21:03:40 +00:00
2017-06-28 07:07:03 +00:00
2017-06-28 07:07:03 +00:00
2017-06-28 07:07:03 +00:00
2017-06-28 07:07:03 +00:00
2015-09-30 10:56:37 +00:00
2017-06-28 07:07:03 +00:00
2017-06-28 07:07:03 +00:00
2017-03-01 22:56:20 +00:00
2017-03-01 22:56:20 +00:00
2016-04-14 07:13:24 +00:00
2015-08-13 17:28:16 +00:00
2015-08-17 07:13:10 +00:00
2015-09-30 10:56:37 +00:00
2016-12-16 18:44:08 +00:00
2017-06-28 07:07:03 +00:00
2017-02-13 12:32:47 +00:00
2015-11-17 17:25:15 +00:00
2017-06-28 07:07:03 +00:00
2015-09-30 10:56:37 +00:00
2015-09-30 10:56:37 +00:00
2017-06-28 07:07:03 +00:00
2017-06-28 07:07:03 +00:00
2017-04-19 20:39:39 +00:00
2017-01-11 19:33:38 +00:00
2017-06-28 07:07:03 +00:00
2016-12-20 20:05:07 +00:00
2016-08-23 09:19:22 +00:00
2016-03-21 18:00:02 +00:00
2016-07-06 11:22:11 +00:00
2015-07-21 00:18:59 +00:00
2017-06-21 06:39:42 +00:00
2017-06-21 06:39:42 +00:00
2016-11-23 02:07:04 +00:00
2016-04-19 23:51:52 +00:00