aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-06-12 22:33:46 +0100
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-06-12 22:33:46 +0100
commit41fd0d147730570747f8eb71f83e739c13fde0d1 (patch)
tree954e86365b33a2b1bc123a73e8966614e9dfd046
parentc70c6a548e9f2a047efceb8eb32b8ce12ff77650 (diff)
downloadcompcert-kvx-41fd0d147730570747f8eb71f83e739c13fde0d1.tar.gz
compcert-kvx-41fd0d147730570747f8eb71f83e739c13fde0d1.zip
fix: use more fuel (the fallback case was wrong)
-rw-r--r--backend/RTLblockgen.v7
1 files changed, 5 insertions, 2 deletions
diff --git a/backend/RTLblockgen.v b/backend/RTLblockgen.v
index a4e9cdfd..591a24af 100644
--- a/backend/RTLblockgen.v
+++ b/backend/RTLblockgen.v
@@ -7,10 +7,13 @@ Require Import Errors.
Local Open Scope error_monad_scope.
+Definition extract_block_fuel := 10000%positive .
+
Fixpoint extract_block (cfg : RTL.code) (n : node)
(previous : list RTLblock.instruction) (max_size : nat) : res block :=
match max_size with
- | O => OK (mkblock (List.rev previous) (IBgoto n))
+ | O => Error (Errors.msg "RTLblockgen.extract_block: not enough fuel")
+ (* THIS IS WRONG: OK (mkblock (List.rev previous) (IBgoto n)) *)
| S max_size' =>
match cfg!(n) with
| None => Error (Errors.msg "RTLblockgen.extract_block: unknown label")
@@ -52,7 +55,7 @@ Fixpoint transl_code (cfg : RTL.code) (todo : list node)
match previous!(label) with
| Some _ => transl_code cfg rest previous max_iter'
| None =>
- do block <- extract_block cfg label nil (300%nat);
+ do block <- extract_block cfg label nil (Pos.to_nat extract_block_fuel);
transl_code cfg
((cfi_targets (blk_control block)) ++ rest)
(PTree.set label block previous) max_iter'