diff options
author | Jan Hubicka <jh@suse.cz> | 2021-12-13 17:29:26 +0100 |
---|---|---|
committer | Jan Hubicka <jh@suse.cz> | 2021-12-13 17:30:13 +0100 |
commit | 16c848090f237c2398930b8c0ef75acebf4fa44d (patch) | |
tree | a4f3291b1af698d22a2ad009f2b08ffab81d3950 /gcc/ipa-modref.c | |
parent | 5954b4d415f6424f1232c6b22a772ce184773f54 (diff) | |
download | gcc-16c848090f237c2398930b8c0ef75acebf4fa44d.zip gcc-16c848090f237c2398930b8c0ef75acebf4fa44d.tar.gz gcc-16c848090f237c2398930b8c0ef75acebf4fa44d.tar.bz2 |
Add -fipa-strict-aliasing
gcc/ChangeLog:
2021-12-13 Jan Hubicka <hubicka@ucw.cz>
* common.opt: Add -fipa-strict-aliasing.
* doc/invoke.texi: Document -fipa-strict-aliasing.
* ipa-modref.c (modref_access_analysis::record_access): Honor
-fipa-strict-aliasing.
(modref_access_analysis::record_access_lto): Likewise.
Diffstat (limited to 'gcc/ipa-modref.c')
-rw-r--r-- | gcc/ipa-modref.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/ipa-modref.c b/gcc/ipa-modref.c index 2c89c63..d6bd9d3 100644 --- a/gcc/ipa-modref.c +++ b/gcc/ipa-modref.c @@ -999,9 +999,11 @@ modref_access_analysis::record_access (modref_records *tt, ao_ref *ref, modref_access_node &a) { - alias_set_type base_set = !flag_strict_aliasing ? 0 + alias_set_type base_set = !flag_strict_aliasing + || !flag_ipa_strict_aliasing ? 0 : ao_ref_base_alias_set (ref); - alias_set_type ref_set = !flag_strict_aliasing ? 0 + alias_set_type ref_set = !flag_strict_aliasing + || !flag_ipa_strict_aliasing ? 0 : (ao_ref_alias_set (ref)); if (dump_file) { @@ -1021,7 +1023,7 @@ modref_access_analysis::record_access_lto (modref_records_lto *tt, ao_ref *ref, /* get_alias_set sometimes use different type to compute the alias set than TREE_TYPE (base). Do same adjustments. */ tree base_type = NULL_TREE, ref_type = NULL_TREE; - if (flag_strict_aliasing) + if (flag_strict_aliasing && flag_ipa_strict_aliasing) { tree base; |