Displaying 20 results from an estimated 179 matches for "rematerialization".
2012 Mar 15
1
[LLVMdev] rematerialization question
I am a bit confused how the rematerialization works.
It seems currently in our backend we get lots of code where some stack
offset address is calculated, but this address is then spilled to stack,
and loaded from stack later.
This does not make sense, it would be better to just recalculate the
address later, ie rematerialize the original...
2016 Nov 27
5
Extending Register Rematerialization
Hello LLVM Developers,
We are working on extending currently available register rematerialization
to include cases where sequence of multiple instructions is required to
rematerialize a value.
We had a discussion on this in community mailing list and link is here:
http://lists.llvm.org/pipermail/llvm-dev/2016-September/subject.html#104777
>From the above discussion and studying the code we...
2013 Jun 03
2
[LLVMdev] Rematerialization and spilling
I'm working on an out-of-tree target and am having some problems with rematerialization and spilling.
The target's load and store instructions affect the condition code register (CCR). Describing this in the InstrInfo.td file using Defs = [CCR] certainly prevents spills and fills from being inserted where they might clobber CCR but it also prevents the load instruction from being...
2012 Jun 07
2
[LLVMdev] Instruction bundles before RA: Rematerialization
...k boxes during RA. I think the target should be involved whenever bundles are formed, and we shouldn't delete instructions from inside bundles without permission from the target.
I think we need to tweak some of the TargetInstrInfo hooks to make bundle remat possible. I would like your input.
Rematerialization has multiple steps:
1. Feasibility. RA knows the bundle defining a given SSA value of a virtual register. It calls TII.isTriviallyReMaterializable() to determine if the defining instruction can (and should) be rematerialized. See LiveRangeEdit::anyRematerializable().
2. Feasibility at desired loc...
2013 Jun 03
0
[LLVMdev] Rematerialization and spilling
On Jun 3, 2013, at 6:05 AM, Steve Montgomery <stephen.montgomery3 at btinternet.com> wrote:
> I'm working on an out-of-tree target and am having some problems with rematerialization and spilling.
>
> The target's load and store instructions affect the condition code register (CCR). Describing this in the InstrInfo.td file using Defs = [CCR] certainly prevents spills and fills from being inserted where they might clobber CCR but it also prevents the load instruction...
2012 Jun 07
0
[LLVMdev] Instruction bundles before RA: Rematerialization
...r, Inc. is a member of Code Aurora Forum.
From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Ivan Llopard
Sent: Thursday, June 07, 2012 3:26 AM
To: Jakob Stoklund Olesen
Cc: LLVM Developers Mailing List
Subject: Re: [LLVMdev] Instruction bundles before RA: Rematerialization
Hi Jakob,
2012/6/6 Jakob Stoklund Olesen <stoklund at 2pi.dk>
On Jun 6, 2012, at 2:53 AM, Ivan Llopard <ivanllopard at gmail.com> wrote:
> We have a new BE for a VLIW-like processor and I'm currently working on
> instruction bundles. Ideally, I'd like to have bundl...
2012 Jun 07
2
[LLVMdev] Instruction bundles before RA: Rematerialization
...t; schedule on the DAG. Bundles are built at exitRegion() in the
scheduling
> process and the live interval information is updated correctly. After
> this, the RA is aware of bundles, at least from a LiveInterval
point of
> view, and I had some problems regarding the rematerialization.
>
> AFAIK, the RA cannot remat if the target instruction is not the
bundle's
> header.
> For this, I rather need a light bundle representation, or no
bundle at
> all, so it can remat the right instruction with one condition: the
> remated...
2012 Jun 07
0
[LLVMdev] Instruction bundles before RA: Rematerialization
...comm Innovation Center, Inc. is a member of Code Aurora Forum.
From: Jakob Stoklund Olesen [mailto:stoklund at 2pi.dk]
Sent: Thursday, June 07, 2012 1:02 PM
To: Sergei Larin
Cc: 'Ivan Llopard'; 'LLVM Developers Mailing List'
Subject: Re: [LLVMdev] Instruction bundles before RA: Rematerialization
On Jun 7, 2012, at 10:25 AM, "Sergei Larin" <slarin at codeaurora.org> wrote:
Generally as far as I concern, there is no way "generic" (platform
independent) code can add instructions to bundles optimally
I agree, there are too many ways of modeling stuff w...
2012 Jun 06
2
[LLVMdev] Instruction bundles before RA: Rematerialization
...some tricky instructions, we cannot
schedule on the DAG. Bundles are built at exitRegion() in the scheduling
process and the live interval information is updated correctly. After
this, the RA is aware of bundles, at least from a LiveInterval point of
view, and I had some problems regarding the rematerialization.
AFAIK, the RA cannot remat if the target instruction is not the bundle's
header.
For this, I rather need a light bundle representation, or no bundle at
all, so it can remat the right instruction with one condition: the
remated location should preserve bundles. Nevertheless, for many other...
2012 Feb 22
0
[LLVMdev] Force rematerialization
Hi all,
I'd like to force rematerialization by extending live intervals. For
example:
%vreg1 = opa %vreg2, %vreg3 ; RClassA:%vreg1, RClassB:%vreg2, RClassB:%vreg3
...
somewhere between --> %vreg2<kill> and %vreg3<kill>
..
%vreg4 = opb %vreg1 ; RClassA:%vreg1, RClassB:%vreg4
In my case, %vreg1 is not spillable and I'd li...
2012 Jun 06
0
[LLVMdev] Instruction bundles before RA: Rematerialization
...tions, we cannot
> schedule on the DAG. Bundles are built at exitRegion() in the scheduling
> process and the live interval information is updated correctly. After
> this, the RA is aware of bundles, at least from a LiveInterval point of
> view, and I had some problems regarding the rematerialization.
>
> AFAIK, the RA cannot remat if the target instruction is not the bundle's
> header.
> For this, I rather need a light bundle representation, or no bundle at
> all, so it can remat the right instruction with one condition: the
> remated location should preserve bundles....
[LLVMdev] Register pressure mechanism in PRE or Smarter rematerialization/split/spiller/coalescing ?
2015 Jul 15
2
[LLVMdev] Register pressure mechanism in PRE or Smarter rematerialization/split/spiller/coalescing ?
...;
> >
> > -----Original Message-----
> > From: Daniel Berlin [mailto:dberlin at dberlin.org]
> > Sent: Wednesday, July 15, 2015 7:48 AM
> > To: Lawrence
> > Cc: LLVM Developers Mailing List
> > Subject: Re: Register pressure mechanism in PRE or Smarter
> rematerialization/split/spiller/coalescing ?
> >
> > On Tue, Jul 14, 2015 at 11:43 PM, Lawrence <lawrence at codeaurora.org>
> wrote:
> >> I thought about a little bit more, I think adding Register pressure
> control in your patch or PRE may be the only choice.
> >>
> >...
2012 Jun 08
0
[LLVMdev] Instruction bundles before RA: Rematerialization
...rum.
>>
>> *From:*Jakob Stoklund Olesen [mailto:stoklund at 2pi.dk]
>> *Sent:* Thursday, June 07, 2012 1:02 PM
>> *To:* Sergei Larin
>> *Cc:* 'Ivan Llopard'; 'LLVM Developers Mailing List'
>> *Subject:* Re: [LLVMdev] Instruction bundles before RA: Rematerialization
>>
>> On Jun 7, 2012, at 10:25 AM, "Sergei Larin" <slarin at codeaurora.org
>> <mailto:slarin at codeaurora.org>> wrote:
>>
>>
>>
>> Generally as far as I concern, there is no way “generic” (platform
>> independent) code can add...
2012 Jun 08
3
[LLVMdev] Instruction bundles before RA: Rematerialization
...member of Code Aurora Forum.
>
> *From:*Jakob Stoklund Olesen [mailto:stoklund at 2pi.dk]
> *Sent:* Thursday, June 07, 2012 1:02 PM
> *To:* Sergei Larin
> *Cc:* 'Ivan Llopard'; 'LLVM Developers Mailing List'
> *Subject:* Re: [LLVMdev] Instruction bundles before RA: Rematerialization
>
> On Jun 7, 2012, at 10:25 AM, "Sergei Larin" <slarin at codeaurora.org
> <mailto:slarin at codeaurora.org>> wrote:
>
>
>
> Generally as far as I concern, there is no way "generic" (platform
> independent) code can add instructions to bund...
[LLVMdev] Register pressure mechanism in PRE or Smarter rematerialization/split/spiller/coalescing ?
2015 Jul 15
4
[LLVMdev] Register pressure mechanism in PRE or Smarter rematerialization/split/spiller/coalescing ?
On Wed, Jul 15, 2015 at 1:10 PM, Daniel Berlin <dberlin at dberlin.org> wrote:
> IMHO, This doesn't make a lot of sense to turn off this part on it's own.
> I would just use the enable-pre flag to turn off scalar PRE, as it
> will cause the same issue in other cases as well.
> Is there some reason you aren't just doing that?
> I suspect if this is a performance
[LLVMdev] Register pressure mechanism in PRE or Smarter rematerialization/split/spiller/coalescing ?
2015 Jul 17
2
[LLVMdev] Register pressure mechanism in PRE or Smarter rematerialization/split/spiller/coalescing ?
...Lawrence Hu
>
>
> -----Original Message-----
> From: Lawrence [mailto:lawrence at codeaurora.org]
> Sent: Wednesday, July 15, 2015 9:36 PM
> To: 'Daniel Berlin'
> Cc: 'LLVM Developers Mailing List'
> Subject: RE: Register pressure mechanism in PRE or Smarter rematerialization/split/spiller/coalescing ?
>
> Hi, Daniel:
>
> Thanks, I tried that patch you provided, it is better than just disabling your previous patch, it has more improvements than degradations.
>
> Do you want to post that patch or you want me to do that?
>
> Regards
>
> Lawre...
[LLVMdev] Register pressure mechanism in PRE or Smarter rematerialization/split/spiller/coalescing ?
2015 Jul 15
3
[LLVMdev] Register pressure mechanism in PRE or Smarter rematerialization/split/spiller/coalescing ?
...will ask soon.
http://reviews.llvm.org/D11234
Thanks again.
Lawrence Hu
-----Original Message-----
From: Daniel Berlin [mailto:dberlin at dberlin.org]
Sent: Wednesday, July 15, 2015 7:48 AM
To: Lawrence
Cc: LLVM Developers Mailing List
Subject: Re: Register pressure mechanism in PRE or Smarter rematerialization/split/spiller/coalescing ?
On Tue, Jul 14, 2015 at 11:43 PM, Lawrence <lawrence at codeaurora.org> wrote:
> I thought about a little bit more, I think adding Register pressure control in your patch or PRE may be the only choice.
>
> Because at least for this case I am looking at, w...
2013 Jun 03
4
[LLVMdev] Rematerialization and spilling
...is purpose.
Steve
On 3 Jun 2013, at 17:30, Jakob Stoklund Olesen <stoklund at 2pi.dk> wrote:
>
> On Jun 3, 2013, at 6:05 AM, Steve Montgomery <stephen.montgomery3 at btinternet.com> wrote:
>
>> I'm working on an out-of-tree target and am having some problems with rematerialization and spilling.
>>
>> The target's load and store instructions affect the condition code register (CCR). Describing this in the InstrInfo.td file using Defs = [CCR] certainly prevents spills and fills from being inserted where they might clobber CCR but it also prevents the load inst...
2014 Aug 22
2
[LLVMdev] Help with definition of subregisters; spill, rematerialization and implicit uses
Hi Quentin,
On 08/19/14 18:58, Quentin Colombet wrote:
[...]
> It seems that you will have to debug further the *** Bad machine code: Instruction loads from dead spill slot *** before we can be of any help.
Yes, I've done some more digging. Sorry for the long mail...
I get:
Inline spilling aN40_0_7:%vreg1954 [5000r,5056r:0)[5056r,5348r:1)
0 at 5000r 1 at 5056r
At this point I have
2013 Jun 03
0
[LLVMdev] Rematerialization and spilling
On Jun 3, 2013, at 9:42 AM, Steve Montgomery <stephen.montgomery3 at btinternet.com> wrote:
> I can use pseudo-instructions to bundle cmp+jump but it's not ideal because I might also have to bundle cmp+jump+jump+... into a pseudo.
That may not be necessary. The register allocator won’t insert anything between terminators.
/jakob