This is the mail archive of the
mailing list for the GCC project.
Re: Volatile MEMs in statement expressions and functions inlined as trees
- From: Richard Henderson <rth at redhat dot com>
- To: Alexandre Oliva <aoliva at redhat dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Mon, 3 Dec 2001 16:54:04 -0800
- Subject: Re: Volatile MEMs in statement expressions and functions inlined as trees
- References: <firstname.lastname@example.org>
On Sun, Dec 02, 2001 at 04:02:45PM -0200, Alexandre Oliva wrote:
> Verification of correct behavior would require scanning
> the assembly output to verify we don't have too many loads.
As mentioned in rh internal mail, verification can be done
via sigsegv handling, though that is also tough because this
gets to be fairly cpu+os specific.
Nevertheless, testing some targets is better than testing no
targets, and for this sort of front-end specific validation,
it is likely that any regression will show up on any target,
so if we pick a handful of popular targets, folks will notice.
> * stmt.c (expand_expr_stmt): Keep last_expr_value non-NULL iff
> we're interested in the result. Use it to tell whether to
> ignore results of enclosed expressions.
> (expand_start_stmt_expr): Added new argument, and initialize
> last_expr_value accordingly.
> * tree.h (expand_start_stmt_expr): Adjusted declaration.
> * c-common.c (c_expand_expr): Adjust call.
> * expr.c (expand_expr) [EXPR_WFL]: Pass const0_rtx down if
> ignoring the result.