When a try block occurs inside a loop with one catch handler that continues in the loop and another that exits the loop, the catchswitch instruction (which returns a token value) will be used by blocks inside and outside the loop. This causes the LCSSA pass to want to create a PHI node in the block outside the loop to reference the catchswitch, but that isn't allowed.
This patch updates the LCSSA pass and the Loop::isLCSSAForm function to skip over token values.
Can we move this test to "test/Transforms/LCSSA" and just use "opt -lcssa -S" ?