Displaying 20 results from an estimated 200 matches similar to: "[LLVMdev] How to partition registers into different RegisterClass?"
2005 Jul 22
0
[LLVMdev] How to partition registers into different RegisterClass?
On Fri, Jul 22, 2005 at 10:29:38AM +0800, Tzu-Chien Chiu wrote:
> I' have three set of registers - read-only regs, general purpose regs
> (read and write), and write-only regs. How should I partition them
> into different RegisterClasses so that I can easy define the
> instruction?
[snip]
> def MOV : BinaryInst<2, (ops GeneralPurposeRegClass :$dest,
>
2005 Jul 22
2
[LLVMdev] How to partition registers into different RegisterClass?
All registers in my hardware are 4-element vector registers (128-bit).
Some are floating point registers, and the others are integer
registers.
I typedef two packed classes: [4 x float] and [4 x int], and add an
enum 'packed' to MVT::ValueType (ValuesTypes.h).
I declared all 'RegisterClass'es to be 'packed' (first argument of
RegisterClass):
def GeneralPurposeRC :
2005 Jul 22
0
[LLVMdev] How to partition registers into different RegisterClass?
On Fri, 22 Jul 2005, Tzu-Chien Chiu wrote:
> All registers in my hardware are 4-element vector registers (128-bit).
> Some are floating point registers, and the others are integer
> registers.
>
> I typedef two packed classes: [4 x float] and [4 x int], and add an
> enum 'packed' to MVT::ValueType (ValuesTypes.h).
>
> I declared all 'RegisterClass'es to be
2005 Jul 23
0
[LLVMdev] How to partition registers into different RegisterClass?
On Sat, 23 Jul 2005, Tzu-Chien Chiu wrote:
> 2005/7/23, Chris Lattner <sabre at nondot.org>:
>> What does a 'read only' register mean? Is it a constant (e.g. returns
>> 1.0)? Otherwise, how can it be a useful value?
>
> Yes, it's a constant register.
>
> Because the instruction cannot contain an immediate value, a constant
> value may be stored in
2005 Jul 23
3
[LLVMdev] How to partition registers into different RegisterClass?
2005/7/23, Chris Lattner <sabre at nondot.org>:
>
> What does a 'read only' register mean? Is it a constant (e.g. returns
> 1.0)? Otherwise, how can it be a useful value?
Yes, it's a constant register.
Because the instruction cannot contain an immediate value, a constant
value may be stored in a constant register, and it's defined _before_
the program starts by
2005 Jul 25
2
[LLVMdev] How to partition registers into different RegisterClass?
Thanks, I think it can solve my problem.
But please allow me to explain the hardware in detail. Hope there is
more elegant way to solve it.
The hardware is a "stream processor". That is, It processes samples
one by one. Each sample is associated with several 128-bit
four-element vector registers, namely:
* input registers - the attributes of the sample, the values of the
registers
2005 Jul 26
0
[LLVMdev] How to partition registers into different RegisterClass?
On Mon, 25 Jul 2005, Tzu-Chien Chiu wrote:
> But please allow me to explain the hardware in detail. Hope there is
> more elegant way to solve it.
Sounds good!
> The hardware is a "stream processor". That is, It processes samples
> one by one. Each sample is associated with several 128-bit
> four-element vector registers, namely:
>
> * input registers - the
2010 Aug 17
0
[LLVMdev] Ocaml bindings in 2.8
Hello Jianzhou,
On Sat, Aug 14, 2010 at 8:25 PM, Jianzhou Zhao <jianzhou at seas.upenn.edu> wrote:
> Hi,
>
> Does 2.8 release plan to change anything in Ocaml bindings?
> http://llvm.org/docs/ReleaseNotes.html#whatsnew does not list any
> relevant features.
I usually wait until around nowish before a release to sync llvm-c and
the ocaml bindings. I'll start the process.
2010 Aug 15
4
[LLVMdev] Ocaml bindings in 2.8
Hi,
Does 2.8 release plan to change anything in Ocaml bindings?
http://llvm.org/docs/ReleaseNotes.html#whatsnew does not list any
relevant features.
2.7 added 'operand' that can access each operand from a value.
external operand : llvalue -> int -> llvalue = "llvm_operand"
Does this binding also expose a primitive to return how many operands
a given value has?
I need
2007 Feb 14
1
[LLVMdev] bitconvert for multi-typed RegisterClasses
On Feb 13, 2007, at 11:27 AM, Evan Cheng wrote:
>>
>> Thanks Evan,
>>
>> I had tried something like this, but ran into some problems.
>>
>> llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1478: failed assertion
>> `MVT::isVector(VT) && "Cannot promote this load!"'
>>
>> and
>>
>>
2007 Feb 12
0
[LLVMdev] bitconvert for multi-typed RegisterClasses
On Feb 12, 2007, at 1:41 AM, Christopher Lamb wrote:
>
> selector refused to select certain ops (specifically stores) for some
> instructions when the operand type wasn't the first type for the
> register class. After some digging around I seem to have solved the
> problem by creating bitconvert patterns between the types in the
> register class like the following:
>
>
2007 Feb 12
2
[LLVMdev] bitconvert for multi-typed RegisterClasses
Hi All,
I'm working on a back end for an architecture that makes use of multi-
typed register classes.
def MR: RegisterClass<"namespace", [type1, type2, ... ], ... >
When running some preliminary tests I found that the instruction
selector refused to select certain ops (specifically stores) for some
instructions when the operand type wasn't the first type for the
2007 Feb 13
0
[LLVMdev] bitconvert for multi-typed RegisterClasses
>
> Thanks Evan,
>
> I had tried something like this, but ran into some problems.
>
> llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1478: failed assertion
> `MVT::isVector(VT) && "Cannot promote this load!"'
>
> and
>
> llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1766: failed assertion
> `MVT::isVector(VT) && "Unknown legal
2005 Jul 25
1
[LLVMdev] How to partition registers into different RegisterClass?
2005/7/24, Chris Lattner <sabre at nondot.org>:
> Ah, ok. In that case, you want to put all of the registers in one register
> file, and not make the constant register allocatable (e.g. see
> X86RegisterInfo.td, and note how the register classes include EBP and ESP,
> but do not register allocate them (through the definition of
> allocation_order_end()).
>
> -Chris
2006 May 14
0
[LLVMdev] TableGen: RegisterClass question
On Sat, 13 May 2006, Vladimir Prus wrote:
> I'm porting some existing code of mine to CVS HEAD, and don't understand
> something about new RegisterClass TableGen definition:
>
> class RegisterClass<string namespace, list<ValueType> regTypes,........
> {
> .....
> string Namespace = namespace;
>
> What is this "namespace"
2012 Oct 04
1
[LLVMdev] RegisterClass constraints in TableGen
Hi,
I've come across a problem while working on an LLVM backend for a new
target architecture.
This architecture has two single-ported register files. Each instruction
can only read one operand from each register file, but can write to either.
I tried implementing it naïvely in TableGen with two definitions per
instruction, so I had:
def AllRegs : RegisterClass< ... (add interleave
2012 Oct 11
0
[LLVMdev] RegisterClass constraints in TableGen
Excellent, I've implemented my own PBQP register allocator and solved the
issue very painlessly.
Now onto those more interesting problems!
Thanks for your suggestion,
Fraser
On Fri, Oct 5, 2012 at 9:26 AM, Gergö Barany <gergo at complang.tuwien.ac.at>wrote:
> On Thu, Oct 04, 2012 at 16:20:53 +0100, Fraser Cormack wrote:
> > This architecture has two single-ported register
2013 May 24
1
[LLVMdev] Definition of RegisterClass for load instruction in Thumb2
Thank you for the answer.
What is the main reason of allowing this inconsistency in the td file? I guess that's because of the "some" distinction between the writeback and non-writeback versions. Is there any benefit from the inconsistency by using GRP in .td file and freezing lr and pc during register allocation in writeback version?
Thanks,
Junbum
On May 23, 2013, at 11:51 AM,
2001 Aug 08
1
Unable to use RegisterClass(&WndClass);
when i use the RegisterClass(&WndClass); under wine the call fails. I'm
using it to sub class the button class. Does wine not support this?
Interdynamics Web Page : http://www.interdynamics.com
2014 Jan 19
0
[LLVMdev] Why make the register list a dag for RegisterClass in target descriptor file?
On 19 January 2014 10:19, Thomson <lilotom at gmail.com> wrote:
> The blow snippet in target.td shows the regList in RegisterClass is typed as
> dag. Why not make it a simple list, such as list<Register>?
I don't know about the original reason, but these days we have a few
operators in use to make constructing those sets easier which would be
much harder to do for lists.