summaryrefslogtreecommitdiff
path: root/cpu_ref/rsCpuScript.cpp
diff options
context:
space:
mode:
authorYang Ni <yangni@google.com>2015-01-12 13:03:40 -0800
committerYang Ni <yangni@google.com>2015-02-02 17:37:03 -0800
commitda0f069871343119251d6b0586be356dc2146a62 (patch)
tree3b3727ac5ff30a598b33a926e2536cc7c6190b05 /cpu_ref/rsCpuScript.cpp
parentf5e39bba1d0e7be4adfa7364d92ba3f541420fdd (diff)
downloadrs-da0f069871343119251d6b0586be356dc2146a62.tar.gz
Runtime support for compiler kernel fusion.
The runtime will start a seperate process to call the new bcc to fuse kernels. Change-Id: Ia73ea917a126a5055ec97f13d90a5feaafd6a2f5
Diffstat (limited to 'cpu_ref/rsCpuScript.cpp')
-rw-r--r--cpu_ref/rsCpuScript.cpp19
1 files changed, 9 insertions, 10 deletions
diff --git a/cpu_ref/rsCpuScript.cpp b/cpu_ref/rsCpuScript.cpp
index f975094f..01fbcafd 100644
--- a/cpu_ref/rsCpuScript.cpp
+++ b/cpu_ref/rsCpuScript.cpp
@@ -161,15 +161,13 @@ static bool is_force_recompile() {
#endif // RS_SERVER
}
-const static char *BCC_EXE_PATH = "/system/bin/bcc";
-
static void setCompileArguments(std::vector<const char*>* args,
const std::string& bcFileName,
const char* cacheDir, const char* resName,
const char* core_lib, bool useRSDebugContext,
const char* bccPluginName) {
rsAssert(cacheDir && resName && core_lib);
- args->push_back(BCC_EXE_PATH);
+ args->push_back(android::renderscript::RsdCpuScriptImpl::BCC_EXE_PATH);
args->push_back("-unroll-runtime");
args->push_back("-scalarize-load-store");
args->push_back("-o");
@@ -234,7 +232,8 @@ static bool compileBitcode(const std::string &bcFileName,
}
case 0: { // Child process
ALOGV("Invoking BCC with: %s", compileCommandLine.c_str());
- execv(BCC_EXE_PATH, (char* const*)compileArguments);
+ execv(android::renderscript::RsdCpuScriptImpl::BCC_EXE_PATH,
+ (char* const*)compileArguments);
ALOGE("execv() failed: %s", strerror(errno));
abort();
@@ -428,6 +427,8 @@ void* SharedLibraryUtils::loadSOHelper(const char *origName, const char *cacheDi
return loaded;
}
+const char* RsdCpuScriptImpl::BCC_EXE_PATH = "/system/bin/bcc";
+
#define MAXLINE 500
#define MAKE_STR_HELPER(S) #S
#define MAKE_STR(S) MAKE_STR_HELPER(S)
@@ -764,12 +765,8 @@ error:
#ifndef RS_COMPATIBILITY_LIB
for (size_t idx = 0; idx < pragmaCount; ++idx) {
- if (pragmaKeys[idx] != nullptr) {
- delete [] pragmaKeys[idx];
- }
- if (pragmaValues[idx] != nullptr) {
- delete [] pragmaValues[idx];
- }
+ delete [] pragmaKeys[idx];
+ delete [] pragmaValues[idx];
}
delete[] pragmaValues;
@@ -867,6 +864,8 @@ bool RsdCpuScriptImpl::init(char const *resName, char const *cacheDir,
}
}
+ mBitcodeFilePath = bcFileName;
+
// Read RS symbol information from the .so.
if ( !mScriptSO) {
goto error;