mirror of
https://github.com/Mercury-Language/mercury.git
synced 2025-12-12 12:26:29 +00:00
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:
@@ -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),
|
||||
|
||||
@@ -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); \
|
||||
|
||||
Reference in New Issue
Block a user