search for: partialinlining

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

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()': <path>/llvm/include/llvm/Analysis/DominanceFrontier.h:122: undefined reference to `llvm::DominanceFrontierBase<llvm::BasicBlock, false>::DominanceFrontierBase()'...
2017 Jul 26
2
[RFC] Add IR level interprocedural outliner for code size.
Hi, On Wed, Jul 26, 2017 at 12:54 PM, Sean Silva <chisophugis at gmail.com> wrote: > The way I interpret Quentin's statement is something like: > > - Inlining turns an interprocedural problem into an intraprocedural problem > - Outlining turns an intraprocedural problem into an interprocedural problem > > Insofar as our intraprocedural analyses and transformations are
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
2017 Jul 29
7
[RFC] Add IR level interprocedural outliner for code size.
Apologies for delayed joining of this discussion, but I had a few notes from this thread that I really wanted to chime in about. River, I don't mean to put you on the spot, but I do want to start on a semantic issue. In several places in the thread you used the words "we" and "our" to imply that you're not alone in writing this (which is totally fine), but your
2017 Aug 01
4
[RFC] Add IR level interprocedural outliner for code size.
2017-07-28 21:58 GMT-07:00 Chris Bieneman via llvm-dev < llvm-dev at lists.llvm.org>: > Apologies for delayed joining of this discussion, but I had a few notes > from this thread that I really wanted to chime in about. > > River, > > I don't mean to put you on the spot, but I do want to start on a semantic > issue. In several places in the thread you used the words
2013 Jun 10
0
[LLVMdev] CFG of a function
...ions >>>> only on this new copy. You can easily do that using CloneFunction (a >>>> function defined in llvm/Transforms/Util/Cloning.h). An example of its use >>>> can be seen on the function unswitchFunction(Function* f), from >>>> lib/Transforms/IPO/PartialInlining.cpp file. >>>> >>>> Hope this can be helpful, >>>> >>>> >>>> -- >>>> Cristianno Martins >>>> PhD Student of Computer Science >>>> University of Campinas >>>> cmartins at ic.unicamp.br >&gt...
2017 Jul 31
2
[RFC] Add IR level interprocedural outliner for code size.
Hi Chris, > One particular disagreement that I think very much needs to be revisited in this thread was Jessica's proposal of a pipeline of: > 1. IR outline > 2. Inline > 3. MIR outline IMHO, there is no need to restrict a place of the Outliner in the pipeline at the moment. I hope people representing different architectures will try different configurations and the best will be
2017 Aug 01
4
[RFC] Add IR level interprocedural outliner for code size.
...and adding $0.02 to the "IR outline + inline + MIR outline" idea, my gut feeling (yes, only a "feeling" -- and one coming from my gut, not head!) is that inlining correcting wrong IR outlining decisions with MIR outlining correcting wrong inlining decisions is absolutely unrealistic and a heuristics nightmare at best. Inliner's heuristics are already complex enough and
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
...ing improved code locality to improve performance. LLVM has a middle-end, target agnostic hot cold splitting pass <https://llvm.org/devmtg/2019-10/slides/Kumar-HotColdSplitting.pdf> as well as a partial inlining pass <https://github.com/llvm/llvm-project/blob/master/llvm/lib/Transforms/IPO/PartialInlining.cpp> which performs similar transformations, as noted by the authors in a recent email thread <https://lists.llvm.org/pipermail/llvm-dev/2020-June/142429.html>. However, due to the timing of the respective passes as well as the code extraction techniques employed, the overall gains on larg...
2020 Aug 10
2
[RFC] Machine Function Splitter - Split out cold blocks from machine functions using profile data
...ng.pdf&d=DwMFaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=KfYo542rDdZQGClmgz-RBw&m=-cUmMKRcOXZHF-PpVxO_Dfg2mkIgP4L_QomIwDizeEE&s=xfh7APIZXGJikzsEVba8f1JsDG3aMqQCrlbanFKDvsI&e=> as well as a partial inlining pass<https://github.com/llvm/llvm-project/blob/master/llvm/lib/Transforms/IPO/PartialInlining.cpp> which performs similar transformations, as noted by the authors in a recent email thread<https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.llvm.org_pipermail_llvm-2Ddev_2020-2DJune_142429.html&d=DwMFaQ&c=5VD0RTtNlTh3ycd41b3MUw&r=KfYo542rDdZQGClmgz-RBw&m=-cUmMKRcO...
2020 Aug 05
3
[RFC] Machine Function Splitter - Split out cold blocks from machine functions using profile data
...e performance. LLVM has a >> middle-end, target agnostic hot cold splitting pass >> <https://llvm.org/devmtg/2019-10/slides/Kumar-HotColdSplitting.pdf> as >> well as a partial inlining pass >> <https://github.com/llvm/llvm-project/blob/master/llvm/lib/Transforms/IPO/PartialInlining.cpp> >> which performs similar transformations, as noted by the authors in a >> recent email thread >> <https://lists.llvm.org/pipermail/llvm-dev/2020-June/142429.html>. >> However, due to the timing of the respective passes as well as the code >> extraction t...
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[3]: Compiling MergeFunctions.cpp for Release+Asserts build llvm[2]: Compiling LTOCodeGenerator.cpp for Release+Asserts build llvm[3]: Compiling ProvenanceAnalysisEvaluator.cpp for Release+Asserts build llvm[2]: Compiling ImplicitNullChecks.cpp for Release+Asserts build llvm[3]: Compiling PartialInlining.cpp for Release+Asserts build llvm[3]: Compiling PtrState.cpp for Release+Asserts build llvm[2]: Compiling LTOModule.cpp for Release+Asserts build llvm[3]: Building Release+Asserts Archive Library libLLVMObjCARCOpts.a llvm[2]: Compiling InlineSpiller.cpp for Release+Asserts build llvm[3]: Compiling...