| Index: lib/Transforms/NaCl/PNaClABISimplify.cpp
 | 
| diff --git a/lib/Transforms/NaCl/PNaClABISimplify.cpp b/lib/Transforms/NaCl/PNaClABISimplify.cpp
 | 
| index 4f8e0e4f877286a75b820e7da620fe30cb8a7f30..f662ada99a30d1bd13f4b5c4cfb640a09de4e201 100644
 | 
| --- a/lib/Transforms/NaCl/PNaClABISimplify.cpp
 | 
| +++ b/lib/Transforms/NaCl/PNaClABISimplify.cpp
 | 
| @@ -30,10 +30,8 @@ void llvm::PNaClABISimplifyAddPreOptPasses(PassManager &PM) {
 | 
|    // LowerExpect converts Intrinsic::expect into branch weights,
 | 
|    // which can then be removed after BlockPlacement.
 | 
|    PM.add(createLowerExpectIntrinsicPass());
 | 
| -  // Rewrite unsupported intrinsics and inline assembly directives to
 | 
| -  // simpler and portable constructs.
 | 
| +  // Rewrite unsupported intrinsics to simpler and portable constructs.
 | 
|    PM.add(createRewriteLLVMIntrinsicsPass());
 | 
| -  PM.add(createRewriteAsmDirectivesPass());
 | 
|    // LowerInvoke prevents use of C++ exception handling, which is not
 | 
|    // yet supported in the PNaCl ABI.
 | 
|    PM.add(createLowerInvokePass());
 | 
| @@ -98,6 +96,10 @@ void llvm::PNaClABISimplifyAddPostOptPasses(PassManager &PM) {
 | 
|    PM.add(createExpandGetElementPtrPass());
 | 
|    // Rewrite atomic and volatile instructions with intrinsic calls.
 | 
|    PM.add(createRewriteAtomicsPass());
 | 
| +  // Remove ``asm("":::"memory")``. This must occur after rewriting
 | 
| +  // atomics: a ``fence seq_cst`` surrounded by ``asm("":::"memory")``
 | 
| +  // has special meaning and is translated differently.
 | 
| +  PM.add(createRemoveAsmMemoryPass());
 | 
|    // ReplacePtrsWithInts assumes that getelementptr instructions and
 | 
|    // ConstantExprs have already been expanded out.
 | 
|    PM.add(createReplacePtrsWithIntsPass());
 | 
| 
 |