aboutsummaryrefslogtreecommitdiff
path: root/gcc/coverage.cc
diff options
context:
space:
mode:
authorPrathamesh Kulkarni <prathameshk@nvidia.com>2024-08-22 19:25:20 +0530
committerPrathamesh Kulkarni <prathameshk@nvidia.com>2024-08-22 19:25:20 +0530
commit792adb8d222d0d1d16b182871e105f47823b8e72 (patch)
treeeec446df19ec8a502aea09c48b1046c9c6f7bd02 /gcc/coverage.cc
parenta025081991cca1734fb642e6609772cfce8be4d1 (diff)
downloadgcc-792adb8d222d0d1d16b182871e105f47823b8e72.zip
gcc-792adb8d222d0d1d16b182871e105f47823b8e72.tar.gz
gcc-792adb8d222d0d1d16b182871e105f47823b8e72.tar.bz2
Recompute TYPE_MODE and DECL_MODE for aggregate type for acclerator.
The patch streams out VOIDmode for aggregate types with offloading enabled, and recomputes appropriate TYPE_MODE and DECL_MODE while streaming-in on accel side. The rationale for this change is to avoid streaming out host-specific modes that may be used for aggregate types, which may not be representable on the accelerator. For eg, AArch64 uses OImode for ARRAY_TYPE whose size is 256-bits, and nvptx doesn't have OImode, and thus ends up emitting an error from lto_input_mode_table. gcc/ChangeLog: * lto-streamer-in.cc: (lto_read_tree_1): Set DECL_MODE (expr) to TREE_TYPE (TYPE_MODE (expr)) if TREE_TYPE (expr) is aggregate type and offloading is enabled. * stor-layout.cc (layout_type): Move computation of mode for ARRAY_TYPE from ... (compute_array_mode): ... to here. * stor-layout.h (compute_array_mode): Declare. * tree-streamer-in.cc: Include stor-layout.h. (unpack_ts_common_value_fields): Call compute_array_mode if offloading is enabled. * tree-streamer-out.cc (pack_ts_fixed_cst_value_fields): Stream out VOIDmode if decl has aggregate type and offloading is enabled. (pack_ts_type_common_value_fields): Stream out VOIDmode for aggregate type if offloading is enabled. Signed-off-by: Prathamesh Kulkarni <prathameshk@nvidia.com>
Diffstat (limited to 'gcc/coverage.cc')
0 files changed, 0 insertions, 0 deletions