Evan Cheng
358dec5180
Part 1.
...
- Change register allocation hint to a pair of unsigned integers. The hint type is zero (which means prefer the register specified as second part of the pair) or entirely target dependent.
- Allow targets to specify alternative register allocation orders based on allocation hint.
Part 2.
- Use the register allocation hint system to implement more aggressive load / store multiple formation.
- Aggressively form LDRD / STRD. These are formed *before* register allocation. It has to be done this way to shorten live interval of base and offset registers. e.g.
v1025 = LDR v1024, 0
v1026 = LDR v1024, 0
=>
v1025,v1026 = LDRD v1024, 0
If this transformation isn't done before allocation, v1024 will overlap v1025 which means it more difficult to allocate a register pair.
- Even with the register allocation hint, it may not be possible to get the desired allocation. In that case, the post-allocation load / store multiple pass must fix the ldrd / strd instructions. They can either become ldm / stm instructions or back to a pair of ldr / str instructions.
This is work in progress, not yet enabled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73381 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-15 08:28:29 +00:00
..
2008-02-17 20:02:20 +00:00
2009-06-04 22:49:04 +00:00
2009-04-16 03:18:22 +00:00
2007-09-05 11:53:04 +00:00
2007-09-05 11:53:04 +00:00
2007-09-05 11:53:04 +00:00
2008-08-05 17:52:54 +00:00
2008-02-06 22:07:17 +00:00
2008-02-29 19:28:11 +00:00
2008-03-06 08:20:51 +00:00
2008-03-07 20:12:54 +00:00
2008-04-10 23:49:09 +00:00
2008-04-10 23:49:09 +00:00
2008-04-11 17:54:45 +00:00
2008-05-20 08:10:37 +00:00
2008-05-20 08:13:21 +00:00
2008-07-18 21:18:48 +00:00
2008-07-25 00:55:17 +00:00
2008-12-06 02:00:55 +00:00
2008-09-15 06:28:41 +00:00
2008-09-17 18:36:25 +00:00
2008-11-18 22:28:38 +00:00
2009-06-05 19:08:58 +00:00
2009-02-17 06:41:03 +00:00
2009-04-10 23:58:38 +00:00
2009-06-04 22:49:04 +00:00
2009-06-04 22:49:04 +00:00
2009-03-09 19:15:00 +00:00
2009-04-14 01:51:40 +00:00
2009-04-08 18:00:55 +00:00
2009-06-04 22:49:04 +00:00
2009-04-08 16:20:57 +00:00
2009-04-09 17:16:43 +00:00
2009-05-06 18:25:01 +00:00
2009-05-07 23:47:03 +00:00
2009-05-12 03:48:10 +00:00
2009-05-19 05:53:42 +00:00
2009-06-04 20:25:48 +00:00
2009-06-12 21:34:26 +00:00
2007-08-15 13:49:33 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2009-04-17 19:07:39 +00:00
2009-04-17 19:07:39 +00:00
2009-04-17 19:07:39 +00:00
2009-04-17 19:07:39 +00:00
2009-04-17 19:07:39 +00:00
2009-04-17 19:07:39 +00:00
2009-04-17 19:07:39 +00:00
2009-06-08 22:54:15 +00:00
2009-05-19 10:02:36 +00:00
2009-05-19 10:02:36 +00:00
2007-08-15 13:36:28 +00:00
2008-02-17 20:02:20 +00:00
2009-05-18 15:16:49 +00:00
2007-08-15 13:36:28 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2009-03-24 00:17:40 +00:00
2009-06-04 22:49:04 +00:00
2008-02-17 20:02:20 +00:00
2008-05-20 21:00:03 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2007-08-15 13:36:28 +00:00
2009-06-04 22:49:04 +00:00
2007-11-27 22:43:37 +00:00
2009-06-04 22:49:04 +00:00
2009-04-17 19:07:39 +00:00
2008-02-17 20:02:20 +00:00
2009-06-04 22:49:04 +00:00
2008-02-17 20:02:20 +00:00
2008-04-01 02:18:22 +00:00
2009-06-04 22:49:04 +00:00
2008-09-26 23:51:19 +00:00
2007-08-15 22:13:27 +00:00
2007-08-15 13:36:28 +00:00
2007-08-15 13:36:28 +00:00
2008-12-06 02:00:55 +00:00
2008-12-06 02:00:55 +00:00
2008-12-06 02:00:55 +00:00
2007-09-20 18:03:23 +00:00
2007-09-20 18:03:23 +00:00
2007-09-20 18:03:23 +00:00
2007-09-20 18:03:23 +00:00
2007-09-20 18:03:23 +00:00
2007-09-20 18:03:23 +00:00
2007-09-20 18:03:23 +00:00
2007-09-20 18:03:23 +00:00
2009-06-04 22:49:04 +00:00
2008-02-17 20:02:20 +00:00
2009-04-01 17:58:54 +00:00
2009-04-01 17:58:54 +00:00
2008-02-17 20:02:20 +00:00
2007-08-15 13:36:28 +00:00
2008-02-17 20:02:20 +00:00
2007-08-15 13:36:28 +00:00
2007-08-15 13:36:28 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2009-06-15 08:28:29 +00:00
2007-08-15 13:36:28 +00:00
2008-02-17 20:02:20 +00:00
2007-08-15 13:36:28 +00:00
2007-08-15 13:36:28 +00:00
2009-03-24 00:17:40 +00:00
2009-06-12 20:46:18 +00:00
2009-06-05 19:08:58 +00:00
2008-02-17 20:02:20 +00:00
2009-06-05 19:08:58 +00:00
2008-02-17 20:02:20 +00:00
2007-08-15 13:36:28 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2009-02-22 08:35:56 +00:00
2009-01-15 20:18:42 +00:00
2009-02-05 08:46:33 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2009-04-17 19:07:39 +00:00
2009-04-17 19:07:39 +00:00
2009-04-17 19:07:39 +00:00
2009-04-17 19:07:39 +00:00
2009-04-17 19:07:39 +00:00
2009-04-17 19:07:39 +00:00
2009-04-17 19:07:39 +00:00
2009-04-17 19:07:39 +00:00
2009-04-17 19:07:39 +00:00
2009-04-17 20:40:20 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2008-08-07 09:55:06 +00:00
2009-03-12 05:56:37 +00:00
2007-08-15 13:36:28 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2007-08-15 13:36:28 +00:00
2009-06-13 09:12:55 +00:00
2008-02-17 20:02:20 +00:00
2009-06-04 01:15:28 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00
2007-08-15 13:36:28 +00:00
2007-11-08 17:20:05 +00:00
2007-11-05 18:33:37 +00:00
2007-08-15 13:36:28 +00:00
2007-10-13 06:56:18 +00:00
2008-11-04 22:19:55 +00:00
2007-08-15 13:49:33 +00:00
2007-08-15 13:36:28 +00:00
2007-08-15 13:36:28 +00:00
2009-03-08 04:02:49 +00:00
2008-02-17 20:02:20 +00:00
2007-08-15 13:36:28 +00:00
2008-02-17 20:02:20 +00:00
2009-06-04 22:49:04 +00:00
2008-02-17 20:02:20 +00:00