Simon Taylor
129f605d25
Fix bugs in the handling of purity in the optimization passes
...
Estimated hours taken: 8
Branches: main, release
Fix bugs in the handling of purity in the optimization passes
(in particular constraint propagation), which caused purity
annotations on goals to be lost. This caused
tests/tabling/unused_args to fail on earth.
compiler/hlds_goal.m:
Make the version of goal_info_init called from
the optimization passes take the purity as an
argument. Previously, callers were constructing
a goal_info then adding the purity, which was
error prone.
compiler/hlds_goal.m:
compiler/purity.m:
Move the predicates to deal with purity representation
in hlds_goal_infos into hlds_goal.m. Rationale -
goal_info_get_determinism is not in det_analysis.m,
goal_info_get_nonlocals is not in quantification.m, etc.
This makes it easier to make the purity setting code
efficient.
Don't allocate memory in add_goal_info_purity_feature
if the call doesn't change the purity.
compiler/*.m:
Pass the extra argument to goal_info_init.
compiler/polymorphism.m:
Remove a duplicate definition of
hlds_goal__make_int_const_construction.
compiler/magic.m:
Remove some unused code.
tests/hard_coded/purity/Mmakefile:
tests/hard_coded/purity/Mercury.options:
tests/hard_coded/purity/purity_opt.{m,exp}:
Test case.
2003-02-28 00:21:42 +00:00
..
2003-02-22 13:54:45 +00:00
2003-02-15 23:59:41 +00:00
2003-02-28 00:21:42 +00:00
2002-11-01 07:07:01 +00:00
2002-11-01 07:07:01 +00:00
2002-07-26 09:06:49 +00:00
2002-05-30 12:55:23 +00:00
2003-01-27 09:21:03 +00:00
2002-03-20 12:37:56 +00:00
2002-03-28 03:44:41 +00:00
2002-03-20 12:37:56 +00:00
2002-03-20 12:37:56 +00:00
2002-03-20 12:37:56 +00:00
2002-03-20 12:37:56 +00:00
2003-02-13 08:28:43 +00:00
2003-01-27 09:21:03 +00:00
2003-01-10 05:10:30 +00:00
2002-11-24 03:57:36 +00:00
2003-01-27 09:21:03 +00:00
2002-03-20 12:37:56 +00:00
2003-02-22 13:18:34 +00:00
2002-06-05 16:41:31 +00:00
2002-03-28 03:44:41 +00:00
2002-03-28 03:44:41 +00:00
2003-01-17 05:57:20 +00:00
2002-08-30 07:24:49 +00:00
2002-03-20 12:37:56 +00:00
2003-01-30 05:59:30 +00:00
2002-03-20 12:37:56 +00:00
2003-02-28 00:21:42 +00:00
2003-02-14 09:58:41 +00:00
2003-01-10 10:40:52 +00:00
2003-02-28 00:21:42 +00:00
2003-02-28 00:21:42 +00:00
2003-01-27 09:21:03 +00:00
2003-01-27 09:21:03 +00:00
2003-02-22 13:18:34 +00:00
2003-02-28 00:21:42 +00:00
2003-02-28 00:21:42 +00:00
2002-03-28 03:44:41 +00:00
2002-03-20 12:37:56 +00:00
2002-03-20 12:37:56 +00:00
2002-09-09 07:48:25 +00:00
2002-03-28 03:44:41 +00:00
2003-01-27 09:21:03 +00:00
2003-02-21 05:11:59 +00:00
2003-01-27 09:21:03 +00:00
2002-09-09 07:48:25 +00:00
2002-03-28 03:44:41 +00:00
2002-03-20 12:37:56 +00:00
2003-01-27 09:21:03 +00:00
2003-01-17 05:57:20 +00:00
2002-09-30 11:12:36 +00:00
2002-05-07 11:03:17 +00:00
2003-01-10 10:36:28 +00:00
2002-10-31 05:48:00 +00:00
2002-03-28 03:44:41 +00:00
2003-02-12 22:58:20 +00:00
2002-03-20 12:37:56 +00:00
2002-09-15 18:52:19 +00:00
2003-02-11 02:14:28 +00:00
2002-07-18 07:53:20 +00:00
2002-08-12 09:39:51 +00:00
2002-03-20 12:37:56 +00:00
2003-02-28 00:21:42 +00:00
2002-03-20 12:37:56 +00:00
2003-02-21 05:13:25 +00:00
2003-02-28 00:21:42 +00:00
2002-11-10 15:57:59 +00:00
2003-02-12 22:58:20 +00:00
2003-02-28 00:21:42 +00:00
2002-03-28 03:44:41 +00:00
2003-02-22 13:18:34 +00:00
2003-02-21 04:23:13 +00:00
2003-02-22 13:18:34 +00:00
2002-03-28 03:44:41 +00:00
2002-03-20 12:37:56 +00:00
2002-11-24 03:57:36 +00:00
2002-03-20 12:37:56 +00:00
2002-07-30 08:25:20 +00:00
2003-01-10 10:45:02 +00:00
2002-08-12 07:35:00 +00:00
2002-03-20 12:37:56 +00:00
2002-03-20 12:37:56 +00:00
2003-02-22 13:18:34 +00:00
2002-09-09 07:48:25 +00:00
2003-01-10 10:45:02 +00:00
2002-07-30 08:25:20 +00:00
2002-03-20 12:37:56 +00:00
2003-01-27 09:21:03 +00:00
2003-02-16 02:14:16 +00:00
2003-02-16 02:14:16 +00:00
2002-03-28 03:44:41 +00:00
2002-03-20 12:37:56 +00:00
2002-03-28 03:44:41 +00:00
2002-05-07 11:03:17 +00:00
2002-10-31 05:48:00 +00:00
2002-03-28 03:44:41 +00:00
2002-08-08 08:15:46 +00:00
2002-11-15 04:50:49 +00:00
2003-02-26 06:37:01 +00:00
2002-09-30 06:08:22 +00:00
2002-03-28 03:44:41 +00:00
2003-02-28 00:21:42 +00:00
2002-03-20 12:37:56 +00:00
2003-02-28 00:21:42 +00:00
2003-02-28 00:21:42 +00:00
2003-02-22 13:18:34 +00:00
2003-01-14 16:42:44 +00:00
2002-12-23 12:34:20 +00:00
2003-01-28 14:52:00 +00:00
2002-08-07 13:12:11 +00:00
2003-02-11 02:14:28 +00:00
2003-02-04 05:10:36 +00:00
2003-02-11 02:14:28 +00:00
2002-03-28 03:44:41 +00:00
2002-03-28 03:44:41 +00:00
2002-03-20 12:37:56 +00:00
2003-02-22 13:54:45 +00:00
2003-02-12 22:58:20 +00:00
2003-02-05 14:41:20 +00:00
2002-05-07 11:03:17 +00:00
2002-06-21 13:26:50 +00:00
2003-02-14 09:59:21 +00:00
2003-01-27 09:21:03 +00:00
2003-02-14 09:59:21 +00:00
2003-02-28 00:21:42 +00:00
2002-06-21 13:26:50 +00:00
2002-06-21 13:26:50 +00:00
2002-03-20 12:37:56 +00:00
2002-09-27 06:59:17 +00:00
2002-03-20 12:37:56 +00:00
2002-03-20 12:37:56 +00:00
2002-09-21 09:48:43 +00:00
2003-02-12 22:58:20 +00:00
2003-02-14 13:34:48 +00:00
2002-11-27 13:30:19 +00:00
2003-02-26 06:37:01 +00:00
2003-02-26 06:37:01 +00:00
2003-02-13 06:03:10 +00:00
2003-02-11 02:14:28 +00:00
2003-02-11 02:14:28 +00:00
2002-12-23 12:34:20 +00:00
2003-02-12 22:58:20 +00:00
2003-02-21 21:11:57 +00:00
2003-01-02 07:35:00 +00:00
2002-03-20 12:37:56 +00:00
2002-08-12 02:37:12 +00:00
2002-03-20 12:37:56 +00:00
2003-01-27 09:21:03 +00:00
2003-01-27 09:21:03 +00:00
2003-01-27 09:21:03 +00:00
2003-02-22 13:18:34 +00:00
2003-02-12 22:58:20 +00:00
2003-02-19 05:54:40 +00:00
2002-11-15 04:50:49 +00:00
2002-05-07 11:03:17 +00:00
2002-07-30 08:25:20 +00:00
2003-02-05 14:41:20 +00:00
2003-02-21 01:57:38 +00:00
2002-03-28 03:44:41 +00:00
2002-04-15 05:04:23 +00:00
2003-02-19 07:42:42 +00:00
2002-03-28 03:44:41 +00:00
2002-03-20 12:37:56 +00:00
2002-03-20 12:37:56 +00:00
2002-03-20 12:37:56 +00:00
2003-02-06 00:36:38 +00:00
2002-03-20 12:37:56 +00:00
2003-02-28 00:21:42 +00:00
2003-02-22 13:18:34 +00:00
2003-02-12 22:58:20 +00:00
2003-02-13 08:28:43 +00:00
2003-02-12 22:58:20 +00:00
2002-07-09 01:31:12 +00:00
2002-07-09 01:31:12 +00:00
2003-02-12 22:58:20 +00:00
2003-01-17 05:57:20 +00:00
2002-07-09 01:31:12 +00:00
2003-02-22 13:18:34 +00:00
2003-01-17 05:57:20 +00:00
2003-01-27 09:21:03 +00:00
2003-02-22 13:18:34 +00:00
2003-01-27 09:21:03 +00:00
2003-02-28 00:21:42 +00:00
2003-01-27 09:21:03 +00:00
2002-04-14 04:07:08 +00:00
2002-03-20 12:37:56 +00:00
2002-07-29 16:28:32 +00:00
2003-02-22 13:18:34 +00:00
2003-02-12 22:58:20 +00:00
2002-03-20 12:37:56 +00:00
2002-03-20 12:37:56 +00:00
2002-03-20 12:37:56 +00:00
2002-03-20 12:37:56 +00:00
2002-03-20 12:37:56 +00:00
2003-01-17 05:57:20 +00:00
2003-01-10 10:36:28 +00:00
2003-01-27 09:21:03 +00:00
2002-03-20 12:37:56 +00:00
2002-06-30 17:07:20 +00:00
2002-03-20 12:37:56 +00:00
2002-03-20 12:37:56 +00:00
2002-03-20 12:37:56 +00:00
2003-02-28 00:21:42 +00:00
2002-03-20 12:37:56 +00:00
2002-03-20 12:37:56 +00:00
2002-03-20 12:37:56 +00:00
2002-03-22 07:10:41 +00:00
2003-02-26 06:37:01 +00:00
2003-02-26 06:37:01 +00:00
2003-02-26 06:37:01 +00:00
2002-03-28 03:44:41 +00:00
2003-02-28 00:21:42 +00:00
2003-01-17 05:57:20 +00:00
2003-02-12 22:58:20 +00:00
2002-07-30 08:25:20 +00:00
2003-02-16 04:57:32 +00:00
2003-01-14 16:42:44 +00:00
2002-03-20 12:37:56 +00:00
2002-07-30 08:25:20 +00:00
2003-01-27 09:21:03 +00:00
2002-09-09 07:48:25 +00:00
2003-01-27 09:21:03 +00:00
2002-09-09 07:48:25 +00:00
2003-01-14 16:42:44 +00:00
2003-02-28 00:21:42 +00:00
2002-09-09 07:48:25 +00:00
2002-03-20 12:37:56 +00:00
2002-03-20 12:37:56 +00:00
2002-05-09 16:31:13 +00:00
2003-01-27 09:21:03 +00:00
2003-01-27 09:21:03 +00:00
2002-03-20 12:37:56 +00:00
2002-11-21 07:08:40 +00:00
2003-02-16 02:16:36 +00:00
2002-09-29 10:30:59 +00:00
2002-09-09 07:48:25 +00:00
2002-10-24 04:36:57 +00:00
2003-01-02 06:54:03 +00:00
2002-03-20 12:37:56 +00:00
2002-03-20 12:37:56 +00:00
2002-03-20 12:37:56 +00:00
2003-02-26 06:37:01 +00:00
2003-02-12 22:58:20 +00:00
2003-02-22 13:18:34 +00:00
2003-01-27 09:21:03 +00:00
2003-02-28 00:21:42 +00:00
2003-01-27 09:21:03 +00:00
2002-03-28 03:44:41 +00:00
2003-02-21 01:57:38 +00:00
2002-03-28 03:44:41 +00:00
2002-03-28 03:44:41 +00:00
2002-03-20 12:37:56 +00:00