Displaying 4 results from an estimated 4 matches for "physreg0".
Did you mean:
physreg
2017 Jun 19
4
the root cause is CP, was: A tagged architecture, the elephant in the undef / poison room
...s an IR "constant” and that any optimization you can do to a “constant”
can also be done to “undef” without further thought.
Instead each ‘undef’ should be thought of as a live on entry register, IE an
incoming argument physical register, and “x = undef” cannot be optimized
any more than “x = PhysReg0”, in particular multiple uses of X does not mean
multiple incoming argument registers, and separate instances of “undef”
cannot be equated any more than distinct incoming argument registers.
To the argument that this may create unnecessary register pressure I say
that is a register allocator issue...
2017 Jun 19
3
the root cause is CP, was: A tagged architecture, the elephant in the undef / poison room
...poison)" in the new semantics. It does not address the
> problem of optimizing things like `a s< (a +nsw 1)` (so you'll need a
> poison-like thing for that anyway).
>
>> incoming argument physical register, and “x = undef” cannot be optimized
>> any more than “x = PhysReg0”, in particular multiple uses of X does not mean
>> multiple incoming argument registers, and separate instances of “undef”
>> cannot be equated any more than distinct incoming argument registers.
>>
>> To the argument that this may create unnecessary register pressure I sa...
2017 Jun 13
4
A tagged architecture, the elephant in the undef / poison room
Here’s what seems to really be going on
“undef” === models an uninitialized register, but
“poison” === turns the entire IR into a tagged architecture
Is this really the way to go ?
It seems like a odd choice given that none of our current targets
are tagged architectures, all of this tagged IR has to somehow be
reduced back down to normal target machine instructions.
This question
2018 Dec 05
3
Strange regalloc behaviour: one more available register causes much worse allocation
enableAdvancedRASplitCost() does the same thing as ConsiderLocalIntervalCost, but as a
subtarget option instead of a command-line option, and as I’ve said it doesn’t help because
it’s a non-local interval causing the eviction chain (RAGreedy::splitCanCauseEvictionChain
only considers the local interval for a single block, and it’s unclear to me how to make it
handle a non-local interval).
John