47
47
48
48
#include < math.h>
49
49
#include < stdlib.h>
50
- #if ISPC_LLVM_VERSION < ISPC_LLVM_3_3
50
+ #if ISPC_LLVM_VERSION == ISPC_LLVM_3_2
51
51
#include < llvm/Attributes.h>
52
- #endif
53
- #if ISPC_LLVM_VERSION < ISPC_LLVM_3_3
54
52
#include < llvm/LLVMContext.h>
55
53
#include < llvm/Module.h>
56
54
#include < llvm/Type.h>
784
782
AddBitcodeToModule (const unsigned char *bitcode, int length,
785
783
llvm::Module *module, SymbolTable *symbolTable, bool warn) {
786
784
llvm::StringRef sb = llvm::StringRef ((char *)bitcode, length);
787
- #if ISPC_LLVM_VERSION >= ISPC_LLVM_3_2 && ISPC_LLVM_VERSION < ISPC_LLVM_3_6
785
+ #if ISPC_LLVM_VERSION <= ISPC_LLVM_3_5
788
786
llvm::MemoryBuffer *bcBuf = llvm::MemoryBuffer::getMemBuffer (sb);
789
787
#else // LLVM 3.6+
790
788
llvm::MemoryBufferRef bcBuf = llvm::MemoryBuffer::getMemBuffer (sb)->getMemBufferRef ();
@@ -880,7 +878,7 @@ AddBitcodeToModule(const unsigned char *bitcode, int length,
880
878
881
879
std::string (linkError);
882
880
if (llvm::Linker::LinkModules (module, bcModule
883
- #if ISPC_LLVM_VERSION >= ISPC_LLVM_3_2 && ISPC_LLVM_VERSION < ISPC_LLVM_3_6
881
+ #if ISPC_LLVM_VERSION <= ISPC_LLVM_3_5
884
882
, llvm::Linker::DestroySource,
885
883
&linkError))
886
884
Error (SourcePos (), " Error linking stdlib bitcode: %s" , linkError.c_str ());
@@ -917,7 +915,7 @@ lDefineConstantInt(const char *name, int val, llvm::Module *module,
917
915
symbolTable->AddVariable (sym);
918
916
919
917
if (m->diBuilder != NULL ) {
920
- #if ISPC_LLVM_VERSION >= ISPC_LLVM_3_2 && ISPC_LLVM_VERSION < ISPC_LLVM_3_7
918
+ #if ISPC_LLVM_VERSION <= ISPC_LLVM_3_6
921
919
llvm::DIFile file;
922
920
llvm::DIType diType = sym->type ->GetDIType (file);
923
921
Assert (diType.Verify ());
@@ -932,15 +930,15 @@ lDefineConstantInt(const char *name, int val, llvm::Module *module,
932
930
// have the DW_AT_artifical attribute. It's not clear if this
933
931
// matters for anything though.
934
932
935
- #if ISPC_LLVM_VERSION >= ISPC_LLVM_3_2 && ISPC_LLVM_VERSION < ISPC_LLVM_3_6
933
+ #if ISPC_LLVM_VERSION <= ISPC_LLVM_3_5
936
934
llvm::DIGlobalVariable var = m->diBuilder ->createGlobalVariable (
937
935
name,
938
936
file,
939
937
0 /* line */ ,
940
938
diType,
941
939
true /* static */ ,
942
940
sym->storagePtr );
943
- #elif ISPC_LLVM_VERSION < ISPC_LLVM_3_7 /* i.e., 3.6 */
941
+ #elif ISPC_LLVM_VERSION == ISPC_LLVM_3_6 // LLVM 3.6
944
942
llvm::Constant *sym_const_storagePtr = llvm::dyn_cast<llvm::Constant>(sym->storagePtr );
945
943
Assert (sym_const_storagePtr);
946
944
llvm::DIGlobalVariable var = m->diBuilder ->createGlobalVariable (
@@ -965,7 +963,7 @@ lDefineConstantInt(const char *name, int val, llvm::Module *module,
965
963
true /* static */ ,
966
964
sym_const_storagePtr);
967
965
#endif
968
- #if ISPC_LLVM_VERSION >= ISPC_LLVM_3_2 && ISPC_LLVM_VERSION < ISPC_LLVM_3_7
966
+ #if ISPC_LLVM_VERSION <= ISPC_LLVM_3_6
969
967
Assert (var.Verify ());
970
968
#else // LLVM 3.7+
971
969
// coming soon
@@ -984,7 +982,7 @@ lDefineConstantIntFunc(const char *name, int val, llvm::Module *module,
984
982
985
983
llvm::Function *func = module->getFunction (name);
986
984
Assert (func != NULL ); // it should be declared already...
987
- #if ISPC_LLVM_VERSION < ISPC_LLVM_3_3
985
+ #if ISPC_LLVM_VERSION == ISPC_LLVM_3_2
988
986
func->addFnAttr (llvm::Attributes::AlwaysInline);
989
987
#else // LLVM 3.3+
990
988
func->addFnAttr (llvm::Attribute::AlwaysInline);
@@ -1019,7 +1017,7 @@ lDefineProgramIndex(llvm::Module *module, SymbolTable *symbolTable) {
1019
1017
symbolTable->AddVariable (sym);
1020
1018
1021
1019
if (m->diBuilder != NULL ) {
1022
- #if ISPC_LLVM_VERSION >= ISPC_LLVM_3_2 && ISPC_LLVM_VERSION < ISPC_LLVM_3_7
1020
+ #if ISPC_LLVM_VERSION <= ISPC_LLVM_3_6
1023
1021
llvm::DIFile file;
1024
1022
llvm::DIType diType = sym->type ->GetDIType (file);
1025
1023
Assert (diType.Verify ());
@@ -1030,13 +1028,10 @@ lDefineProgramIndex(llvm::Module *module, SymbolTable *symbolTable) {
1030
1028
llvm::DIType *diType = sym->type ->GetDIType (file);
1031
1029
// Assert(diType.Verify());
1032
1030
#endif
1033
- #if ISPC_LLVM_VERSION >= ISPC_LLVM_3_6
1031
+ #if ISPC_LLVM_VERSION == ISPC_LLVM_3_6 // LLVM 3.6
1034
1032
llvm::Constant *sym_const_storagePtr = llvm::dyn_cast<llvm::Constant>(sym->storagePtr );
1035
1033
Assert (sym_const_storagePtr);
1036
- #if ISPC_LLVM_VERSION < ISPC_LLVM_3_7
1037
- llvm::DIGlobalVariable var =
1038
- #endif
1039
- m->diBuilder ->createGlobalVariable (
1034
+ llvm::DIGlobalVariable var = m->diBuilder ->createGlobalVariable (
1040
1035
file,
1041
1036
sym->name .c_str (),
1042
1037
sym->name .c_str (),
@@ -1045,15 +1040,15 @@ lDefineProgramIndex(llvm::Module *module, SymbolTable *symbolTable) {
1045
1040
diType,
1046
1041
false /* static */ ,
1047
1042
sym_const_storagePtr);
1048
- #elif ISPC_LLVM_VERSION >= ISPC_LLVM_3_2 /* && ISPC_LLVM_VERSION < ISPC_LLVM_3_6 */
1043
+ #elif ISPC_LLVM_VERSION <= ISPC_LLVM_3_5
1049
1044
llvm::DIGlobalVariable var = m->diBuilder ->createGlobalVariable (
1050
1045
sym->name .c_str (),
1051
1046
file,
1052
1047
0 /* line */ ,
1053
1048
diType,
1054
1049
false /* static */ ,
1055
1050
sym->storagePtr );
1056
- #else
1051
+ #else // LLVM 3.7+
1057
1052
llvm::Constant *sym_const_storagePtr = llvm::dyn_cast<llvm::Constant>(sym->storagePtr );
1058
1053
Assert (sym_const_storagePtr);
1059
1054
m->diBuilder ->createGlobalVariable (
@@ -1065,8 +1060,8 @@ lDefineProgramIndex(llvm::Module *module, SymbolTable *symbolTable) {
1065
1060
diType,
1066
1061
false /* static */ ,
1067
1062
sym_const_storagePtr);
1068
- #endif
1069
- #if ISPC_LLVM_VERSION >= ISPC_LLVM_3_2 && ISPC_LLVM_VERSION < ISPC_LLVM_3_7
1063
+ #endif
1064
+ #if ISPC_LLVM_VERSION <= ISPC_LLVM_3_6
1070
1065
Assert (var.Verify ());
1071
1066
#else // LLVM 3.7+
1072
1067
// coming soon
0 commit comments