-
- Downloads
re PR tree-optimization/93210 (Sub-optimal code optimization on...
re PR tree-optimization/93210 (Sub-optimal code optimization on struct/combound constexpr (gcc vs. clang)) PR tree-optimization/93210 * fold-const.h (native_encode_initializer, can_native_interpret_type_p): Declare. * fold-const.c (native_encode_string): Fix up handling with off != -1, simplify. (native_encode_initializer): New function, moved from dwarf2out.c. Adjust to native_encode_expr compatible arguments, including dry-run and partial extraction modes. Don't handle STRING_CST. (can_native_interpret_type_p): No longer static. * gimple-fold.c (fold_ctor_reference): For native_encode_expr, verify offset / BITS_PER_UNIT fits into int and don't call it if can_native_interpret_type_p fails. If suboff is NULL and for CONSTRUCTOR fold_{,non}array_ctor_reference returns NULL, retry with native_encode_initializer. (fold_const_aggregate_ref_1): Formatting fix. * dwarf2out.c (native_encode_initializer): Moved to fold-const.c. (tree_add_const_value_attribute): Adjust caller. * gcc.dg/pr93210.c: New test. * g++.dg/opt/pr93210.C: New test. From-SVN: r280141
Showing
- gcc/ChangeLog 18 additions, 0 deletionsgcc/ChangeLog
- gcc/dwarf2out.c 1 addition, 145 deletionsgcc/dwarf2out.c
- gcc/fold-const.c 212 additions, 7 deletionsgcc/fold-const.c
- gcc/fold-const.h 3 additions, 0 deletionsgcc/fold-const.h
- gcc/gimple-fold.c 30 additions, 6 deletionsgcc/gimple-fold.c
- gcc/testsuite/ChangeLog 6 additions, 0 deletionsgcc/testsuite/ChangeLog
- gcc/testsuite/g++.dg/opt/pr93210.C 37 additions, 0 deletionsgcc/testsuite/g++.dg/opt/pr93210.C
- gcc/testsuite/gcc.dg/pr93210.c 66 additions, 0 deletionsgcc/testsuite/gcc.dg/pr93210.c
Loading
Please register or sign in to comment