Thanks for testing with LLVM 3.3, just pushed with the fix.
> -----Original Message----- > From: Yang, Rong R > Sent: Friday, September 5, 2014 4:14 PM > To: Gong, Zhigang; [email protected] > Cc: Gong, Zhigang > Subject: RE: [Beignet] [PATCH] GBE: avoid one optimization pass to generate > wide integer. > > Compiler error in llvm3.3: > /home/champson/source/beignet/backend/src/llvm/llvm_to_gen.cpp: In > function 'void gbe::runFuntionPass(llvm::Module&, llvm::TargetLibraryInfo*, > const llvm::DataLayout&)': > /home/champson/source/beignet/backend/src/llvm/llvm_to_gen.cpp:86:16: > error: invalid conversion from 'const llvm::Pass*' to 'llvm::Pass*' > [-fpermissive] > FPM.add(&DL); > > > void runFuntionPass(Module &mod, TargetLibraryInfo *libraryInfo, const > DataLayout &DL) should be void runFuntionPass(Module &mod, > TargetLibraryInfo *libraryInfo, DataLayout &DL) > > and > void runModulePass(Module &mod, TargetLibraryInfo *libraryInfo, const > DataLayout &DL, int optLevel) should be void runModulePass(Module &mod, > TargetLibraryInfo *libraryInfo, DataLayout &DL, int optLevel) > > > Others LGTM. > > > -----Original Message----- > > From: Beignet [mailto:[email protected]] On Behalf Of > > Zhigang Gong > > Sent: Friday, September 05, 2014 2:50 PM > > To: [email protected] > > Cc: Gong, Zhigang > > Subject: [Beignet] [PATCH] GBE: avoid one optimization pass to generate wide > > integer. > > > > Integer type wider than 64 bit is hard to handle on Gen. > > Let's try to prevent ScalarReplAggregates pass to generate such type of > > integer. > > > > Signed-off-by: Zhigang Gong <[email protected]> > > --- > > backend/src/llvm/llvm_to_gen.cpp | 23 ++++++++++++----------- > > 1 file changed, 12 insertions(+), 11 deletions(-) > > > > diff --git a/backend/src/llvm/llvm_to_gen.cpp > > b/backend/src/llvm/llvm_to_gen.cpp > > index 758ea48..21aa4c6 100644 > > --- a/backend/src/llvm/llvm_to_gen.cpp > > +++ b/backend/src/llvm/llvm_to_gen.cpp > > @@ -76,14 +76,14 @@ namespace gbe > > BVAR(OCL_OUTPUT_LLVM_BEFORE_EXTRA_PASS, false); > > using namespace llvm; > > > > - void runFuntionPass(Module &mod, TargetLibraryInfo *libraryInfo) > > + void runFuntionPass(Module &mod, TargetLibraryInfo *libraryInfo, > > + const DataLayout &DL) > > { > > FunctionPassManager FPM(&mod); > > > > #if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 5 > > - FPM.add(new DataLayoutPass(&mod)); > > + FPM.add(new DataLayoutPass(DL)); > > #else > > - FPM.add(new DataLayout(&mod)); > > + FPM.add(&DL); > > #endif > > > > #if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >=5 @@ > > -107,14 +107,14 @@ namespace gbe > > FPM.doFinalization(); > > } > > > > - void runModulePass(Module &mod, TargetLibraryInfo *libraryInfo, int > > optLevel) > > + void runModulePass(Module &mod, TargetLibraryInfo *libraryInfo, const > > + DataLayout &DL, int optLevel) > > { > > llvm::PassManager MPM; > > > > #if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 5 > > - MPM.add(new DataLayoutPass(&mod)); > > + MPM.add(new DataLayoutPass(DL)); > > #else > > - MPM.add(new DataLayout(&mod)); > > + MPM.add(&DL); > > #endif > > MPM.add(new TargetLibraryInfo(*libraryInfo)); > > MPM.add(createTypeBasedAliasAnalysisPass()); > > @@ -192,19 +192,20 @@ namespace gbe > > if (M.get() == 0) return false; > > } > > Module &mod = (module!=NULL)?*(llvm::Module*)module:*M.get(); > > + DataLayout DL(&mod); > > > > Triple TargetTriple(mod.getTargetTriple()); > > TargetLibraryInfo *libraryInfo = new TargetLibraryInfo(TargetTriple); > > libraryInfo->disableAllFunctions(); > > > > - runFuntionPass(mod, libraryInfo); > > - runModulePass(mod, libraryInfo, optLevel); > > + runFuntionPass(mod, libraryInfo, DL); > > + runModulePass(mod, libraryInfo, DL, optLevel); > > > > llvm::PassManager passes; > > #if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 5 > > - passes.add(new DataLayoutPass(&mod)); > > + passes.add(new DataLayoutPass(DL)); > > #else > > - passes.add(new DataLayout(&mod)); > > + passes.add(&DL); > > #endif > > // Print the code before further optimizations > > if (OCL_OUTPUT_LLVM_BEFORE_EXTRA_PASS) > > @@ -215,7 +216,7 @@ namespace gbe > > #endif > > passes.add(createIntrinsicLoweringPass()); > > passes.add(createFunctionInliningPass(200000)); > > - passes.add(createScalarReplAggregatesPass()); // Break up allocas > > + passes.add(createScalarReplAggregatesPass(64, true, -1, -1, 64)); > > passes.add(createLoadStoreOptimizationPass()); > > passes.add(createRemoveGEPPass(unit)); > > passes.add(createConstantPropagationPass()); > > -- > > 1.8.3.2 > > > > _______________________________________________ > > Beignet mailing list > > [email protected] > > http://lists.freedesktop.org/mailman/listinfo/beignet _______________________________________________ Beignet mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/beignet
