svn commit: r223357 - projects/llvm-ia64/contrib/llvm/lib/Target/IA64

Marcel Moolenaar marcel at xcllnt.net
Tue Jun 21 15:40:31 UTC 2011


On Jun 21, 2011, at 12:13 AM, Roman Divacky wrote:

>> +
>> +SDValue
>> +IA64TargetLowering::LowerReturn(SDValue Chain, CallingConv::ID CallConv,
>> +    bool isVarArg, const SmallVectorImpl<ISD::OutputArg> &Outs,
>> +    const SmallVectorImpl<SDValue> &OutVals, DebugLoc dl,
>> +    SelectionDAG &DAG) const
>> +{
>> +  return Chain;
>> +}
> 
> This doesn't look right, you probably want to copy the result(s) into
> register(s) or something like this.

Oh, it's definitely not right. I just want to get to the point where
I can compile 1 thing, no matter if that's:

	void
	foo(void)
	{
	}

The thing is that you can expand in multiple directions in parallel
after you have that. You can work on supporting more and different
formal arguments (including the icky varargs), different return
values and structure returns, more instructions patterns for the
instruction selection pass, etc.

More importantly, it allows me (in parallel) to work out the best
way to abstract the notion of having a flexible number of stacked
registers, rotating registers and other ia64 specific features.

FYI,

-- 
Marcel Moolenaar
marcel at xcllnt.net




More information about the svn-src-projects mailing list