This is the mail archive of the gcc-patches@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] |
Hi! This one's owed to me still learning about GCC internals; if someone could please be so kind to poit me to the appropriate documentation, or explain: On Mon, 16 Dec 2013 16:38:18 +0100, Jakub Jelinek <jakub@redhat.com> wrote: > The reason for 3 separate arrays is that some of the values > are always variable, some are sometimes variable (sizes), some are > never variable (alignment + kind). Related to this, in gcc/omp-low.c:lower_omp_target, I see: tree clobber = build_constructor (ctx->record_type, NULL); TREE_THIS_VOLATILE (clobber) = 1; gimple_seq_add_stmt (&olist, gimple_build_assign (ctx->sender_decl, clobber)); I'm assuming the point of this clobber is to tell the compiler (because it can't figure this out on its own?) that afterwards, after the gimple_seq olist has been "executed", we're not going to use the ctx->sender_decl object anymore, right? What would happen if this clobber were not added? Missed optimizations due to the object being kept alive, or correctness issues, or something else? And, why doesn't the same also need to be done for the sizes object (in the non-static case)? GrÃÃe, Thomas
Attachment:
pgpMkdaCJcidJ.pgp
Description: PGP signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |