Author: theraven
Date: Fri Mar 21 11:25:49 2014
New Revision: 10603
URL: http://svn.gna.org/viewcvs/etoile?rev=10603&view=rev
Log:
Fix compile flags.
Modified:
trunk/Etoile/Languages/LanguageKit/CodeGen/CodeGenModule.mm
trunk/Etoile/Languages/LanguageKit/CodeGen/GNUmakefile
trunk/Etoile/Languages/LanguageKit/CodeGen/objc_pointers.h
Modified: trunk/Etoile/Languages/LanguageKit/CodeGen/CodeGenModule.mm
URL:
http://svn.gna.org/viewcvs/etoile/trunk/Etoile/Languages/LanguageKit/CodeGen/CodeGenModule.mm?rev=10603&r1=10602&r2=10603&view=diff
==============================================================================
--- trunk/Etoile/Languages/LanguageKit/CodeGen/CodeGenModule.mm (original)
+++ trunk/Etoile/Languages/LanguageKit/CodeGen/CodeGenModule.mm Fri Mar 21
11:25:49 2014
@@ -43,6 +43,33 @@
#include <dlfcn.h>
#include <stdlib.h>
+#ifdef WITH_TESLA
+#include "TESLA/Callee.h"
+#include "TESLA/Caller.h"
+#include "TESLA/Manifest.h"
+
+tesla::Manifest *Manifest;
+
+Pass *createTESLACalleePass()
+{
+ return new tesla::FnCalleeInstrumenter(*Manifest, false);
+}
+Pass *createTESLACallerPass()
+{
+ return new tesla::FnCallerInstrumenter(*Manifest, false);
+}
+static void addTESLAPasses(const PassManagerBuilder &Builder, PassManagerBase
&PM)
+{
+fprintf(stderr, "Manifest: %p\n", Manifest);
+ if (Manifest != 0)
+ {
+ PM.add(createTESLACallerPass());
+ //PM.add(createTESLACalleePass());
+ }
+}
+
+#endif
+
extern "C" {
#import <Foundation/Foundation.h>
#import "../LanguageKit.h"
@@ -99,6 +126,13 @@
llvm::MemoryBuffer::getFile([MsgSendSmallIntFilename
UTF8String], buffer);
SmallIntMessages = ParseBitcodeFile(buffer.get(), Context);
}
+#ifdef WITH_TESLA
+ if (NULL == Manifest)
+ {
+ Manifest = tesla::Manifest::load(llvm::errs(),
+ tesla::Automaton::Deterministic, "LanguageKit.tesla");
+ }
+#endif
TheModule = new Module([ModuleName UTF8String], Context);
SmallIntModule = SmallIntMessages;
@@ -615,6 +649,10 @@
PassManagerBuilder PMBuilder;
// TODO: Allow this to be configured by the driver
PMBuilder.OptLevel = 3;
+#ifdef WITH_TESLA
+ PMBuilder.addExtension(PassManagerBuilder::EP_EarlyAsPossible,
+ addTESLAPasses);
+#endif
PMBuilder.addExtension(PassManagerBuilder::EP_EarlyAsPossible,
addObjCARCExpandPass);
PMBuilder.addExtension(PassManagerBuilder::EP_ModuleOptimizerEarly,
@@ -665,7 +703,8 @@
#if (LLVM_MAJOR > 3) || (LLVM_MAJOR == 3 && LLVM_MINOR > 1)
EngineBuilder EB = EngineBuilder(TheModule);
//EB.setUseMCJIT(true);
- EB.setRelocationModel(Reloc::Static);
+ //EB.setRelocationModel(Reloc::Static);
+ //EB.setCodeModel(CodeModel::Small);
TargetOptions TO;
TO.JITExceptionHandling = 1;
// Note: mathk, turn on debug info generation here too!
Modified: trunk/Etoile/Languages/LanguageKit/CodeGen/GNUmakefile
URL:
http://svn.gna.org/viewcvs/etoile/trunk/Etoile/Languages/LanguageKit/CodeGen/GNUmakefile?rev=10603&r1=10602&r2=10603&view=diff
==============================================================================
--- trunk/Etoile/Languages/LanguageKit/CodeGen/GNUmakefile (original)
+++ trunk/Etoile/Languages/LanguageKit/CodeGen/GNUmakefile Fri Mar 21
11:25:49 2014
@@ -34,11 +34,11 @@
# uncomment this line when debugging if you have problems with over-aggressive
# inlining throwing away useful debugging info.
-${FRAMEWORK_NAME}_CXXFLAGS = -fno-inline
-${FRAMEWORK_NAME}_OBJCCFLAGS = -fno-inline
-${FRAMEWORK_NAME}_CPPFLAGS = -D_GNU_SOURCE
-${FRAMEWORK_NAME}_OBJCFLAGS = -std=c99 -g -Wno-unused-value -fexceptions
-fobjc-arc
-${FRAMEWORK_NAME}_OBJCCFLAGS = -Wno-variadic-macros -Wno-gnu -Wno-pedantic
+#${FRAMEWORK_NAME}_CXXFLAGS = -fno-inline
+#${FRAMEWORK_NAME}_OBJCCFLAGS = -fno-inline
+${FRAMEWORK_NAME}_CPPFLAGS += -D_GNU_SOURCE
+${FRAMEWORK_NAME}_OBJCFLAGS += -std=c99 -g -Wno-unused-value -fexceptions
-fobjc-arc
+${FRAMEWORK_NAME}_OBJCCFLAGS += -Wno-variadic-macros -Wno-gnu -Wno-pedantic
${FRAMEWORK_NAME}_LDFLAGS += -g
${FRAMEWORK_NAME}_CFLAGS += -Wno-implicit -g
@@ -55,6 +55,27 @@
#LIBRARIES_DEPEND_UPON += `llvm-config --ldflags` -lLLVM-`llvm-config
--version`
LIBRARIES_DEPEND_UPON += $(shell llvm-config --ldflags) $(shell if [
`llvm-config --version | sed 's/\([0-9]*\).\([0-9]*\).*/\1\2/'` -gt 31 ] ; then
llvm-config --libs ; else llvm-config --libs ${LLVM_LIBS} ; fi)
+ifeq (${with_tesla}, yes)
+${FRAMEWORK_NAME}_CC_FILES += \
+ TESLA/Annotations.cpp\
+ TESLA/Assertion.cpp\
+ TESLA/Automaton.cpp\
+ TESLA/Callee.cpp\
+ TESLA/Caller.cpp\
+ TESLA/Debug.cpp\
+ TESLA/FieldReference.cpp\
+ TESLA/Instrumentation.cpp\
+ TESLA/Manifest.cpp\
+ TESLA/Names.cpp\
+ TESLA/Protocol.cpp\
+ TESLA/State.cpp\
+ TESLA/Transition.cpp\
+ TESLA/tesla.pb.cc
+
+${FRAMEWORK_NAME}_CCFLAGS += -std=c++11 -DWITH_TESLA=1 -fno-rtti
+${FRAMEWORK_NAME}_OBJCCFLAGS += -DWITH_TESLA=1 -std=c++11
+${FRAMEWORK_NAME}_LDFLAGS += -lprotobuf
-L/home/theraven/TESLA/build/libtesla/src -ltesla
+endif
CC = clang
CXX = clang++
Modified: trunk/Etoile/Languages/LanguageKit/CodeGen/objc_pointers.h
URL:
http://svn.gna.org/viewcvs/etoile/trunk/Etoile/Languages/LanguageKit/CodeGen/objc_pointers.h?rev=10603&r1=10602&r2=10603&view=diff
==============================================================================
--- trunk/Etoile/Languages/LanguageKit/CodeGen/objc_pointers.h (original)
+++ trunk/Etoile/Languages/LanguageKit/CodeGen/objc_pointers.h Fri Mar 21
11:25:49 2014
@@ -1,6 +1,6 @@
#import <Foundation/NSObject.h>
#undef _
-#if __cplusplus > 201100L
+#if __cplusplus > 201100L || __has_include(<unordered_map>)
#include <unordered_map>
using std::unordered_map;
#else
_______________________________________________
Etoile-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/etoile-cvs