inline
Matthew Fluet
Matthew Fluet <fluet@CS.Cornell.EDU>
Mon, 5 Nov 2001 19:36:22 -0500 (EST)
> I think the unknown label problems are a bug in the x86-codegen that I
> checked in earlier today. I'm looking into it.
Here's the issue, from Machine IL:
Noop
SU(4) = L_6365
Switch (PointerToInt (IntAsPointer (1)),
[(1, L_1077), (3, L_1075), (5, L_1073), (7, L_1054), (9, L_1052)],
None)
We set L_6365 as the code pointer, but the only non-tail call that uses
L_6365 as it's handler is unreachable; not because of the switch above
(which the x86-codegen will optimize), but because the MachineIL block
that makes the non-tail call isn't the destination of any jump. It's just
sort of floating there. Anyways, another x86-codegen simplification
eliminates any unreachable block (because later passes assume that a DFS
traversal of the intra-procedural call graph starting from the function
starting block will visit all blocks), so L_6365 goes away, but not the
setting of the code pointer.