aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-03-20 17:14:12 +0100
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2019-03-20 17:14:12 +0100
commitf8f393317fcfee9613f09513f21dd0461c503d8c (patch)
tree3c5602487e9a17a36cf189e9b3456e9f7bd85b4e
parentfe248bca2571eb8acba89a365fa9dd4e38d16bb0 (diff)
parentab5528fb4caf637a0c7014d943302198079e7c20 (diff)
downloadcompcert-kvx-f8f393317fcfee9613f09513f21dd0461c503d8c.tar.gz
compcert-kvx-f8f393317fcfee9613f09513f21dd0461c503d8c.zip
Merge branch 'mppa_postpass' into mppa-mul
-rw-r--r--backend/IRC.ml13
-rw-r--r--mppa_k1c/Conventions1.v4
2 files changed, 8 insertions, 9 deletions
diff --git a/backend/IRC.ml b/backend/IRC.ml
index fc9fc456..c7b1bf04 100644
--- a/backend/IRC.ml
+++ b/backend/IRC.ml
@@ -239,11 +239,11 @@ type graph = {
let class_of_type = function
| Tint | Tlong -> 0
- | Tfloat | Tsingle -> 1
+ | Tfloat | Tsingle -> 0 (* normal: 1 *)
| Tany32 | Tany64 -> assert false
-let class_of_reg r =
- if Conventions1.is_float_reg r then 1 else 0
+let class_of_reg r = 0
+ (* normal: if Conventions1.is_float_reg r then 1 else 0 *)
let class_of_loc = function
| R r -> class_of_reg r
@@ -355,13 +355,12 @@ let interfere g n1 n2 =
let recordInterf n1 n2 =
match n2.color with
| None | Some (R _) ->
- (* FIXME - HACK K1C disabled the if *)
- (* if n1.regclass = n2.regclass then *) begin
+ if n1.regclass = n2.regclass then begin
n1.adjlist <- n2 :: n1.adjlist;
n1.degree <- 1 + n1.degree
- end (* else begin
+ end else begin
n1.extra_adj <- n2 :: n1.extra_adj
- end *)
+ end
| Some (S _) ->
(*i printf "extra adj %s to %s\n" (name_of_node n1) (name_of_node n2); *)
n1.extra_adj <- n2 :: n1.extra_adj
diff --git a/mppa_k1c/Conventions1.v b/mppa_k1c/Conventions1.v
index 59159f61..d41f1095 100644
--- a/mppa_k1c/Conventions1.v
+++ b/mppa_k1c/Conventions1.v
@@ -47,13 +47,13 @@ Definition int_caller_save_regs :=
:: R52 :: R53 :: R54 :: R55 :: R56 :: R57 :: R58 :: R59 :: R60 :: R61
:: R62 :: R63 :: nil.
-Definition float_caller_save_regs := rev int_caller_save_regs.
+Definition float_caller_save_regs : list mreg := nil.
Definition int_callee_save_regs :=
(* R15 :: R16 :: R17 :: *)R18 :: R19 :: R20 :: R21 :: R22
:: R23 :: R24 :: R25 :: R26 :: R27 :: R28 :: R29 :: R30 :: R31 :: nil.
-Definition float_callee_save_regs := rev int_callee_save_regs.
+Definition float_callee_save_regs : list mreg := nil.
Definition destroyed_at_call :=
List.filter (fun r => negb (is_callee_save r)) all_mregs.