generate calls to rsSetObject inside .helper invoke functions
bug 18071147
Change-Id: I0ff00b3a86cd799cdb1eebcd1000b74070ee0cdf
diff --git a/lib/Core/Compiler.cpp b/lib/Core/Compiler.cpp
index 4b4b4b7..4a8d8bc 100644
--- a/lib/Core/Compiler.cpp
+++ b/lib/Core/Compiler.cpp
@@ -317,6 +317,14 @@
return true;
}
+bool Compiler::addInvokeHelperPass(llvm::PassManager &pPM) {
+ llvm::Triple arch(getTargetMachine().getTargetTriple());
+ if (arch.isArch64Bit()) {
+ pPM.add(createRSInvokeHelperPass());
+ }
+ return true;
+}
+
bool Compiler::addExpandForEachPass(Script &pScript, llvm::PassManager &pPM) {
// Script passed to RSCompiler must be a RSScript.
RSScript &script = static_cast<RSScript &>(pScript);
@@ -331,6 +339,9 @@
}
bool Compiler::addCustomPasses(Script &pScript, llvm::PassManager &pPM) {
+ if (!addInvokeHelperPass(pPM))
+ return false;
+
if (!addExpandForEachPass(pScript, pPM))
return false;