[patch] Enhance GIMPLE store-merging pass for bit-fields

Alexander Monakov amonakov@ispras.ru
Fri Jun 1 12:55:00 GMT 2018


On Fri, 1 Jun 2018, Richard Biener wrote:
> For code-generating adjacent inserts wouldn't it be more efficient
> to do
> 
>   accum = first-to-be-inserted-val;
>   accum <<= shift-to-next-inserted-val;
>   accum |= next-to-be-inserted-val;
> ...
>   accum <<= final-shift;
> 
> instead of shifting the to-be-inserted value?

Perhaps I'm missing some context, but I don't see why this is expected
to be more efficient. This sequence has both ors and shifts on the critical
path, whereas shifting to-be-inserted values has more parallelism (shifts
are then independent of ors), and even allows ors to be reassociated,
shortening the critical path even more.

Alexander



More information about the Gcc-patches mailing list