Displaying 20 results from an estimated 2000 matches similar to: "[LLVMdev] instruction writing two successive registers"
2013 Jul 07
1
Hierarchical multi-level model with lmer: why are the highest-level random adjustments 0?
Hi all
I have a hopefully not too stupid question about multi-level /
mixed-effects modeling. I was trying to test a strategy from Crawley's
2013 R Book on a data set with the following structure:
- dependent variable: CONSTRUCTION (a factor with 2 levels)
- independent fixed effect: LENGTH (an integer in the interval [1, 61])
- random effects with the following hierarchical structure: MODE
2008 Feb 21
2
[LLVMdev] Bug? Coalescing & Updating Subreg Intervals
On Feb 20, 2008, at 12:25 PM, David Greene wrote:
> On Wednesday 20 February 2008 14:14, David Greene wrote:
>
>> I discovered this through an assert I put into some of my own
>> code. I want
>> to know if that assert is bogus or if there's a bug here.
>
> A little more information: the assert checks that after coalescing
> two nodes,
> all subregister
2010 Apr 21
2
[LLVMdev] On the transitivity of subregisterness
Woud it be reasonable to assert that TargetRegisterInfo::isSubRegister() is a transitive relation?
In other words, if A is a subregister of B and B is a subregister of C then A is a subregister of C.
With this assumption, we could teach TableGen to sort registers topologically such that all the subregisters of R are numbered R+1, R+2, ... This produces better locality of reference and allows
2013 Oct 07
1
[LLVMdev] Subregister liveness tracking
I've been working on patches to improve subregister liveness tracking on
llvm and I wanted to inform the llvm community about the overal
design/motivation for them. I will send the patches to llvm-commits
later today.
Greetings
Matthias Braun
Subregisters in llvm
====================
Some targets can access registers in different ways resulting in wider or
narrower accesses. For
2008 Jan 23
1
[LLVMdev] LiveInterval Splitting & SubRegisters
On Wednesday 23 January 2008 02:01, Evan Cheng wrote:
> > Can you explain the basic mechanics of the live interval splitting
> > code?
> It's splitting live intervals that span multiple basic blocks. That
> is, when an interval is spilled, it introduce a single reload per
> basic block and retarget all the uses to use the result of the single
> reload. It does not
2008 Feb 21
0
[LLVMdev] Bug? Coalescing & Updating Subreg Intervals
On Wednesday 20 February 2008 07:00:28 pm Evan Cheng wrote:
> > In other words, after coalescing, should it be the case that
> > subregister
> > intervals contain at least all of the range information that was
> > contained
> > in any eliminated intervals when those eliminated intervals were
> > coalesced
> > to the subregister's superregister?
>
2008 Feb 20
0
[LLVMdev] Bug? Coalescing & Updating Subreg Intervals
On Wednesday 20 February 2008 14:14, David Greene wrote:
> I discovered this through an assert I put into some of my own code. I want
> to know if that assert is bogus or if there's a bug here.
A little more information: the assert checks that after coalescing two nodes,
all subregister live intervals for the register coaelsced to now interfere
with whatever the eliminated live
2017 May 10
2
Bug in TableGen RegisterBankEmitter
Hi Tom,
The output:
Added VReg_64(explicit)
Added VS_32(explicit (VS_32) VReg_64 class-with-subregs: VReg_64)
is saying that VS_32 was added because VReg_64 was explicitly specified and that while inspecting VS_32, it noticed that every register in VS_32 was a subregister of a register from VReg_64 using a single common subregister index.
I've added some more tracing to my local copy and
2011 May 09
2
[LLVMdev] wide memory accesses
Hi,
I am trying to take 16 bit memory reads and combine them to a single 32 bit read. I am having trouble to make the code simply read 32 bytes and the use the subregisters accordingly, without unnecessary copying.
I have tried two techniques, in the MachineFunction:
1. replace the MachineOperands in the users of the data with the new register/subregister index. This yields an assert failure
2017 May 16
2
Bug in TableGen RegisterBankEmitter
On 05/16/2017 11:57 AM, Daniel Sanders wrote:
>> If that's right, one possible fix would be to rename some of the subregister indices but that's likely to be quite painful. I'll have a think and see if I can come up with something nicer.
>
> I haven't been able to come up with a better answer for this, just an alternate choice as to where the complexity is. If we were
2013 Oct 08
0
[LLVMdev] Subregister liveness tracking
What I didn't mention in r192119 is that mthi/lo clobbers the other
sub-register only if the contents of hi and lo are produced by mult or
other arithmetic instructions (div, madd, etc.) It doesn't have this
side-effect if it is produced by another mthi/lo. So I don't think making
mthi/lo clobber the other half would work.
For example, this is an illegal sequence of instructions,
2013 Oct 08
2
[LLVMdev] Subregister liveness tracking
Currently it will always spill / restore the whole vreg but only
spilling the parts that are actually live would be a nice addition in
the future.
Looking at r192119': if "mtlo" writes to $LO and sets $HI to an
unpredictable value, then it should just have an additional (dead) def
operand for $hi, shouldn't it?
Greetings
Matthias
Am 10/8/13, 11:03 AM, schrieb Akira
2011 May 09
0
[LLVMdev] wide memory accesses
On May 9, 2011, at 9:00 AM, Jonas Paulsson wrote:
> Hi,
>
> I am trying to take 16 bit memory reads and combine them to a single 32 bit read. I am having trouble to make the code simply read 32 bytes and the use the subregisters accordingly, without unnecessary copying.
>
> I have tried two techniques, in the MachineFunction:
>
> 1. replace the MachineOperands in the users
2008 Jan 23
0
[LLVMdev] LiveInterval Splitting & SubRegisters
On Jan 22, 2008, at 12:23 PM, David Greene wrote:
> Evan,
>
> Can you explain the basic mechanics of the live interval splitting
> code?
> Is it all in LiveIntervalAnalysis.cpp under addIntervalsForSpills
> and child
> routines? What is it trying to do?
It's splitting live intervals that span multiple basic blocks. That
is, when an interval is spilled, it
2008 Jan 22
4
[LLVMdev] LiveInterval Splitting & SubRegisters
Evan,
Can you explain the basic mechanics of the live interval splitting code?
Is it all in LiveIntervalAnalysis.cpp under addIntervalsForSpills and child
routines? What is it trying to do?
Also, in the ancient subregister coalescing code, there used to be an update
of the SSARegMap to point subregisters to the superregister they were
coalesced to (IIRC). That has since gone away. I used to
2008 Feb 21
2
[LLVMdev] Bug? Coalescing & Updating Subreg Intervals
On Feb 20, 2008, at 7:36 PM, David A. Greene wrote:
> On Wednesday 20 February 2008 07:00:28 pm Evan Cheng wrote:
>
>>> In other words, after coalescing, should it be the case that
>>> subregister
>>> intervals contain at least all of the range information that was
>>> contained
>>> in any eliminated intervals when those eliminated intervals were
2016 Sep 08
2
Addressing TableGen's error "Ran out of lanemask bits" in order to use more than 32 subregisters per register
Hello.
In my TableGen back end description I need to use more than 32 (e.g., 128, 1024, etc)
subregisters per register for my research SIMD processor. I have used so far with success
32 subregisters.
However, when using 128 subregisters when I now give the command:
llvm-tblgen -gen-register-info Connex.td
I get an error message "error:Ran out of lanemask bits to
2013 Oct 09
4
[LLVMdev] Subregister liveness tracking
On Oct 8, 2013, at 2:06 PM, Akira Hatanaka <ahatanak at gmail.com> wrote:
> What I didn't mention in r192119 is that mthi/lo clobbers the other sub-register only if the contents of hi and lo are produced by mult or other arithmetic instructions (div, madd, etc.) It doesn't have this side-effect if it is produced by another mthi/lo. So I don't think making mthi/lo clobber the
2011 Nov 09
1
[LLVMdev] Subregister definition / use
Hi,
I can't find a way to define a subregister in a MI, while using another subregister in the same MI.
For example:
reg:low = OP reg:hi, rhs
I really need the reg:low to be part of the same register as reg:hi, but when I use REG_SEQUENCE, this does not happen - I instead get
regC = OP reg:hi, rhs
reg:low = regC
This is not good enough for me. What should I do?
/Jonas
2013 Apr 18
4
[LLVMdev] MachineOperand SubReg
I'm working on the post-regalloc dataflow engine I mentioned yesterday.
Currently I only need to track register operands.
A MachineOperand has both a getReg() and a getSubReg() interface. For a
physical register operand, is getReg() guaranteed to be the "most super"
register with getSubReg() providing the specific subregister information
for the operand? If so then for my current