This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

asm goto vs simulate_block


The kernel folk here at Red Hat have given me a test case (which I'll be happy to forward, along a complete patch vs mainline) which gets miscompiled because we never get around to adding all of the appropriate blocks outgoing from an asm-goto to the simulation.

I can't figure out why the VARYING that we get in simulate_stmt and subsequent calls to add_control_edge are not enough to DTRT. All I know is that the attached patch does in fact work around the problem, changing the .028t.ccp1 dump:

...
 Lattice value changed to VARYING.  Adding SSA edges to worklist.
+Adding Destination of edge (13 -> 14) to worklist
+
+
+Simulating block 14
...

Can someone give me a good explanation as to why this patch would be needed?


r~

Attachment: d-asmgoto-5
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]