On May 6, 2007, Diego Novillo wrote: > Alexandre Oliva wrote on 05/06/07 19:44: >> It has actually passed bootstrap and regression testing on >> a i686-linux-gnu native built on a x86_64-linux-gnu OS. Ok to install >> along with the other previous patches? > Please send a complete patch with a final description. At this point, I > am totally lost and have no idea what to review. Ok, here's a consolidated version. :ADDPATCH sra: This patch reintroduces some of the patch that I reverted on 2007-04-30, meant to scalarize into a single variable multiple small fields that are not accessed directly in the source code, with the following major changes since the original patch, installed on 2007-04-05: - only assignments to BIT_FIELD_REFs are regarded as both input and output now; the use_all machinery is restored - variables that are created and potentially accessed as bit-fields are zero-initialized, as long as they're not otherwise initialized from parameters, to avoid undefined behavior in bit-field modifications; restore no-warning marker logic. - rework the code that decides which fields to put in a block such that it tries to avoid creating variables that are wider than a word, using as guide the alignment and the mode of the base variable or of the type of the innermost field thereof that contains the fields being analyzed, instead of relying on DECL_OFFSET_ALIGN-determined words. - fix bug in optimizing away BIT_FIELD_REFs in assignments to the entire useful range of scalarization variables on big-endian targets that caused the bits to be stored in the wrong locations. - rework the code to avoid the need for artificial initialization becuase of optimizer stupidity This combination of patches was bootstrapped and regtested on i686-linux-gnu. Ok to install?