> > On Tue, Sep 30, 2008 at 9:48 AM, <Sanjiv.Gupta at microchip.com> wrote: > > All the sub methods called inside ExpandIntegerOperand like > ExpandInOp_STORE > > etc have access to the expanded operands map. > > > > Why they aren't passed to target LowerOperation? A target may alsowant> to > > use the already expanded Lo and Hi parts. > > You don't really need access to the map; just use build an > EXTRACT_ELEMENT node, and legalize will take care of the mapping for > you. > > -Eli >Thanks. I have another query related to type legalizer. Can a target ignore certain nodes during legalize? Probably a hook for target that can be called inside IgnoreNodeResults ()? We want to keep certain nodes illegal, especially the pointer nodes. Our target has 16-bit pointer and a few 16-bit insns to perform arithmetic. Rest of the stuff is 8-bit so we want to use legalizer to expand them. - Sanjiv ___________________________________________> LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Hi,> I have another query related to type legalizer. > Can a target ignore certain nodes during legalize? Probably a hook for > target that can be called inside IgnoreNodeResults ()?while this could be done, I don't like the idea of doing an end-run around the whole type legalization infrastructure. So you would have to come up with a pretty convincing argument as to why this can't be done another way!> We want to keep certain nodes illegal, especially the pointer nodes. > Our target has 16-bit pointer and a few 16-bit insns to perform > arithmetic. > Rest of the stuff is 8-bit so we want to use legalizer to expand them.I think x86-32 is capable of doing a small number of 64 bit operations. I wonder how they are handled/generated given that i64 is not a legal type? Ciao, Duncan.
On Wed, 2008-10-01 at 11:12 +0200, Duncan Sands wrote:> Hi, > > > I have another query related to type legalizer. > > Can a target ignore certain nodes during legalize? Probably a hook for > > target that can be called inside IgnoreNodeResults ()? > > while this could be done, I don't like the idea of doing an end-run > around the whole type legalization infrastructure. So you would have > to come up with a pretty convincing argument as to why this can't be > done another way! > > > We want to keep certain nodes illegal, especially the pointer nodes. > > Our target has 16-bit pointer and a few 16-bit insns to perform > > arithmetic. > > Rest of the stuff is 8-bit so we want to use legalizer to expand them. > > I think x86-32 is capable of doing a small number of 64 bit operations. > I wonder how they are handled/generated given that i64 is not a legal type? >They might be using DAGCombine to convert the operations back to 64-bit. Also, the pointer is still a legal type (i32) in X86-32. In our case the pointers themselves are illegal (i16). We have 16-bit registers that can only hold pointers during indirect addressing. All other operations and registers are 8-bit. So we still want to expand everything to 8-bit but still keep the pointer nodes as an i16 node, a pair that in turn holds the expanded parts. - Sanjiv> Ciao, > > Duncan.