mirror of
https://github.com/Mercury-Language/mercury.git
synced 2025-12-17 06:47:17 +00:00
Add a new option, --branch-delay-slot, intended for use by mc on
Estimated hours taken: 3 options: Add a new option, --branch-delay-slot, intended for use by mc on the basis of the configuattion script. It says whether the machine architecture has delays slots on branches. The setting of option should affect whether we set --optimize-delay-slots at -O2, but this doesn't work yet. hlds_goal: Add an extra field to hold follow_vars infromation to disjunctions, switches and if-then-elses. I intend to use this information to generate better code. *.m: Changes to accommodate the extra field.
This commit is contained in:
@@ -155,18 +155,19 @@ lambda__process_goal_2(unify(XVar, Y, Mode, Unification, Context), GoalInfo,
|
||||
|
||||
lambda__process_goal_2(conj(Goals0), GoalInfo, conj(Goals) - GoalInfo) -->
|
||||
lambda__process_goal_list(Goals0, Goals).
|
||||
lambda__process_goal_2(disj(Goals0), GoalInfo, disj(Goals) - GoalInfo) -->
|
||||
lambda__process_goal_2(disj(Goals0, FV), GoalInfo, disj(Goals, FV) - GoalInfo)
|
||||
-->
|
||||
lambda__process_goal_list(Goals0, Goals).
|
||||
lambda__process_goal_2(not(Goal0), GoalInfo, not(Goal) - GoalInfo) -->
|
||||
lambda__process_goal(Goal0, Goal).
|
||||
lambda__process_goal_2(switch(Var, CanFail, Cases0), GoalInfo,
|
||||
switch(Var, CanFail, Cases) - GoalInfo) -->
|
||||
lambda__process_goal_2(switch(Var, CanFail, Cases0, FV), GoalInfo,
|
||||
switch(Var, CanFail, Cases, FV) - GoalInfo) -->
|
||||
lambda__process_cases(Cases0, Cases).
|
||||
lambda__process_goal_2(some(Vars, Goal0), GoalInfo,
|
||||
some(Vars, Goal) - GoalInfo) -->
|
||||
lambda__process_goal(Goal0, Goal).
|
||||
lambda__process_goal_2(if_then_else(Vars, A0, B0, C0), GoalInfo,
|
||||
if_then_else(Vars, A, B, C) - GoalInfo) -->
|
||||
lambda__process_goal_2(if_then_else(Vars, A0, B0, C0, FV), GoalInfo,
|
||||
if_then_else(Vars, A, B, C, FV) - GoalInfo) -->
|
||||
lambda__process_goal(A0, A),
|
||||
lambda__process_goal(B0, B),
|
||||
lambda__process_goal(C0, C).
|
||||
|
||||
Reference in New Issue
Block a user