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]

Using fold() in frontends


Mark Mitchell <mark@codesourcery.com> wrote:

>> If the parser can't be used to provide useful context, we could
>> potentially postpone the calling of "fold" for C++ COND_EXPRs during
>> parsing, but call "fold" on COND_EXPRs while lowering to gimple, where
>> we'll always know whether we're expecting lvalues/rvalues.
>
> We should do that for *all* calls to fold.  A patch to do that would be
> most welcome!


It looks like the general consensus is that we should not use fold() anymore
in the frontends (I consider gimplify part of middle-end already, as it is
mostly language-independent). I know Java people also are trying to remove
usage of fold() since it produces simplifications which are not allowed in
the Java semantics of constant expressions.

But how are you proposing to handle the fact that the C++ FE needs to fold
constant expressions (in the ISO C++ sense of 'constant expressions)? For
instance, we need to fold "1+1" into "2" much before gimplification. Should
a part of fold() be extracted and duplicated in the C++ frontend?
-- 
Giovanni Bajo


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