Fix two bugs in RBMM.

Estimated hours taken: 0.1
Branch: main

Fix two bugs in RBMM.

compiler/rbmm.region_instruction.m:
    Add remove instructions for regions reachable from void variables.

runtime/mercury_region.h:
    Add a missing variable declaration.
This commit is contained in:
Quan Phan
2009-04-30 07:49:41 +00:00
parent 376d3acec7
commit fb88e85a8c
2 changed files with 4 additions and 0 deletions

View File

@@ -289,6 +289,9 @@ introduce_region_instructions_exec_path([ProgPoint - Goal | ProgPoint_Goals],
set.fold(record_instruction_after_prog_point(remove_region_instr,
ProgPoint, CallerGraph),
RemovedAfterProgPoint, !RegionInstructionProc),
set.fold(record_instruction_after_prog_point(remove_region_instr,
ProgPoint, CallerGraph),
DeadVoidVarRegions, !RegionInstructionProc),
svmap.set(ProgPoint, set.union(BecomeDead, DeadVoidVarRegions),
!BecomeDeadAfterProc),

View File

@@ -547,6 +547,7 @@ extern int MR_region_is_disj_protected(MR_RegionHeader *region);
do { \
MR_RegionHeader *region; \
MR_RegionSemiDisjProtect *semi_disj_prot; \
int incr; \
\
semi_disj_prot = \
(MR_RegionSemiDisjProtect *) (protection_block); \