> What are the transformations that are enabled by making something not > BLKmode? > > On the gimple level I cannot think of one..
On the RTL level, it's simple: anything BLKmode is forced to memory instead of being loaded into registers. > >This could work as well, although I'd restrict this to arrays, > >recursively. > > Works for me. Are we sure that we really support out-of-bounds accesses for arbitrary arrays though? It seems to me that we easily take advantage of them e.g. in loops to invoke undefined behavior. IMO it's not clear whether we want to risk more accidental ABI changes if they are not supported throughout the compiler. -- Eric Botcazou