eliminate_dead_code: coalesce the set of "live" iterations
The set of exposed iterations and the set of iterations of statements
with a function call may overlap. Since the union of these sets may
get intersected with the iteration domain, we want to remove duplicates
in this union. Otherwise, the duplicates would also appear in the iteration
domain. Since coalescing is a potentially expensive operation, we only
perform coalescing (and the union) if there are actually any
statements containing a function call.
Signed-off-by: Sven Verdoolaege <skimo@kotnet.org>