From ab8dbae1d1a27e4de24fd9ee09d45785a414922d Mon Sep 17 00:00:00 2001 From: Derek Schuff Date: Fri, 21 Jul 2017 08:46:23 -0700 Subject: Optimizer support for atomic instructions (#1094) * Teach EffectAnalyzer not to reorder atomics wrt other memory operations. * Teach EffectAnalyzer not to reorder host operations with memory operations * Teach various passes about the operands of AtomicRMW and AtomicCmpxchg * Factor out some functions in DeadCodeElimination and MergeBlocks --- src/passes/Precompute.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/passes/Precompute.cpp') diff --git a/src/passes/Precompute.cpp b/src/passes/Precompute.cpp index 122501de9..c4702fdeb 100644 --- a/src/passes/Precompute.cpp +++ b/src/passes/Precompute.cpp @@ -67,6 +67,12 @@ public: Flow visitStore(Store *curr) { return Flow(NONSTANDALONE_FLOW); } + Flow visitAtomicRMW(AtomicRMW *curr) { + return Flow(NONSTANDALONE_FLOW); + } + Flow visitAtomicCmpxchg(AtomicCmpxchg *curr) { + return Flow(NONSTANDALONE_FLOW); + } Flow visitHost(Host *curr) { return Flow(NONSTANDALONE_FLOW); } -- cgit v1.2.3