Displaying 20 results from an estimated 30000 matches similar to: "[LLVMdev] LLVMdev Digest, Vol 44, Issue 47"
2008 Feb 15
0
[LLVMdev] LLVMdev Digest, Vol 44, Issue 47
Here's issue 48. I'm guessing I'm going to get issue 49 as soon as I hit
send...
On Fri, Feb 15, 2008 at 3:28 PM, <llvmdev-request at cs.uiuc.edu> wrote:
> Send LLVMdev mailing list submissions to
> llvmdev at cs.uiuc.edu
>
> To subscribe or unsubscribe via the World Wide Web, visit
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> or, via
2008 Feb 15
2
[LLVMdev] an llvm-gcc bug
On Feb 15, 2008, at 11:17 AM, Devang Patel wrote:
>
> On Feb 15, 2008, at 10:27 AM, Chris Lattner wrote:
>
>>
>> On Feb 15, 2008, at 10:23 AM, Devang Patel wrote:
>>
>>>
>>> On Feb 15, 2008, at 10:08 AM, Chris Lattner wrote:
>>>
>>>>>> Alternatively I can take the Padding bit into account in the
>>>>>>
2008 Feb 15
2
[LLVMdev] LiveInterval spilling (was LiveInterval Splitting & SubRegisters)
Hi Evan,
I have a few questions about current implementation of live intervals
spilling, which is required for the implementation of Extended Linear
Scan algorithm.
--- Evan Cheng <evan.cheng at apple.com> wrote:
> > On Wednesday 23 January 2008 02:01, Evan Cheng wrote:
> >> On Jan 22, 2008, at 12:23 PM, David Greene wrote:
> >>> Evan,
> >>>
>
2008 Jan 23
2
[LLVMdev] LiveInterval Splitting & SubRegisters
On Wednesday 23 January 2008 02:01, Evan Cheng wrote:
> On Jan 22, 2008, at 12:23 PM, David Greene wrote:
> > Evan,
> >
> > Can you explain the basic mechanics of the live interval splitting
> > code?
> > Is it all in LiveIntervalAnalysis.cpp under addIntervalsForSpills
> > and child
> > routines? What is it trying to do?
>
> It's splitting
2008 Jan 25
0
[LLVMdev] LiveInterval Splitting & SubRegisters
On Jan 23, 2008, at 2:40 PM, David Greene <dag at cray.com> wrote:
> On Wednesday 23 January 2008 02:01, Evan Cheng wrote:
>> On Jan 22, 2008, at 12:23 PM, David Greene wrote:
>>> Evan,
>>>
>>> Can you explain the basic mechanics of the live interval splitting
>>> code?
>>> Is it all in LiveIntervalAnalysis.cpp under
2007 Aug 06
5
[LLVMdev] Spillers
Can someone explain the theory behind the spillers in VirtRegMap.cpp?
It seems as though the spillers do triple duty:
- Insert load/store operations and/or fold instructions as necessary to carry
out spills
- Rewrite the spilled virtual registers to use machine registers (mapping
given by the caller in the VRM).
- Rewrite machine code to change virtual registers to physical registers
2008 Feb 15
0
[LLVMdev] an llvm-gcc bug
On Feb 15, 2008, at 10:27 AM, Chris Lattner wrote:
>
> On Feb 15, 2008, at 10:23 AM, Devang Patel wrote:
>
>>
>> On Feb 15, 2008, at 10:08 AM, Chris Lattner wrote:
>>
>>>>> Alternatively I can take the Padding bit into account in the
>>>>> StructType::get code somehow. Anyone have a strong opinion?
>>>>
>>>>
2008 Feb 15
0
[LLVMdev] LiveInterval spilling (was LiveInterval Splitting & SubRegisters)
Hi, Roman,
maybe I can try to answer this. I think that all boils down to having
register to reload spilled values. Once a register is spilled, its live
range is split into smaller pieces. These pieces most be contained into
registers, and it is the task of the allocator to find these registers.
Imagine that you have something like:
Before After
allocation: allocation:
a
2008 Feb 15
0
[LLVMdev] an llvm-gcc bug
On Feb 15, 2008, at 11:22 AM, Dale Johannesen wrote:
>
> On Feb 15, 2008, at 11:17 AM, Devang Patel wrote:
>
>>
>> On Feb 15, 2008, at 10:27 AM, Chris Lattner wrote:
>>
>>>
>>> On Feb 15, 2008, at 10:23 AM, Devang Patel wrote:
>>>
>>>>
>>>> On Feb 15, 2008, at 10:08 AM, Chris Lattner wrote:
>>>>
2008 Feb 15
2
[LLVMdev] LiveInterval spilling (was LiveInterval Splitting & SubRegisters)
Hi Fernando,
--- Fernando Magno Quintao Pereira <fernando at cs.ucla.edu> wrote:
>
> Hi, Roman,
>
> maybe I can try to answer this. I think that all boils down to
> having register to reload spilled values.
Ok. That I can follow.
> Once a register is spilled, its live range is split into smaller
> pieces. These pieces most be contained into registers, and
2008 Jan 23
0
[LLVMdev] LiveInterval Splitting & SubRegisters
On Jan 22, 2008, at 12:23 PM, David Greene wrote:
> Evan,
>
> Can you explain the basic mechanics of the live interval splitting
> code?
> Is it all in LiveIntervalAnalysis.cpp under addIntervalsForSpills
> and child
> routines? What is it trying to do?
It's splitting live intervals that span multiple basic blocks. That
is, when an interval is spilled, it
2011 Jan 21
2
[LLVMdev] [LLVMDev] Reg Alloc: Spiller::Spill question
Spiller::Spill( LiveInterval *li,
SmallVectorImpl<LiveInterval*> &newIntervals,
const SmallVectorImpl<LiveInterval*> &spillIs );
has two reference vectors which contain a small list of Live Intervals. What
is the register allocator's job to do with these intervals other than
analysis. What more needed other than to know
2008 Feb 12
2
[LLVMdev] an llvm-gcc bug
Here's a cute bug in llvm-gcc's struct translation:
struct S242 { char * a;int b[1]; } ;
struct S93 { __attribute__((aligned (8))) void * a; } ;
The second example is padded out to 8 bytes, so both of these look like
{ i8 *, [1 x i32] }
This leads the "struct type factory" StructType::get to think they are
the same.
But, the second field is marked as Padding in the second
2008 Jan 22
4
[LLVMdev] LiveInterval Splitting & SubRegisters
Evan,
Can you explain the basic mechanics of the live interval splitting code?
Is it all in LiveIntervalAnalysis.cpp under addIntervalsForSpills and child
routines? What is it trying to do?
Also, in the ancient subregister coalescing code, there used to be an update
of the SSARegMap to point subregisters to the superregister they were
coalesced to (IIRC). That has since gone away. I used to
2015 Jan 26
3
[LLVMdev] PBQP crash
Hi,
I have run into a test case on an out-of-tree target where PBQP fails to complete register allocation after "Attempting to spill already spilled value" (the triggered assert in InlineSpiller::spill().
First, the original LiveInterval is spilled. It is a load of a symbol into a narrow register class, i.e. a subset of the class of address registers. InlineSpiller decides to
2011 Jan 21
0
[LLVMdev] [LLVMDev] Reg Alloc: Spiller::Spill question
Jeff Kunkel <jdkunk3 at gmail.com> writes:
> Spiller::Spill( LiveInterval *li,
> SmallVectorImpl<LiveInterval*> &newIntervals,
> const SmallVectorImpl<LiveInterval*> &spillIs );
>
> has two reference vectors which contain a small list of Live
> Intervals. What is the register allocator's job to do
2007 Aug 06
4
[LLVMdev] Spillers
On Monday 06 August 2007 12:15, Anton Vayvod wrote:
> Spill intervals must be precolored because they can't be spilled once more.
> They are the shortest intervals precisely over each def/use of the original
> interval. That is why they also have their weights set to #INF.
Yes, that's true. But I wonder if we shouldn't be smarter about which
register we pick to color it.
2008 Feb 15
3
[LLVMdev] an llvm-gcc bug
On Feb 15, 2008, at 10:23 AM, Devang Patel wrote:
>
> On Feb 15, 2008, at 10:08 AM, Chris Lattner wrote:
>
>>>> Alternatively I can take the Padding bit into account in the
>>>> StructType::get code somehow. Anyone have a strong opinion?
>>>
>>> Shouldn't it be a map from the gcc type to the padding info?
>>> That said, you can get
2007 Aug 07
0
[LLVMdev] Spillers
On 8/7/07, David Greene <dag at cray.com> wrote:
>
> On Monday 06 August 2007 12:15, Anton Vayvod wrote:
>
> > Spill intervals must be precolored because they can't be spilled once
> more.
> > They are the shortest intervals precisely over each def/use of the
> original
> > interval. That is why they also have their weights set to #INF.
>
> Yes,
2015 Jan 27
5
[LLVMdev] PBQP crash
> A node should never be put into the conservatively allocatable list if there is a chance of it spilling.
I can understand why the logic of NodeMetadata::isConservativelyAllocatable is necessary for the node to be allocatable, but I have not been able to convince myself this is sufficient, especially when the node degree > available registers.
Cheers,
Arnaud
From: