Branch data 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-2025 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 : 3881074 : is_va_list_type (tree type)
32 : : {
33 : 3881074 : return TYPE_MAIN_VARIANT (type) == TYPE_MAIN_VARIANT (va_list_type_node);
34 : : }
|