Hal Finkel 5bbbb37ff2 Conservatively handle multiple MMOs in MIsNeedChainEdge
MIsNeedChainEdge, which is used by -enable-aa-sched-mi (AA in misched), had an
llvm_unreachable when -enable-aa-sched-mi is enabled and we reach an
instruction with multiple MMOs. Instead, return a conservative answer. This
allows testing -enable-aa-sched-mi on x86.

Also, this moves the check above the isUnsafeMemoryObject checks.
isUnsafeMemoryObject is currently correct only for instructions with one MMO
(as noted in the comment in isUnsafeMemoryObject):

  // We purposefully do no check for hasOneMemOperand() here
  // in hope to trigger an assert downstream in order to
  // finish implementation.

The problem with this is that, had the candidate edge passed the
"!MIa->mayStore() && !MIb->mayStore()" check, the hoped-for assert would never
happen (which could, in theory, lead to incorrect behavior if one of these
secondary MMOs was volatile, for example).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198795 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-08 21:52:02 +00:00
..
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-09-16 22:22:07 +00:00
2013-03-06 00:17:04 +00:00
2013-03-06 00:17:04 +00:00
2013-03-06 00:17:04 +00:00
2013-03-06 00:17:04 +00:00
2013-03-06 00:17:04 +00:00
2013-03-06 00:17:04 +00:00
2013-03-06 00:17:04 +00:00
2013-08-27 08:39:25 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-08-21 17:14:31 +00:00
2013-10-16 02:27:33 +00:00
2013-12-11 08:38:42 +00:00
2013-12-11 08:38:42 +00:00
2013-12-16 14:36:50 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-09-16 22:22:07 +00:00
2013-11-14 06:05:49 +00:00
2013-10-18 14:49:59 +00:00
2013-08-12 12:43:26 +00:00
2013-12-11 04:10:41 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-03-01 18:40:30 +00:00
2013-02-25 23:01:03 +00:00
2013-03-01 19:23:37 +00:00
2013-10-15 23:33:07 +00:00
2013-02-12 16:07:27 +00:00
2013-02-20 18:04:21 +00:00
2013-03-20 02:33:21 +00:00
2013-03-14 06:57:42 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 17:51:02 +00:00
2013-10-15 17:51:58 +00:00
2013-12-03 09:17:32 +00:00
2013-11-02 00:10:02 +00:00
2013-11-22 17:56:57 +00:00
2013-11-25 18:05:22 +00:00
2013-11-26 20:31:31 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-31 17:50:45 +00:00
2013-09-19 23:00:28 +00:00
2013-10-15 23:33:07 +00:00
2013-09-23 16:57:52 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-02-19 17:11:48 +00:00
2013-10-15 23:33:07 +00:00
2013-12-14 06:53:06 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-11-17 10:53:19 +00:00
2013-10-15 23:33:07 +00:00
2013-12-17 12:07:33 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-03-15 00:10:23 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00
2013-12-05 05:44:44 +00:00
2013-03-26 22:47:01 +00:00
2013-10-15 23:33:07 +00:00
2013-10-15 23:33:07 +00:00