diff options
Diffstat (limited to 'gcc/explow.c')
-rw-r--r-- | gcc/explow.c | 28 |
1 files changed, 0 insertions, 28 deletions
diff --git a/gcc/explow.c b/gcc/explow.c index f58873a3527..47cb8671e27 100644 --- a/gcc/explow.c +++ b/gcc/explow.c @@ -577,34 +577,6 @@ validize_mem (rtx ref) return replace_equiv_address (ref, XEXP (ref, 0)); } -/* Given REF, either a MEM or a REG, and T, either the type of X or - the expression corresponding to REF, set RTX_UNCHANGING_P if - appropriate. */ - -void -maybe_set_unchanging (rtx ref, tree t) -{ - /* We can set RTX_UNCHANGING_P from TREE_READONLY for decls whose - initialization is only executed once, or whose initializer always - has the same value. Currently we simplify this to PARM_DECLs in the - first case, and decls with TREE_CONSTANT initializers in the second. - - We cannot do this for non-static aggregates, because of the double - writes that can be generated by store_constructor, depending on the - contents of the initializer. Yes, this does eliminate a good fraction - of the number of uses of RTX_UNCHANGING_P for a language like Ada. - It also eliminates a good quantity of bugs. Let this be incentive to - eliminate RTX_UNCHANGING_P entirely in favor of a more reliable - solution, perhaps based on alias sets. */ - - if ((TREE_READONLY (t) && DECL_P (t) - && (TREE_STATIC (t) || ! AGGREGATE_TYPE_P (TREE_TYPE (t))) - && (TREE_CODE (t) == PARM_DECL - || (DECL_INITIAL (t) && TREE_CONSTANT (DECL_INITIAL (t))))) - || TREE_CODE_CLASS (TREE_CODE (t)) == 'c') - RTX_UNCHANGING_P (ref) = 1; -} - /* Return a modified copy of X with its memory address copied into a temporary register to protect it from side effects. If X is not a MEM, it is returned unchanged (and not copied). |