resolved conflicts for merge of f46fa664 to master
Change-Id: I073ac3c0f95b3da9567e54c1fc8e8b1b0d69e33f
diff --git a/lib/ExecutionEngine/Compiler.cpp b/lib/ExecutionEngine/Compiler.cpp
index 5895057..58a49c5 100644
--- a/lib/ExecutionEngine/Compiler.cpp
+++ b/lib/ExecutionEngine/Compiler.cpp
@@ -274,7 +274,7 @@
std::vector<const char*> ExportSymbols;
// Defaults to maximum optimization level from MetadataExtractor.
- int OptimizationLevel = ME.getOptimizationLevel();
+ uint32_t OptimizationLevel = ME.getOptimizationLevel();
if (OptimizationLevel == 0) {
CodeGenOptLevel = llvm::CodeGenOpt::None;
diff --git a/lib/ExecutionEngine/Script.cpp b/lib/ExecutionEngine/Script.cpp
index 445d075..87d6e1d 100644
--- a/lib/ExecutionEngine/Script.cpp
+++ b/lib/ExecutionEngine/Script.cpp
@@ -17,6 +17,7 @@
#include "Script.h"
#include "Config.h"
+#include "bcinfo/BitcodeWrapper.h"
#include "MCCacheReader.h"
#include "MCCacheWriter.h"
@@ -95,6 +96,10 @@
return 1;
}
+ bcinfo::BitcodeWrapper wrapper(bitcode, bitcodeSize);
+ mCompilerVersion = wrapper.getCompilerVersion();
+ mOptimizationLevel = wrapper.getOptimizationLevel();
+
mSourceList[idx] = SourceInfo::createFromBuffer(resName,
bitcode, bitcodeSize,
flags);
diff --git a/lib/ExecutionEngine/Script.h b/lib/ExecutionEngine/Script.h
index 16a453c..0560f55 100644
--- a/lib/ExecutionEngine/Script.h
+++ b/lib/ExecutionEngine/Script.h
@@ -98,10 +98,15 @@
BCCSymbolLookupFn mpExtSymbolLookupFn;
void *mpExtSymbolLookupFnContext;
+ uint32_t mCompilerVersion;
+ uint32_t mOptimizationLevel;
+
public:
Script() : mErrorCode(BCC_NO_ERROR), mStatus(ScriptStatus::Unknown),
- mObjectType(ScriptObject::Unknown), mIsContextSlotNotAvail(false),
- mpExtSymbolLookupFn(NULL), mpExtSymbolLookupFnContext(NULL) {
+ mObjectType(ScriptObject::Unknown),
+ mIsContextSlotNotAvail(false),
+ mpExtSymbolLookupFn(NULL), mpExtSymbolLookupFnContext(NULL),
+ mCompilerVersion(0), mOptimizationLevel(3) {
Compiler::GlobalInitialization();
mSourceList[0] = NULL;
@@ -164,6 +169,13 @@
void *lookup(const char *name);
+ uint32_t getCompilerVersion() const {
+ return mCompilerVersion;
+ }
+
+ uint32_t getOptimizationLevel() const {
+ return mOptimizationLevel;
+ }
size_t getExportVarCount() const;
diff --git a/lib/ExecutionEngine/ScriptCompiled.h b/lib/ExecutionEngine/ScriptCompiled.h
index d945024..5c442c7 100644
--- a/lib/ExecutionEngine/ScriptCompiled.h
+++ b/lib/ExecutionEngine/ScriptCompiled.h
@@ -91,6 +91,13 @@
void *lookup(const char *name);
+ uint32_t getCompilerVersion() const {
+ return mpOwner->getCompilerVersion();
+ }
+
+ uint32_t getOptimizationLevel() const {
+ return mpOwner->getOptimizationLevel();
+ }
size_t getExportVarCount() const {
return mExportVars.size();