-
Sometimes Compilers are Cute
regehr@john-home ~ $ clang -Os -S -o – foo.c foo1: movb %sil, %cl roll %cl, %edi movl %edi, %eax ret foo2: movb %sil, %cl rorl %cl, %edi movl %edi, %eax ret foo3: bswapl %edi movl %edi, %eax ret foo4: bswapl %edi movl %edi, %eax ret regehr@john-home ~ $ gcc -Os -S -o – foo.c foo1:…
-
Irreducible Test Cases
Automated test case reduction is a search-based procedure for taking a large input that triggers a bug and turning it into a smaller input that triggers the same bug. I won’t go into the whole rationale for reducers but in general, for given bug, we always prefer to trigger it using a test case that…
-
Any Way You Want
Sometimes computer scientists get carried away making shiny new things and we forget that these things will eventually need to be used by human beings. My favorite story along these lines came from an invited conference talk by an architect of the cell processor, which was shiny and new at the time — this was around…
-
A Few Panoramas
In the early 2000s, decent digital cameras were new and I was obsessed with stitching photos into panoramas. At the time the software sucked and doing a good job was a lot of work. However, I assembled plenty of them and figured out how to get them printed and my house is somewhat littered with…