From 8bf4dfc24f1957b8f645e362e354655fb851fc89 Mon Sep 17 00:00:00 2001 From: Geoffrey Keating Date: Mon, 2 Jul 2001 23:24:02 +0000 Subject: [PATCH] cse.c (canon_hash): Don't register registers in very small register classes... * cse.c (canon_hash): Don't register registers in very small register classes, as extending their lifetime might cause reload to fail. From-SVN: r43714 --- gcc/ChangeLog | 6 ++++++ gcc/cse.c | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a83fdf51426..5b45aab9c3a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2001-07-02 Geoffrey Keating + + * cse.c (canon_hash): Don't register registers in very small + register classes, as extending their lifetime might cause + reload to fail. + Mon Jul 2 23:14:00 CEST 2001 Jan Hubicka * flow.c (try_redirect_by_replacing_jump): Remove cc0 setter. diff --git a/gcc/cse.c b/gcc/cse.c index bc4a05aad76..87694a14147 100644 --- a/gcc/cse.c +++ b/gcc/cse.c @@ -2266,10 +2266,13 @@ canon_hash (x, mode) failure to do so leads to failure to simplify 0<100 type of conditionals. - On all machines, we can't record any global registers. */ + On all machines, we can't record any global registers. + Nor should we record any register that is in a small + class, as defined by CLASS_LIKELY_SPILLED_P. */ if (regno < FIRST_PSEUDO_REGISTER && (global_regs[regno] + || CLASS_LIKELY_SPILLED_P (REGNO_REG_CLASS (regno)) || (SMALL_REGISTER_CLASSES && ! fixed_regs[regno] && regno != FRAME_POINTER_REGNUM -- 2.30.2