View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
---|---|---|---|---|---|---|---|---|---|
0000030 | mercury | Bug | public | 2007-11-28 15:29 | 2008-01-23 12:49 | ||||
Reporter | juliensf | ||||||||
Assigned To | juliensf | ||||||||
Priority | normal | Severity | minor | Reproducibility | always | ||||
Status | resolved | Resolution | fixed | ||||||
Product Version | |||||||||
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 the problem. | ||||||||
Tags | No tags attached. | ||||||||
Attached Files |
|
Notes | |
juliensf (administrator) 2007-11-28 16:43 |
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. |
juliensf (administrator) 2007-11-28 16:52 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. |
juliensf (administrator) 2008-01-23 12:49 |
Fixed. See log message for r1.142 of compiler/det_report.m for details. |
Issue History | |||
Date Modified | Username | Field | Change |
---|---|---|---|
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 |