Displaying 10 results from an estimated 10 matches for "heuristc".
Did you mean:
heuristic
2010 Nov 24
7
[LLVMdev] LLVM Inliner
...not consider the possible
cleanup)
3) recursive inlining is not supported
4) function with indirect branch is not inlined. What source construct does
indirect branch instr correspond to ? variable jump?
5) fudge factor prefers functions with vector instructions -- why is that?
6) There is one heuristc used in inline-cost computation seems wrong:
// Calls usually take a long time, so they make the inlining gain smaller.
InlineCost += CalleeFI->Metrics.NumCalls * InlineConstants::CallPenalty;
Does it try to block inlining of callees with lots of calls? Note inlining
such a function only...
2010 Nov 24
0
[LLVMdev] LLVM Inliner
...like interpreter loops, which you don't
usually want to inline.
> 5) fudge factor prefers functions with vector instructions -- why is that?
I'm guessing that vectorized instructions are an indicator that the
function is a hotspot, and should therefore be inlined.
> 6) There is one heuristc used in inline-cost computation seems wrong:
>
> // Calls usually take a long time, so they make the inlining gain smaller.
> InlineCost += CalleeFI->Metrics.NumCalls * InlineConstants::CallPenalty;
> Does it try to block inlining of callees with lots of calls? Note inlining
>...
2010 Nov 24
0
[LLVMdev] LLVM Inliner
...t;
> 4) function with indirect branch is not inlined. What source construct
> does indirect branch instr correspond to ? variable jump?
Right. It's for "goto *ptr;".
Nick
> 5) fudge factor prefers functions with vector instructions -- why is that?
>
> 6) There is one heuristc used in inline-cost computation seems wrong:
>
>
> // Calls usually take a long time, so they make the inlining gain
> smaller.
> InlineCost += CalleeFI->Metrics.NumCalls * InlineConstants::CallPenalty;
>
> Does it try to block inlining of callees with lots of calls? N...
2010 Nov 28
0
[LLVMdev] LLVM Inliner
...ut it. I agree that it should be revisited.
> 4) function with indirect branch is not inlined. What source construct does indirect branch instr correspond to ? variable jump?
See:
http://blog.llvm.org/2010/01/address-of-label-and-indirect-branches.html
for more details.
> 6) There is one heuristc used in inline-cost computation seems wrong:
>
> // Calls usually take a long time, so they make the inlining gain smaller.
> InlineCost += CalleeFI->Metrics.NumCalls * InlineConstants::CallPenalty;
>
> Does it try to block inlining of callees with lots of calls? Note inlini...
2019 Sep 09
2
Fwd: MachineScheduler not scheduling for latency
Hi,
I'm trying to understand why MachineScheduler does a poor job in
straight line code in cases like the one in the attached debug dump.
This is on AMDGPU, an in-order target, and the problem is that the
IMAGE_SAMPLE instructions have very high (80 cycle) latency, but in
the resulting schedule they are often placed right next to their uses
like this:
1784B %140:vgpr_32 =
2013 Sep 24
0
[LLVMdev] MI Scheduler Update (was Experimental Evaluation of the Schedulers in LLVM 3.3)
...tion order unless performance is at stake, the bar for adding heuristics is high. Complicating the heuristics now also means making them harder to understand and improve in the future.
I would like to see a general solution to scheduling for register pressure. I had plenty of ideas for more ad-hoc heuristcs within the bounds of list scheduling, but given that we haven't dominstrated the value of simple heuristics, I don't want to pursue anything more complicated. I think better solutions will have to transcend list scheduling. I do like to the idea of constraining the DAG prior to scheduling...
2019 Sep 10
2
MachineScheduler not scheduling for latency
...pectation that the GenericScheduler heuristics are anywhere near as good as they can be over the universe of workloads, but changing those heuristiscs means checking in with current backend maintainers to be sure you're not regressing their benchmarks in the process. I haven't touched these heuristcs in 6 years, but several others have had a hand in it recently.
>
> -Andy
>
2010 Nov 24
3
[LLVMdev] LLVM Inliner
...not inlined. What source construct
>> does indirect branch instr correspond to ? variable jump?
>>
>
> Right. It's for "goto *ptr;".
>
> Nick
>
> 5) fudge factor prefers functions with vector instructions -- why is that?
>>
>> 6) There is one heuristc used in inline-cost computation seems wrong:
>>
>>
>> // Calls usually take a long time, so they make the inlining gain
>> smaller.
>> InlineCost += CalleeFI->Metrics.NumCalls * InlineConstants::CallPenalty;
>>
>> Does it try to block inlining of cal...
2010 Nov 29
3
[LLVMdev] LLVM Inliner
...gt;
> > 4) function with indirect branch is not inlined. What source construct
> does indirect branch instr correspond to ? variable jump?
>
> See:
> http://blog.llvm.org/2010/01/address-of-label-and-indirect-branches.html
>
> for more details.
>
> > 6) There is one heuristc used in inline-cost computation seems wrong:
> >
> > // Calls usually take a long time, so they make the inlining gain
> smaller.
> > InlineCost += CalleeFI->Metrics.NumCalls *
> InlineConstants::CallPenalty;
> >
> > Does it try to block inlining of callee...
2013 Sep 17
11
[LLVMdev] Experimental Evaluation of the Schedulers in LLVM 3.3
Hi Andy,
We have done some experimental evaluation of the different schedulers in LLVM 3.3 (source, BURR, ILP, fast, MI). The evaluation was done
on x86-64 using SPEC CPU2006. We have measured both the amount of spill code as
well as the execution time as detailed below.
Here are our main findings:
1. The SD schedulers significantly impact the spill counts and the execution
times for many