Jakob Stoklund Olesen 980daea857 Fix Bug 4657: register scavenger asserts with subreg lowering
When LowerSubregsInstructionPass::LowerInsert eliminates an INSERT_SUBREG
instriction because it is an identity copy, make sure that the same registers
are alive before and after the elimination.

When the super-register is marked <undef> this requires inserting an
IMPLICIT_DEF instruction to make sure the super register is live.

Fix a related bug where a kill flag on the inserted sub-register was not transferred properly.

Finally, clear the undef flag in MachineInstr::addRegisterKilled. Undef implies dead and kill implies live, so they cant both be valid.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77989 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-03 20:08:18 +00:00
..
2008-02-17 20:02:20 +00:00
2007-03-19 18:27:35 +00:00
2007-07-19 23:13:04 +00:00
2007-04-16 17:36:08 +00:00
2007-04-16 17:36:08 +00:00
2007-07-19 23:13:04 +00:00
2008-04-10 23:49:09 +00:00
2008-04-10 23:49:09 +00:00
2007-04-16 15:15:52 +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-07-06 22:23:46 +00:00
2009-06-26 16:20:06 +00:00
2008-02-17 20:02:20 +00:00
2007-03-08 19:27:32 +00:00
2007-04-16 17:36:08 +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-08-02 00:32:26 +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
2007-04-16 17:36:08 +00:00
2008-02-17 20:02:20 +00:00
2007-08-15 22:13:27 +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
2008-02-17 20:02:20 +00:00
2007-04-04 00:15:17 +00:00
2007-04-28 06:03:12 +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-06-29 07:51:04 +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-07-06 22:05:45 +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-01-15 20:18:42 +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
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
2008-02-17 20:02:20 +00:00
2007-04-27 21:23:17 +00:00
2007-04-27 21:08:48 +00:00
2007-11-05 18:33:37 +00:00
2007-10-13 06:56:18 +00:00
2008-02-17 20:02:20 +00:00
2008-02-17 20:02:20 +00:00