When I check the ll code, I found sometimes an operation has one or more "undef" operands. Does that means this operations has been discarded? What I want to check is how to determine which variables have been discarded. If I decide to discard everything that is transitively related to an undef then is that correct? If I implement that algorithm, is there a discard I'll be missing? Thanks.