Displaying 5 results from an estimated 5 matches for "any_ext".
Did you mean:
ac_ext
2010 Sep 14
1
[LLVMdev] global type legalization?
...Worse, the value is spilled and the zext is not folded into the reload.
>
> The code I'm thinking of is in SelectionDAGISel::ComputeLiveOutVRegInfo
For the testcase I'm looking at, ComputeLiveOutVRegInfo does not help because it is called prior to selection when the load is an "any_ext" load. It gets (arbitrarily) selected to LDRB, which zero-extends to 32 bits, but that's too late to affect the live-out info.
MachineCSE and MachineSink do not help because the first zero-extend is folded into the load (LDRB), so the redundant zero-extend (UXTB) does not appear to be a...
2013 Aug 08
3
[LLVMdev] Storage-Only Register Class?
Is there a way to define a register class that is storage-only? I want to
have an i8 register class that I can use for loads/stores/converts, but
that does not support arithmetic.
It seems addOperationAction(ISD::ADD, MVT::i8, Promote) and
SetPromotedToType(ISD::ADD, MVT::i8, MVT::i16) are not sufficient, as the
legalizer just looks at whether or not the underlying type is legal (which
it is).
2010 Aug 18
0
[LLVMdev] global type legalization?
On Aug 18, 2010, at 10:27 AM, Bob Wilson wrote:
>> I tend to think that it isn't worth the compile time to try to microoptimize out every compare, but I could be convinced otherwise if there are important use cases we're failing to handle. I also do think that whole-function selection dags will solve a lot of grossness (e.g. much of codegen prepare) with a very clean model.
>
2010 Aug 18
4
[LLVMdev] global type legalization?
On Aug 18, 2010, at 9:56 AM, Chris Lattner wrote:
> On Aug 18, 2010, at 9:22 AM, Bob Wilson wrote:
>> I'm looking at llvm-generated ARM code that has some unnecessary UXTB (zero extend) instructions, and it seems to me that doing type legalization as an entirely local transformation is not the best approach.
>
> That's true, but doing isel as a purely local approach
2010 Sep 15
0
[LLVMdev] LLVMdev Digest, Vol 75, Issue 32
...> and the zext is not folded into the reload.
> >
> > The code I'm thinking of is in SelectionDAGISel::ComputeLiveOutVRegInfo
>
> For the testcase I'm looking at, ComputeLiveOutVRegInfo does not help
> because it is called prior to selection when the load is an "any_ext" load.
> It gets (arbitrarily) selected to LDRB, which zero-extends to 32 bits, but
> that's too late to affect the live-out info.
>
> MachineCSE and MachineSink do not help because the first zero-extend is
> folded into the load (LDRB), so the redundant zero-extend (UXTB)...