Duncan Sands
5057f38141
Exploit distributive laws (eg: And distributes over Or, Mul over Add, etc) in a
...
fairly systematic way in instcombine. Some of these cases were already dealt
with, in which case I removed the existing code. The case of Add has a bunch of
funky logic which covers some of this plus a few variants (considers shifts to be
a form of multiplication), which I didn't touch. The simplification performed is:
A*B+A*C -> A*(B+C). The improvement is to do this in cases that were not already
handled [such as A*B-A*C -> A*(B-C), which was reported on the mailing list], and
also to do it more often by not checking for "only one use" if "B+C" simplifies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120024 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-23 14:23:47 +00:00
..
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-11-03 15:29:06 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-08 22:34:10 +00:00
2009-12-17 22:42:29 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-10-12 06:14:06 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-09 00:09:15 +00:00
2009-09-09 00:09:15 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-11-03 15:29:06 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2010-04-07 22:53:17 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-10-12 06:14:06 +00:00
2009-11-07 19:11:46 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-05 11:35:16 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-08 22:34:10 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-27 06:25:05 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2010-02-28 02:51:25 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-12-18 08:22:35 +00:00
2010-01-28 17:22:42 +00:00
2010-03-04 06:54:10 +00:00
2010-11-01 21:08:20 +00:00
2010-11-22 16:32:50 +00:00
2010-11-23 14:23:47 +00:00
2009-09-08 22:34:10 +00:00
2009-09-11 18:01:28 +00:00
2009-10-26 22:14:22 +00:00
2009-10-26 22:14:22 +00:00
2009-09-08 22:34:10 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-11-03 15:29:06 +00:00
2010-08-03 18:20:32 +00:00
2009-09-11 18:01:28 +00:00
2010-05-28 15:09:00 +00:00
2010-09-10 22:39:55 +00:00
2009-09-08 22:34:10 +00:00
2009-09-08 22:34:10 +00:00
2009-09-08 22:34:10 +00:00
2009-09-11 18:01:28 +00:00
2009-09-08 22:34:10 +00:00
2009-09-11 18:01:28 +00:00
2009-09-08 22:34:10 +00:00
2009-09-08 22:34:10 +00:00
2009-09-08 22:34:10 +00:00
2009-09-08 22:34:10 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-08 22:34:10 +00:00
2009-09-11 18:01:28 +00:00
2009-09-08 22:34:10 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-11-07 19:11:46 +00:00
2009-09-08 22:34:10 +00:00
2009-09-08 22:34:10 +00:00
2009-09-08 22:34:10 +00:00
2009-09-08 22:34:10 +00:00
2009-09-11 18:01:28 +00:00
2009-09-08 22:34:10 +00:00
2009-09-08 22:34:10 +00:00
2009-09-08 22:34:10 +00:00
2009-09-08 22:34:10 +00:00
2009-09-08 22:34:10 +00:00
2009-09-09 00:22:49 +00:00
2010-01-10 07:08:30 +00:00
2009-09-11 18:01:28 +00:00
2009-09-08 22:34:10 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-10-12 07:18:14 +00:00
2009-10-12 07:18:14 +00:00
2009-09-08 22:34:10 +00:00
2010-05-27 19:09:06 +00:00
2009-10-12 07:18:14 +00:00
2010-09-08 22:16:17 +00:00
2009-09-11 18:01:28 +00:00
2010-01-23 04:35:57 +00:00
2010-10-25 16:16:27 +00:00
2009-09-11 18:01:28 +00:00
2009-09-08 22:34:10 +00:00
2010-08-28 01:50:57 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2010-02-17 00:54:58 +00:00
2010-01-05 22:01:41 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2010-06-17 15:18:27 +00:00
2010-01-18 22:00:46 +00:00
2010-01-05 21:54:09 +00:00
2009-11-10 07:23:37 +00:00
2009-11-07 19:11:46 +00:00
2010-09-13 17:59:27 +00:00
2009-12-12 09:25:50 +00:00
2009-12-17 06:07:04 +00:00
2009-11-03 15:29:06 +00:00
2009-09-11 18:01:28 +00:00
2010-09-13 18:28:40 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-08 22:34:10 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-08 22:34:10 +00:00
2010-02-23 17:17:57 +00:00
2010-02-22 04:06:03 +00:00
2009-11-03 15:29:06 +00:00
2010-09-27 21:29:20 +00:00
2009-09-11 18:01:28 +00:00
2009-11-03 15:29:06 +00:00
2009-10-12 07:18:14 +00:00
2009-09-08 22:34:10 +00:00
2010-01-17 00:21:21 +00:00
2010-03-12 17:55:20 +00:00
2010-05-28 15:07:59 +00:00
2009-09-11 18:01:28 +00:00
2010-11-23 02:42:04 +00:00
2010-01-19 18:16:19 +00:00
2009-10-12 07:18:14 +00:00
2010-08-09 20:49:43 +00:00
2010-04-08 18:03:05 +00:00
2010-03-05 08:43:33 +00:00
2009-09-11 18:01:28 +00:00
2010-07-12 00:22:51 +00:00
2010-03-05 08:43:33 +00:00
2010-01-30 00:40:23 +00:00
2010-07-12 00:19:47 +00:00
2010-01-05 17:55:26 +00:00
2010-02-05 19:53:02 +00:00
2009-09-08 22:34:10 +00:00
2009-10-21 19:11:40 +00:00
2009-10-17 00:00:19 +00:00
2010-05-27 19:09:06 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2010-10-01 05:51:02 +00:00
2009-09-11 18:01:28 +00:00
2010-04-04 03:10:48 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-10-11 21:29:45 +00:00
2010-03-02 01:11:08 +00:00
2009-09-11 18:01:28 +00:00
2010-10-22 21:41:48 +00:00
2009-09-25 20:54:50 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2010-04-17 21:29:25 +00:00
2010-04-07 22:53:17 +00:00
2009-09-08 22:34:10 +00:00
2009-09-08 22:57:49 +00:00
2010-09-13 17:59:27 +00:00
2009-09-16 16:33:59 +00:00
2010-11-16 12:16:38 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2010-11-10 01:30:56 +00:00
2009-10-26 22:52:03 +00:00
2010-02-23 01:28:09 +00:00
2010-11-17 19:11:46 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-08 22:34:10 +00:00
2009-09-08 22:34:10 +00:00
2010-10-27 23:45:18 +00:00
2009-09-11 18:01:28 +00:00
2010-11-15 16:43:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-12-02 05:34:35 +00:00
2010-03-13 02:20:29 +00:00
2010-08-27 23:15:21 +00:00
2009-09-11 18:01:28 +00:00
2009-11-23 16:22:21 +00:00
2009-09-11 18:01:28 +00:00
2010-01-31 04:29:12 +00:00
2009-09-11 18:01:28 +00:00
2009-10-14 15:21:58 +00:00
2009-09-08 22:34:10 +00:00
2010-09-07 20:01:38 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-11-26 22:04:42 +00:00
2010-04-12 04:48:00 +00:00
2010-11-22 20:31:27 +00:00
2010-08-27 20:32:06 +00:00
2009-09-08 22:41:33 +00:00
2009-09-11 18:01:28 +00:00
2009-09-08 22:34:10 +00:00
2009-11-07 19:11:46 +00:00
2010-09-02 22:38:56 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2010-03-02 01:11:08 +00:00
2010-10-29 22:03:05 +00:00
2010-02-11 06:26:33 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2010-09-13 17:59:27 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-11 18:01:28 +00:00
2009-09-08 22:34:10 +00:00
2009-09-11 18:01:28 +00:00
2009-09-08 22:34:10 +00:00
2009-10-12 06:32:42 +00:00