diff options
author | Owen Anderson <resistor@mac.com> | 2015-10-09 18:06:13 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2015-10-09 18:06:13 +0000 |
commit | d95b08a0a72ef47268b94738360c9319dcdc4772 (patch) | |
tree | d54e64de26d1882bfd24227d20d92290cff4a0cb /llvm/lib/CodeGen/MachineSink.cpp | |
parent | c7b054a60cc1dc5c972b29ee694e7bbf8d186d22 (diff) | |
download | bcm5719-llvm-d95b08a0a72ef47268b94738360c9319dcdc4772.tar.gz bcm5719-llvm-d95b08a0a72ef47268b94738360c9319dcdc4772.zip |
Refine the definition of convergent to only disallow the addition of new control dependencies.
This covers the common case of operations that cannot be sunk.
Operations that cannot be hoisted should already be handled properly via
the safe-to-speculate rules and mechanisms.
llvm-svn: 249865
Diffstat (limited to 'llvm/lib/CodeGen/MachineSink.cpp')
-rw-r--r-- | llvm/lib/CodeGen/MachineSink.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/MachineSink.cpp b/llvm/lib/CodeGen/MachineSink.cpp index aa1b091b556..5e6d6190c63 100644 --- a/llvm/lib/CodeGen/MachineSink.cpp +++ b/llvm/lib/CodeGen/MachineSink.cpp @@ -686,7 +686,8 @@ bool MachineSinking::SinkInstruction(MachineInstr *MI, bool &SawStore, if (!MI->isSafeToMove(AA, SawStore)) return false; - // Convergent operations may only be moved to control equivalent locations. + // Convergent operations may not be made control-dependent on additional + // values. if (MI->isConvergent()) return false; |