[LLVMdev] Lowering operations to 8-bit!

Alireza.Moshtaghi at microchip.com Alireza.Moshtaghi at microchip.com
Mon Oct 1 11:33:13 PDT 2007


So does that mean that LLVM can't lower automatically to 8-bit values?
I tried defining 8-bit pointers in the subtarget using "p:8:8:8" but it
asserts at line 566 of TargetData.cpp in the default case of
TargetData::getIntPtrType()

Is it difficult to add 8-bit support?

A.

-----Original Message-----
From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu]
On Behalf Of Chris Lattner
Sent: Friday, September 28, 2007 5:01 PM
To: LLVM Developers Mailing List
Subject: Re: [LLVMdev] Lowering operations to 8-bit!


On Sep 28, 2007, at 4:53 PM, <Alireza.Moshtaghi at microchip.com>  
<Alireza.Moshtaghi at microchip.com> wrote:

> ExpandOp is not called at all.
> In SelectionDAGLegalize::HandleOp() only the ValueType is  
> considered in
> the switch statement to decide if it is legal or promote or expand.
> As I trace back (correct me if I'm wrong) these values are set in
> TargetLowering::computeRegisterProperties() and it is based on the
> largest register class (in my case the smallest possible pointer size,
> 16-bit)
> So it reduces everything down to 16-bit and pretty much ignores the  
> fact
> that ADD of i16 is supposed to be expanded.
>
> Am I doing the right analysis?

Yes.  It sounds like the codegen is assuming the pointer type is  
valid in computeRegisterProperties or something.  Somehow i16 is  
getting marked as legal.

-Chris
_______________________________________________
LLVM Developers mailing list
LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the llvm-dev mailing list