Bugpoint is an automated testcase reduction tool that is extremely useful for debugging problems in LLVM optimizers and code generators. It can usually reduce an optimizer crash down to the few instructions needed to reproduce the problem or a miscompilation down to the specific loop nest or basic block in the program that is being miscompiled.