tinycc-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Tinycc-devel] [PATCH] deprecating VT_REF


From: Edmund Grimley Evans
Subject: Re: [Tinycc-devel] [PATCH] deprecating VT_REF
Date: Sat, 21 Feb 2015 21:55:26 +0000
User-agent: Mutt/1.5.21 (2010-09-15)

Michael Matz <address@hidden>:

> I don't like this.  tccgen.c should become _less_ dependend on the
> TARGET defines, not more.  Hence either VT_REF has a purpose and it
> might make sense to use it in more backends, or it hasn't and should
> be removed also from x86_64.

I agree, but inserting those #ifdefs is merely making the
architecture-specificity explicit, thereby perhaps encouraging someone
to do something about it. Without the #ifdefs, but with VT_REF only
used by the x86_64 back end, you have hidden target-specificity, which
is more dangerous.

> AFAIU VT_REF is added when an argument is passed in a caller
> allocated buffer whose address itself is passed in a register (i.e.
> by-reference-passing).

Do you mean on the stack?

On arm64 the caller sometimes allocates a buffer then passes a pointer
to that buffer on the stack, and I'm handling that with VT_LLOCAL,
which is already widely used. (I checked that a lot of VT_LLOCALs are
generated when you run the test suite on i386, for example.)

I'd definitely prefer it if someone could remove VT_REF altogether.
Alternatively, someone could patch the documentation to explain
exactly what VT_REF means, why it's needed, and how it differs from
VT_LLOCAL. If neither of those patches is forthcoming I'd prefer
something like my patch to be committed to just leaving it as it is.

Edmund



reply via email to

[Prev in Thread] Current Thread [Next in Thread]