|View Issue Details|
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0000030||mercury||Bug||public||2007-11-28 15:29||2008-01-23 12:49|
|Target Version||Fixed in Version|
|Summary||0000030: break promise_equivalent_solutions|
|Description||Inlining can cause the insts of variables to change from any to ground|
and this, in turn, can cause erroneous error messages about promise_equivalent_solutions scopes that contain inst any variables in the scope head.
The attached test case is a cut-down version of the optimised version
of flatzinc_backend.m from the FlatZinc interpreter. This illustrates
|Tags||No tags attached.|
Actually, the current version of equiv_solns_ia.m strips away too
much of the detail, and is actually an error. What is happening here
is that re-running the check on the the non-local variables in promise_equivalent_solutions scopes should not be done after inlining.
This is because after inlining the compiler may be able to infer that
some things that previously had inst any are in fact ground.
I'll add a new test case that demonstrates this.
Last edited: 2007-12-05 15:04
The file equiv_solns.a.m.new contains a test case that exhibits the
bug under something like the original conditions in which it occurred.
Compile with: -C -O0 --inlining --local-constraint-propagation
I think the fix here is not to perform the check on non-locals in
promise_equivalent_solutions scopes after inlining has been performed.
|Fixed. See log message for r1.142 of compiler/det_report.m for details.|
|2007-11-28 15:29||juliensf||New Issue|
|2007-11-28 15:29||juliensf||File Added: equiv_solns_ia.m|
|2007-11-28 16:43||juliensf||Note Added: 0000060|
|2007-11-28 16:50||juliensf||File Added: equiv_solns_ia.m.new|
|2007-11-28 16:52||juliensf||Note Added: 0000061|
|2007-12-05 15:04||juliensf||Note Edited: 0000061|
|2008-01-23 12:49||juliensf||Status||new => resolved|
|2008-01-23 12:49||juliensf||Resolution||open => fixed|
|2008-01-23 12:49||juliensf||Assigned To||=> juliensf|
|2008-01-23 12:49||juliensf||Note Added: 0000072|