4 ms·
Can you give us an example where manual loop unrolling would be desired over a for loop?
by tzahola 9y ago
Can you give us an example where manual loop unrolling would be desired over a for loop?
- andrepd 9y agoLanguages/compilers that don't do loop-unrolling automatically. If they do, then yes, it's probably best to let the compiler do it.
- monkpit 9y agoLike which?
- staticassertion 9y agoAll of the languages I can think of rely on the compiler backend for loop unrolling, which means it isn't a guarantee. You might want this if you need to guarantee the unroll. But I wasn't doing this for a loop unroll. I had a fixed size array that I wanted to serialize/ deserialize to/ from capnproto - there are no fixed size arrays in capnproto, so I wrote a message that just had b1, b2, b3... b16, and then some code to pull it out into a statically sized array. It allowed me to pull a bunch of bytes into a much larger statically allocated array without any allocation or bounds checking.
- alexeldeib 9y agoWhat actually brought it to mind was a hardware class where we were instantiating a bunch of the same module but didn't have a programmatic way to do it with our tooling. So...sorta like loop unrolling :)