diff options
author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-11-10 07:46:31 +0000 |
---|---|---|
committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-11-10 07:46:31 +0000 |
commit | 3d053ea5c19cfe989d10c3d847d0bbe1c73a7386 (patch) | |
tree | 93916a577dc944948c3fc3c3b0feb8354f23744a /gcc/tree-inline.h | |
parent | 69a837167a2ec4f5c8f7d92c1713561e69a1c6b2 (diff) | |
download | gcc-3d053ea5c19cfe989d10c3d847d0bbe1c73a7386.tar.gz |
PR middle-end/34018
* tree-inline.h (copy_body_data): Add regimplify field.
* tree-inline.c (copy_body_r): Set id->regimplify to true
if an TREE_INVARIANT ADDR_EXPR is no longer invariant after
substitutions.
(copy_bb): Clear id->regimplify before walk_tree, if it is
set afterwards, regimplify the whole statement.
* g++.dg/opt/inline14.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@130068 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-inline.h')
-rw-r--r-- | gcc/tree-inline.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/tree-inline.h b/gcc/tree-inline.h index 895a0afcbbd..33eb908b7cd 100644 --- a/gcc/tree-inline.h +++ b/gcc/tree-inline.h @@ -92,6 +92,9 @@ typedef struct copy_body_data duplicating BLOCK nodes. */ bool transform_lang_insert_block; + /* True if this statement will need to be regimplified. */ + bool regimplify; + /* Statements that might be possibly folded. */ struct pointer_set_t *statements_to_fold; } copy_body_data; |