summaryrefslogtreecommitdiffstats
path: root/llvm/lib/ExecutionEngine/RuntimeDyld/JITSymbol.cpp
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2018-09-29 23:49:57 +0000
committerLang Hames <lhames@gmail.com>2018-09-29 23:49:57 +0000
commit98440293fb903f69dbec401b8b4826b1fa206385 (patch)
treecf7feeb31965aa6bca6c709c047badabbd641576 /llvm/lib/ExecutionEngine/RuntimeDyld/JITSymbol.cpp
parentc3053e41bfcee50d80e3597452df55e2ecb4198a (diff)
downloadbcm5719-llvm-98440293fb903f69dbec401b8b4826b1fa206385.tar.gz
bcm5719-llvm-98440293fb903f69dbec401b8b4826b1fa206385.zip
[ORC] Add partitioning support to CompileOnDemandLayer2.
CompileOnDemandLayer2 now supports user-supplied partition functions (the original CompileOnDemandLayer already supported these). Partition functions are called with the list of requested global values (i.e. global values that currently have queries waiting on them) and have an opportunity to select extra global values to materialize at the same time. Also adds testing infrastructure for the new feature to lli. llvm-svn: 343396
Diffstat (limited to 'llvm/lib/ExecutionEngine/RuntimeDyld/JITSymbol.cpp')
-rw-r--r--llvm/lib/ExecutionEngine/RuntimeDyld/JITSymbol.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/ExecutionEngine/RuntimeDyld/JITSymbol.cpp b/llvm/lib/ExecutionEngine/RuntimeDyld/JITSymbol.cpp
index b6ef8ad9675..0553c217c2a 100644
--- a/llvm/lib/ExecutionEngine/RuntimeDyld/JITSymbol.cpp
+++ b/llvm/lib/ExecutionEngine/RuntimeDyld/JITSymbol.cpp
@@ -13,6 +13,7 @@
#include "llvm/ExecutionEngine/JITSymbol.h"
#include "llvm/IR/Function.h"
+#include "llvm/IR/GlobalAlias.h"
#include "llvm/IR/GlobalValue.h"
#include "llvm/Object/ObjectFile.h"
@@ -26,8 +27,13 @@ JITSymbolFlags llvm::JITSymbolFlags::fromGlobalValue(const GlobalValue &GV) {
Flags |= JITSymbolFlags::Common;
if (!GV.hasLocalLinkage() && !GV.hasHiddenVisibility())
Flags |= JITSymbolFlags::Exported;
+
if (isa<Function>(GV))
Flags |= JITSymbolFlags::Callable;
+ else if (isa<GlobalAlias>(GV) &&
+ isa<Function>(cast<GlobalAlias>(GV).getAliasee()))
+ Flags |= JITSymbolFlags::Callable;
+
return Flags;
}
OpenPOWER on IntegriCloud