Successors are basic blocks that might execute
after this basic block.
Predecessors are basic blocks that might execute before reaching this
basic block.
Dominators are basic blocks that WILL execute before reaching this
basic block.
[basic block 1]
if (something)
[basic block 2]
else
[basic block 3]
[basic block 4]
a) succList of [BB2] = [BB4], of [BB3] = [BB4], of [BB1] = [BB2,BB3]
b) predList of [BB2] = [BB1], of [BB3] = [BB1], of [BB4] = [BB2,BB3]
c) domVect of [BB4] = BB1 ... here we are not sure if BB2 or BB3 was executed but we are SURE that BB1 was executed.