search for: partialinliner

Displaying 16 results from an estimated 16 matches for "partialinliner".

2017 Dec 08
3
Issue with BUILD_SHARED_LIBS=ON
Dear all, while trying to build llvm with shared libraries using GCC (tested both in Ubuntu 14.04 and Ubuntu 16.04) as in cmake -G Ninja -DBUILD_SHARED_LIBS=ON I run into the following link error lib/Transforms/IPO/CMakeFiles/LLVMipo.dir/PartialInlining.cpp.o: In function `llvm::ForwardDominanceFrontierBase<llvm::BasicBlock>::ForwardDominanceFrontierBase()':
2017 Jul 26
2
[RFC] Add IR level interprocedural outliner for code size.
...xtract out a region into a readnone+nounwind function call then LICM will hoist it to the preheader if the safety checks pass. > Actually, for his internship last summer River wrote a profile-guided > outliner / partial inliner (it didn't try to do deduplication; so it was > more like PartialInliner.cpp). IIRC he found that LLVM's interprocedural > analyses were so bad that there were pretty adverse effects from many of the > outlining decisions. E.g. if you outline from the left side of a diamond, > that side basically becomes a black box to most LLVM analyses and forces > dow...
2017 Jul 26
3
[RFC] Add IR level interprocedural outliner for code size.
Hi, On Wed, Jul 26, 2017 at 10:10 AM, Quentin Colombet via llvm-dev <llvm-dev at lists.llvm.org> wrote: > No, I mean in terms of enabling other optimizations in the pipeline like > vectorizer. Outliner does not expose any of that. I have not made a lot of effort to understand the full discussion here (so what I say below may be off-base), but I think there are some cases where
2017 Aug 29
3
[RFC] Enhance Partial Inliner by using a general outlining scheme for cold blocks
I second the fact that a way to outline specific function regions independently of the partial inliner sound very useful. I am not sure however if we would want a mode within the partialInliner or something completely independent. As a general question, does anybody has a clear idea of what are the constraints on the region CodeExtractor is currently able to handle ? Going through the code, it looks like the only requirement is for the header to dominate all the BB in the region ; On...
2017 Jul 29
7
[RFC] Add IR level interprocedural outliner for code size.
...; readnone+nounwind function call then LICM will hoist it to the > preheader if the safety checks pass. > > > Actually, for his internship last summer River wrote a profile-guided > > outliner / partial inliner (it didn't try to do deduplication; so it was > > more like PartialInliner.cpp). IIRC he found that LLVM's interprocedural > > analyses were so bad that there were pretty adverse effects from many of the > > outlining decisions. E.g. if you outline from the left side of a diamond, > > that side basically becomes a black box to most LLVM analyses and...
2017 Aug 01
4
[RFC] Add IR level interprocedural outliner for code size.
...function call then LICM will hoist it to the >> preheader if the safety checks pass. >> >> > Actually, for his internship last summer River wrote a profile-guided >> > outliner / partial inliner (it didn't try to do deduplication; so it was >> > more like PartialInliner.cpp). IIRC he found that LLVM's interprocedural >> > analyses were so bad that there were pretty adverse effects from many >> of the >> > outlining decisions. E.g. if you outline from the left side of a >> diamond, >> > that side basically becomes a black...
2013 Jun 10
0
[LLVMdev] CFG of a function
Hi Rasha, First, you should not erase that cloned function XD the idea is that your pass should create that new function, add it to a module (that could be the same one where the original function is, or another one that you could be creating if that is the case), and then just let it be: the pass manager should identify this new function (after your pass returned) and all the other analysis and
2017 Jul 31
2
[RFC] Add IR level interprocedural outliner for code size.
...xtract out a region into a readnone+nounwind function call then LICM will hoist it to the preheader if the safety checks pass. > Actually, for his internship last summer River wrote a profile-guided > outliner / partial inliner (it didn't try to do deduplication; so it was > more like PartialInliner.cpp). IIRC he found that LLVM's interprocedural > analyses were so bad that there were pretty adverse effects from many of the > outlining decisions. E.g. if you outline from the left side of a diamond, > that side basically becomes a black box to most LLVM analyses and forces > dow...
2017 Aug 01
4
[RFC] Add IR level interprocedural outliner for code size.
...;> preheader if the safety checks pass. >>>> >>>> > Actually, for his internship last summer River wrote a profile-guided >>>> > outliner / partial inliner (it didn't try to do deduplication; so it >>>> was >>>> > more like PartialInliner.cpp). IIRC he found that LLVM's >>>> interprocedural >>>> > analyses were so bad that there were pretty adverse effects from many >>>> of the >>>> > outlining decisions. E.g. if you outline from the left side of a >>>> diamond, &...
2017 May 03
3
Should it be legal for two functions to have the same !dbg attachment?
I just wrote an IR Verifier check that catches the following situation: ; RUN: not llvm-as %s -disable-output 2>&1 | FileCheck %s define void @f1() !dbg !4 { unreachable } ; CHECK: DISubprogram attached to more than one function define void @f2() !dbg !4 { unreachable } !llvm.dbg.cu = !{!1} !1 = distinct !DICompileUnit(language: DW_LANG_C99, file: !2) !2
2013 Jun 06
3
[LLVMdev] CFG of a function
I think I understood that, but what I mean is what is the function responsible to do mapping is it MapValue() in ValueMapper.h? Thanks for your help On 6 June 2013 09:54, Alexandru Ionut Diaconescu < alexandruionutdiaconescu at gmail.com> wrote: > Map every basic block from the CFG to a set of integers. The successors > from the CFG can be used to make the edges in your simplified
2020 Aug 05
10
[RFC] Machine Function Splitter - Split out cold blocks from machine functions using profile data
Greetings, We present “Machine Function Splitter”, a codegen optimization pass which splits functions into hot and cold parts. This pass leverages the basic block sections feature recently introduced in LLVM from the Propeller project. The pass targets functions with profile coverage, identifies cold blocks and moves them to a separate section. The linker groups all cold blocks across functions
2020 Aug 10
2
[RFC] Machine Function Splitter - Split out cold blocks from machine functions using profile data
>Exceptions >All eh pads are grouped together regardless of their coldness and are part of the original function. There are outstanding issues with splitting eh pads if they reside in separate sections in the binary. This remains as part of future work. Can you elaborate more on the outstanding issues with splitting eh pads? From my dip into the unwind map in gcc_except_table the
2020 Aug 05
3
[RFC] Machine Function Splitter - Split out cold blocks from machine functions using profile data
On Tue, Aug 4, 2020 at 10:51 PM aditya kumar <hiraditya at gmail.com> wrote: > Glad to hear that there is an interest in a function splitting pass. There > are advantages to splitting functions at different stages as you've already > noted. > Right -- with slightly different objectives. Machine Function Splitting Pass's main focus is on performance improvement. > -
2017 Aug 24
3
[RFC] Enhance Partial Inliner by using a general outlining scheme for cold blocks
Hi David, The only reason I can see to use the 'pattern matching' part as a fall-back is in case we cannot inline the (what I'm assuming would be) a much bigger hot-path-only cloned function for whatever reason. What I'm assuming here is that after cold-region outlining, we may still have a large portion of the original function body to attempt to inline, whereas the pattern
2015 Jul 29
1
[LLVMdev] Error when i am using command make -j4 command in cygwin to compile safecode
llvm[4]: Compiling PoolAllocate.cpp for Release+Asserts build /home/NIKHILREDDY/WORK/LLVM_SRC/projects/poolalloc/lib/PoolAllocate/PoolAllocate.cpp: In member function ‘virtual bool llvm::PoolAllocate::runOnModule(llvm::Module&)’: /home/NIKHILREDDY/WORK/LLVM_SRC/projects/poolalloc/lib/PoolAllocate/PoolAllocate.cpp:403:16: error: ‘class llvm::Constant’ has no member named