Bill Schmidt 5ff776bfde 
	
	
	This patch addresses bug 15031. ... 
			The common code in the post-RA scheduler to break anti-dependencies on the
critical path contained a flaw.  In the reported case, an anti-dependency
between the overlapping registers %X4 and %R4 exists:
	%X29<def> = OR8 %X4, %X4
	%R4<def>, %X3<def,dead,tied3> = LBZU 1, %X3<kill,tied1>
The unpatched code breaks the dependency by replacing %R4 and its uses
with %R3, the first register on the available list.  However, %R3 and
%X3 overlap, so this creates two overlapping definitions on the same
instruction.
The fix is straightforward, preventing selection of a register that
overlaps any other defined register on the same instruction.
The test case is reduced from the bug report, and verifies that we no
longer produce "lbzu 3, 1(3)" when breaking this anti-dependency.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173706  91177308-0d34-0410-b5e6-96231b3b80d8 
		
	 
		2013-01-28 18:36:58 +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 
		 
	
		
	
		
	
		
			
			
			
			
			
			2010-03-14 21:08:40 +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 
		 
	
		
	
		
	
		
	
		
			
			
			
			
			
			2010-04-20 06:20:21 +00:00 
		 
	
		
			
			
			
			
			
			2011-12-30 00:34:00 +00:00 
		 
	
		
			
			
			
			
			
			2012-09-06 18:15:23 +00:00 
		 
	
		
			
			
			
			
			
			2010-04-02 02:21:24 +00:00 
		 
	
		
			
			
			
			
			
			2010-12-06 22:39:26 +00:00 
		 
	
		
			
			
			
			
			
			2011-04-05 21:40:41 +00:00 
		 
	
		
			
			
			
			
			
			2010-10-11 20:43:09 +00:00 
		 
	
		
			
			
			
			
			
			2010-12-18 19:53:14 +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-11-14 23:23:27 +00:00 
		 
	
		
			
			
			
			
			
			2012-11-13 18:40:58 +00:00 
		 
	
		
			
			
			
			
			
			2012-10-12 16:01:08 +00:00 
		 
	
		
			
			
			
			
			
			2012-11-18 06:21:03 +00:00 
		 
	
		
			
			
			
			
			
			2012-06-22 22:31:00 +00:00 
		 
	
		
	
		
	
		
			
			
			
			
			
			2010-09-27 06:44:54 +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 
		 
	
		
			
			
			
			
			
			2012-11-05 18:18:42 +00:00 
		 
	
		
			
			
			
			
			
			2011-09-26 21:30:17 +00:00 
		 
	
		
			
			
			
			
			
			2012-12-25 17:22:53 +00:00 
		 
	
		
			
			
			
			
			
			2011-09-26 21:30:17 +00:00 
		 
	
		
			
			
			
			
			
			2011-09-26 21:30:17 +00:00 
		 
	
		
			
			
			
			
			
			2012-11-24 13:18:25 +00:00 
		 
	
		
			
			
			
			
			
			2012-07-02 12:47:22 +00:00 
		 
	
		
			
			
			
			
			
			2012-07-02 12:47:22 +00:00 
		 
	
		
			
			
			
			
			
			2012-08-28 02:10:33 +00:00 
		 
	
		
			
			
			
			
			
			2012-07-02 12:47:22 +00:00 
		 
	
		
	
		
			
			
			
			
			
			2012-11-30 13:28:31 +00:00 
		 
	
		
			
			
			
			
			
			2012-07-02 12:47:22 +00:00 
		 
	
		
			
			
			
			
			
			2011-10-17 04:03:59 +00:00 
		 
	
		
	
		
			
			
			
			
			
			2012-11-05 19:39:45 +00:00 
		 
	
		
	
		
			
			
			
			
			
			2012-07-02 12:47:22 +00:00 
		 
	
		
			
			
			
			
			
			2013-01-17 17:45:19 +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 
		 
	
		
			
			
			
			
			
			2010-06-15 21:58:33 +00:00 
		 
	
		
			
			
			
			
			
			2012-09-12 14:47:47 +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-12-25 18:51:18 +00:00 
		 
	
		
	
		
	
		
			
			
			
			
			
			2010-07-16 22:51:10 +00:00 
		 
	
		
			
			
			
			
			
			2012-10-31 01:15:05 +00:00 
		 
	
		
			
			
			
			
			
			2010-03-28 07:58:37 +00:00 
		 
	
		
	
		
			
			
			
			
			
			2012-08-03 23:29:17 +00:00 
		 
	
		
			
			
			
			
			
			2013-01-11 10:36:13 +00:00 
		 
	
		
			
			
			
			
			
			2012-10-11 15:38:20 +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-08-28 16:12:39 +00:00 
		 
	
		
			
			
			
			
			
			2012-08-28 16:12:39 +00:00 
		 
	
		
			
			
			
			
			
			2012-07-02 12:47:22 +00:00 
		 
	
		
	
		
	
		
	
		
			
			
			
			
			
			2012-11-26 14:09:46 +00:00 
		 
	
		
	
		
	
		
			
			
			
			
			
			2012-07-02 18:37:59 +00:00 
		 
	
		
	
		
			
			
			
			
			
			2012-12-20 17:47:27 +00:00 
		 
	
		
			
			
			
			
			
			2011-12-02 04:58:12 +00:00 
		 
	
		
			
			
			
			
			
			2012-09-04 18:38:28 +00:00 
		 
	
		
	
		
			
			
			
			
			
			2012-10-29 18:35:49 +00:00 
		 
	
		
	
		
			
			
			
			
			
			2012-06-22 23:10:08 +00:00 
		 
	
		
			
			
			
			
			
			2012-07-02 12:47:22 +00:00 
		 
	
		
	
		
			
			
			
			
			
			2012-10-25 13:38:09 +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 
		 
	
		
	
		
			
			
			
			
			
			2013-01-14 22:04:38 +00:00 
		 
	
		
			
			
			
			
			
			2012-07-02 19:09:46 +00:00 
		 
	
		
	
		
			
			
			
			
			
			2012-07-02 18:37:59 +00:00 
		 
	
		
	
		
			
			
			
			
			
			2012-11-27 17:35:46 +00:00 
		 
	
		
			
			
			
			
			
			2012-11-27 17:35:46 +00:00 
		 
	
		
			
			
			
			
			
			2012-11-27 17:35:46 +00:00 
		 
	
		
			
			
			
			
			
			2012-11-27 17:35:46 +00:00 
		 
	
		
			
			
			
			
			
			2012-11-27 17:35:46 +00:00 
		 
	
		
			
			
			
			
			
			2012-11-27 17:35:46 +00:00 
		 
	
		
			
			
			
			
			
			2012-11-27 17:35:46 +00:00 
		 
	
		
			
			
			
			
			
			2013-01-07 19:29:18 +00:00 
		 
	
		
			
			
			
			
			
			2013-01-07 19:29:18 +00:00 
		 
	
		
			
			
			
			
			
			2012-11-27 23:36:26 +00:00 
		 
	
		
			
			
			
			
			
			2012-11-27 17:35:46 +00:00 
		 
	
		
			
			
			
			
			
			2012-11-14 23:23:27 +00:00 
		 
	
		
	
		
			
			
			
			
			
			2013-01-09 03:36:49 +00:00 
		 
	
		
			
			
			
			
			
			2012-11-09 19:18:49 +00:00 
		 
	
		
	
		
			
			
			
			
			
			2011-06-17 03:14:27 +00:00 
		 
	
		
			
			
			
			
			
			2011-05-01 15:44:13 +00:00 
		 
	
		
			
			
			
			
			
			2010-11-02 23:01:44 +00:00 
		 
	
		
			
			
			
			
			
			2010-11-02 23:01:44 +00:00 
		 
	
		
	
		
			
			
			
			
			
			2012-07-02 12:47:22 +00:00 
		 
	
		
			
			
			
			
			
			2012-10-10 20:54:15 +00:00 
		 
	
		
	
		
			
			
			
			
			
			2011-06-20 15:28:39 +00:00 
		 
	
		
			
			
			
			
			
			2012-11-05 19:39:45 +00:00 
		 
	
		
			
			
			
			
			
			2012-10-29 14:59:36 +00:00 
		 
	
		
			
			
			
			
			
			2012-09-18 19:51:44 +00:00 
		 
	
		
			
			
			
			
			
			2011-06-17 15:21:10 +00:00 
		 
	
		
			
			
			
			
			
			2012-08-06 21:21:44 +00:00 
		 
	
		
			
			
			
			
			
			2012-09-18 16:55:29 +00:00 
		 
	
		
			
			
			
			
			
			2012-04-01 20:08:17 +00:00 
		 
	
		
			
			
			
			
			
			2012-11-14 23:23:27 +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-10-29 17:49:34 +00:00 
		 
	
		
			
			
			
			
			
			2012-08-29 20:22:24 +00:00 
		 
	
		
			
			
			
			
			
			2012-09-24 20:47:19 +00:00 
		 
	
		
			
			
			
			
			
			2013-01-28 18:36:58 +00:00 
		 
	
		
	
		
			
			
			
			
			
			2013-01-17 19:46:51 +00:00 
		 
	
		
	
		
			
			
			
			
			
			2012-08-28 02:10:33 +00:00 
		 
	
		
			
			
			
			
			
			2012-07-02 12:47:22 +00:00 
		 
	
		
	
		
			
			
			
			
			
			2010-11-14 22:22:14 +00:00 
		 
	
		
			
			
			
			
			
			2012-07-02 18:37:59 +00:00 
		 
	
		
			
			
			
			
			
			2012-07-02 19:09:46 +00:00 
		 
	
		
			
			
			
			
			
			2010-04-07 22:53:17 +00:00 
		 
	
		
	
		
	
		
	
		
	
		
	
		
	
		
			
			
			
			
			
			2012-12-10 18:49:16 +00:00 
		 
	
		
			
			
			
			
			
			2012-12-30 19:03:32 +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 
		 
	
		
	
		
			
			
			
			
			
			2010-11-14 22:22:14 +00:00 
		 
	
		
	
		
			
			
			
			
			
			2012-10-16 13:30:53 +00:00 
		 
	
		
			
			
			
			
			
			2012-10-25 13:38:09 +00:00 
		 
	
		
			
			
			
			
			
			2012-11-24 13:18:25 +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-12-11 20:30:11 +00:00 
		 
	
		
			
			
			
			
			
			2012-12-11 20:30:11 +00:00 
		 
	
		
			
			
			
			
			
			2012-12-14 17:02:38 +00:00 
		 
	
		
			
			
			
			
			
			2012-12-14 17:02:38 +00:00 
		 
	
		
			
			
			
			
			
			2012-12-14 20:28:38 +00:00 
		 
	
		
			
			
			
			
			
			2012-12-12 19:29:35 +00:00 
		 
	
		
			
			
			
			
			
			2012-06-04 17:36:38 +00:00 
		 
	
		
			
			
			
			
			
			2012-07-02 12:47:22 +00:00 
		 
	
		
			
			
			
			
			
			2010-11-14 22:22:14 +00:00 
		 
	
		
			
			
			
			
			
			2012-10-29 21:18:16 +00:00 
		 
	
		
			
			
			
			
			
			2010-10-10 18:59:01 +00:00 
		 
	
		
	
		
	
		
	
		
			
			
			
			
			
			2012-06-10 19:32:29 +00:00 
		 
	
		
	
		
			
			
			
			
			
			2012-10-30 13:50:19 +00:00 
		 
	
		
			
			
			
			
			
			2010-08-02 00:18:19 +00:00 
		 
	
		
			
			
			
			
			
			2012-10-08 17:27:24 +00:00 
		 
	
		
			
			
			
			
			
			2013-01-12 19:06:44 +00:00 
		 
	
		
	
		
	
		
	
		
			
			
			
			
			
			2012-11-30 19:15:10 +00:00 
		 
	
		
	
		
			
			
			
			
			
			2012-11-15 20:56:03 +00:00 
		 
	
		
			
			
			
			
			
			2012-12-19 15:49:14 +00:00 
		 
	
		
	
		
	
		
	
		
	
		
			
			
			
			
			
			2012-10-30 18:29:42 +00:00 
		 
	
		
	
		
	
		
	
		
			
			
			
			
			
			2011-07-11 16:21:52 +00:00 
		 
	
		
			
			
			
			
			
			2012-10-10 22:25:11 +00:00