On, Wed, 23 Oct 2013 17:36:41Richard Biener wrote: > > if bitregion_start/end are used after the adjust_address call then they have > to be adjusted (or bitpos left in place). In fact why we apply byte-parts of > bitpos here only if offset != 0 is weird. OTOH this code is _very_ old... > what happens if you remove the whole case? > > Richard. > If I remove that code completely... Than changes nothing ARM at -O2. and on x86 at -O2 this changes:         .cfi_startproc         movl    k, %eax         leal    (%eax,%eax,2), %eax -       leal    ss+8(,%eax,4), %eax -       movl    $1, 16(%eax) +       leal    ss+16(,%eax,4), %eax +       movl    $1, 8(%eax)         movl    k, %eax         leal    (%eax,%eax,2), %eax -       leal    ss+8(,%eax,4), %eax -       movl    16(%eax), %eax +       leal    ss+16(,%eax,4), %eax +       movl    8(%eax), %eax         cmpl    $1, %eax         jne     .L5         xorl    %eax, %eax that does not really make any difference. So removing that code looks like a nice alternative. What do you think? Bernd.