llvm-6502/test
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
..
Analysis
Assembler
Bindings
Bitcode
BugPoint
CodeGen Conservatively handle multiple MMOs in MIsNeedChainEdge 2014-01-08 21:52:02 +00:00
DebugInfo Emit arange padding with a single directive. 2014-01-07 19:28:14 +00:00
ExecutionEngine Add missing test case for r198737. 2014-01-08 16:31:16 +00:00
Feature
FileCheck
Instrumentation
Integer
JitListener
Linker
LTO
MC [AArch64][NEON] Added UXTL and UXTL2 instruction aliases 2014-01-08 21:02:13 +00:00
Object
Other
TableGen
tools tests: disable ARM unwinding tests if ARM is unavailable 2014-01-08 03:44:01 +00:00
Transforms Fix a bug about generating undef operand when optimising shuffle vector and insert element in instruction combine. 2014-01-08 03:06:15 +00:00
Unit
Verifier
YAMLParser
.clang-format
CMakeLists.txt
lit.cfg
lit.site.cfg.in
Makefile
Makefile.tests
TestRunner.sh