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.