
#15188: Catch cases where both branches of an if jump to the same block. -------------------------------------+------------------------------------- Reporter: AndreasK | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.6.1 Component: Compiler | Version: 8.2.2 (CodeGen) | Keywords: CodeGen | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- For one reason or the other sometimes we end up with if statements in Cmm where both branch targets are the same: Actual example from NoFib: {{{ u9oL: if (_c9oA::P64 != 5) goto u9p2; else goto u9p2; }}} Which eventually results in this code: {{{ _u9oL: cmpq $5,%rbx jne _u9p2 <- utterly pointless _u9p2: addq $16,%rbp jmp _c9iq }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15188 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler