[llvm-commits] [dragonegg] r160360 - in /dragonegg/trunk: Makefile README src/Backend.cpp
Duncan Sands
baldrick at free.fr
Tue Jul 17 02:59:06 PDT 2012
Author: baldrick
Date: Tue Jul 17 04:59:06 2012
New Revision: 160360
URL: http://llvm.org/viewvc/llvm-project?rev=160360&view=rev
Log:
Add a build time option enabling the loading of LLVM plugins. This requires
exposing all LLVM symbols dragonegg was linked with, and, to be useful, linking
with the same libraries as "opt". Slightly tweaked version of a patch by
Sameer Sahasrabuddhe. Fixes PR13379.
Modified:
dragonegg/trunk/Makefile
dragonegg/trunk/README
dragonegg/trunk/src/Backend.cpp
Modified: dragonegg/trunk/Makefile
URL: http://llvm.org/viewvc/llvm-project/dragonegg/trunk/Makefile?rev=160360&r1=160359&r2=160360&view=diff
==============================================================================
--- dragonegg/trunk/Makefile (original)
+++ dragonegg/trunk/Makefile Tue Jul 17 04:59:06 2012
@@ -36,14 +36,22 @@
QUIET:=@
endif
-COMMON_FLAGS=-Wall -Wextra -fvisibility=hidden
+COMMON_FLAGS=-Wall -Wextra
+ifdef ENABLE_LLVM_PLUGINS
+COMMON_FLAGS+=-DENABLE_LLVM_PLUGINS
+else
+COMMON_FLAGS+=-fvisibility=hidden
+endif
CFLAGS+=$(COMMON_FLAGS) $(shell $(LLVM_CONFIG) --cflags)
CXXFLAGS+=$(COMMON_FLAGS) $(shell $(LLVM_CONFIG) --cxxflags)
ifeq ($(shell uname),Darwin)
LOADABLE_MODULE_OPTIONS=-bundle -undefined dynamic_lookup
else
-LOADABLE_MODULE_OPTIONS=-shared -Wl,-O1 -Wl,--version-script=$(TOP_DIR)/exports.map
+LOADABLE_MODULE_OPTIONS=-shared -Wl,-O1
+ifndef ENABLE_LLVM_PLUGINS
+LOADABLE_MODULE_OPTIONS+=-Wl,--version-script=$(TOP_DIR)/exports.map
+endif
endif
GCC_PLUGIN_DIR:=$(shell $(GCC) -print-file-name=plugin)
@@ -80,6 +88,12 @@
LD_OPTIONS+=$(shell $(LLVM_CONFIG) --ldflags) $(LDFLAGS)
+LLVM_COMPONENTS=ipo scalaropts target
+ifdef ENABLE_LLVM_PLUGINS
+# The same components as the "opt" tool.
+LLVM_COMPONENTS+=bitreader bitwriter asmparser instrumentation vectorize
+endif
+
# NOTE: The following flags can only be used after TARGET_UTIL has been built.
TARGET_HEADERS+=-DTARGET_NAME=\"$(shell $(TARGET_UTIL) -t)\" \
-I$(INCLUDE_DIR)/$(shell $(TARGET_UTIL) -p) \
@@ -119,8 +133,9 @@
$(PLUGIN): $(PLUGIN_OBJECTS) $(TARGET_OBJECT) $(TARGET_UTIL)
@echo Linking $@
$(QUIET)$(CXX) -o $@ $(LOADABLE_MODULE_OPTIONS) $(CXXFLAGS) \
- $(PLUGIN_OBJECTS) $(TARGET_OBJECT) $(shell $(LLVM_CONFIG) --libs \
- analysis core ipo scalaropts target $(shell $(TARGET_UTIL) -p)) \
+ $(PLUGIN_OBJECTS) $(TARGET_OBJECT) \
+ $(shell $(LLVM_CONFIG) --libs $(LLVM_COMPONENTS) \
+ $(shell $(TARGET_UTIL) -p)) \
$(LD_OPTIONS)
$(LIT_SITE_CONFIG): $(TEST_SRC_DIR)/dragonegg-lit.site.cfg.in
Modified: dragonegg/trunk/README
URL: http://llvm.org/viewvc/llvm-project/dragonegg/trunk/README?rev=160360&r1=160359&r2=160360&view=diff
==============================================================================
--- dragonegg/trunk/README (original)
+++ dragonegg/trunk/README Tue Jul 17 04:59:06 2012
@@ -54,6 +54,9 @@
The end result of the build is a shared library, dragonegg.so.
+If you want the dragonegg plugin to be able to load LLVM plugins then pass
+ENABLE_LLVM_PLUGINS=1 to make.
+
----------------------
- USAGE INSTRUCTIONS -
Modified: dragonegg/trunk/src/Backend.cpp
URL: http://llvm.org/viewvc/llvm-project/dragonegg/trunk/src/Backend.cpp?rev=160360&r1=160359&r2=160360&view=diff
==============================================================================
--- dragonegg/trunk/src/Backend.cpp (original)
+++ dragonegg/trunk/src/Backend.cpp Tue Jul 17 04:59:06 2012
@@ -40,7 +40,6 @@
#include "llvm/CodeGen/RegAllocRegistry.h"
#include "llvm/MC/SubtargetFeature.h"
#include "llvm/Support/ManagedStatic.h"
-#include "llvm/Support/PluginLoader.h"
#include "llvm/Support/SourceMgr.h"
#include "llvm/Support/TargetRegistry.h"
#include "llvm/Target/TargetData.h"
@@ -48,6 +47,11 @@
#include "llvm/Transforms/IPO.h"
#include "llvm/Transforms/IPO/PassManagerBuilder.h"
+#ifdef ENABLE_LLVM_PLUGINS
+#include "llvm/LinkAllPasses.h"
+#include "llvm/Support/PluginLoader.h"
+#endif
+
// System headers
#include <gmp.h>
More information about the llvm-commits
mailing list