News for hackers. Stuff that matters.
Re:VS Code can do that? by alexeldeib on Saturday April 21, 2018 @01:20PM (#16892280)
I think loop unrolling is super cool. We're typically trained in programming to try to eliminate the kind of reuse that unrolling typically looks like, but when applied properly it can work really well. I guess that applies to most tools, though.
Re:VS Code can do that? by tzahola on Saturday April 21, 2018 @01:44PM (#16892372)
Can you give us an example where manual loop unrolling would be desired over a for loop?
Re:VS Code can do that? by alexeldeib on Tuesday April 24, 2018 @03:02AM (#16910493)
What 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 :)
Re:VS Code can do that? by andrepd on Saturday April 21, 2018 @02:21PM (#16892558)
Languages/compilers that don't do loop-unrolling automatically. If they do, then yes, it's probably best to let the compiler do it.
Re:VS Code can do that? by monkpit on Saturday April 21, 2018 @03:21PM (#16892898)
Like which?
Re:VS Code can do that? by staticassertion on Saturday April 21, 2018 @04:19PM (#16893220)
All 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.