You say we need to bind the BinaryOperator expression to decide which branch we take, but you could also reconstruct the information from the leaves later on. I thought that was the whole point of keeping the leaves live? http://llvm-reviews.chandlerc.com/D1340