summarylogtreecommitdiffstats
path: root/llvm-3.7-patch-2.patch
diff options
context:
space:
mode:
Diffstat (limited to 'llvm-3.7-patch-2.patch')
-rw-r--r--llvm-3.7-patch-2.patch1023
1 files changed, 0 insertions, 1023 deletions
diff --git a/llvm-3.7-patch-2.patch b/llvm-3.7-patch-2.patch
deleted file mode 100644
index 6fa33bd0c0bc..000000000000
--- a/llvm-3.7-patch-2.patch
+++ /dev/null
@@ -1,1023 +0,0 @@
-Move all llvm relative includes to llvm_includes.hpp.
-
-Signed-off-by: Yang Rong <rong.r.yang at intel.com>
----
- backend/src/backend/gen_program.cpp | 4 +
- backend/src/llvm/ExpandConstantExpr.cpp | 7 +-
- backend/src/llvm/ExpandLargeIntegers.cpp | 21 +---
- backend/src/llvm/ExpandUtils.cpp | 8 +-
- backend/src/llvm/PromoteIntegers.cpp | 10 +-
- backend/src/llvm/StripAttributes.cpp | 9 +-
- backend/src/llvm/llvm_barrier_nodup.cpp | 25 +----
- backend/src/llvm/llvm_bitcode_link.cpp | 20 +---
- backend/src/llvm/llvm_gen_backend.cpp | 93 +++--------------
- backend/src/llvm/llvm_gen_backend.hpp | 4 -
- backend/src/llvm/llvm_includes.hpp | 125 +++++++++++++++++++++++
- backend/src/llvm/llvm_intrinsic_lowering.cpp | 24 +----
- backend/src/llvm/llvm_loadstore_optimization.cpp | 36 +------
- backend/src/llvm/llvm_passes.cpp | 70 +------------
- backend/src/llvm/llvm_printf_parser.cpp | 34 +-----
- backend/src/llvm/llvm_sampler_fix.cpp | 21 +---
- backend/src/llvm/llvm_scalarize.cpp | 35 +------
- backend/src/llvm/llvm_to_gen.cpp | 78 ++++++--------
- backend/src/llvm/llvm_unroll.cpp | 36 ++-----
- 19 files changed, 207 insertions(+), 453 deletions(-)
- create mode 100644 backend/src/llvm/llvm_includes.hpp
-
-diff --git a/backend/src/backend/gen_program.cpp b/backend/src/backend/gen_program.cpp
-index 3c4983e..73d78f8 100644
---- a/backend/src/backend/gen_program.cpp
-+++ b/backend/src/backend/gen_program.cpp
-@@ -402,7 +402,11 @@ namespace gbe {
- llvm::Module* src = (llvm::Module*)((GenProgram*)src_program)->module;
- llvm::Module* dst = (llvm::Module*)((GenProgram*)dst_program)->module;
-
-+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 7
-+ if (LLVMLinkModules(wrap(dst), wrap(src), LLVMLinkerPreserveSource_Removed, &errMsg)) {
-+#else
- if (LLVMLinkModules(wrap(dst), wrap(src), LLVMLinkerPreserveSource, &errMsg)) {
-+#endif
- if (err != NULL && errSize != NULL && stringSize > 0u) {
- strncpy(err, errMsg, stringSize-1);
- err[stringSize-1] = '\0';
-diff --git a/backend/src/llvm/ExpandConstantExpr.cpp b/backend/src/llvm/ExpandConstantExpr.cpp
-index 5c5934a..c6f57b8 100644
---- a/backend/src/llvm/ExpandConstantExpr.cpp
-+++ b/backend/src/llvm/ExpandConstantExpr.cpp
-@@ -77,12 +77,7 @@
- //===----------------------------------------------------------------------===//
-
- #include <map>
--
--#include "llvm/IR/IRBuilder.h"
--#include "llvm/IR/Constants.h"
--#include "llvm/IR/Function.h"
--#include "llvm/IR/Instructions.h"
--#include "llvm/Pass.h"
-+#include "llvm_includes.hpp"
- #include "llvm_gen_backend.hpp"
-
- using namespace llvm;
-diff --git a/backend/src/llvm/ExpandLargeIntegers.cpp b/backend/src/llvm/ExpandLargeIntegers.cpp
-index f7e59a5..20fdda9 100644
---- a/backend/src/llvm/ExpandLargeIntegers.cpp
-+++ b/backend/src/llvm/ExpandLargeIntegers.cpp
-@@ -86,24 +86,9 @@
- // 2. OR x, 0 can be optimized as x. And x, 0 can be optimized as 0.
- //===----------------------------------------------------------------------===//
-
--#include "llvm/ADT/DenseMap.h"
--#include "llvm/ADT/PostOrderIterator.h"
--#include "llvm/ADT/STLExtras.h"
--#include "llvm/ADT/SmallVector.h"
--#if LLVM_VERSION_MINOR >= 5
--#include "llvm/IR/CFG.h"
--#else
--#include "llvm/Support/CFG.h"
--#endif
--#include "llvm/IR/DataLayout.h"
--#include "llvm/IR/DerivedTypes.h"
--#include "llvm/IR/Function.h"
--#include "llvm/IR/IRBuilder.h"
--#include "llvm/IR/Instructions.h"
--#include "llvm/Pass.h"
--#include "llvm/Support/Debug.h"
--#include "llvm/Support/MathExtras.h"
--#include "llvm/Support/raw_ostream.h"
-+
-+#include "llvm_includes.hpp"
-+
- #include "llvm_gen_backend.hpp"
-
- using namespace llvm;
-diff --git a/backend/src/llvm/ExpandUtils.cpp b/backend/src/llvm/ExpandUtils.cpp
-index e6dfb52..801f969 100644
---- a/backend/src/llvm/ExpandUtils.cpp
-+++ b/backend/src/llvm/ExpandUtils.cpp
-@@ -64,12 +64,8 @@
- //
- //===----------------------------------------------------------------------===//
-
--#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/Support/raw_ostream.h"
-+#include "llvm_includes.hpp"
-+
- #include "llvm_gen_backend.hpp"
-
- using namespace llvm;
-diff --git a/backend/src/llvm/PromoteIntegers.cpp b/backend/src/llvm/PromoteIntegers.cpp
-index aba42b9..b65440f 100644
---- a/backend/src/llvm/PromoteIntegers.cpp
-+++ b/backend/src/llvm/PromoteIntegers.cpp
-@@ -84,14 +84,8 @@
- //===----------------------------------------------------------------------===//
-
-
--#include "llvm/ADT/DenseMap.h"
--#include "llvm/ADT/SmallVector.h"
--#include "llvm/IR/DerivedTypes.h"
--#include "llvm/IR/Function.h"
--#include "llvm/IR/Instructions.h"
--#include "llvm/IR/IRBuilder.h"
--#include "llvm/Pass.h"
--#include "llvm/Support/raw_ostream.h"
-+#include "llvm_includes.hpp"
-+
- #include "llvm_gen_backend.hpp"
-
- using namespace llvm;
-diff --git a/backend/src/llvm/StripAttributes.cpp b/backend/src/llvm/StripAttributes.cpp
-index 05cac17..e6df312 100644
---- a/backend/src/llvm/StripAttributes.cpp
-+++ b/backend/src/llvm/StripAttributes.cpp
-@@ -69,14 +69,7 @@
- // * Calling conventions from functions and function calls.
- //
-
--#include "llvm/IR/Function.h"
--#include "llvm/Pass.h"
--
--#if LLVM_VERSION_MINOR >= 5
--#include "llvm/IR/CallSite.h"
--#else
--#include "llvm/Support/CallSite.h"
--#endif
-+#include "llvm_includes.hpp"
-
- #include "llvm_gen_backend.hpp"
-
-diff --git a/backend/src/llvm/llvm_barrier_nodup.cpp b/backend/src/llvm/llvm_barrier_nodup.cpp
-index 19deafc..727e6bd 100644
---- a/backend/src/llvm/llvm_barrier_nodup.cpp
-+++ b/backend/src/llvm/llvm_barrier_nodup.cpp
-@@ -28,30 +28,7 @@
- *
- */
-
--#include "llvm/Config/llvm-config.h"
--#if LLVM_VERSION_MINOR <= 2
--#include "llvm/Function.h"
--#include "llvm/InstrTypes.h"
--#include "llvm/Instructions.h"
--#include "llvm/IntrinsicInst.h"
--#include "llvm/Module.h"
--#else
--#include "llvm/IR/Function.h"
--#include "llvm/IR/InstrTypes.h"
--#include "llvm/IR/Instructions.h"
--#include "llvm/IR/IntrinsicInst.h"
--#include "llvm/IR/Module.h"
--#endif /* LLVM_VERSION_MINOR <= 2 */
--#include "llvm/Pass.h"
--#if LLVM_VERSION_MINOR <= 1
--#include "llvm/Support/IRBuilder.h"
--#elif LLVM_VERSION_MINOR == 2
--#include "llvm/IRBuilder.h"
--#else
--#include "llvm/IR/IRBuilder.h"
--#endif /* LLVM_VERSION_MINOR <= 1 */
--#include "llvm/Support/raw_ostream.h"
--#include "llvm/IR/Attributes.h"
-+#include "llvm_includes.hpp"
-
- #include "llvm/llvm_gen_backend.hpp"
- #include "sys/map.hpp"
-diff --git a/backend/src/llvm/llvm_bitcode_link.cpp b/backend/src/llvm/llvm_bitcode_link.cpp
-index ebf4386..56205bb 100644
---- a/backend/src/llvm/llvm_bitcode_link.cpp
-+++ b/backend/src/llvm/llvm_bitcode_link.cpp
-@@ -21,24 +21,11 @@
- #include <iostream>
- #include <sstream>
- #include <set>
--#include "llvm/IR/Function.h"
--#include "llvm/IR/Instructions.h"
--#include "llvm/IR/Module.h"
--#include "llvm/IRReader/IRReader.h"
--#include "llvm/PassManager.h"
--#include "llvm/Pass.h"
--#include "llvm/IR/IRBuilder.h"
--#include "llvm/Support/FileSystem.h"
--#include "llvm/Support/MemoryBuffer.h"
--#include "llvm/Bitcode/ReaderWriter.h"
--#include "llvm/Transforms/IPO.h"
--#include "llvm/Transforms/Utils/Cloning.h"
--#include "llvm/Support/SourceMgr.h"
-
- #include "sys/cvar.hpp"
- #include "src/GBEConfig.h"
-+#include "llvm_includes.hpp"
- #include "llvm/llvm_gen_backend.hpp"
--#include "llvm-c/Linker.h"
-
- using namespace llvm;
-
-@@ -248,8 +235,11 @@ namespace gbe
- printf("Fatal Error: link the bitcode error:\n%s\n", errorMsg);
- return NULL;
- }
--
-+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >=7
-+ llvm::legacy::PassManager passes;
-+#else
- llvm::PassManager passes;
-+#endif
-
- passes.add(createInternalizePass(kernels));
- passes.add(createGlobalDCEPass());
-diff --git a/backend/src/llvm/llvm_gen_backend.cpp b/backend/src/llvm/llvm_gen_backend.cpp
-index 4905415..4f2fe89 100644
---- a/backend/src/llvm/llvm_gen_backend.cpp
-+++ b/backend/src/llvm/llvm_gen_backend.cpp
-@@ -71,86 +71,7 @@
- * is intercepted, we just abort
- */
-
--#include "llvm/Config/llvm-config.h"
--#if LLVM_VERSION_MINOR <= 2
--#include "llvm/CallingConv.h"
--#include "llvm/Constants.h"
--#include "llvm/DerivedTypes.h"
--#include "llvm/Module.h"
--#include "llvm/Instructions.h"
--#else
--#include "llvm/IR/CallingConv.h"
--#include "llvm/IR/Constants.h"
--#include "llvm/IR/DerivedTypes.h"
--#include "llvm/IR/Module.h"
--#include "llvm/IR/Instructions.h"
--#endif /* LLVM_VERSION_MINOR <= 2 */
--#include "llvm/Pass.h"
--#include "llvm/PassManager.h"
--#include "llvm/IR/IRBuilder.h"
--#if LLVM_VERSION_MINOR <= 2
--#include "llvm/Intrinsics.h"
--#include "llvm/IntrinsicInst.h"
--#include "llvm/InlineAsm.h"
--#else
--#include "llvm/IR/Intrinsics.h"
--#include "llvm/IR/IntrinsicInst.h"
--#include "llvm/IR/InlineAsm.h"
--#endif /* LLVM_VERSION_MINOR <= 2 */
--#include "llvm/ADT/StringExtras.h"
--#include "llvm/ADT/SmallString.h"
--#include "llvm/ADT/STLExtras.h"
--#include "llvm/Analysis/ConstantsScanner.h"
--#include "llvm/Analysis/LoopInfo.h"
--#include "llvm/Analysis/ValueTracking.h"
--#include "llvm/CodeGen/Passes.h"
--#include "llvm/CodeGen/IntrinsicLowering.h"
--
--#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >=5
--#include "llvm/IR/Mangler.h"
--#else
--#include "llvm/Target/Mangler.h"
--#endif
--
--#include "llvm/ADT/PostOrderIterator.h"
--#include "llvm/Transforms/Scalar.h"
--#include "llvm/MC/MCAsmInfo.h"
--#include "llvm/MC/MCContext.h"
--#include "llvm/MC/MCInstrInfo.h"
--#include "llvm/MC/MCObjectFileInfo.h"
--#include "llvm/MC/MCRegisterInfo.h"
--#include "llvm/MC/MCSubtargetInfo.h"
--#include "llvm/MC/MCSymbol.h"
--#if !defined(LLVM_VERSION_MAJOR) || (LLVM_VERSION_MINOR == 1)
--#include "llvm/Target/TargetData.h"
--#elif LLVM_VERSION_MINOR == 2
--#include "llvm/DataLayout.h"
--#else
--#include "llvm/IR/DataLayout.h"
--#endif
--
--#if LLVM_VERSION_MINOR >= 5
--#include "llvm/IR/CallSite.h"
--#include "llvm/IR/CFG.h"
--#else
--#include "llvm/Support/CallSite.h"
--#include "llvm/Support/CFG.h"
--#endif
--
--#include "llvm/Support/ErrorHandling.h"
--#include "llvm/Support/FormattedStream.h"
--#if (LLVM_VERSION_MAJOR == 3) && (LLVM_VERSION_MINOR <= 2)
--#include "llvm/Support/InstVisitor.h"
--#elif LLVM_VERSION_MINOR >= 5
--#include "llvm/IR/InstVisitor.h"
--#else
--#include "llvm/InstVisitor.h"
--#endif
--#include "llvm/Support/MathExtras.h"
--#include "llvm/Support/TargetRegistry.h"
--#include "llvm/Support/Host.h"
--#include "llvm/Support/ToolOutputFile.h"
--#include "llvm/Support/SourceMgr.h"
-+#include "llvm_includes.hpp"
-
- #include "llvm/llvm_gen_backend.hpp"
- #include "ir/context.hpp"
-@@ -527,14 +448,22 @@ namespace gbe
- TheModule(0),
- btiBase(BTI_RESERVED_NUM)
- {
-+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >=7
-+ initializeLoopInfoWrapperPassPass(*PassRegistry::getPassRegistry());
-+#else
- initializeLoopInfoPass(*PassRegistry::getPassRegistry());
-+#endif
- pass = PASS_EMIT_REGISTERS;
- }
-
- virtual const char *getPassName() const { return "Gen Back-End"; }
-
- void getAnalysisUsage(AnalysisUsage &AU) const {
-+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >=7
-+ AU.addRequired<LoopInfoWrapperPass>();
-+#else
- AU.addRequired<LoopInfo>();
-+#endif
- AU.setPreservesAll();
- }
-
-@@ -564,7 +493,11 @@ namespace gbe
- assignBti(F);
- analyzePointerOrigin(F);
-
-+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >=7
-+ LI = &getAnalysis<LoopInfoWrapperPass>().getLoopInfo();
-+#else
- LI = &getAnalysis<LoopInfo>();
-+#endif
- emitFunction(F);
- phiMap.clear();
- globalPointer.clear();
-diff --git a/backend/src/llvm/llvm_gen_backend.hpp b/backend/src/llvm/llvm_gen_backend.hpp
-index 1f16557..94a377b 100644
---- a/backend/src/llvm/llvm_gen_backend.hpp
-+++ b/backend/src/llvm/llvm_gen_backend.hpp
-@@ -30,11 +30,7 @@
- #include "llvm/Config/llvm-config.h"
- #include "llvm/Pass.h"
- #include "llvm/Analysis/LoopPass.h"
--#if LLVM_VERSION_MINOR <= 2
--#include "llvm/Instructions.h"
--#else
- #include "llvm/IR/Instructions.h"
--#endif
- #include "sys/platform.hpp"
- #include "sys/map.hpp"
- #include <algorithm>
-diff --git a/backend/src/llvm/llvm_includes.hpp b/backend/src/llvm/llvm_includes.hpp
-new file mode 100644
-index 0000000..fed3a18
---- /dev/null
-+++ b/backend/src/llvm/llvm_includes.hpp
-@@ -0,0 +1,125 @@
-+/*
-+ * Copyright © 2012 Intel Corporation
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License as published by the Free Software Foundation; either
-+ * version 2.1 of the License, or (at your option) any later version.
-+ *
-+ * This library is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * Lesser General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
-+ *
-+ * Author: Yang Rong <rong.r.yang at intel.com>
-+ */
-+
-+/**
-+ * \file llvm_includes.hpp
-+ * \author Yang Rong <rong.r.yang at intel.com>
-+ */
-+#ifndef __GBE_IR_LLVM_INCLUDES_HPP__
-+#define __GBE_IR_LLVM_INCLUDES_HPP__
-+
-+#include "llvm/Config/llvm-config.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/IRBuilder.h"
-+#include "llvm/IR/DataLayout.h"
-+#include "llvm/IR/DerivedTypes.h"
-+#include "llvm/IR/InstrTypes.h"
-+#include "llvm/IR/IntrinsicInst.h"
-+#include "llvm/IR/Attributes.h"
-+#include "llvm/IR/CallingConv.h"
-+#include "llvm/IR/Intrinsics.h"
-+#include "llvm/IR/InlineAsm.h"
-+#include "llvm/IR/LLVMContext.h"
-+
-+#include "llvm_includes.hpp"
-+
-+#include "llvm/Pass.h"
-+#include "llvm/ADT/DenseMap.h"
-+#include "llvm/ADT/PostOrderIterator.h"
-+#include "llvm/ADT/STLExtras.h"
-+#include "llvm/ADT/SmallVector.h"
-+#include "llvm/ADT/StringExtras.h"
-+#include "llvm/ADT/SmallString.h"
-+
-+#include "llvm/Analysis/ScalarEvolution.h"
-+#include "llvm/Analysis/ScalarEvolutionExpressions.h"
-+#include "llvm/Analysis/CFGPrinter.h"
-+#include "llvm/Analysis/LoopPass.h"
-+#include "llvm/Analysis/TargetTransformInfo.h"
-+#include "llvm/Analysis/LoopInfo.h"
-+#include "llvm/Analysis/ValueTracking.h"
-+#include "llvm/Analysis/Passes.h"
-+
-+#include "llvm/Support/raw_ostream.h"
-+#include "llvm/Support/Debug.h"
-+#include "llvm/Support/MathExtras.h"
-+#include "llvm/Support/FileSystem.h"
-+#include "llvm/Support/MemoryBuffer.h"
-+#include "llvm/Support/SourceMgr.h"
-+#include "llvm/Support/ErrorHandling.h"
-+#include "llvm/Support/FormattedStream.h"
-+#include "llvm/Support/TargetRegistry.h"
-+#include "llvm/Support/Host.h"
-+#include "llvm/Support/ToolOutputFile.h"
-+
-+#include "llvm-c/Linker.h"
-+#include "llvm/IRReader/IRReader.h"
-+#include "llvm/Bitcode/ReaderWriter.h"
-+#include "llvm/Transforms/IPO.h"
-+#include "llvm/Transforms/Utils/Cloning.h"
-+
-+#include "llvm/CodeGen/Passes.h"
-+#include "llvm/CodeGen/IntrinsicLowering.h"
-+
-+#include "llvm/Transforms/Scalar.h"
-+#include "llvm/MC/MCAsmInfo.h"
-+#include "llvm/MC/MCContext.h"
-+#include "llvm/MC/MCInstrInfo.h"
-+#include "llvm/MC/MCObjectFileInfo.h"
-+#include "llvm/MC/MCRegisterInfo.h"
-+#include "llvm/MC/MCSubtargetInfo.h"
-+#include "llvm/MC/MCSymbol.h"
-+
-+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >=5
-+#include "llvm/IR/Mangler.h"
-+#include "llvm/IR/CallSite.h"
-+#include "llvm/IR/CFG.h"
-+#include "llvm/IR/InstVisitor.h"
-+#include "llvm/IR/IRPrintingPasses.h"
-+#include "llvm/IR/Verifier.h"
-+#include "llvm/IR/InstIterator.h"
-+#include "llvm/IR/Dominators.h"
-+#else
-+#include "llvm/Support/CallSite.h"
-+#include "llvm/Support/CFG.h"
-+#include "llvm/Support/InstIterator.h"
-+#include "llvm/InstVisitor.h"
-+#include "llvm/Analysis/Verifier.h"
-+#include "llvm/Analysis/Dominators.h"
-+#include "llvm/Assembly/PrintModulePass.h"
-+#include "llvm/Target/Mangler.h"
-+#endif
-+
-+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >=7
-+#include "llvm/Analysis/TargetLibraryInfo.h"
-+#include "llvm/IR/LegacyPassManager.h"
-+#else
-+#include "llvm/Target/TargetLibraryInfo.h"
-+#include "llvm/PassManager.h"
-+#endif
-+#include "llvm/ADT/Triple.h"
-+
-+#include <clang/CodeGen/CodeGenAction.h>
-+
-+#endif /* __GBE_IR_LLVM_INCLUDES_HPP__ */
-diff --git a/backend/src/llvm/llvm_intrinsic_lowering.cpp b/backend/src/llvm/llvm_intrinsic_lowering.cpp
-index 7d1f8f0..b35d1e6 100644
---- a/backend/src/llvm/llvm_intrinsic_lowering.cpp
-+++ b/backend/src/llvm/llvm_intrinsic_lowering.cpp
-@@ -20,29 +20,7 @@
- * \author Yang Rong <rong.r.yang at intel.com>
- */
-
--#include "llvm/Config/llvm-config.h"
--#if LLVM_VERSION_MINOR <= 2
--#include "llvm/Function.h"
--#include "llvm/InstrTypes.h"
--#include "llvm/Instructions.h"
--#include "llvm/IntrinsicInst.h"
--#include "llvm/Module.h"
--#else
--#include "llvm/IR/Function.h"
--#include "llvm/IR/InstrTypes.h"
--#include "llvm/IR/Instructions.h"
--#include "llvm/IR/IntrinsicInst.h"
--#include "llvm/IR/Module.h"
--#endif /* LLVM_VERSION_MINOR <= 2 */
--#include "llvm/Pass.h"
--#if LLVM_VERSION_MINOR <= 1
--#include "llvm/Support/IRBuilder.h"
--#elif LLVM_VERSION_MINOR == 2
--#include "llvm/IRBuilder.h"
--#else
--#include "llvm/IR/IRBuilder.h"
--#endif /* LLVM_VERSION_MINOR <= 1 */
--#include "llvm/Support/raw_ostream.h"
-+#include "llvm_includes.hpp"
-
- #include "llvm/llvm_gen_backend.hpp"
- #include "sys/map.hpp"
-diff --git a/backend/src/llvm/llvm_loadstore_optimization.cpp b/backend/src/llvm/llvm_loadstore_optimization.cpp
-index c6349fa..698fdc2 100644
---- a/backend/src/llvm/llvm_loadstore_optimization.cpp
-+++ b/backend/src/llvm/llvm_loadstore_optimization.cpp
-@@ -22,37 +22,7 @@
- * from Vectorize passes in llvm.
- */
-
--#include "llvm/IR/Instructions.h"
--#include "llvm/Pass.h"
--#include "llvm/PassManager.h"
--
--#include "llvm/Config/llvm-config.h"
--#include "llvm/ADT/DenseMap.h"
--#include "llvm/ADT/PostOrderIterator.h"
--#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR <= 2
--#include "llvm/Function.h"
--#include "llvm/InstrTypes.h"
--#include "llvm/Instructions.h"
--#include "llvm/IntrinsicInst.h"
--#include "llvm/Module.h"
--#else
--#include "llvm/IR/Function.h"
--#include "llvm/IR/InstrTypes.h"
--#include "llvm/IR/Instructions.h"
--#include "llvm/IR/IntrinsicInst.h"
--#include "llvm/IR/Module.h"
--#endif /* LLVM_VERSION_MINOR <= 2 */
--#include "llvm/Pass.h"
--#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR <= 1
--#include "llvm/Support/IRBuilder.h"
--#elif LLVM_VERSION_MINOR == 2
--#include "llvm/IRBuilder.h"
--#else
--#include "llvm/IR/IRBuilder.h"
--#endif /* LLVM_VERSION_MINOR <= 1 */
--#include "llvm/Support/raw_ostream.h"
--#include "llvm/Analysis/ScalarEvolution.h"
--#include "llvm/Analysis/ScalarEvolutionExpressions.h"
-+#include "llvm_includes.hpp"
-
- using namespace llvm;
- namespace gbe {
-@@ -72,7 +42,9 @@ namespace gbe {
-
- virtual bool runOnBasicBlock(BasicBlock &BB) {
- SE = &getAnalysis<ScalarEvolution>();
-- #if LLVM_VERSION_MINOR >= 5
-+ #if LLVM_VERSION_MINOR >= 7
-+ TD = &BB.getModule()->getDataLayout();
-+ #elif LLVM_VERSION_MINOR >= 5
- DataLayoutPass *DLP = getAnalysisIfAvailable<DataLayoutPass>();
- TD = DLP ? &DLP->getDataLayout() : nullptr;
- #else
-diff --git a/backend/src/llvm/llvm_passes.cpp b/backend/src/llvm/llvm_passes.cpp
-index 223f61b..d5d965b 100644
---- a/backend/src/llvm/llvm_passes.cpp
-+++ b/backend/src/llvm/llvm_passes.cpp
-@@ -30,75 +30,7 @@
- * Segovia) the right to use another license for it (MIT here)
- */
-
--#include "llvm/Config/llvm-config.h"
--#if LLVM_VERSION_MINOR <= 2
--#include "llvm/CallingConv.h"
--#include "llvm/Constants.h"
--#include "llvm/DerivedTypes.h"
--#include "llvm/Module.h"
--#include "llvm/Instructions.h"
--#else
--#include "llvm/IR/CallingConv.h"
--#include "llvm/IR/Constants.h"
--#include "llvm/IR/DerivedTypes.h"
--#include "llvm/IR/Module.h"
--#include "llvm/IR/Instructions.h"
--#endif /* LLVM_VERSION_MINOR <= 2 */
--#include "llvm/Pass.h"
--#include "llvm/PassManager.h"
--#if LLVM_VERSION_MINOR <= 2
--#include "llvm/Intrinsics.h"
--#include "llvm/IntrinsicInst.h"
--#include "llvm/InlineAsm.h"
--#else
--#include "llvm/IR/Intrinsics.h"
--#include "llvm/IR/IntrinsicInst.h"
--#include "llvm/IR/InlineAsm.h"
--#endif /* LLVM_VERSION_MINOR <= 2 */
--#include "llvm/ADT/StringExtras.h"
--#include "llvm/ADT/SmallString.h"
--#include "llvm/ADT/STLExtras.h"
--#include "llvm/Analysis/ConstantsScanner.h"
--#include "llvm/Analysis/LoopInfo.h"
--#include "llvm/Analysis/ValueTracking.h"
--#include "llvm/CodeGen/Passes.h"
--#include "llvm/CodeGen/IntrinsicLowering.h"
--
--#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >=5
--#include "llvm/IR/Mangler.h"
--#else
--#include "llvm/Target/Mangler.h"
--#endif
--
--#include "llvm/Transforms/Scalar.h"
--#include "llvm/MC/MCAsmInfo.h"
--#include "llvm/MC/MCContext.h"
--#include "llvm/MC/MCInstrInfo.h"
--#include "llvm/MC/MCObjectFileInfo.h"
--#include "llvm/MC/MCRegisterInfo.h"
--#include "llvm/MC/MCSubtargetInfo.h"
--#include "llvm/MC/MCSymbol.h"
--#if !defined(LLVM_VERSION_MAJOR) || (LLVM_VERSION_MINOR == 1)
--#include "llvm/Target/TargetData.h"
--#elif LLVM_VERSION_MINOR == 2
--#include "llvm/DataLayout.h"
--#else
--#include "llvm/IR/DataLayout.h"
--#endif
--#include "llvm/Support/ErrorHandling.h"
--#include "llvm/Support/FormattedStream.h"
--#if (LLVM_VERSION_MAJOR == 3) && (LLVM_VERSION_MINOR <= 2)
--#include "llvm/Support/InstVisitor.h"
--#elif LLVM_VERSION_MINOR >= 5
--#include "llvm/IR/InstVisitor.h"
--#else
--#include "llvm/InstVisitor.h"
--#endif
--#include "llvm/Support/MathExtras.h"
--#include "llvm/Support/TargetRegistry.h"
--#include "llvm/Support/Host.h"
--#include "llvm/Support/ToolOutputFile.h"
--#include "llvm/Support/SourceMgr.h"
-+#include "llvm_includes.hpp"
-
- #include "llvm/llvm_gen_backend.hpp"
- #include "ir/unit.hpp"
-diff --git a/backend/src/llvm/llvm_printf_parser.cpp b/backend/src/llvm/llvm_printf_parser.cpp
-index 3d84457..1e8427c 100644
---- a/backend/src/llvm/llvm_printf_parser.cpp
-+++ b/backend/src/llvm/llvm_printf_parser.cpp
-@@ -33,39 +33,7 @@
- #include <stdio.h>
- #include <stdlib.h>
-
--#include "llvm/Config/llvm-config.h"
--#if LLVM_VERSION_MINOR <= 2
--#include "llvm/Function.h"
--#include "llvm/InstrTypes.h"
--#include "llvm/Instructions.h"
--#include "llvm/IntrinsicInst.h"
--#include "llvm/Module.h"
--#else
--#include "llvm/IR/Function.h"
--#include "llvm/IR/InstrTypes.h"
--#include "llvm/IR/Instructions.h"
--#include "llvm/IR/IntrinsicInst.h"
--#include "llvm/IR/Module.h"
--#endif /* LLVM_VERSION_MINOR <= 2 */
--#include "llvm/Pass.h"
--#if LLVM_VERSION_MINOR <= 1
--#include "llvm/Support/IRBuilder.h"
--#elif LLVM_VERSION_MINOR == 2
--#include "llvm/IRBuilder.h"
--#else
--#include "llvm/IR/IRBuilder.h"
--#endif /* LLVM_VERSION_MINOR <= 1 */
--
--#if LLVM_VERSION_MINOR >= 5
--#include "llvm/IR/CallSite.h"
--#include "llvm/IR/CFG.h"
--#else
--#include "llvm/Support/CallSite.h"
--#include "llvm/Support/CFG.h"
--#endif
--
--#include "llvm/Support/raw_ostream.h"
--#include "llvm/IR/Attributes.h"
-+#include "llvm_includes.hpp"
-
- #include "llvm/llvm_gen_backend.hpp"
- #include "sys/map.hpp"
-diff --git a/backend/src/llvm/llvm_sampler_fix.cpp b/backend/src/llvm/llvm_sampler_fix.cpp
-index 8c76324..01db8fe 100644
---- a/backend/src/llvm/llvm_sampler_fix.cpp
-+++ b/backend/src/llvm/llvm_sampler_fix.cpp
-@@ -20,27 +20,8 @@
- * make sure to get correct pixel value. But for some other
- * sampler, we don't need those work around code.
- */
--#include "llvm/IR/Instructions.h"
--#include "llvm/Pass.h"
--#include "llvm/PassManager.h"
-
--#include "llvm/Config/llvm-config.h"
--#include "llvm/ADT/DenseMap.h"
--#include "llvm/ADT/PostOrderIterator.h"
--#include "llvm/IR/Function.h"
--#include "llvm/IR/InstrTypes.h"
--#include "llvm/IR/Instructions.h"
--#include "llvm/IR/IntrinsicInst.h"
--#include "llvm/IR/Module.h"
--#include "llvm/Pass.h"
--#include "llvm/IR/IRBuilder.h"
--#if LLVM_VERSION_MINOR >= 5
--#include "llvm/IR/CFG.h"
--#else
--#include "llvm/Support/CFG.h"
--#endif
--
--#include "llvm/Analysis/ConstantsScanner.h"
-+#include "llvm_includes.hpp"
-
- #include "llvm_gen_backend.hpp"
- #include "ocl_common_defines.h"
-diff --git a/backend/src/llvm/llvm_scalarize.cpp b/backend/src/llvm/llvm_scalarize.cpp
-index bc985c6..7ee5259 100644
---- a/backend/src/llvm/llvm_scalarize.cpp
-+++ b/backend/src/llvm/llvm_scalarize.cpp
-@@ -59,39 +59,7 @@
- //
- //===----------------------------------------------------------------------===//
-
--#include "llvm/Config/llvm-config.h"
--#include "llvm/ADT/DenseMap.h"
--#include "llvm/ADT/PostOrderIterator.h"
--#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR <= 2
--#include "llvm/Function.h"
--#include "llvm/InstrTypes.h"
--#include "llvm/Instructions.h"
--#include "llvm/IntrinsicInst.h"
--#include "llvm/Module.h"
--#else
--#include "llvm/IR/Function.h"
--#include "llvm/IR/InstrTypes.h"
--#include "llvm/IR/Instructions.h"
--#include "llvm/IR/IntrinsicInst.h"
--#include "llvm/IR/Module.h"
--#endif /* LLVM_VERSION_MINOR <= 2 */
--#include "llvm/Pass.h"
--#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR <= 1
--#include "llvm/Support/IRBuilder.h"
--#elif LLVM_VERSION_MINOR == 2
--#include "llvm/IRBuilder.h"
--#else
--#include "llvm/IR/IRBuilder.h"
--#endif /* LLVM_VERSION_MINOR <= 1 */
--
--#if LLVM_VERSION_MINOR >= 5
--#include "llvm/IR/CallSite.h"
--#include "llvm/IR/CFG.h"
--#else
--#include "llvm/Support/CallSite.h"
--#include "llvm/Support/CFG.h"
--#endif
--#include "llvm/Support/raw_ostream.h"
-+#include "llvm_includes.hpp"
-
- #include "llvm/llvm_gen_backend.hpp"
- #include "sys/map.hpp"
-@@ -128,7 +96,6 @@ namespace gbe {
-
- Scalarize() : FunctionPass(ID)
- {
-- initializeLoopInfoPass(*PassRegistry::getPassRegistry());
- #if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 5
- initializeDominatorTreeWrapperPassPass(*PassRegistry::getPassRegistry());
- #else
-diff --git a/backend/src/llvm/llvm_to_gen.cpp b/backend/src/llvm/llvm_to_gen.cpp
-index 891f2a1..538d1c5 100644
---- a/backend/src/llvm/llvm_to_gen.cpp
-+++ b/backend/src/llvm/llvm_to_gen.cpp
-@@ -22,40 +22,8 @@
- * \author Benjamin Segovia <benjamin.segovia at intel.com>
- */
-
--#include "llvm/Config/llvm-config.h"
--#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR <= 2
--#include "llvm/LLVMContext.h"
--#include "llvm/Module.h"
--#include "llvm/DataLayout.h"
--#else
--#include "llvm/IR/LLVMContext.h"
--#include "llvm/IR/Module.h"
--#include "llvm/IR/DataLayout.h"
--#endif /* LLVM_VERSION_MINOR <= 2 */
--#include "llvm/PassManager.h"
--#include "llvm/Pass.h"
--#include "llvm/Analysis/Passes.h"
--#include "llvm/Transforms/IPO.h"
--#include "llvm/Target/TargetLibraryInfo.h"
--#include "llvm/ADT/Triple.h"
--#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR <= 2
--#include "llvm/Support/IRReader.h"
--#else
--#include "llvm/IRReader/IRReader.h"
--#include "llvm/Support/SourceMgr.h"
--#endif /* LLVM_VERSION_MINOR <= 2 */
--#include "llvm/Support/raw_ostream.h"
--#include "llvm/Transforms/Scalar.h"
--
--#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >=5
--#include "llvm/IR/IRPrintingPasses.h"
--#include "llvm/IR/Verifier.h"
--#else
--#include "llvm/Analysis/Verifier.h"
--#include "llvm/Assembly/PrintModulePass.h"
--#endif
-+#include "llvm_includes.hpp"
-
--#include "llvm/Analysis/CFGPrinter.h"
- #include "llvm/llvm_gen_backend.hpp"
- #include "llvm/llvm_to_gen.hpp"
- #include "sys/cvar.hpp"
-@@ -64,8 +32,6 @@
- #include "ir/function.hpp"
- #include "ir/structurizer.hpp"
-
--#include <clang/CodeGen/CodeGenAction.h>
--
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <fcntl.h>
-@@ -78,11 +44,19 @@ namespace gbe
- BVAR(OCL_OUTPUT_CFG_GEN_IR, false);
- using namespace llvm;
-
-- void runFuntionPass(Module &mod, TargetLibraryInfo *libraryInfo, const DataLayout &DL)
-+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 7
-+ using namespace llvm::legacy;
-+ #define TARGETLIBRARY TargetLibraryInfoImpl
-+#else
-+ #define TARGETLIBRARY TargetLibraryInfo
-+#endif
-+
-+ void runFuntionPass(Module &mod, TARGETLIBRARY *libraryInfo, const DataLayout &DL)
- {
- FunctionPassManager FPM(&mod);
-
--#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 6
-+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 7
-+#elif LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 6
- FPM.add(new DataLayoutPass());
- #elif LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR == 5
- FPM.add(new DataLayoutPass(DL));
-@@ -95,7 +69,11 @@ namespace gbe
- #else
- FPM.add(createVerifierPass());
- #endif
-+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 7
-+ FPM.add(new TargetLibraryInfoWrapperPass(*libraryInfo));
-+#else
- FPM.add(new TargetLibraryInfo(*libraryInfo));
-+#endif
- FPM.add(createTypeBasedAliasAnalysisPass());
- FPM.add(createBasicAliasAnalysisPass());
- FPM.add(createCFGSimplificationPass());
-@@ -111,18 +89,24 @@ namespace gbe
- FPM.doFinalization();
- }
-
-- void runModulePass(Module &mod, TargetLibraryInfo *libraryInfo, const DataLayout &DL, int optLevel, bool strictMath)
-+ void runModulePass(Module &mod, TARGETLIBRARY *libraryInfo, const DataLayout &DL, int optLevel, bool strictMath)
- {
-- llvm::PassManager MPM;
-+ PassManager MPM;
-
--#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 6
-+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 7
-+#elif LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 6
- MPM.add(new DataLayoutPass());
- #elif LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR == 5
- MPM.add(new DataLayoutPass(DL));
- #else
- MPM.add(new DataLayout(DL));
- #endif
-+
-+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 7
-+ MPM.add(new TargetLibraryInfoWrapperPass(*libraryInfo));
-+#else
- MPM.add(new TargetLibraryInfo(*libraryInfo));
-+#endif
- MPM.add(createTypeBasedAliasAnalysisPass());
- MPM.add(createBasicAliasAnalysisPass());
- MPM.add(createIntrinsicLoweringPass());
-@@ -202,7 +186,7 @@ namespace gbe
-
- #if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 5
- #define OUTPUT_BITCODE(STAGE, MOD) do { \
-- llvm::PassManager passes__; \
-+ PassManager passes__; \
- if (OCL_OUTPUT_LLVM_##STAGE) { \
- passes__.add(createPrintModulePass(*o)); \
- passes__.run(MOD); \
-@@ -210,7 +194,7 @@ namespace gbe
- }while(0)
- #else
- #define OUTPUT_BITCODE(STAGE, MOD) do { \
-- llvm::PassManager passes__; \
-+ PassManager passes__; \
- if (OCL_OUTPUT_LLVM_##STAGE) { \
- passes__.add(createPrintModulePass(&*o)); \
- passes__.run(MOD); \
-@@ -260,16 +244,20 @@ namespace gbe
- Module &mod = *M.get();
- DataLayout DL(&mod);
-
-+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 7
-+ mod.setDataLayout(DL);
-+#endif
- Triple TargetTriple(mod.getTargetTriple());
-- TargetLibraryInfo *libraryInfo = new TargetLibraryInfo(TargetTriple);
-+ TARGETLIBRARY *libraryInfo = new TARGETLIBRARY(TargetTriple);
- libraryInfo->disableAllFunctions();
-
- OUTPUT_BITCODE(AFTER_LINK, mod);
-
- runFuntionPass(mod, libraryInfo, DL);
- runModulePass(mod, libraryInfo, DL, optLevel, strictMath);
-- llvm::PassManager passes;
--#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 6
-+ PassManager passes;
-+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 7
-+#elif LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 6
- passes.add(new DataLayoutPass());
- #elif LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR == 5
- passes.add(new DataLayoutPass(DL));
-diff --git a/backend/src/llvm/llvm_unroll.cpp b/backend/src/llvm/llvm_unroll.cpp
-index 5d3fad8..6990e39 100644
---- a/backend/src/llvm/llvm_unroll.cpp
-+++ b/backend/src/llvm/llvm_unroll.cpp
-@@ -18,34 +18,9 @@
- #include "llvm/Config/llvm-config.h"
- #if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 5
- #include <set>
--#if LLVM_VERSION_MINOR <= 2
--#include "llvm/Function.h"
--#include "llvm/InstrTypes.h"
--#include "llvm/Instructions.h"
--#include "llvm/IntrinsicInst.h"
--#include "llvm/Module.h"
--#else
--#include "llvm/IR/Function.h"
--#include "llvm/IR/InstrTypes.h"
--#include "llvm/IR/Instructions.h"
--#include "llvm/IR/IntrinsicInst.h"
--#include "llvm/IR/Module.h"
--#endif /* LLVM_VERSION_MINOR <= 2 */
--#include "llvm/Pass.h"
--#if LLVM_VERSION_MINOR <= 1
--#include "llvm/Support/IRBuilder.h"
--#elif LLVM_VERSION_MINOR == 2
--#include "llvm/IRBuilder.h"
--#else
--#include "llvm/IR/IRBuilder.h"
--#endif /* LLVM_VERSION_MINOR <= 1 */
--#include "llvm/Support/raw_ostream.h"
--#include "llvm/PassManager.h"
--#include "llvm/Transforms/Scalar.h"
--#include "llvm/Analysis/ScalarEvolution.h"
--#include "llvm/Analysis/LoopPass.h"
--#include "llvm/Analysis/TargetTransformInfo.h"
--#include "llvm/IR/Dominators.h"
-+
-+#include "llvm_includes.hpp"
-+
- #include "llvm/llvm_gen_backend.hpp"
- #include "sys/map.hpp"
-
-@@ -61,8 +36,13 @@ namespace gbe {
- LoopPass(ID) {}
-
- void getAnalysisUsage(AnalysisUsage &AU) const {
-+#if (LLVM_VERSION_MAJOR == 3) && (LLVM_VERSION_MINOR >= 7)
-+ AU.addRequired<LoopInfoWrapperPass>();
-+ AU.addPreserved<LoopInfoWrapperPass>();
-+#else
- AU.addRequired<LoopInfo>();
- AU.addPreserved<LoopInfo>();
-+#endif
- AU.addRequiredID(LoopSimplifyID);
- AU.addPreservedID(LoopSimplifyID);
- AU.addRequiredID(LCSSAID);
---
-1.8.3.2