search for: regclass1

Displaying 11 results from an estimated 11 matches for "regclass1".

Did you mean: regclass
2010 Sep 13
2
[LLVMdev] Multi-class register allocatable only in one class
...the LinearScan register allocator tries to use same register for both live intervals, if the new interval is defined by a register copy whose destination reg is compatible with the source register. This is ok. However, this "check for compatibility" is wrongly done IMHO. Say I have regclass1 with reg A, and regclass2 with regs {A, B}, but regclass2 defines only "B" as allocatable by RA. A copy instruction: <regclass2 dst> = <regclass1 src> where src was allocated to register A will make dst be allocated also to A, even when it was defined as not allocatable i...
2018 Jan 30
2
Disable spilling sub-registers in LLVM
Hi Matthias, No. I want the register allocator to spill the super-register (the large one e.g., 64-bit) and not just the sub-register (e.g., the 32-bit that is a piece of of the 64-bit register) because the stack loads/store width is 64-bit in this example. RegClass1 (sub-registers): sub_registers (32-bit) --> can be natively used in arithmetic operations but no stack loads/stores for that width. RegClass2 (super-registers): [sub_register, subregister] (64-bit) --> can be natively used in arithmetic operations and can be used in lo...
2010 Sep 13
0
[LLVMdev] Multi-class register allocatable only in one class
...llocator tries to use same register for both > live intervals, if the new interval is defined by a register copy > whose destination reg is compatible with the source register. This is > ok. However, this "check for compatibility" is wrongly done IMHO. > > Say I have regclass1 with reg A, and regclass2 with regs {A, B}, but > regclass2 defines only "B" as allocatable by RA. The register allocator assumes in many places that a register is either allocatable or reserved independently of the register class. That is, if a register is allocatable in one regis...
2018 Jan 30
3
Disable spilling sub-registers in LLVM
...;> No. I want the register allocator to spill the super-register (the >> large one e.g., 64-bit) and not just the sub-register (e.g., the >> 32-bit that is a piece of of the 64-bit register) because the stack >> loads/store width is 64-bit in this example. >> >> RegClass1 (sub-registers): sub_registers (32-bit) --> >> can be natively used in arithmetic operations but no stack >> loads/stores for that width. >> >> RegClass2 (super-registers): [sub_register, subregister] (64-bit) >> --> can be natively used in...
2018 Jan 30
0
Disable spilling sub-registers in LLVM
...; wrote: > > Hi Matthias, > > No. I want the register allocator to spill the super-register (the large one e.g., 64-bit) and not just the sub-register (e.g., the 32-bit that is a piece of of the 64-bit register) because the stack loads/store width is 64-bit in this example. > > RegClass1 (sub-registers): sub_registers (32-bit) --> can be natively used in arithmetic operations but no stack loads/stores for that width. > > RegClass2 (super-registers): [sub_register, subregister] (64-bit) --> can be natively used in arithmetic operations and can be used...
2018 Jan 30
3
Disable spilling sub-registers in LLVM
...egister allocator to spill the super-register (the >>>> large one e.g., 64-bit) and not just the sub-register (e.g., the >>>> 32-bit that is a piece of of the 64-bit register) because the stack >>>> loads/store width is 64-bit in this example. >>>> RegClass1 (sub-registers): sub_registers (32-bit) >>>> --> can be natively used in arithmetic operations but no stack >>>> loads/stores for that width. >>>> RegClass2 (super-registers): [sub_register, subregister] (64-bit) >>>> --> c...
2010 Sep 13
1
[LLVMdev] Multi-class register allocatable only in one class
Hi Jakob, >> Say I have regclass1 with reg A, and regclass2 with regs {A, B}, but >> regclass2 defines only "B" as allocatable by RA. > > The register allocator assumes in many places that a register is > either allocatable or reserved independently of the register class. Is there any reason for this? I...
2018 Jan 30
0
Disable spilling sub-registers in LLVM
...r to spill the super-register (the >>>>> large one e.g., 64-bit) and not just the sub-register (e.g., the >>>>> 32-bit that is a piece of of the 64-bit register) because the stack >>>>> loads/store width is 64-bit in this example. >>>>> RegClass1 (sub-registers): sub_registers (32-bit) >>>>> --> can be natively used in arithmetic operations but no stack >>>>> loads/stores for that width. >>>>> RegClass2 (super-registers): [sub_register, subregister] (64-bit) >>>&...
2018 Jan 30
0
Disable spilling sub-registers in LLVM
...e: >>> Hi Matthias, >>> No. I want the register allocator to spill the super-register (the large one e.g., 64-bit) and not just the sub-register (e.g., the 32-bit that is a piece of of the 64-bit register) because the stack loads/store width is 64-bit in this example. >>> RegClass1 (sub-registers): sub_registers (32-bit) --> can be natively used in arithmetic operations but no stack loads/stores for that width. >>> RegClass2 (super-registers): [sub_register, subregister] (64-bit) --> can be natively used in arithmetic operations and can be us...
2018 Jan 30
0
Disable spilling sub-registers in LLVM
> On Jan 29, 2018, at 1:20 PM, ahmede via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > Hi, > > > I wonder if there is a way in LLVM to disable spilling a register-class while still enabling the super-registers of this register-class to be spilled. What would you have the register allocator do when it runs out of register and you have spilling disabled? Abort the
2018 Jan 29
2
Disable spilling sub-registers in LLVM
Hi, I wonder if there is a way in LLVM to disable spilling a register-class while still enabling the super-registers of this register-class to be spilled. If not, how can we implement spilling for sub-registers when stack load/stores can only operate on the super registers? Is there a way even if it is suboptimal? Thanks, Ahmed