diff -up OpenCTL/OpenCTL/compiler/Compiler.cpp.jx OpenCTL/OpenCTL/compiler/Compiler.cpp
--- OpenCTL/OpenCTL/compiler/Compiler.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenCTL/OpenCTL/compiler/Compiler.cpp	2013-05-08 15:39:25.091057197 -0400
@@ -27,10 +27,10 @@
 #include <climits>
 
 // LLVM
-#include <llvm/InstrTypes.h>
+#include <llvm/IR/InstrTypes.h>
 // #include <llvm/Linker.h>
-#include <llvm/DerivedTypes.h>
-#include <llvm/Module.h>
+#include <llvm/IR/DerivedTypes.h>
+#include <llvm/IR/Module.h>
 // #include <llvm/Transforms/Utils/Cloning.h>
 // Library Loader
 #ifdef LLVM_27_OR_28
@@ -214,7 +214,7 @@ bool Compiler::compile(bool _isStandardL
   return success;
 }
 
-#include <llvm/ValueSymbolTable.h>
+#include <llvm/IR/ValueSymbolTable.h>
 
 bool Compiler::importModule(const GTLCore::String& name)
 {
diff -up OpenCTL/OpenCTL/compiler/ParserNG.cpp.jx OpenCTL/OpenCTL/compiler/ParserNG.cpp
--- OpenCTL/OpenCTL/compiler/ParserNG.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenCTL/OpenCTL/compiler/ParserNG.cpp	2013-05-08 15:39:25.091057197 -0400
@@ -19,9 +19,9 @@
 
 #include "ParserNG.h"
 
-#include <llvm/Constants.h>
-#include <llvm/DerivedTypes.h>
-#include <llvm/Type.h>
+#include <llvm/IR/Constants.h>
+#include <llvm/IR/DerivedTypes.h>
+#include <llvm/IR/Type.h>
 
 #include <GTLCore/LLVMBackend/CodeGenerator_p.h>
 #include <GTLCore/CompilationMessage.h>
diff -up OpenCTL/OpenCTL/Module.cpp.jx OpenCTL/OpenCTL/Module.cpp
--- OpenCTL/OpenCTL/Module.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenCTL/OpenCTL/Module.cpp	2013-05-08 15:39:25.091057197 -0400
@@ -38,7 +38,7 @@
 using namespace OpenCTL;
 
 // LLVM
-#include <llvm/Module.h>
+#include <llvm/IR/Module.h>
 #include <llvm/Bitcode/ReaderWriter.h>
 #ifdef LLVM_27_OR_28
 #include <llvm/System/Path.h>
@@ -47,8 +47,7 @@ using namespace OpenCTL;
 #include <llvm/Support/Path.h>
 #include <llvm/Support/DynamicLibrary.h>
 #endif
-#include <llvm/Module.h>
-#include <llvm/LLVMContext.h>
+#include <llvm/IR/LLVMContext.h>
 
 struct Module::Private {
   Private() : moduleData(0), isStandardLibrary(false) {}
diff -up OpenCTL/OpenCTL/Program.cpp.jx OpenCTL/OpenCTL/Program.cpp
--- OpenCTL/OpenCTL/Program.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenCTL/OpenCTL/Program.cpp	2013-05-08 15:39:25.091057197 -0400
@@ -20,16 +20,16 @@
 #include "Program.h"
 
 // LLVM
-#include <llvm/DerivedTypes.h>
-#include <llvm/Instructions.h>
-#include <llvm/Module.h>
+#include <llvm/IR/DerivedTypes.h>
+#include <llvm/IR/Instructions.h>
+#include <llvm/IR/Module.h>
 #include <llvm/Transforms/Utils/Cloning.h>
 
 // Passes
 #include <llvm/PassManager.h>
 #include <llvm/Analysis/LoopPass.h>
 #include <llvm/Analysis/Verifier.h>
-#include <llvm/GlobalVariable.h>
+#include <llvm/IR/GlobalVariable.h>
 
 // GTLCore
 #include "GTLCore/Buffer.h"
diff -up OpenGTL/GTLCore/AST/AccessorExpression.cpp.jx OpenGTL/GTLCore/AST/AccessorExpression.cpp
--- OpenGTL/GTLCore/AST/AccessorExpression.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenGTL/GTLCore/AST/AccessorExpression.cpp	2013-05-08 15:39:25.092057201 -0400
@@ -20,9 +20,9 @@
 #include "AccessorExpression.h"
 
 #include <llvm/ADT/ArrayRef.h>
-#include <llvm/Constants.h>
-#include <llvm/Function.h>
-#include <llvm/Instructions.h>
+#include <llvm/IR/Constants.h>
+#include <llvm/IR/Function.h>
+#include <llvm/IR/Instructions.h>
 
 #include "../LLVMBackend/CodeGenerator_p.h"
 #include "../LLVMBackend/ExpressionResult_p.h"
diff -up OpenGTL/GTLCore/AST/BinaryExpression.cpp.jx OpenGTL/GTLCore/AST/BinaryExpression.cpp
--- OpenGTL/GTLCore/AST/BinaryExpression.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenGTL/GTLCore/AST/BinaryExpression.cpp	2013-05-08 15:39:25.092057201 -0400
@@ -19,7 +19,7 @@
 
 #include "BinaryExpression.h"
 
-#include <llvm/Instructions.h>
+#include <llvm/IR/Instructions.h>
 
 #include <GTLCore/Debug.h>
 #include <GTLCore/LLVMBackend/CodeGenerator_p.h>
diff -up OpenGTL/GTLCore/AST/CompoundExpression.cpp.jx OpenGTL/GTLCore/AST/CompoundExpression.cpp
--- OpenGTL/GTLCore/AST/CompoundExpression.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenGTL/GTLCore/AST/CompoundExpression.cpp	2013-05-08 15:39:25.092057201 -0400
@@ -19,10 +19,10 @@
 
 #include "CompoundExpression.h"
 
-#include <llvm/Constants.h>
-#include <llvm/DerivedTypes.h>
-#include <llvm/GlobalVariable.h>
-#include <llvm/Instructions.h>
+#include <llvm/IR/Constants.h>
+#include <llvm/IR/DerivedTypes.h>
+#include <llvm/IR/GlobalVariable.h>
+#include <llvm/IR/Instructions.h>
 
 #include "../LLVMBackend/CodeGenerator_p.h"
 #include "../Debug.h"
diff -up OpenGTL/GTLCore/AST/ConstantCompoundExpression.cpp.jx OpenGTL/GTLCore/AST/ConstantCompoundExpression.cpp
--- OpenGTL/GTLCore/AST/ConstantCompoundExpression.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenGTL/GTLCore/AST/ConstantCompoundExpression.cpp	2013-05-08 15:39:25.092057201 -0400
@@ -19,10 +19,10 @@
 
 #include "ConstantCompoundExpression.h"
 
-#include <llvm/Constants.h>
-#include <llvm/DerivedTypes.h>
-#include <llvm/GlobalVariable.h>
-#include <llvm/Instructions.h>
+#include <llvm/IR/Constants.h>
+#include <llvm/IR/DerivedTypes.h>
+#include <llvm/IR/GlobalVariable.h>
+#include <llvm/IR/Instructions.h>
 
 #include "../LLVMBackend/CodeGenerator_p.h"
 #include "../Debug.h"
diff -up OpenGTL/GTLCore/AST/Expression.cpp.jx OpenGTL/GTLCore/AST/Expression.cpp
--- OpenGTL/GTLCore/AST/Expression.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenGTL/GTLCore/AST/Expression.cpp	2013-05-08 15:39:25.093057205 -0400
@@ -19,11 +19,11 @@
 
 #include "Expression.h"
 
-#include <llvm/Constant.h>
-#include <llvm/Constants.h>
-#include <llvm/Function.h>
-#include <llvm/GlobalVariable.h>
-#include <llvm/Instructions.h>
+#include <llvm/IR/Constant.h>
+#include <llvm/IR/Constants.h>
+#include <llvm/IR/Function.h>
+#include <llvm/IR/GlobalVariable.h>
+#include <llvm/IR/Instructions.h>
 
 #include "GTLCore/LLVMBackend/CodeGenerator_p.h"
 #include "GTLCore/LLVMBackend/ExpressionResult_p.h"
diff -up OpenGTL/GTLCore/AST/FunctionDeclaration.cpp.jx OpenGTL/GTLCore/AST/FunctionDeclaration.cpp
--- OpenGTL/GTLCore/AST/FunctionDeclaration.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenGTL/GTLCore/AST/FunctionDeclaration.cpp	2013-05-08 15:39:25.093057205 -0400
@@ -19,10 +19,10 @@
 
 #include "FunctionDeclaration.h"
 
-#include <llvm/DerivedTypes.h>
-#include <llvm/Function.h>
-#include <llvm/Instructions.h>
-#include <llvm/Type.h>
+#include <llvm/IR/DerivedTypes.h>
+#include <llvm/IR/Function.h>
+#include <llvm/IR/Instructions.h>
+#include <llvm/IR/Type.h>
 
 #include <GTLCore/LLVMBackend/CodeGenerator_p.h>
 #include <GTLCore/LLVMBackend/ExpressionResult_p.h>
diff -up OpenGTL/GTLCore/AST/GarbageCollectionStatement.cpp.jx OpenGTL/GTLCore/AST/GarbageCollectionStatement.cpp
--- OpenGTL/GTLCore/AST/GarbageCollectionStatement.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenGTL/GTLCore/AST/GarbageCollectionStatement.cpp	2013-05-08 15:39:25.093057205 -0400
@@ -21,8 +21,8 @@
 
 #include <stdlib.h>
 
-#include <llvm/Constant.h>
-#include <llvm/Instructions.h>
+#include <llvm/IR/Constant.h>
+#include <llvm/IR/Instructions.h>
 
 #include "../Type.h"
 #include "../LLVMBackend/CodeGenerator_p.h"
diff -up OpenGTL/GTLCore/AST/Statement.cpp.jx OpenGTL/GTLCore/AST/Statement.cpp
--- OpenGTL/GTLCore/AST/Statement.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenGTL/GTLCore/AST/Statement.cpp	2013-05-08 15:39:25.093057205 -0400
@@ -21,12 +21,12 @@
 
 // LLVM
 #include <llvm/ADT/ArrayRef.h>
-#include <llvm/BasicBlock.h>
-#include <llvm/Constants.h>
-#include <llvm/Function.h>
-#include <llvm/GlobalVariable.h>
-#include <llvm/Instructions.h>
-#include <llvm/Module.h>
+#include <llvm/IR/BasicBlock.h>
+#include <llvm/IR/Constants.h>
+#include <llvm/IR/Function.h>
+#include <llvm/IR/GlobalVariable.h>
+#include <llvm/IR/Instructions.h>
+#include <llvm/IR/Module.h>
 
 // GTLCore
 #include <GTLCore/LLVMBackend/CodeGenerator_p.h>
diff -up OpenGTL/GTLCore/AST/Tree.cpp.jx OpenGTL/GTLCore/AST/Tree.cpp
--- OpenGTL/GTLCore/AST/Tree.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenGTL/GTLCore/AST/Tree.cpp	2013-05-08 15:39:25.094057209 -0400
@@ -19,9 +19,9 @@
 
 #include "Tree.h"
 
-#include <llvm/Constant.h>
-#include <llvm/GlobalVariable.h>
-#include <llvm/Type.h>
+#include <llvm/IR/Constant.h>
+#include <llvm/IR/GlobalVariable.h>
+#include <llvm/IR/Type.h>
 
 #include "FunctionDeclaration.h"
 
@@ -37,8 +37,8 @@
 #include "GTLCore/LLVMBackend/Visitor_p.h"
 
 #include "Expression.h"
-#include <llvm/Module.h>
-#include <llvm/DerivedTypes.h>
+#include <llvm/IR/Module.h>
+#include <llvm/IR/DerivedTypes.h>
 
 using namespace GTLCore::AST;
 
diff -up OpenGTL/GTLCore/Debug.cpp.jx OpenGTL/GTLCore/Debug.cpp
--- OpenGTL/GTLCore/Debug.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenGTL/GTLCore/Debug.cpp	2013-05-08 15:39:25.094057209 -0400
@@ -22,9 +22,9 @@
 #include <map>
 #include <fstream>
 
-#include <llvm/Module.h>
-#include <llvm/Value.h>
-#include <llvm/Type.h>
+#include <llvm/IR/Module.h>
+#include <llvm/IR/Value.h>
+#include <llvm/IR/Type.h>
 #include <llvm/Support/Path.h>
 #include <llvm/Support/raw_ostream.h>
 
@@ -418,9 +418,9 @@ namespace GTLCore {
 
 #ifdef OPENGTL_ENABLE_DEBUG_OUTPUT
 
-#include <llvm/DerivedTypes.h>
-#include <llvm/Function.h>
-#include <llvm/Type.h>
+#include <llvm/IR/DerivedTypes.h>
+#include <llvm/IR/Function.h>
+#include <llvm/IR/Type.h>
 
 void compareFunctionParameters( llvm::Value* func, const std::vector<llvm::Value*>& params  )
 {
diff -up OpenGTL/GTLCore/FunctionCaller_p.cpp.jx OpenGTL/GTLCore/FunctionCaller_p.cpp
--- OpenGTL/GTLCore/FunctionCaller_p.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenGTL/GTLCore/FunctionCaller_p.cpp	2013-05-08 15:39:25.094057209 -0400
@@ -21,9 +21,9 @@
 
 #include <llvm/ExecutionEngine/GenericValue.h>
 #include <llvm/ExecutionEngine/ExecutionEngine.h>
-#include <llvm/Function.h>
-
-#include <llvm/DerivedTypes.h> // <- I don't understand why I need to include that file to be able to display llvm::Type on the standard output
+#include <llvm/IR/Function.h>
+#include <llvm/IR/Instructions.h>
+#include <llvm/IR/DerivedTypes.h> // <- I don't understand why I need to include that file to be able to display llvm::Type on the standard output
 
 #include "VirtualMachine_p.h"
 
@@ -35,7 +35,6 @@
 #include "LLVMBackend/GenerationContext_p.h"
 #include "ModuleData_p.h"
 #include "LLVMBackend/CodeGenerator_p.h"
-#include <llvm/Instructions.h>
 #include "Type_p.h"
 #include <GTLCore/Parameter.h>
 #include "PrimitiveTypesTraits_p.h"
diff -up OpenGTL/GTLCore/Function_p.cpp.jx OpenGTL/GTLCore/Function_p.cpp
--- OpenGTL/GTLCore/Function_p.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenGTL/GTLCore/Function_p.cpp	2013-05-08 15:39:25.094057209 -0400
@@ -21,9 +21,9 @@
 
 #include <cstdarg>
 
-#include <llvm/DerivedTypes.h>
-#include <llvm/Module.h>
-#include <llvm/Type.h>
+#include <llvm/IR/DerivedTypes.h>
+#include <llvm/IR/Module.h>
+#include <llvm/IR/Type.h>
 
 #include "Parameter.h"
 
diff -up OpenGTL/GTLCore/LLVMBackend/CodeGenerator_p.cpp.jx OpenGTL/GTLCore/LLVMBackend/CodeGenerator_p.cpp
--- OpenGTL/GTLCore/LLVMBackend/CodeGenerator_p.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenGTL/GTLCore/LLVMBackend/CodeGenerator_p.cpp	2013-05-08 15:39:25.095057213 -0400
@@ -19,12 +19,12 @@
 
 #include "CodeGenerator_p.h"
 
-#include <llvm/CallingConv.h>
-#include <llvm/Constants.h>
-#include <llvm/Function.h>
-#include <llvm/Instructions.h>
-#include <llvm/Module.h>
-#include <llvm/Value.h>
+#include <llvm/IR/CallingConv.h>
+#include <llvm/IR/Constants.h>
+#include <llvm/IR/Function.h>
+#include <llvm/IR/Instructions.h>
+#include <llvm/IR/Module.h>
+#include <llvm/IR/Value.h>
 
 #include "GTLCore/Debug.h"
 #include "ExpressionResult_p.h"
diff -up OpenGTL/GTLCore/LLVMBackend/ContextManager_p.cpp.jx OpenGTL/GTLCore/LLVMBackend/ContextManager_p.cpp
--- OpenGTL/GTLCore/LLVMBackend/ContextManager_p.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenGTL/GTLCore/LLVMBackend/ContextManager_p.cpp	2013-05-08 15:39:25.095057213 -0400
@@ -20,7 +20,7 @@
 #include "ContextManager_p.h"
 
 #include <llvm/Support/ThreadLocal.h>
-#include <llvm/LLVMContext.h>
+#include <llvm/IR/LLVMContext.h>
 
 using namespace LLVMBackend;
 
diff -up OpenGTL/GTLCore/LLVMBackend/ExpressionGenerationContext_p.cpp.jx OpenGTL/GTLCore/LLVMBackend/ExpressionGenerationContext_p.cpp
--- OpenGTL/GTLCore/LLVMBackend/ExpressionGenerationContext_p.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenGTL/GTLCore/LLVMBackend/ExpressionGenerationContext_p.cpp	2013-05-08 15:39:25.095057213 -0400
@@ -20,7 +20,7 @@
 #include "ExpressionGenerationContext_p.h"
 
 #include "GTLCore/Debug.h"
-#include <llvm/BasicBlock.h>
+#include <llvm/IR/BasicBlock.h>
 
 #include "GTLCore/Macros_p.h"
 
diff -up OpenGTL/GTLCore/LLVMBackend/ExpressionResult_p.cpp.jx OpenGTL/GTLCore/LLVMBackend/ExpressionResult_p.cpp
--- OpenGTL/GTLCore/LLVMBackend/ExpressionResult_p.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenGTL/GTLCore/LLVMBackend/ExpressionResult_p.cpp	2013-05-08 15:39:25.095057213 -0400
@@ -19,8 +19,8 @@
 
 #include "ExpressionResult_p.h"
 
-#include "llvm/Constant.h"
-#include "llvm/DerivedTypes.h"
+#include "llvm/IR/Constant.h"
+#include "llvm/IR/DerivedTypes.h"
 
 #include "../Type.h"
 #include "../Type_p.h"
diff -up OpenGTL/GTLCore/LLVMBackend/GenerationContext_p.cpp.jx OpenGTL/GTLCore/LLVMBackend/GenerationContext_p.cpp
--- OpenGTL/GTLCore/LLVMBackend/GenerationContext_p.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenGTL/GTLCore/LLVMBackend/GenerationContext_p.cpp	2013-05-08 15:39:25.096057217 -0400
@@ -22,8 +22,8 @@
 #include "GTLCore/ModuleData_p.h"
 #include "GTLCore/Debug.h"
 
-#include "llvm/BasicBlock.h"
-#include "llvm/Function.h"
+#include "llvm/IR/BasicBlock.h"
+#include "llvm/IR/Function.h"
 
 #include "GTLCore/AST/Statement.h"
 
diff -up OpenGTL/GTLCore/LLVMBackend/Visitor_p.cpp.jx OpenGTL/GTLCore/LLVMBackend/Visitor_p.cpp
--- OpenGTL/GTLCore/LLVMBackend/Visitor_p.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenGTL/GTLCore/LLVMBackend/Visitor_p.cpp	2013-05-08 15:39:25.096057217 -0400
@@ -20,12 +20,12 @@
 #include "Visitor_p.h"
 
 // LLVM
-#include <llvm/BasicBlock.h>
-#include <llvm/Constants.h>
-#include <llvm/Function.h>
-#include <llvm/Instructions.h>
-#include <llvm/Module.h>
-#include <llvm/GlobalVariable.h>
+#include <llvm/IR/BasicBlock.h>
+#include <llvm/IR/Constants.h>
+#include <llvm/IR/Function.h>
+#include <llvm/IR/Instructions.h>
+#include <llvm/IR/Module.h>
+#include <llvm/IR/GlobalVariable.h>
 
 // GTLCore
 #include "CodeGenerator_p.h"
diff -up OpenGTL/GTLCore/ModuleData_p.cpp.jx OpenGTL/GTLCore/ModuleData_p.cpp
--- OpenGTL/GTLCore/ModuleData_p.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenGTL/GTLCore/ModuleData_p.cpp	2013-05-08 15:41:21.422512114 -0400
@@ -21,7 +21,7 @@
 
 #include <sstream>
 
-#include <llvm/Module.h>
+#include <llvm/IR/Module.h>
 #include <llvm/PassManager.h>
 #include <llvm/Target/TargetMachine.h>
 #include <llvm/Analysis/Verifier.h>
@@ -242,7 +242,7 @@ void ModuleData::doLink()
   GTL_ASSERT( not m_llvmLinkedModule );
   m_llvmLinkedModule = m_llvmModule;
   m_llvmModule = llvm::CloneModule( m_llvmModule );
-  llvm::Linker linker("", m_llvmLinkedModule);
+  llvm::Linker linker(m_llvmLinkedModule);
   std::string errorMessage;
   foreach( const llvm::Module* mod, m_linkModuleWith )
   {
@@ -270,18 +270,11 @@ void ModuleData::doLink()
         hide.push_back(name);
       }
     }
-    linker.LinkInModule( clone, &errorMessage );
+    linker.linkInModule( clone, &errorMessage );
     
     GTL_DEBUG("Linking error: " << errorMessage );
     delete clone;
   }
-  foreach( const GTLCore::String& mod, m_linkModuleWithArchives )
-  {
-    bool v = false;
-    linker.LinkInArchive( llvm::sys::Path( (const std::string&) mod), v);
-  }
-  
-  linker.releaseModule();
   
   // Hide symbols
   foreach(GTLCore::String name, hide)
diff -up OpenGTL/GTLCore/Type.cpp.jx OpenGTL/GTLCore/Type.cpp
--- OpenGTL/GTLCore/Type.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenGTL/GTLCore/Type.cpp	2013-05-08 15:39:25.096057217 -0400
@@ -25,7 +25,7 @@
 
 #include <iostream>
 
-#include <llvm/DerivedTypes.h>
+#include <llvm/IR/DerivedTypes.h>
 
 #include "wrappers/StructWrap.h"
 #include "SharedPointer.h"
diff -up OpenGTL/GTLCore/Type_p.cpp.jx OpenGTL/GTLCore/Type_p.cpp
--- OpenGTL/GTLCore/Type_p.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenGTL/GTLCore/Type_p.cpp	2013-05-08 15:39:25.097057221 -0400
@@ -30,8 +30,8 @@
 
 using namespace GTLCore;
 
-#include <llvm/Type.h>
-#include <llvm/DerivedTypes.h>
+#include <llvm/IR/Type.h>
+#include <llvm/IR/DerivedTypes.h>
 
 Type::StructDataMember::Information::~Information()
 {
diff -up OpenGTL/GTLCore/Value_p.cpp.jx OpenGTL/GTLCore/Value_p.cpp
--- OpenGTL/GTLCore/Value_p.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenGTL/GTLCore/Value_p.cpp	2013-05-08 15:39:25.097057221 -0400
@@ -19,8 +19,8 @@
 
 #include "Value_p.h"
 
-#include <llvm/DerivedTypes.h>
-#include <llvm/Type.h>
+#include <llvm/IR/DerivedTypes.h>
+#include <llvm/IR/Type.h>
 
 #include "Debug.h"
 #include "Value.h"
diff -up OpenGTL/GTLCore/VariableNG_p.cpp.jx OpenGTL/GTLCore/VariableNG_p.cpp
--- OpenGTL/GTLCore/VariableNG_p.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenGTL/GTLCore/VariableNG_p.cpp	2013-05-08 15:39:25.097057221 -0400
@@ -19,8 +19,8 @@
 
 #include "VariableNG_p.h"
 
-#include <llvm/Constants.h>
-#include <llvm/Instructions.h>
+#include <llvm/IR/Constants.h>
+#include <llvm/IR/Instructions.h>
 
 #include "LLVMBackend/CodeGenerator_p.h"
 #include "Debug.h"
diff -up OpenGTL/GTLCore/VirtualMachine_p.cpp.jx OpenGTL/GTLCore/VirtualMachine_p.cpp
--- OpenGTL/GTLCore/VirtualMachine_p.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenGTL/GTLCore/VirtualMachine_p.cpp	2013-05-08 15:39:25.097057221 -0400
@@ -21,10 +21,10 @@
 
 // JIT
 #include <llvm/ExecutionEngine/ExecutionEngine.h>
-#include <llvm/Module.h>
-#include <llvm/DerivedTypes.h>
+#include <llvm/IR/Module.h>
+#include <llvm/IR/DerivedTypes.h>
 #include <llvm/Target/TargetOptions.h>
-#include <llvm/LLVMContext.h>
+#include <llvm/IR/LLVMContext.h>
 #include <llvm/Support/CommandLine.h>
 #include <llvm/Support/Threading.h>
 #include <llvm/Support/ErrorHandling.h>
@@ -48,7 +48,8 @@ struct VirtualMachine::Private {
 VirtualMachine* VirtualMachine::Private::virtualMachine = 0;
 int VirtualMachine::Private::optimLevel = 2;
 
-void gtl_llvm_error_handler(void *user_data, const std::string& reason)
+void gtl_llvm_error_handler(void *user_data, const std::string& reason,
+			    bool gen_crash_diag)
 {
   GTL_ABORT(reason);
 }
@@ -58,11 +59,7 @@ VirtualMachine::VirtualMachine() : d(new
 {
   d->executionEngine = 0;
   
-#ifdef LLVM_27
-  llvm::llvm_install_error_handler(&gtl_llvm_error_handler);
-#else
-  llvm::install_fatal_error_handler(&gtl_llvm_error_handler);
-#endif
+  llvm::install_fatal_error_handler(gtl_llvm_error_handler);
   
   llvm::llvm_start_multithreaded();
 
diff -up OpenGTL/GTLFragment/Compiler_p.cpp.jx OpenGTL/GTLFragment/Compiler_p.cpp
--- OpenGTL/GTLFragment/Compiler_p.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenGTL/GTLFragment/Compiler_p.cpp	2013-05-08 15:39:25.097057221 -0400
@@ -19,7 +19,7 @@
 
 #include "Compiler_p.h"
 
-#include <llvm/Module.h>
+#include <llvm/IR/Module.h>
 #include <llvm/PassManager.h>
 
 #include "GTLCore/AST/Expression.h"
diff -up OpenGTL/GTLFragment/Library.cpp.jx OpenGTL/GTLFragment/Library.cpp
--- OpenGTL/GTLFragment/Library.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenGTL/GTLFragment/Library.cpp	2013-05-08 15:39:25.098057225 -0400
@@ -22,9 +22,9 @@
 
 #include <sstream>
 
-#include <llvm/Module.h>
+#include <llvm/IR/Module.h>
 #include <llvm/Support/DynamicLibrary.h>
-#include <llvm/LLVMContext.h>
+#include <llvm/IR/LLVMContext.h>
 
 #include "GTLCore/CompilationMessage.h"
 #include "GTLCore/Function.h"
diff -up OpenGTL/GTLFragment/Wrapper.cpp.jx OpenGTL/GTLFragment/Wrapper.cpp
--- OpenGTL/GTLFragment/Wrapper.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenGTL/GTLFragment/Wrapper.cpp	2013-05-08 15:39:25.098057225 -0400
@@ -29,7 +29,7 @@
 
 #include "Library.h"
 #include <GTLCore/Function_p.h>
-#include <llvm/Module.h>
+#include <llvm/IR/Module.h>
 #include <GTLCore/Type_p.h>
 
 using namespace GTLFragment;
diff -up OpenShiva/OpenShiva/CodeGenerator_p.cpp.jx OpenShiva/OpenShiva/CodeGenerator_p.cpp
--- OpenShiva/OpenShiva/CodeGenerator_p.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenShiva/OpenShiva/CodeGenerator_p.cpp	2013-05-08 15:39:25.098057225 -0400
@@ -21,14 +21,14 @@
 
 #include <vector>
 
-#include <llvm/CallingConv.h>
-#include <llvm/Constants.h>
-#include <llvm/Constant.h>
-#include <llvm/DerivedTypes.h>
-#include <llvm/Function.h>
-#include <llvm/Instructions.h>
-#include <llvm/Module.h>
-#include <llvm/Value.h>
+#include <llvm/IR/CallingConv.h>
+#include <llvm/IR/Constants.h>
+#include <llvm/IR/Constant.h>
+#include <llvm/IR/DerivedTypes.h>
+#include <llvm/IR/Function.h>
+#include <llvm/IR/Instructions.h>
+#include <llvm/IR/Module.h>
+#include <llvm/IR/Value.h>
 
 #include "GTLCore/LLVMBackend/CodeGenerator_p.h"
 #include "GTLCore/LLVMBackend/ExpressionResult_p.h"
diff -up OpenShiva/OpenShiva/ColorToPixelOverloadOperatorFactory_p.cpp.jx OpenShiva/OpenShiva/ColorToPixelOverloadOperatorFactory_p.cpp
--- OpenShiva/OpenShiva/ColorToPixelOverloadOperatorFactory_p.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenShiva/OpenShiva/ColorToPixelOverloadOperatorFactory_p.cpp	2013-05-08 15:39:25.098057225 -0400
@@ -28,13 +28,13 @@
 #include "CodeGenerator_p.h"
 #include <GTLFragment/wrappers/ColorWrap_p.h>
 #include <GTLCore/Type_p.h>
-#include <llvm/Value.h>
-#include <llvm/DerivedTypes.h>
-#include <llvm/CallingConv.h>
-#include <llvm/Module.h>
+#include <llvm/IR/Value.h>
+#include <llvm/IR/DerivedTypes.h>
+#include <llvm/IR/CallingConv.h>
+#include <llvm/IR/Module.h>
 #include <GTLCore/LLVMBackend/ExpressionGenerationContext_p.h>
 #include <GTLCore/LLVMBackend/CodeGenerator_p.h>
-#include <llvm/Instructions.h>
+#include <llvm/IR/Instructions.h>
 #include <GTLCore/TypesManager.h>
 
 using namespace OpenShiva;
diff -up OpenShiva/OpenShiva/Kernel.cpp.jx OpenShiva/OpenShiva/Kernel.cpp
--- OpenShiva/OpenShiva/Kernel.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenShiva/OpenShiva/Kernel.cpp	2013-05-08 15:39:25.099057228 -0400
@@ -22,7 +22,7 @@
 #include <sstream>
 #include <fstream>
 
-#include <llvm/Module.h>
+#include <llvm/IR/Module.h>
 
 #include "GTLCore/CompilationMessage.h"
 #include "GTLCore/Function.h"
@@ -48,7 +48,7 @@
 #include "wrappers/ImageWrap_p.h"
 #include "wrappers/RegionWrap_p.h"
 #include <GTLCore/AST/Tree.h>
-#include <llvm/DerivedTypes.h>
+#include <llvm/IR/DerivedTypes.h>
 
 using namespace OpenShiva;
 
diff -up OpenShiva/OpenShiva/PixelConvertExpressionFactory_p.cpp.jx OpenShiva/OpenShiva/PixelConvertExpressionFactory_p.cpp
--- OpenShiva/OpenShiva/PixelConvertExpressionFactory_p.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenShiva/OpenShiva/PixelConvertExpressionFactory_p.cpp	2013-05-08 15:39:25.099057228 -0400
@@ -19,7 +19,8 @@
 
 #include "PixelConvertExpressionFactory_p.h"
 
-#include <llvm/Instructions.h>
+#include <llvm/IR/Instructions.h>
+#include <llvm/IR/Function.h>
 
 #include "GTLCore/Type.h"
 #include "GTLCore/AST/ConvertExpression.h"
@@ -34,7 +35,6 @@
 #include <GTLCore/VariableNG_p.h>
 #include <GTLCore/LLVMBackend/Visitor_p.h>
 #include <GTLFragment/wrappers/ColorWrap_p.h>
-#include <llvm/Function.h>
 #include <GTLCore/Type_p.h>
 
 using namespace OpenShiva;
diff -up OpenShiva/OpenShiva/PixelVisitor_p.cpp.jx OpenShiva/OpenShiva/PixelVisitor_p.cpp
--- OpenShiva/OpenShiva/PixelVisitor_p.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenShiva/OpenShiva/PixelVisitor_p.cpp	2013-05-08 15:39:25.099057228 -0400
@@ -20,11 +20,11 @@
 #include "PixelVisitor_p.h"
 
 // LLVM
-#include <llvm/Constant.h>
-#include <llvm/Constants.h>
-#include <llvm/BasicBlock.h>
-#include <llvm/Instructions.h>
-#include <llvm/Function.h>
+#include <llvm/IR/Constant.h>
+#include <llvm/IR/Constants.h>
+#include <llvm/IR/BasicBlock.h>
+#include <llvm/IR/Instructions.h>
+#include <llvm/IR/Function.h>
 
 #include "GTLCore/LLVMBackend/ExpressionResult_p.h"
 #include "GTLCore/LLVMBackend/ExpressionGenerationContext_p.h"
diff -up OpenShiva/OpenShiva/Wrapper_p.cpp.jx OpenShiva/OpenShiva/Wrapper_p.cpp
--- OpenShiva/OpenShiva/Wrapper_p.cpp.jx	2012-12-29 06:27:12.000000000 -0500
+++ OpenShiva/OpenShiva/Wrapper_p.cpp	2013-05-08 15:39:25.099057228 -0400
@@ -22,9 +22,9 @@
 #include <map>
 #include <vector>
 
-#include <llvm/DerivedTypes.h>
-#include <llvm/Function.h>
-#include <llvm/Module.h>
+#include <llvm/IR/DerivedTypes.h>
+#include <llvm/IR/Function.h>
+#include <llvm/IR/Module.h>
 
 #include "GTLCore/Function_p.h"
 #include "GTLCore/Macros.h"
