https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69979
--- Comment #1 from Andre Vieira <andre.simoesdiasvieira at arm dot com> --- I believe expand_function_start is responsible for this code. When it calls assign_parms it will generate RTL to copy the incoming struct parameter onto the stack.