Fix failing LLVM verification on unreachable blocks.

Bug: 8286478

The LLVM verifier fails if an unreachable block contains PHI instructions. This
happens in the Portable compiler when a catch block becomes unreachable.

This CL fixes the issue by ensuring catch blocks are always reachable. Under
some circumstances, they can be "virtually" reachable by creating fake
conditonal branch: "br i1 false, label %catch_block, label %next_insn". In
this case, we let LLVM delete these unreachable blocks.

Change-Id: I003c25492f32c0e7bbc8e32a48ec4ce47e2c8c32
1 file changed
tree: 16274cf135a8de748a441a8e73f5f36ea6ac0229
  1. .gitignore
  3. build/
  4. jdwpspy/
  5. src/
  6. test/
  7. tools/