<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7652.24">
<TITLE>RE: [LLVMdev] Type Legalizer Question.</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=2>> >>>> You can try just marking all i16 operations, other than load and<BR>
> >>>> store, as "expand". Would that work?<BR>
> >>><BR>
> >>> Won't work; LLVM expects at least some basic operations, like add,<BR>
> >>> to<BR>
> >>> be legal in legal register types.<BR>
> >><BR>
> >> That sounds like a bug, not a feature.<BR>
> >> -Chris<BR>
> ><BR>
> > The -enable-legalize-types infrastructure is entirely based upon<BR>
> > getVTAction (), so it will be completely ignored once we have i16<BR>
> > regclass,<BR>
><BR>
> I suspected that. But I wonder if that's going to be the approach or<BR>
> is this something we want to change.<BR>
><BR>
<BR>
<BR>
> Even after VT is legal, is it possible to check if the target still<BR>
> wants the result of this operation to be expanded?<BR>
<BR>
What I meant is that illegal types are always expanded (based on getVTAction) besides the ones in which target is<BR>
interested (based on setOperationAction ). So shouldn't the type legalizer consider both? Does this make sense?<BR>
<BR>
- Sanjiv<BR>
<BR>
<BR>
> ><BR>
> > ditto with ExpandOp of LegalizeDAG.<BR>
> > And LegalizeDAG::LegalizeOp() allows very few things to be auto<BR>
> > expanded.<BR>
><BR>
> Really?! ExpandOp handles quite a lot of cases. And you can always add<BR>
> the ones you need. Most of them share the same mechanism (and common<BR>
> code).<BR>
><BR>
ExpandOp is called only if getVTAction() returns ::Expand, and also we<BR>
have<BR>
<BR>
  assert(getTypeAction(VT) == Expand && "Not an expanded type!");<BR>
<BR>
right in the beginning of the ExpandOp() function.<BR>
<BR>
<BR>
- Sanjiv<BR>
<BR>
> Evan<BR>
><BR>
><BR>
<BR>
_______________________________________________<BR>
LLVM Developers mailing list<BR>
LLVMdev@cs.uiuc.edu         <A HREF="http://llvm.cs.uiuc.edu">http://llvm.cs.uiuc.edu</A><BR>
<A HREF="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</A><BR>
<BR>
</FONT>
</P>

</BODY>
</HTML>