diff --git a/CMakeLists.txt b/CMakeLists.txt index e93881872..656f0f925 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -374,8 +374,8 @@ endforeach() if (DYLIB) add_library(extempore SHARED src/Extempore.cpp src/AudioDevice.cpp - src/EXTLLVM.cpp src/EXTZONES.cpp + src/EXTLLVM.cpp src/EXTLLVM2.cpp src/EXTThread.cpp src/Extempore.cpp @@ -393,8 +393,8 @@ if (DYLIB) else() add_executable(extempore src/Extempore.cpp src/AudioDevice.cpp - src/EXTLLVM.cpp src/EXTZONES.cpp + src/EXTLLVM.cpp src/EXTLLVM2.cpp src/LLVMIRCompilation.cpp src/EXTThread.cpp diff --git a/include/EXTLLVM.h b/include/EXTLLVM.h index 2a3c064ff..e2e548217 100644 --- a/include/EXTLLVM.h +++ b/include/EXTLLVM.h @@ -37,58 +37,29 @@ #include "Scheme.h" #include "BranchPrediction.h" +#include #include -struct zone_hooks_t { - uint64_t space; // here just so we don't get - void* hook; // xtlang closure of type [void]* - zone_hooks_t* hooks; -}; - -// WARNING WARNING WARNING - HERE BE DRAGONS -// THIS STRUCTURE IS REFERENCED FROM GENERATED CODE -// DO NOT ALTER IT!!! - -struct llvm_zone_t { - void* memory; - uint64_t offset; - uint64_t mark; - uint64_t size; - zone_hooks_t* cleanup_hooks; - llvm_zone_t* memories; -}; - struct _llvm_callback_struct_ { void (*fptr)(void*, llvm_zone_t*); void* dat; llvm_zone_t* zone; }; -struct llvm_zone_stack -{ - llvm_zone_t* head; - llvm_zone_stack* tail; -}; - -struct closure_address_table; -extern THREAD_LOCAL llvm_zone_stack* tls_llvm_zone_stack; -extern THREAD_LOCAL uint64_t tls_llvm_zone_stacksize; extern "C" { + void llvm_destroy_zone_after_delay(llvm_zone_t* zone, uint64_t delay); -void llvm_destroy_zone_after_delay(llvm_zone_t* zone, uint64_t delay); - -pointer llvm_scheme_env_set(scheme* _sc, char* sym); -bool llvm_check_valid_dot_symbol(scheme* sc, char* symbol); -bool regex_split(char* str, char** a, char** b); - -inline uint64_t string_hash(const char* str); + pointer llvm_scheme_env_set(scheme* _sc, char* sym); + bool llvm_check_valid_dot_symbol(scheme* sc, char* symbol); + bool regex_split(char* str, char** a, char** b); -EXPORT double imp_randd(); -EXPORT int64_t imp_rand1_i64(int64_t a); + inline uint64_t string_hash(const char* str); + EXPORT double imp_randd(); + EXPORT int64_t imp_rand1_i64(int64_t a); } // this added for dodgy continuations support