Displaying 20 results from an estimated 200 matches similar to: "REG_SEQUENCE use question"
2009 Apr 13
1
[LLVMdev] Porting LLVM backend is no fun yet
Dan Gohman wrote:
> There certainly are wishlist items for TableGen and TableGen-based
> instruction descriptions, though I don't know of an official list.
> Offhand,
> a few things that come to mind are the ability to handle nodes with
> multiple results,
Is there an official workaround, BTW?
- Volodya
2010 Jul 28
0
[LLVMdev] Subregister coalescing
On Jul 28, 2010, at 12:25 PM, Carlos Sánchez de La Lama wrote:
> Which after register coalescing gets transformed into:
>
> 36 %reg16404:1<def> = LDWr %reg16384, 0; mem:LD4[<unknown>]
> 76 %reg16394<def> = LDWr %reg16386<kill>, 0; mem:LD4[<unknown>]
> 124 %reg16404<def> = INSERT_SUBREG %reg16404, %reg16394<kill>, 2
> 132
2010 Jul 28
3
[LLVMdev] Subregister coalescing
Hi all,
We are working on a backend for a machine that has 4-wide vector
register & ops, *but* not vector loads. All the vector register elements
are directly accesible, so VI1 reg (Vector Integer 1) has I4, I5, I6 and
I7 as its (integer) subregisters. Subregisters of same reg *never*
overlap.
Therefore, vector loads are lowered to scalar loads followed by a chain
of INSERT_VECTOR_ELTs. Then
2010 Sep 09
0
[LLVMdev] Possible missed optimization? 2.0
On Sep 9, 2010, at 12:59 PM, Borja Ferrer wrote:
> Hello, i've noticed a new possible missed optimization while testing more trivial code.
> This time it's not a with a xor but with a multiplication instruction and the example is little bit more involved.
>
> C code:
>
> typedef short t;
> t foo(t a, t b)
> {
> t a4 = a*b;
> return a4;
> }
>
2010 Sep 09
2
[LLVMdev] Possible missed optimization? 2.0
Hello, i've noticed a new possible missed optimization while testing more
trivial code.
This time it's not a with a xor but with a multiplication instruction and
the example is little bit more involved.
C code:
typedef short t;
t foo(t a, t b)
{
t a4 = a*b;
return a4;
}
argument "a" is passed in R15:R14, argument "b" in R13:R12, the return value
is stored in
2013 May 31
0
[LLVMdev] Register coalescer and reg_sequence (virtual super-regs)
On May 31, 2013, at 4:07 PM, Joe Matarazzo <joe.matarazzo at gmail.com> wrote:
> The register coalescer treats virtual super register classes -- a sequential register range composed of multiple hardware registers -- as a register with sub registers. When making coalescing decisions it thinks that the virtual super reg interferes with sub reg instances, even though in reality they
2013 May 31
2
[LLVMdev] Register coalescer and reg_sequence (virtual super-regs)
The register coalescer treats virtual super register classes -- a
sequential register range composed of multiple hardware registers -- as a
register with sub registers. When making coalescing decisions it thinks
that the virtual super reg interferes with sub reg instances, even though
in reality they shouldn't conflict. That is, they are individual registers
and would be better compared as
2013 Jun 01
0
[LLVMdev] Register coalescer and reg_sequence (virtual super-regs)
On May 31, 2013, at 4:59 PM, Joe Matarazzo <joe.matarazzo at gmail.com> wrote:
> I think the last time I pulled from trunk was probably end of last year. Some time ago. Does your reply intimate it's fixed on trunk?
Yes, it’s been fixed recently.
/jakob
2013 May 31
2
[LLVMdev] Register coalescer and reg_sequence (virtual super-regs)
I think the last time I pulled from trunk was probably end of last year.
Some time ago. Does your reply intimate it's fixed on trunk? That would be
great. (I don't sync too often to avoid churn with my TD.)
Joe
On Fri, May 31, 2013 at 4:21 PM, Jakob Stoklund Olesen <stoklund at 2pi.dk>wrote:
>
> On May 31, 2013, at 4:07 PM, Joe Matarazzo <joe.matarazzo at gmail.com>
2015 May 14
2
[LLVMdev] 3.6.1 -rc1 has been tagged. Testing begins.
> I've disassembled the failing MultiSource/Benchmarks/tramp3d-v4/tramp3d-v4 and compared it to
> the one from the LLVM 3.6.0 test runs. There's nothing obvious. We've removed some useless
> 'addiu $sp,$sp,0', eliminated two (seemingly redundant) sign extends, and the addresses of
> functions+data has changed slightly.
I've investigated further and I'm
2013 Jun 19
1
[LLVMdev] Register coalescer and reg_sequence (virtual super-regs)
Was it the subreg lane masks / mapping that was added to address the missed
coalescing? This solution is nice, but I don't think it'll work for me. I
have 8-element vector registers that can be grouped into virtual super regs
for bulk save/restore, and as soon as I have more than 4 in a tuple, the
unsigned int used to hold the lane masks overflows and switches over to the
"bit 31 set
2013 Jun 24
1
[LLVMdev] DebugInfo: Missing non-trivially-copyable parameters in SelectionDAG
This is a bit premature to be considered a code review, but given how
unfamiliar I am with SelectionDAG (& that I'm seeing somewhat more
'interesting' results compared to my change to FastISel) I wanted to
get a bit of feedback to see if I was on the right track or had missed
any obvious cases.
I've attached my patch in progress (including a modification to the
existing test
2009 Mar 30
1
[LLVMdev] Dear Evan Chang, Re: help: about how to use tblgen to constraint operand.
I try to define a register class
def GPR64 : RegisterClass<"mytarget", [i64], 64, [T0, T1.....]
to simulate even/odd pair of GPR32 register.
Actually, I just use GPR64 as a temporary register.
My CPU just support i32 Integer type directly.
I use FDR to save f64.
def FDR : RegisterClass<"mytarget", [f64], 64,[FD0, FD1, ....]
When I move f64 to even/odd pair register, I
2009 Mar 31
1
[LLVMdev] 转发: Re: Dear Evan Chang, Re: help: about how to use tblgen to constraint operand.
Dear Evan Chang:
I register incorrect Register class for MVT::f64. I have fixed it. Thanks your advice.
"-view-legalize-dags" is very good option.
But I don't know why my LLC do not know " -view-legalize-type-dags" option.
By the way, I use llvm 2.5 merged from llvm2.4.
Best Regards,
Ren Kun
--- 09年3月31日,周二, Evan Cheng <echeng at apple.com> 写道:
发件人: Evan Cheng
2017 Nov 12
0
RFC: [GlobalISel] Towards a generic MI combiner framework
> On Nov 11, 2017, at 11:03 AM, Hal Finkel via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
>
> On 11/11/2017 12:44 PM, Amara Emerson wrote:
>>
>>> On Nov 10, 2017, at 10:04 PM, Aditya Nandakumar <proaditya at gmail.com <mailto:proaditya at gmail.com>> wrote:
>>>>
>>>> The current DAGCombine, being constructed on top of
2010 Sep 09
2
[LLVMdev] Possible missed optimization? 2.0
>>Note that the isCommutable flag is only really useful for two-address
instructions. If the two inputs are not constrained, nothing is really won
by swapping them.
Ahh i see, good to know that.
>> Does the -view-*-dags output look correct?
They do look correct, there are three Xmul_lohi blocks, one returns the low
part copied into R14 and the rest of combinations get added and merged
2017 Nov 11
2
RFC: [GlobalISel] Towards a generic MI combiner framework
On 11/11/2017 12:44 PM, Amara Emerson wrote:
>
>> On Nov 10, 2017, at 10:04 PM, Aditya Nandakumar <proaditya at gmail.com
>> <mailto:proaditya at gmail.com>> wrote:
>>>
>>> The current DAGCombine, being constructed on top of SDAG, has a kind
>>> of built-in CSE and automatic DCE. How will things change, if
>>> they'll change, in
2018 Dec 05
2
Strange regalloc behaviour: one more available register causes much worse allocation
Preamble
--------
While working on an IR-level optimisation completely unrelated to register
allocation I happened to trigger some really strange register allocator
behaviour causing a large regression in bzip2 in spec2006. I've been trying
to fix that regression before getting the optimisation patch committed, because
I don't want to regress spec2006, but I'm basically fumbling in
2012 Sep 05
0
[LLVMdev] 64 bit special purpose registers
From: Akira Hatanaka [mailto:ahatanak at gmail.com]
Sent: Wednesday, September 05, 2012 12:44 PM
To: Villmow, Micah
Cc: reed kotler; llvmdev at cs.uiuc.edu
Subject: Re: [LLVMdev] 64 bit special purpose registers
Micah,
Do you mean we should make GPR64 available to register allocator by calling addRegisterClass?
addRegisterClass(MVT::i64, &GPR64RegClass)
If we add register class GPR64, type
2012 Sep 07
1
[LLVMdev] 64 bit special purpose registers
If no i64 reg classes are registered, then type-legalization will expand a
32b x 32b = 64b multiply node into a 32-bit mult node with two i32 results
(for example, SMUL_LOHI). The problem is that there isn't an easy way to
have RA assign two consecutive hi/lo registers to the two i32 registers,
once the 64-bit result is split into two 32-bit results.
Is there a constraint I can use (something