Line data Source code
1 : /* Scalar Replacement of Aggregates (SRA) converts some structure
2 : references into scalar references, exposing them to the scalar
3 : optimizers.
4 : Copyright (C) 2019-2026 Free Software Foundation, Inc.
5 :
6 : This file is part of GCC.
7 :
8 : GCC is free software; you can redistribute it and/or modify it under
9 : the terms of the GNU General Public License as published by the Free
10 : Software Foundation; either version 3, or (at your option) any later
11 : version.
12 :
13 : GCC is distributed in the hope that it will be useful, but WITHOUT ANY
14 : WARRANTY; without even the implied warranty of MERCHANTABILITY or
15 : FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16 : for more details.
17 :
18 : You should have received a copy of the GNU General Public License
19 : along with GCC; see the file COPYING3. If not see
20 : <http://www.gnu.org/licenses/>. */
21 :
22 : bool type_internals_preclude_sra_p (tree type, const char **msg);
23 : unsigned HOST_WIDE_INT sra_get_max_scalarization_size (void);
24 : bool sra_total_scalarization_would_copy_same_data_p (tree t1, tree t2);
25 :
26 :
27 : /* Return true iff TYPE is stdarg va_list type (which early SRA and IPA-SRA
28 : should leave alone). */
29 :
30 : inline bool
31 4110344 : is_va_list_type (tree type)
32 : {
33 4110344 : return TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (va_list_type_node);
34 : }
|