aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/class.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2021-05-17 16:35:38 +0200
committerRichard Biener <rguenther@suse.de>2021-05-18 13:55:37 +0200
commitd3a0208e433dc5aed7ef8deab8d74b6da55e1985 (patch)
tree2e65420ea3648c9aa6d0a5c0f7623792d5eb3fe4 /gcc/cp/class.c
parentb5c3145ad9ac04654d4947d34d1e9dc5c26f4c53 (diff)
downloadgcc-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