diff options
author | Zhigang Gong <zhigang.gong@intel.com> | 2015-04-02 13:54:04 +0800 |
---|---|---|
committer | Zhigang Gong <zhigang.gong@intel.com> | 2015-04-02 13:54:04 +0800 |
commit | 41faaaff4fdee1bedad70b877cf3851c5b276e98 (patch) | |
tree | aa57e08e3236a336e1a34c8ebb420d850778208d | |
parent | c93a747ee468dc541ee8ab859f15d5467824b1f0 (diff) |
draft.blender
Signed-off-by: Zhigang Gong <zhigang.gong@intel.com>
-rw-r--r-- | backend/src/llvm/llvm_to_gen.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/backend/src/llvm/llvm_to_gen.cpp b/backend/src/llvm/llvm_to_gen.cpp index a4ce4a2b..767c3fa2 100644 --- a/backend/src/llvm/llvm_to_gen.cpp +++ b/backend/src/llvm/llvm_to_gen.cpp @@ -158,15 +158,16 @@ namespace gbe MPM.add(createIndVarSimplifyPass()); // Canonicalize indvars MPM.add(createLoopIdiomPass()); // Recognize idioms like memset. MPM.add(createLoopDeletionPass()); // Delete dead loops - MPM.add(createLoopUnrollPass()); //1024, 32, 1024, 512)); //Unroll loops +// MPM.add(createLoopUnrollPass()); //1024, 32, 1024, 512)); //Unroll loops if(optLevel > 0) { - MPM.add(createSROAPass(/*RequiresDomTree*/ false)); - MPM.add(createGVNPass()); // Remove redundancies +// MPM.add(createSROAPass(/*RequiresDomTree*/ false)); +// MPM.add(createGVNPass()); // Remove redundancies } #if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 5 // FIXME Workaround: we find that CustomLoopUnroll may increase register pressure greatly, // and it may even make som cl kernel cannot compile because of limited scratch memory for spill. // As we observe this under strict math. So we disable CustomLoopUnroll if strict math is enabled. +#if 0 if (!strictMath) { MPM.add(createCustomLoopUnrollPass()); //1024, 32, 1024, 512)); //Unroll loops MPM.add(createLoopUnrollPass()); //1024, 32, 1024, 512)); //Unroll loops @@ -176,6 +177,7 @@ namespace gbe } } #endif +#endif MPM.add(createMemCpyOptPass()); // Remove memcpy / form memset MPM.add(createSCCPPass()); // Constant prop with SCCP @@ -224,7 +226,7 @@ namespace gbe { std::string errInfo; std::unique_ptr<llvm::raw_fd_ostream> o = NULL; - if (OCL_OUTPUT_LLVM_BEFORE_LINK || OCL_OUTPUT_LLVM_AFTER_LINK || OCL_OUTPUT_LLVM_AFTER_GEN) + //if (OCL_OUTPUT_LLVM_BEFORE_LINK || OCL_OUTPUT_LLVM_AFTER_LINK || OCL_OUTPUT_LLVM_AFTER_GEN) o = std::unique_ptr<llvm::raw_fd_ostream>(new llvm::raw_fd_ostream(fileno(stdout), false)); // Get the module from its file @@ -297,6 +299,7 @@ namespace gbe passes.add(createCFGSimplificationPass()); // Merge & remove BBs passes.add(createLowerSwitchPass()); // simplify cfg will generate switch-case instruction passes.add(createScalarizePass()); // Expand all vector ops + passes.add(createPrintModulePass(*o)); if(OCL_OUTPUT_CFG) passes.add(createCFGPrinterPass()); |