Bug 17951 - Dominance info is incorrect for entry and exit blocks
Dominance info is incorrect for entry and exit blocks
Status: NEW
Product: gcc
Classification: Unclassified
Component: middle-end
4.0.0
: P2 normal
: ---
Assigned To: Not yet assigned to anyone
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2004-10-12 17:48 UTC by Daniel Berlin
Modified: 2009-03-04 10:52 UTC (History)
2 users (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2005-12-24 19:53:44


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Daniel Berlin 2004-10-12 17:48:06 UTC
The dominance info is incorrect for entry and exit blocks.

According to dominated_by_p, nothing dominates the exit block (which is wrong),
and nothing post-dominates the entry block (which is also wrong).

A simple example:
(gdb) p dominated_by_p (CDI_POST_DOMINATORS, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR)
$4 = 0 '\0'
(gdb) p dominated_by_p (CDI_DOMINATORS, EXIT_BLOCK_PTR, ENTRY_BLOCK_PTR)
$5 = 0 '\0'

Both of these should return true.
Zdenek said he thought he knew why this was.
Comment 1 Andrew Pinski 2004-10-12 17:53:16 UTC
Confirmed.