Displaying 20 results from an estimated 2000 matches similar to: "[LLVMdev] rematerialization question"
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
2015 Jul 14
4
[LLVMdev] Poor register allocation (constants causing spilling)
Hi,
While investigating a performance issue with an internal codebase I
came across what looks to be poor register allocation. I have
constructed a small(ish) reproducible which demonstrates the issue
(see test.ll attached).
I have spent some time going through the register allocator to
understand what is happening. I have also experimented with some
small changes to try and improve the
2012 Jun 07
2
[LLVMdev] Instruction bundles before RA: Rematerialization
Hi Jakob,
2012/6/6 Jakob Stoklund Olesen <stoklund at 2pi.dk <mailto:stoklund at 2pi.dk>>
On Jun 6, 2012, at 2:53 AM, Ivan Llopard <ivanllopard at gmail.com
<mailto: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 bundles
2012 Jun 07
2
[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 with bundles. That is why I took the philosophical stance of treating bundles as black boxes during RA. I think the
2012 Jun 07
0
[LLVMdev] Instruction bundles before RA: Rematerialization
Jakob,
Please see my comments below. Hope this helps.
Sergei
--
Qualcomm 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
2008 May 28
3
[LLVMdev] Possible VirtRegMap Bug
I've been playing around with spillers and found that the SimpleSpiller fails
badly on a particular code.
The problem arises because SimpleSpiller does the test
VRM.isAssignedReg(virtReg) which is implemented as:
00183 bool isAssignedReg(unsigned virtReg) const {
00184 if (getStackSlot(virtReg) == NO_STACK_SLOT &&
00185 getReMatId(virtReg) == NO_STACK_SLOT)
2012 Jun 07
0
[LLVMdev] Instruction bundles before RA: Rematerialization
I should probably voice our point of view as well… Hexagon is another VLIW target with “non standard” demands for bundling.
I think Jacob has summarized current view of bundles as “black box” rather precise, but I should say that our view of bundles is way more fluid and open than that.
To avoid going into lengthy discussion, let me just say – bundling for us is not a single occurrence, but
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 06
0
[LLVMdev] Instruction bundles before RA: Rematerialization
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 bundles *before* RA to
> model certain constraints, e.g. the exposed one by Tzu-Chien a while ago
> in his thread
>
[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 ?
> Given what you are saying, you are also suggesting we are not
rematerializing addressing computations where it is cheaper to do so.
That seems pretty critical to good RA :P
Yep, about 5 months ago I had a conversation about this too... it may even
be the one you're referencing. Our remat is really conservative - it only
rematerializes values that have zero input operands (move immediate
2012 Jun 08
0
[LLVMdev] Instruction bundles before RA: Rematerialization
Hi again!
On 08/06/2012 17:11, Ivan Llopard wrote:
> Hi Sergei, Jakob,
>
> Thanks for your comments !
>
> On 07/06/2012 20:41, Sergei Larin wrote:
>>
>> Jakob,
>>
>> Please see my comments below. Hope this helps.
>>
>> Sergei
>>
>> --
>>
>> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum.
>>
2012 Jun 08
3
[LLVMdev] Instruction bundles before RA: Rematerialization
Hi Sergei, Jakob,
Thanks for your comments !
On 07/06/2012 20:41, Sergei Larin wrote:
>
> Jakob,
>
> Please see my comments below. Hope this helps.
>
> Sergei
>
> --
>
> Qualcomm 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
2011 Nov 16
2
[LLVMdev] Possible Remat Bug
I'm working on some enhancements to rematerialization that I hope to
contribute. It's mostly working but I am running into one problem. It
boils down to having spilled a register used by the remat candidate.
I thought this is what getReMatImplicitUse is supposed to handle but
it looks inconsistent to me. The comment says this:
/// getReMatImplicitUse - If the remat definition MI has
2008 Jul 21
6
[LLVMdev] LICM/store-aliasing of global loads
Our frontend can guarantee that loads from globals are
rematerializable and do not alias with any stores in any function in
the given module. We'd like the optimization passes (and ideally the
register allocator as well) to be able to use this fact. The globals
are not constant "forever" but are constant during the calling of any
given function in the module.
There seem to
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
2012 Jun 06
2
[LLVMdev] Instruction bundles before RA: Rematerialization
Hi,
We have a new BE for a VLIW-like processor and I'm currently working on
instruction bundles. Ideally, I'd like to have bundles *before* RA to
model certain constraints, e.g. the exposed one by Tzu-Chien a while ago
in his thread
http://lists.cs.uiuc.edu/pipermail/llvmdev/2005-September/004798.html
In order to build bundles, we have added a new bottom-up MIScheduler,
right after
2009 Jan 13
0
[LLVMdev] Possible bug in LiveIntervals (triggered on the XCore target)?
Roman Levenstein wrote:
> Hi again,
>
> Now, after I fixed the graph coloring regalloc bug that was triggered
> by the ARM target, I continue testing and found another bug, this time
> on the XCore target. First I thought that it is again specific to my
> register allocator, but it seems to be trigerred also by LLVM's
> linearscan register allocator.
>
> I don't
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
2008 May 09
2
[LLVMdev] Complicated Remat Question
Ok, this is a rather complicated e-mail. Please ask questions if you don't
understand something.
I've come across an interesting problem. I'm merging our graph coloring
allocator with the code from trunk as of late last week. I have a code where
a LiveInterval is spilled and some uses can be rematerialized. %reg1235 is
spilled and at least one use is rematted. The remat def
2008 Jul 22
3
[LLVMdev] LICM/store-aliasing of global loads
On 22-Jul-08, at 1:22 PM, Dan Gohman wrote:
> On Jul 21, 2008, at 3:51 PM, Stefanus Du Toit wrote:
>> - build a custom alias analysis pass that indicates that these loads
>> never alias with any stores in a given function
>> - declare these globals as external constants within the module
>
> If you can convince yourself that no interprocedural optimization
> will ever