From d21db05b6f44f8cb6df8da5af276df0c4bb3a6c9 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Tue, 18 Jan 2022 12:15:36 +0100 Subject: [PATCH] pack fields in cgraph_simd_clone_arg and struct function As pointed out by pahole. 2022-01-18 Richard Biener * cgraph.h (struct cgraph_simd_clone_arg): Re-arrange fields to avoid padding. * function.h (struct function): Likewise. --- gcc/cgraph.h | 6 +++--- gcc/function.h | 14 +++++++------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/gcc/cgraph.h b/gcc/cgraph.h index a265107..43fc94e 100644 --- a/gcc/cgraph.h +++ b/gcc/cgraph.h @@ -764,14 +764,14 @@ struct GTY(()) cgraph_simd_clone_arg { variable), uniform, or vector. */ enum cgraph_simd_clone_arg_type arg_type; + /* Variable alignment if available, otherwise 0. */ + unsigned int alignment; + /* For arg_type SIMD_CLONE_ARG_TYPE_LINEAR_*CONSTANT_STEP this is the constant linear step, if arg_type is SIMD_CLONE_ARG_TYPE_LINEAR_*VARIABLE_STEP, this is index of the uniform argument holding the step, otherwise 0. */ HOST_WIDE_INT linear_step; - - /* Variable alignment if available, otherwise 0. */ - unsigned int alignment; }; /* Specific data for a SIMD function clone. */ diff --git a/gcc/function.h b/gcc/function.h index fb60979..0986137 100644 --- a/gcc/function.h +++ b/gcc/function.h @@ -270,13 +270,6 @@ struct GTY(()) function { /* Value histograms attached to particular statements. */ htab_t GTY((skip)) value_histograms; - /* Different from normal TODO_flags which are handled right at the - beginning or the end of one pass execution, the pending_TODOs - are passed down in the pipeline until one of its consumers can - perform the requested action. Consumers should then clear the - flags for the actions that they have taken. */ - unsigned int pending_TODOs; - /* For function.cc. */ /* Points to the FUNCTION_DECL of this function. */ @@ -338,6 +331,13 @@ struct GTY(()) function { unsigned int curr_properties; unsigned int last_verified; + /* Different from normal TODO_flags which are handled right at the + beginning or the end of one pass execution, the pending_TODOs + are passed down in the pipeline until one of its consumers can + perform the requested action. Consumers should then clear the + flags for the actions that they have taken. */ + unsigned int pending_TODOs; + /* Non-null if the function does something that would prevent it from being copied; this applies to both versioning and inlining. Set to a string describing the reason for failure. */ -- 2.7.4