V4 IR: add IR verification functions.
- CFG verification: check if all edges are correctly registered on both
the outgoing basic-block and the incoming one, and that jumps/cjumps
targets correspond to outgoing edges.
- immediate dominator verification: check if the current immediate
dominators are the same as they would be if being recalculated from
scratch.
- no shared expressions/statements: check if not more than one IR node
points to a statement/expression.
Also add a function that writes out the CFG as a .dot file for graphviz.
Will be used in upcoming patches.
Change-Id: I784561f581f9f8ec22f3ab449afd87a9e7a8bdaf
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>