Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(24)

Side by Side Diff: lib/Transforms/NaCl/PNaClABISimplify.cpp

Issue 17777004: Concurrency support for PNaCl ABI (Closed) Base URL: http://git.chromium.org/native_client/pnacl-llvm.git@master
Patch Set: Simplify overloading and function verification. Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 //===-- PNaClABISimplify.cpp - Lists PNaCl ABI simplification passes ------===// 1 //===-- PNaClABISimplify.cpp - Lists PNaCl ABI simplification passes ------===//
2 // 2 //
3 // The LLVM Compiler Infrastructure 3 // The LLVM Compiler Infrastructure
4 // 4 //
5 // This file is distributed under the University of Illinois Open Source 5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details. 6 // License. See LICENSE.TXT for details.
7 // 7 //
8 //===----------------------------------------------------------------------===// 8 //===----------------------------------------------------------------------===//
9 // 9 //
10 // This file implements the meta-passes "-pnacl-abi-simplify-preopt" 10 // This file implements the meta-passes "-pnacl-abi-simplify-preopt"
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 75
76 // We should not place arbitrary passes after ExpandConstantExpr 76 // We should not place arbitrary passes after ExpandConstantExpr
77 // because they might reintroduce ConstantExprs. 77 // because they might reintroduce ConstantExprs.
78 PM.add(createExpandConstantExprPass()); 78 PM.add(createExpandConstantExprPass());
79 // PromoteIntegersPass does not handle constexprs and creates GEPs, 79 // PromoteIntegersPass does not handle constexprs and creates GEPs,
80 // so it goes between those passes. 80 // so it goes between those passes.
81 PM.add(createPromoteIntegersPass()); 81 PM.add(createPromoteIntegersPass());
82 // ExpandGetElementPtr must follow ExpandConstantExpr to expand the 82 // ExpandGetElementPtr must follow ExpandConstantExpr to expand the
83 // getelementptr instructions it creates. 83 // getelementptr instructions it creates.
84 PM.add(createExpandGetElementPtrPass()); 84 PM.add(createExpandGetElementPtrPass());
85 // Rewrite atomic and volatile instructions with intrinsic calls.
86 PM.add(createRewriteAtomicsPass());
Mark Seaborn 2013/07/02 19:16:02 It would be better to place this before ExpandCons
85 // ReplacePtrsWithInts assumes that getelementptr instructions and 87 // ReplacePtrsWithInts assumes that getelementptr instructions and
86 // ConstantExprs have already been expanded out. 88 // ConstantExprs have already been expanded out.
87 PM.add(createReplacePtrsWithIntsPass()); 89 PM.add(createReplacePtrsWithIntsPass());
88 90
89 // We place StripAttributes after optimization passes because many 91 // We place StripAttributes after optimization passes because many
90 // analyses add attributes to reflect their results. 92 // analyses add attributes to reflect their results.
91 // StripAttributes must come after ExpandByVal and 93 // StripAttributes must come after ExpandByVal and
92 // ExpandSmallArguments. 94 // ExpandSmallArguments.
93 PM.add(createStripAttributesPass()); 95 PM.add(createStripAttributesPass());
94 96
95 // Strip dead prototytes to appease the intrinsic ABI checks. 97 // Strip dead prototytes to appease the intrinsic ABI checks.
96 // ExpandVarArgs leaves around vararg intrinsics, and 98 // ExpandVarArgs leaves around vararg intrinsics, and
97 // ReplacePtrsWithInts leaves the lifetime.start/end intrinsics. 99 // ReplacePtrsWithInts leaves the lifetime.start/end intrinsics.
98 PM.add(createStripDeadPrototypesPass()); 100 PM.add(createStripDeadPrototypesPass());
99 } 101 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698