Duncan Sands
096aa79276
Generalize the reassociation transform in SimplifyCommutative (now renamed to
...
SimplifyAssociativeOrCommutative) "(A op C1) op C2" -> "A op (C1 op C2)",
which previously was only done if C1 and C2 were constants, to occur whenever
"C1 op C2" simplifies (a la InstructionSimplify). Since the simplifying operand
combination can no longer be assumed to be the right-hand terms, consider all of
the possible permutations. When compiling "gcc as one big file", transform 2
(i.e. using right-hand operands) fires about 4000 times but it has to be said
that most of the time the simplifying operands are both constants. Transforms
3, 4 and 5 each fired once. Transform 6, which is an existing transform that
I didn't change, never fired. With this change, the testcase is now optimized
perfectly with one run of instcombine (previously it required instcombine +
reassociate + instcombine, and it may just have been luck that this worked).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119002 91177308-0d34-0410-b5e6-96231b3b80d8
2010-11-13 15:10:37 +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-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
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-06-28 21:30:07 +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-09-03 18:33:08 +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
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-08 22:34:10 +00:00
2010-10-27 23:45:18 +00:00
2009-09-11 18:01:28 +00:00
2010-11-13 15:10:37 +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-01-31 02:30:23 +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