Index: lib/Transforms/NaCl/PNaClABISimplify.cpp |
diff --git a/lib/Transforms/NaCl/PNaClABISimplify.cpp b/lib/Transforms/NaCl/PNaClABISimplify.cpp |
index e758244a737d2ead200b9307e1ae38f93219b977..5172c259c1b9ce1806c29e7a89a768bd3a212970 100644 |
--- a/lib/Transforms/NaCl/PNaClABISimplify.cpp |
+++ b/lib/Transforms/NaCl/PNaClABISimplify.cpp |
@@ -92,6 +92,11 @@ void llvm::PNaClABISimplifyAddPreOptPasses(Triple *T, PassManagerBase &PM) { |
// "va_arg" instructions have been removed. |
PM.add(createExpandVarArgsPass()); |
+ // RewriteAgg(Arg|Ret) replaces aggregate arguments or return type with the |
+ // pointer representation of the type. Needs to be before ExpandStructRegs. |
+ PM.add(createRewriteAggArgPass()); |
+ PM.add(createRewriteAggRetPass()); |
+ |
// TODO(mtrofin) Remove the following and only run it as a post-opt pass once |
// the following bug is fixed. |
// https://code.google.com/p/nativeclient/issues/detail?id=3857 |