Skip to content

Commit

Permalink
Support LLVM 3.3.
Browse files Browse the repository at this point in the history
This is a joint effort from lg and Sven-Hendrik Haase.
  • Loading branch information
lgritz committed Jul 11, 2013
1 parent 7863033 commit 6a21287
Show file tree
Hide file tree
Showing 2 changed files with 71 additions and 24 deletions.
85 changes: 61 additions & 24 deletions src/liboslexec/llvm_headers.h
Expand Up @@ -33,30 +33,67 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
namespace llvm = LLVM_NAMESPACE;
#endif

#include <llvm/Bitcode/ReaderWriter.h>
#include <llvm/Constants.h>
#include <llvm/DerivedTypes.h>
#include <llvm/ExecutionEngine/GenericValue.h>
#include <llvm/ExecutionEngine/JIT.h>
#include <llvm/ExecutionEngine/JITMemoryManager.h>
#include <llvm/Instructions.h>
#include <llvm/Intrinsics.h>
#include <llvm/Linker.h>
#include <llvm/LLVMContext.h>
#include <llvm/Module.h>
#include <llvm/PassManager.h>
#if OSL_LLVM_VERSION >= 32
#include <llvm/IRBuilder.h>
#else
#include <llvm/Support/IRBuilder.h>
#endif
#include <llvm/Support/ManagedStatic.h>
#include <llvm/Support/MemoryBuffer.h>
#include <llvm/Support/raw_ostream.h>
#if OSL_LLVM_VERSION >= 32
#include <llvm/DataLayout.h>
#else
#include <llvm/Target/TargetData.h>
#if OSL_LLVM_VERSION >= 33

# include <llvm/IR/Constants.h>
# include <llvm/IR/DerivedTypes.h>
# include <llvm/IR/Instructions.h>
# include <llvm/IR/Intrinsics.h>
# include <llvm/IR/Module.h>
# include <llvm/IR/LLVMContext.h>
# include <llvm/IR/IRBuilder.h>
# include <llvm/IR/DataLayout.h>
# include <llvm/Bitcode/ReaderWriter.h>
# include <llvm/ExecutionEngine/GenericValue.h>
# include <llvm/ExecutionEngine/JIT.h>
# include <llvm/ExecutionEngine/JITMemoryManager.h>
# include <llvm/Linker.h>
# include <llvm/PassManager.h>
# include <llvm/Support/ManagedStatic.h>
# include <llvm/Support/MemoryBuffer.h>
# include <llvm/Support/raw_ostream.h>

#elif OSL_LLVM_VERSION == 32

# include <llvm/Bitcode/ReaderWriter.h>
# include <llvm/Constants.h>
# include <llvm/DerivedTypes.h>
# include <llvm/ExecutionEngine/GenericValue.h>
# include <llvm/ExecutionEngine/JIT.h>
# include <llvm/ExecutionEngine/JITMemoryManager.h>
# include <llvm/Instructions.h>
# include <llvm/Intrinsics.h>
# include <llvm/Linker.h>
# include <llvm/LLVMContext.h>
# include <llvm/Module.h>
# include <llvm/PassManager.h>
# include <llvm/IRBuilder.h>
# include <llvm/Support/ManagedStatic.h>
# include <llvm/Support/MemoryBuffer.h>
# include <llvm/Support/raw_ostream.h>
# include <llvm/DataLayout.h>

#else /* older releases */

# include <llvm/Bitcode/ReaderWriter.h>
# include <llvm/Constants.h>
# include <llvm/DerivedTypes.h>
# include <llvm/ExecutionEngine/GenericValue.h>
# include <llvm/ExecutionEngine/JIT.h>
# include <llvm/ExecutionEngine/JITMemoryManager.h>
# include <llvm/Instructions.h>
# include <llvm/Intrinsics.h>
# include <llvm/Linker.h>
# include <llvm/LLVMContext.h>
# include <llvm/Module.h>
# include <llvm/PassManager.h>
# include <llvm/Support/IRBuilder.h>
# include <llvm/Support/ManagedStatic.h>
# include <llvm/Support/MemoryBuffer.h>
# include <llvm/Support/raw_ostream.h>
# include <llvm/Target/TargetData.h>

#endif


#endif /* OSL_LLVM_HEADERS_H */
10 changes: 10 additions & 0 deletions src/liboslexec/llvm_instance.cpp
Expand Up @@ -1148,11 +1148,21 @@ class OSL_Dummy_JITMemoryManager : public llvm::JITMemoryManager {
unsigned SectionID) {
return mm->allocateCodeSection(Size, Alignment, SectionID);
}
#if OSL_LLVM_VERSION >= 33
virtual uint8_t *allocateDataSection(uintptr_t Size, unsigned Alignment,
unsigned SectionID, bool IsReadOnly) {
return mm->allocateDataSection(Size, Alignment, SectionID, IsReadOnly);
}
virtual bool applyPermissions(std::string *ErrMsg = 0) {
return mm->applyPermissions(ErrMsg);
}
#else
virtual uint8_t *allocateDataSection(uintptr_t Size, unsigned Alignment,
unsigned SectionID) {
return mm->allocateDataSection(Size, Alignment, SectionID);
}
#endif
#endif
};


Expand Down

0 comments on commit 6a21287

Please sign in to comment.