Displaying 20 results from an estimated 2818 matches for "outliner".
Did you mean:
outlined
2017 Sep 05
5
[RFC] PT.2 Add IR level interprocedural outliner for code size.
Hey Everybody,
A little while ago I posted an RFC(
http://lists.llvm.org/pipermail/llvm-dev/2017-July/115666.html) with the
proposition of adding a new outliner at the IR level. There was some
confusion and many questions regarding the proposal which I’d like to
address here:
Note about nomenclature:
Candidate: A repeated sequence of instructions within a module.
Occurrence: One instance of a candidate sequence.
-- Accompanied Graph Data --
Grap...
2017 Sep 22
0
[RFC] PT.2 Add IR level interprocedural outliner for code size.
In general I would love to see an outliner at the IR level also. But rather than a comparison vs. the machine outliner I would like to learn more about how the core data structures between the outliners will be shared. In particular for matching/pruning it seems to be a reasonable approach. A few more remarks/questions are below also.
Than...
2017 Sep 22
2
[RFC] PT.2 Add IR level interprocedural outliner for code size.
Hey Gerolf,
On Thu, Sep 21, 2017 at 7:10 PM, Gerolf Hoflehner <ghoflehner at apple.com>
wrote:
> In general I would love to see an outliner at the IR level also. But
> rather than a comparison vs. the machine outliner I would like to learn
> more about how the core data structures between the outliners will be
> shared.
>
The only structure that needs to be shared is a struct defining what an
outlining candidate looks like...
2017 Sep 27
0
[RFC] PT.2 Add IR level interprocedural outliner for code size.
> On Sep 21, 2017, at 8:02 PM, River Riddle <riddleriver at gmail.com> wrote:
>
> Hey Gerolf,
>
> On Thu, Sep 21, 2017 at 7:10 PM, Gerolf Hoflehner <ghoflehner at apple.com <mailto:ghoflehner at apple.com>> wrote:
> In general I would love to see an outliner at the IR level also. But rather than a comparison vs. the machine outliner I would like to learn more about how the core data structures between the outliners will be shared.
>
> The only structure that needs to be shared is a struct defining what an outlining candidate looks like.
>...
2013 Jul 16
1
Masking oceans using polypath
Hi R-help
I am trying to mask the ocean from an image plot I have made.
Here is some example code:
library(mapdata)
image(x=110:155, y =-40:-10, z = outer(1:45, 1:30, "+"),
xlab = "lon", ylab = "lat")
outline <- map("worldHires", plot=FALSE) # returns a list of x/y coords
xrange <- range(outline$x, na.rm=TRUE) # get bounding box
yrange
2017 Aug 15
8
[RFC] Enhance Partial Inliner by using a general outlining scheme for cold blocks
Hello,
My team and I are looking to do some enhancements in the partial inliner
in opt. Would appreciate any feedback that folks might have.
# Partial Inlining in LLVM opt
## Summary
### Background
Currently, the partial inliner searches the first few blocks of the callee
and looks for a branch to the return block (ie. early return). If found,
it attempts to outline the rest of the
2017 Aug 15
3
[RFC] Enhance Partial Inliner by using a general outlining scheme for cold blocks
Hi Jessica,
Thanks for the feedback.
I believe the existing partial inliner pass does use some common utilities
like the code extractor to do outlining. Is that what you're referring to?
I don't recall seeing any other passes that has outlining other than the
machine outliner, but I may have missed something.
I briefly looked at River's RFC and it seems he's mainly utilizing
outlining as a tool to reduce code size while maintaining code performance.
Our proposal is to improve on the existing outlining scheme of the partial
inliner to give us more opportunities...
2017 Sep 27
3
[RFC] PT.2 Add IR level interprocedural outliner for code size.
I think that, given previous discussion on the topic, we might want a split like this:
(1) Search structure
Suffix tree or suffix array.
(2) Numbering/mapping/congruence scheme
Every outliner should implement a function that maps instructions (or whatever structure you want to outline, crazy thoughts…) to integers. That should be passed to the search structure, which will return a list of repeated sequences.
The MachineOutliner currently has an “InstructionMapper” struct in it. I think...
2018 Apr 21
5
[RFC] Turn the MachineOutliner on by default in AArch64 under -Oz
Hi all,
The MachineOutliner has come a long way since the original incarnation presented at the 2016 LLVM Developer's Meeting [1]. In particular, we've been pushing a lot on the AArch64 target for the MachineOutliner. It's mature enough at this point that we'd like to take things a step further and turn it on...
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 chosen. I’d like to try the pipeline configuration:
1. Inline
2. IR optimizations
3. IR outline
4. MIR optimizations
5. MIR ou...
2017 Aug 24
1
[RFC] Enhance Partial Inliner by using a general outlining scheme for cold blocks
Hi David,
So I've began doing some implementation on the outlining portion of the
code. Currently, I got the partial inliner to outline cold regions (single
entry, single exit) of the code, based solely on the existence of
ProfileSummaryInfo (ie. profiling data). However, I have some concerns on
how this will co-exist with the existing code that peels early returns.
The control flow looks
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
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 Aug 15
2
[RFC] Enhance Partial Inliner by using a general outlining scheme for cold blocks
...>
> There were also some known problems with extracting in the presence of
> critical edges, but I don't know if thats still the case.
>
>
>> Is that what you're referring to? I don't recall seeing any other passes
>> that has outlining other than the machine outliner, but I may have missed
>> something.
>>
>> I briefly looked at River's RFC and it seems he's mainly utilizing
>> outlining as a tool to reduce code size while maintaining code performance.
>>
>
> The main point of the outliner I proposed in that RFC is be...
2017 Jul 29
7
[RFC] Add IR level interprocedural outliner for code size.
...ng by Eric Christopher (a long-time member of the community with wide reaching expertise), I think dismissing it may have been a little premature.
I also want to visit a few procedural notes.
Mehdi commented on the thread that it wouldn't be fair to ask for a comparative study because the MIR outliner didn't have one. While I don't think anyone is asking for a comparative study, I want to point out that I think it is completely fair. If a new contributor approached the community with a new SROA pass and wanted to land it in-tree it would be appropriate to ask for a comparative analysis a...
2017 Jul 26
2
[RFC] Add IR level interprocedural outliner for code size.
...CM (today) won't hoist full regions but it can hoist
single function calls. If we can extract 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...
2017 Jul 21
2
[RFC] Add IR level interprocedural outliner for code size.
Hi Evgeny,
I know of the current machine outliner in LLVM. If you look in the "More
detailed performance data" in the end section it includes performance
comparisons to the machine outliner.
As for the algorithmic approach they are kind of similar.
Machine Outliner:
- Builds a suffix tree based on identical equivalence between machin...
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 outlining
(especially working with function-attrs) can make optimization easier.
It can help transforms that duplicate...
2017 Aug 01
4
[RFC] Add IR level interprocedural outliner for code size.
...ne 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 not 100% bulletproof;
if we add IR outliner heuristics to the mix -- and then just a little bit
of MIR outliner heuristics (which are more precise but, as demonstrated
above, not 100% precise as well) on top... you can imagine.
Yours,
Andrey
On Tue, Aug 1, 2017 at 10:07 AM, Andrey Bokhanko <andreybokhanko at gmail.com>
wrote:
>...
2017 Jul 20
8
[RFC] Add IR level interprocedural outliner for code size.
...urrences, thus the amount of inputs was reduced to 2.
* Debug Info:
Debug information is preserved for the calls to functions which have been
outlined but all debug info from the original outlined portions is removed,
making them harder to debug.
* Profile Info:
If the pass is running at Os the outliner will only consider cold blocks,
whereas Oz considers all blocks that are not marked as hot.
* Location in Pipeline:
The pass is currently configured to run very late in the optimization
pipeline. It is intended to run at Oz but will also run at Os if there is
profile data available. The pass can...