https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103061
--- Comment #13 from Aldy Hernandez <aldyh at gcc dot gnu.org> --- (In reply to Andrew Macleod from comment #12) > I dont understand why? isnt m.10_120 killed in bb20? whats the basis > for threading that? I dont see it Huh. The last thing we do in the solver is kill the M.10_120, so it looks like we're registering things correctly: *********** path_range_query ****************** path_range_query: compute_ranges for path: BB 41, BB 20 from bb20: Registering killing_def (path_oracle) lb_75 Registering value_relation (path_oracle) (_134 == lb_75) (bb41) Registering value_relation (_134 > M.10_120) (bb35) at _134 = M.10_120 + 1; Intersecting with existing (_134 > M.10_120) to produce (_134 > M.10_120) range_defined_in_block (BB20) for lb_75 is integer(kind=4) [3, 2147483646] Registering killing_def (path_oracle) _119 Registering killing_def (path_oracle) _118 Registering killing_def (path_oracle) _117 Registering value_relation (path_oracle) (_117 > mstep_49) (bb41) Registering value_relation (path_oracle) (_117 > lb_75) (bb41) range_defined_in_block (BB20) for _117 is integer(kind=4) [4, +INF] Registering value_relation (path_oracle) (_118 < _117) (bb41) range_defined_in_block (BB20) for _118 is integer(kind=4) [3, 2147483646] Registering value_relation (path_oracle) (_119 > mstep_49) (bb41) Registering value_relation (path_oracle) (_119 > _118) (bb41) range_defined_in_block (BB20) for _119 is integer(kind=4) [4, +INF] Registering killing_def (path_oracle) M.10_120 <<<KILL KILL range_defined_in_block (BB20) for M.10_120 is integer(kind=4) [4, +INF] <<<KILL KILL path_oracle: Equivalence set : [M.10_120] Equivalence set : [_117] Equivalence set : [_118] Equivalence set : [_119] Equivalence set : [lb_75, _134] Equivalence set : [lb_75] Relational : (_119 > _118) Relational : (_119 > mstep_49) Relational : (_118 < _117) Relational : (_117 > lb_75) Relational : (_117 > mstep_49)