Displaying 20 results from an estimated 1100 matches similar to: "[LLVMdev] Adding a new ARM RegisterClass"
2013 May 23
3
[LLVMdev] Definition of RegisterClass for load instruction in Thumb2
Hi,
I have a question about the definitions of t2LDRSB and t2LDRSB_PRE in ARMInstrThumb2.td :
I was aware that the definitions of target RegisterClass (outs) are different in t2LDRSB and t2LDRSB_PRE. While t2LDRSB uses rGPR, t2LDRSB_PRE uses GPR. I wonder if lr and pc are already prevented from being allocated in pre-indexing case, because of some register hint that is being enforced?
2013 May 23
0
[LLVMdev] Definition of RegisterClass for load instruction in Thumb2
Hi Junbum,
> I was aware that the definitions of target RegisterClass (outs) are different in t2LDRSB and t2LDRSB_PRE. While t2LDRSB uses rGPR, t2LDRSB_PRE uses GPR. I wonder if lr and pc are already prevented from being allocated in pre-indexing case, because of some register hint that is being enforced?
They're not allocated during CodeGen because of the Reserved.set(…) calls in
2015 Jul 13
2
[LLVMdev] [RFC] Conditional RegClass membership
Hello,
About a month ago, I submitted a set of patches for review on llvm-commit.
The most controversial of the patches,
http://lists.cs.uiuc.edu/pipermail/llvm-commits/attachments/20150622/d104ea7
1/attachment-0009.obj deals with the fact that before ARMv8, the rGPR
RegClass in Thumb encodings didn't include SP; but from ARMv8 onwards, it
does include it.
RegClass membership is
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,
2011 Aug 16
2
[LLVMdev] Tying an instruction to a specific set of registers
Jim,
Thanks for the hints. Does LLVM allow allocation of the same register across register classes?
For example, in the ARM backend, can an instruction write to R0 when it is part of register class tGPR, but then use R0 in the next instruction as a source register from the rGPR class?
If LLVM can do this, then this will work.
Micah
> -----Original Message-----
> From: Jim Grosbach
2011 Aug 16
0
[LLVMdev] Tying an instruction to a specific set of registers
Hi Micah,
You can just create a new register class that only contains the registers you want and use that for the instruction. The set theoretic operators for register class definition make this very easy. See the ARM backend definitions of GPRnopc, rGPR, etc.. for examples.
-Jim
On Aug 16, 2011, at 9:18 AM, Villmow, Micah wrote:
> Is there a way in tablegen to specify that a certain
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 22
2
[LLVMdev] How to partition registers into different RegisterClass?
Hi, everyone.
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?
All RegisterClasses must be mutally exclusive. That is, a register can
only be in a RegisterClass. Otherwise TableGen will raise an error
message.
def
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 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
2014 Jan 19
2
[LLVMdev] Why make the register list a dag for RegisterClass in target descriptor file?
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>?
class RegisterClass<string namespace,
list<ValueType> regTypes, int alignment, dag regList>
Thanks,
-Thomson
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
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"
2006 May 13
2
[LLVMdev] TableGen: RegisterClass question
Hi,
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" thing? It looks like it should contain the name of
backend, right?
// RegType
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
2018 Apr 12
0
How to specify the RegisterClass of an IMPLICIT_DEF?
On 4/12/2018 8:01 AM, Dominique Torette via llvm-dev wrote:
>
> But there is one small issue in the inference of RegisterClass of the
> implicitly defined register.
>
> As shown below, the %vreg6<def> is implicitly defined as FPUabRegisterClass.
>
> This register class accepts the v2f32 type, but for others addressing
> mode context this register should be
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,
>
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
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
2019 Jul 18
2
Question about TableGen RegisterClass definition
Hi All,
I have a question about TableGen RegisterClass definition.
I need to map different size of MVTs into a register class as below.
def TestReg : RegisterClass<"Test", [v8i32, v4i32], ...>
When I look at TableGen and CodeGen, it looks the types are used as following:
1. MCRegisterClass's RegSize and Alignment
2. SpillSize in TableGen
3. Type constraint for instruction