Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Jun 2011 08:01:05 -0700
From:      Marcel Moolenaar <marcel@xcllnt.net>
To:        Roman Divacky <rdivacky@freebsd.org>
Cc:        svn-src-projects@freebsd.org, Marcel Moolenaar <marcel@freebsd.org>, src-committers@freebsd.org
Subject:   Re: svn commit: r223357 - projects/llvm-ia64/contrib/llvm/lib/Target/IA64
Message-ID:  <8D265214-C867-443B-8C93-2D7CD22CE4DF@xcllnt.net>
In-Reply-To: <20110621071352.GA44571@freebsd.org>
References:  <201106210527.p5L5RoKW081314@svn.freebsd.org> <20110621071352.GA44571@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

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@xcllnt.net





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8D265214-C867-443B-8C93-2D7CD22CE4DF>