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/ast_utils.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/ast_utils.h') diff --git a/src/ast_utils.h b/src/ast_utils.h index 253da8050..1f781b87e 100644 --- a/src/ast_utils.h +++ b/src/ast_utils.h @@ -154,6 +154,8 @@ struct ReFinalize : public WalkerPass> { void visitSetGlobal(SetGlobal *curr) { curr->finalize(); } void visitLoad(Load *curr) { curr->finalize(); } void visitStore(Store *curr) { curr->finalize(); } + void visitAtomicRMW(AtomicRMW *curr) { curr->finalize(); } + void visitAtomicCmpxchg(AtomicCmpxchg *curr) { curr->finalize(); } void visitConst(Const *curr) { curr->finalize(); } void visitUnary(Unary *curr) { curr->finalize(); } void visitBinary(Binary *curr) { curr->finalize(); } -- cgit v1.2.3