nqp -O1: stage0/HLL-s0.pir fail #1061

Closed
rurban opened this Issue Mar 10, 2014 · 1 comment

Comments

Projects
None yet
1 participant
@rurban
Member

rurban commented Mar 10, 2014

error:imcc:e_pbc_emit: no label offset defined for 'rxsubrule42_back82'
The label was removed via dead_code_remove

found dead block 13
    ins deleted (dead block) 0xb36dc0  rxsubrule42_back82:
    ins deleted (dead block) 0xb37000  @pcc_sub_call_100:
    ins deleted (dead block) 0xb3d780 set_args 
    ins deleted (dead block) 0xb3d830 callmethodcc $P11, "!cursor_next"
    ins deleted (dead block) 0xb3d8e0 get_results 
    ins deleted (dead block) 0xb37120 repr_get_attr_int $I11, $P11, rx39_curclass, "$!pos"
    ins deleted (dead block) 0xb371e0 lt $I11, 0, rx39_fail72

but it should not because the label is used in a set_addr op.

  rxsubrule42_back82:
    $P11 = $P11."!cursor_next"()
    repr_get_attr_int $I11, $P11, rx39_curclass, "$!pos"
    lt $I11, 0, rx39_fail72
  rxsubrule42_pass81:
    rx39_cstack = rx39_cur."!cursor_capture"($P11, "prefixish")
    set_addr $I11, rxsubrule42_back82

@rurban rurban self-assigned this Mar 10, 2014

rurban pushed a commit that referenced this issue Mar 10, 2014

Reini Urban
[imcc] fix GH #1061, nqp -O2: set_addr label marks a basic_block
set_addr label does mark a basic_block, dead_code_remove() needs the
label. disable old premature optimization

Fixes nqp/#160
All nqp tests pass now with parrot -O2.
@rurban

This comment has been minimized.

Show comment Hide comment
@rurban

rurban Mar 10, 2014

Member

Fixed with commit dfe541d
Author: Reini Urban rurban@cpanel.net
Date: Mon Mar 10 10:19:03 2014 -0500

[imcc] fix GH #1061, nqp -O2: set_addr label marks a basic_block

set_addr label does mark a basic_block, dead_code_remove() needs the
label. disable old premature optimization

Fixes nqp/#160
All nqp tests pass now with parrot -O2.
Member

rurban commented Mar 10, 2014

Fixed with commit dfe541d
Author: Reini Urban rurban@cpanel.net
Date: Mon Mar 10 10:19:03 2014 -0500

[imcc] fix GH #1061, nqp -O2: set_addr label marks a basic_block

set_addr label does mark a basic_block, dead_code_remove() needs the
label. disable old premature optimization

Fixes nqp/#160
All nqp tests pass now with parrot -O2.

@rurban rurban closed this Mar 10, 2014

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment