[LLVMdev] Lowering operations to 8-bit!

Chris Lattner
Fri, 28 Sep 2007 20:54:38 -0000

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

> Attached please find the gdb backtrace dump and the postscript file of
> the DAG right before assertion.
> The red Node is the current Node in LegalizeOp()

Okay, this is the problem.  LegalizeOp should only be called on a
node if the VT is valid for the target.  In this case, ExpandOp
should have been called to split the register up.  I'd suggest going
up the stack to figure out who called LegalizeOp instead of ExpandOp.

> Here is my code in the formalizing arguments (copied ISD::MERGE_VALUES
> from PowerPC implementation, not sure if it is really needed)

MergeValues is required because the FORMAL_ARGUMENTs node returns one
value for each argument input to the function, and also a chain
value.  These have to match up correctly.

-Chris