Month: October 2013

  • 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…