diff options
author | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-03-20 17:14:12 +0100 |
---|---|---|
committer | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2019-03-20 17:14:12 +0100 |
commit | f8f393317fcfee9613f09513f21dd0461c503d8c (patch) | |
tree | 3c5602487e9a17a36cf189e9b3456e9f7bd85b4e | |
parent | fe248bca2571eb8acba89a365fa9dd4e38d16bb0 (diff) | |
parent | ab5528fb4caf637a0c7014d943302198079e7c20 (diff) | |
download | compcert-kvx-f8f393317fcfee9613f09513f21dd0461c503d8c.tar.gz compcert-kvx-f8f393317fcfee9613f09513f21dd0461c503d8c.zip |
Merge branch 'mppa_postpass' into mppa-mul
-rw-r--r-- | backend/IRC.ml | 13 | ||||
-rw-r--r-- | mppa_k1c/Conventions1.v | 4 |
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. |