search for: tlii

Displaying 19 results from an estimated 19 matches for "tlii".

Did you mean: tli
2016 Nov 30
5
[RFC] Enable "#pragma omp declare simd" in the LoopVectorizer
...ncesco ----------- The functionality is implemented as follow: 1. Clang CodeGen generates a set of global external variables for each of the function declarations marked with the OpenMP pragma. Each of such globals are named according a mangling that is generated by llvm::TargetLibraryInfoImpl (TLII), and holds the vector signature of the associated vector function. (See examples in the tests of the clang patch. Each scalar function can generate multiple vector functions depending on the clauses of the declare simd directives) 2. When clang created the TLII, it processes the llvm::Module and f...
2016 Dec 12
0
[RFC] Enable "#pragma omp declare simd" in the LoopVectorizer
...n clang [1], there have been no need to update the relative llvm patch [2], as the vectorisation process is _independent_ of the name mangling. Regards, Francesco [1] https://reviews.llvm.org/D27250 [2] https://reviews.llvm.org/D27249, The only update was a bug fix in the copy constructor of the TLII and in the return value of the TLII::mangle() method. None of the underlying scalar/vector function matching algorithms have been touched. On 08/12/2016 18:11, "Tian, Xinmin" <xinmin.tian at intel.com> wrote: >Hi Francesco, a bit more information. GCC veclib is implemented ba...
2016 Dec 08
6
[RFC] Enable "#pragma omp declare simd" in the LoopVectorizer
...of the proposal. Please let me know what you think, and if you have any solution we could use for the final section. # RFC for "pragma omp declare simd" Hight level components: A) Global variable generator (clang FE) B) Parameter descriptors (as new enumerations in llvm::Attribute) C) TLII methods and fields for the multimap (llvm middle-end) ## Workflow Example user input, with a declaration and definition: #pragma omp declare simd #pragma omp declare simd uniform(y) extern double pow(double x, double y); #pragma omp declare simd #pragma omp declare simd line...
2018 Nov 27
2
ScalarEvolution class returns no valid loop exit count
....releaseMemory(); LIB.analyze(DT); for(auto&bb :*func){ Loop * L = LIB.getLoopFor(&bb); if(L != nullptr){ AssumptionCache AC = AssumptionCache(*bb.getParent()); Triple MT(llvm::sys::getDefaultTargetTriple()); TargetLibraryInfoImpl TLII(MT); TargetLibraryInfoWrapperPass TLI = TargetLibraryInfoWrapperPass(TLII); LoopInfo LI = LoopInfo(DT); LI.analyze(DT); *ScalarEvolution SE = ScalarEvolution(*func, TLI.getTLI(),AC, DT, LI);* BasicBlock * exitingblock = L->getUniqueEx...
2016 Mar 23
2
Help with pass manager
...tABIForCalls != FloatABI::Default) targetopts.FloatABIType = FloatABIForCalls; std::unique_ptr<tool_output_file> objoutstream = getOutputFileStream(module, srcname); if (!objoutstream) return 1; legacy::PassManager passmanager; TargetLibraryInfoImpl TLII(moduletriple); TargetLibraryInfoWrapperPass *tliwp = new TargetLibraryInfoWrapperPass(TLII); passmanager.add(tliwp); module->setDataLayout(tmachine->createDataLayout()); setFunctionAttributes(cpuname, ftrlist, *module); if (RelaxAll.getNumOccurrenc...
2016 Mar 24
2
Help with pass manager
...atABIForCalls; >> >> >> std::unique_ptr<tool_output_file> objoutstream = getOutputFileStream(module, srcname); >> if (!objoutstream) return 1; >> >> legacy::PassManager passmanager; >> >> TargetLibraryInfoImpl TLII(moduletriple); >> >> TargetLibraryInfoWrapperPass *tliwp = new TargetLibraryInfoWrapperPass(TLII); >> >> passmanager.add(tliwp); >> >> module->setDataLayout(tmachine->createDataLayout()); >> >> setFunctionAttr...
2016 Mar 24
0
Help with pass manager
...targetopts.FloatABIType = FloatABIForCalls; > > > std::unique_ptr<tool_output_file> objoutstream = getOutputFileStream(module, srcname); > if (!objoutstream) return 1; > > legacy::PassManager passmanager; > > TargetLibraryInfoImpl TLII(moduletriple); > > TargetLibraryInfoWrapperPass *tliwp = new TargetLibraryInfoWrapperPass(TLII); > > passmanager.add(tliwp); > > module->setDataLayout(tmachine->createDataLayout()); > > setFunctionAttributes(cpuname, ftrlist, *module...
2016 Mar 24
2
Help with pass manager
...gt;>> std::unique_ptr<tool_output_file> objoutstream = getOutputFileStream(module, srcname); >>>> if (!objoutstream) return 1; >>>> >>>> legacy::PassManager passmanager; >>>> >>>> TargetLibraryInfoImpl TLII(moduletriple); >>>> >>>> TargetLibraryInfoWrapperPass *tliwp = new TargetLibraryInfoWrapperPass(TLII); >>>> >>>> passmanager.add(tliwp); >>>> >>>> module->setDataLayout(tmachine->createDataLayou...
2016 Mar 24
0
Help with pass manager
...>>> >>> std::unique_ptr<tool_output_file> objoutstream = getOutputFileStream(module, srcname); >>> if (!objoutstream) return 1; >>> >>> legacy::PassManager passmanager; >>> >>> TargetLibraryInfoImpl TLII(moduletriple); >>> >>> TargetLibraryInfoWrapperPass *tliwp = new TargetLibraryInfoWrapperPass(TLII); >>> >>> passmanager.add(tliwp); >>> >>> module->setDataLayout(tmachine->createDataLayout()); >>>...
2016 Mar 24
2
Help with pass manager
...output_file> objoutstream = getOutputFileStream(module, srcname); >>>>>> if (!objoutstream) return 1; >>>>>> >>>>>> legacy::PassManager passmanager; >>>>>> >>>>>> TargetLibraryInfoImpl TLII(moduletriple); >>>>>> >>>>>> TargetLibraryInfoWrapperPass *tliwp = new TargetLibraryInfoWrapperPass(TLII); >>>>>> >>>>>> passmanager.add(tliwp); >>>>>> >>>>>> modul...
2016 Mar 24
0
Help with pass manager
...:unique_ptr<tool_output_file> objoutstream = getOutputFileStream(module, srcname); >>>>> if (!objoutstream) return 1; >>>>> >>>>> legacy::PassManager passmanager; >>>>> >>>>> TargetLibraryInfoImpl TLII(moduletriple); >>>>> >>>>> TargetLibraryInfoWrapperPass *tliwp = new TargetLibraryInfoWrapperPass(TLII); >>>>> >>>>> passmanager.add(tliwp); >>>>> >>>>> module->setDataLayout(tmac...
2018 Sep 12
2
How to make LLVM go faster?
...ug; PMBuilder->VerifyInput = assertions_on; PMBuilder->VerifyOutput = assertions_on; PMBuilder->MergeFunctions = !is_debug; PMBuilder->PrepareForLTO = false; PMBuilder->PrepareForThinLTO = false; PMBuilder->PerformThinLTO = false; TargetLibraryInfoImpl tlii(Triple(module->getTargetTriple())); PMBuilder->LibraryInfo = &tlii; if (is_debug) { PMBuilder->Inliner = createAlwaysInlinerLegacyPass(false); } else { target_machine->adjustPassManager(*PMBuilder); PMBuilder->addExtension(PassManagerBuilder:...
2016 Mar 24
2
Help with pass manager
...FileStream(module, srcname); >>>>>>>> if (!objoutstream) return 1; >>>>>>>> >>>>>>>> legacy::PassManager passmanager; >>>>>>>> >>>>>>>> TargetLibraryInfoImpl TLII(moduletriple); >>>>>>>> >>>>>>>> TargetLibraryInfoWrapperPass *tliwp = new TargetLibraryInfoWrapperPass(TLII); >>>>>>>> >>>>>>>> passmanager.add(tliwp); >>>>>>>>...
2016 Mar 24
0
Help with pass manager
...utstream = getOutputFileStream(module, srcname); >>>>>>> if (!objoutstream) return 1; >>>>>>> >>>>>>> legacy::PassManager passmanager; >>>>>>> >>>>>>> TargetLibraryInfoImpl TLII(moduletriple); >>>>>>> >>>>>>> TargetLibraryInfoWrapperPass *tliwp = new TargetLibraryInfoWrapperPass(TLII); >>>>>>> >>>>>>> passmanager.add(tliwp); >>>>>>> >>>&g...
2016 Mar 24
0
Help with pass manager
...rcname); >>>>>>>>> if (!objoutstream) return 1; >>>>>>>>> >>>>>>>>> legacy::PassManager passmanager; >>>>>>>>> >>>>>>>>> TargetLibraryInfoImpl TLII(moduletriple); >>>>>>>>> >>>>>>>>> TargetLibraryInfoWrapperPass *tliwp = new TargetLibraryInfoWrapperPass(TLII); >>>>>>>>> >>>>>>>>> passmanager.add(tliwp); >>>>...
2016 Mar 24
2
Help with pass manager
...;>>>>>>> if (!objoutstream) return 1; >>>>>>>>>> >>>>>>>>>> legacy::PassManager passmanager; >>>>>>>>>> >>>>>>>>>> TargetLibraryInfoImpl TLII(moduletriple); >>>>>>>>>> >>>>>>>>>> TargetLibraryInfoWrapperPass *tliwp = new TargetLibraryInfoWrapperPass(TLII); >>>>>>>>>> >>>>>>>>>> passmanager.add(tliwp);...
2016 Mar 24
0
Help with pass manager
...;>>> if (!objoutstream) return 1; >>>>>>>>>>> >>>>>>>>>>> legacy::PassManager passmanager; >>>>>>>>>>> >>>>>>>>>>> TargetLibraryInfoImpl TLII(moduletriple); >>>>>>>>>>> >>>>>>>>>>> TargetLibraryInfoWrapperPass *tliwp = new TargetLibraryInfoWrapperPass(TLII); >>>>>>>>>>> >>>>>>>>>>> passmana...
2016 Mar 30
1
Help with pass manager
...if (!objoutstream) return 1; >>>>>>>>>>>> >>>>>>>>>>>> legacy::PassManager passmanager; >>>>>>>>>>>> >>>>>>>>>>>> TargetLibraryInfoImpl TLII(moduletriple); >>>>>>>>>>>> >>>>>>>>>>>> TargetLibraryInfoWrapperPass *tliwp = new TargetLibraryInfoWrapperPass(TLII); >>>>>>>>>>>> >>>>>>>>>>>&...
2017 Aug 22
5
[RFC] mir-canon: A new tool for canonicalizing MIR for cleaner diffing.
Patch for review. On Mon, Aug 21, 2017 at 11:45 PM Puyan Lotfi <puyan.lotfi.llvm at gmail.com> wrote: > Ping. > > Still working on preparing code for review. Will have a patch for review > ready in the coming days. > > PL > > On Tue, Aug 15, 2017 at 12:06 PM Puyan Lotfi <puyan.lotfi.llvm at gmail.com> > wrote: > >> Hi, >> >> >>