diff options
author | Richard Biener <rguenther@suse.de> | 2021-05-17 16:35:38 +0200 |
---|---|---|
committer | Richard Biener <rguenther@suse.de> | 2021-05-18 13:55:37 +0200 |
commit | d3a0208e433dc5aed7ef8deab8d74b6da55e1985 (patch) | |
tree | 2e65420ea3648c9aa6d0a5c0f7623792d5eb3fe4 /gcc/cp/class.c | |
parent | b5c3145ad9ac04654d4947d34d1e9dc5c26f4c53 (diff) | |
download | gcc-d3a0208e433dc5aed7ef8deab8d74b6da55e1985.zip gcc-d3a0208e433dc5aed7ef8deab8d74b6da55e1985.tar.gz gcc-d3a0208e433dc5aed7ef8deab8d74b6da55e1985.tar.bz2 |
Avoid setting TREE_ADDRESSABLE on stack vars during RTL expansion
This avoids setting TREE_ADDRESSABLE on variables we want to force to
the stack. Instead track those in a temporary bitmap and force
stack expansion that way, leaving TREE_ADDRESSABLE alone, not
pessimizing future alias queries.
2021-05-17 Richard Biener <rguenther@suse.de>
* cfgexpand.c (expand_one_var): Pass in forced_stack_var
and honor it when expanding.
(expand_used_vars_for_block): Pass through forced_stack_var.
(expand_used_vars): Likewise.
(discover_nonconstant_array_refs_r): Set bits in
forced_stack_vars instead of marking vars TREE_ADDRESSABLE.
(avoid_type_punning_on_regs): Likewise.
(discover_nonconstant_array_refs): Likewise.
(pass_expand::execute): Create and pass down forced_stack_var
bitmap. For parameters and returns temporarily set
TREE_ADDRESSABLE when expand_function_start.
Diffstat (limited to 'gcc/cp/class.c')
0 files changed, 0 insertions, 0 deletions