This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Incomplete TREE_CONSTANT-propagation in build() ?
On 4 Nov, 2003, at 12.46, Gabriel Dos Reis wrote:
Ziemowit Laski <zlaski@apple.com> writes:
| On 4 Nov, 2003, at 12.23, Gabriel Dos Reis wrote:
|
| > Ziemowit Laski <zlaski@apple.com> writes:
| >
| > | P.S. For the morbidly curious, I'm working on Motorola-style
AltiVec
| > | support in the 3.4 tree, and I really need compound expressions
like
| > | '(1, 2, 3, 4)' to be marked TREE_CONSTANT. :-)
| >
| > Why don't you use VECTOR_CST?
|
| I am, but before they become VECTOR_CSTs, they are COMPOUND_EXPRs
(due
| to the parenthesized Motorola notation).
OK, understood. However, I would think that a TREE_LIST would be much
more appropriate: it really is a list of constant expression instead
of a sequence of expressions, evaluated and discarded except the last
one. It would be really helpful if the front-ends could be made much
more consistent in that area.
Thing is, the front-end has no way of knowing the intended use of
something
like '(1, 2, 3, 4)'; it all depends on what that compound expression is
eventually
bound to. So I can't really decide a priori if I should use TREE_LISTs
or not.
| > A compound expression is NEVER a constant expression EVEN if its
| > operands are all constant expressions.
|
| Why not?
I have no idea of the raionale behond "that is what the standard says".
Well, I was thinking in terms of gcc internals rather than standards.
(I neither object to nor understand what the standars says in this case,
but that's an orthogonal matter.)
If the COUPOUND_EXPRs are not marked TREE_CONSTANT, then I have to
selectively
rediscover their TREE_CONSTANT-ness throughout the C and C++
front-ends. This
is just horrible, error-prone engineering. Why can't COMPOUND_EXPRs
just
be marked TREE_CONSTANT to begin with? :-)
--Zem
--------------------------------------------------------------
Ziemowit Laski 1 Infinite Loop, MS 301-2K
Mac OS X Compiler Group Cupertino, CA USA 95014-2083
Apple Computer, Inc. +1.408.974.6229 Fax .5477