Hal Finkel
82b3821208
Eliminate redundant CR moves on PPC32.
...
The 32-bit ABI requires CR bit 6 to be set if the call has fp arguments and
unset if it doesn't. The solution up to now was to insert a MachineNode to
set/unset the CR bit, which produces a CR vreg. This vreg was then copied
into CR bit 6. When the register allocator saw a bunch of these in the same
function, it allocated the set/unset CR bit in some random CR register (1
extra instruction) and then emitted CR moves before every vararg function
call, rather than just setting and unsetting CR bit 6 directly before every
vararg function call. This patch instead inserts a PPCcrset/PPCcrunset
instruction which are then matched by a dedicated instruction pattern.
Patch by Tobias von Koch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162725 91177308-0d34-0410-b5e6-96231b3b80d8
2012-08-28 02:10:27 +00:00
..
2012-07-02 12:47:22 +00:00
2012-07-02 19:09:46 +00:00
2012-07-02 12:47:22 +00:00
2011-06-17 06:36:20 +00:00
2011-12-12 11:59:10 +00:00
2012-07-02 12:47:22 +00:00
2012-06-08 23:15:12 +00:00
2012-06-09 03:14:50 +00:00
2012-07-02 12:47:22 +00:00
2012-06-08 23:15:12 +00:00
2012-06-08 23:15:12 +00:00
2011-08-31 21:04:11 +00:00
2012-06-08 23:15:12 +00:00
2011-12-05 17:55:17 +00:00
2011-12-05 17:55:17 +00:00
2011-12-05 17:55:17 +00:00
2011-06-17 03:14:27 +00:00
2011-11-27 06:54:59 +00:00
2011-06-17 03:14:27 +00:00
2011-10-28 23:11:03 +00:00
2011-05-02 15:58:16 +00:00
2011-09-14 00:29:50 +00:00
2012-06-10 19:32:29 +00:00
2011-07-20 05:58:47 +00:00
2011-12-30 00:34:00 +00:00
2012-05-17 23:44:19 +00:00
2011-04-05 21:40:41 +00:00
2012-06-10 19:32:29 +00:00
2011-12-06 20:55:41 +00:00
2011-12-09 01:16:26 +00:00
2012-06-22 22:31:00 +00:00
2011-06-17 03:14:27 +00:00
2011-06-17 03:14:27 +00:00
2012-07-02 12:47:22 +00:00
2011-09-26 21:30:17 +00:00
2011-09-26 21:30:17 +00:00
2011-09-26 21:30:17 +00:00
2011-09-26 21:30:17 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2011-12-02 04:58:12 +00:00
2011-12-15 17:59:23 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2011-10-17 04:03:59 +00:00
2012-06-19 21:46:25 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-08-28 02:10:27 +00:00
2011-08-30 17:04:16 +00:00
2012-06-08 19:19:53 +00:00
2012-06-16 20:34:07 +00:00
2012-06-16 20:34:07 +00:00
2012-06-09 22:10:19 +00:00
2011-12-12 11:59:10 +00:00
2012-07-02 12:47:22 +00:00
2012-01-16 22:53:41 +00:00
2012-08-03 23:29:17 +00:00
2012-07-02 12:47:22 +00:00
2012-08-03 23:29:17 +00:00
2011-12-05 17:55:17 +00:00
2011-12-30 00:34:00 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 18:37:59 +00:00
2011-12-02 04:58:12 +00:00
2012-06-22 23:10:08 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-08-14 05:19:07 +00:00
2012-03-25 09:02:19 +00:00
2012-07-02 19:09:46 +00:00
2012-07-02 18:37:59 +00:00
2012-06-04 02:21:00 +00:00
2011-06-17 03:14:27 +00:00
2011-05-01 15:44:13 +00:00
2012-07-02 12:47:22 +00:00
2011-06-20 15:28:39 +00:00
2011-06-17 15:21:10 +00:00
2012-08-06 21:21:44 +00:00
2012-02-24 17:54:01 +00:00
2012-02-27 20:42:19 +00:00
2012-04-01 20:08:17 +00:00
2012-08-24 16:26:02 +00:00
2012-03-24 03:53:55 +00:00
2012-08-28 02:10:15 +00:00
2012-06-22 22:31:00 +00:00
2011-10-17 16:01:41 +00:00
2011-05-02 15:58:16 +00:00
2012-04-16 03:33:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 18:37:59 +00:00
2012-07-02 19:09:46 +00:00
2011-03-04 20:03:14 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-07-02 12:47:22 +00:00
2012-06-04 02:21:00 +00:00
2012-06-21 20:10:48 +00:00
2012-06-19 02:34:32 +00:00
2012-06-04 17:36:38 +00:00
2012-07-02 12:47:22 +00:00
2012-06-10 19:32:29 +00:00
2011-07-11 16:21:52 +00:00