I've incorporated the feedback from this patch into my code, but I no longer want to submit this patch. Instead, I'm going to submit two different patches. http://llvm-reviews.chandlerc.com/D1480