This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]