From 6e9e15e4af3c5da848e6e17e50b176b9969f8a0f Mon Sep 17 00:00:00 2001 From: Bernd Schmidt Date: Fri, 29 Dec 2000 15:59:30 +0000 Subject: [PATCH] Disable cant_combine_insn_p unless SMALL_REGISTER_CLASSES From-SVN: r38538 --- gcc/ChangeLog | 5 +++++ gcc/combine.c | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d19ab0a9d367..58b900f20db0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-12-29 Bernd Schmidt + + * combine.c (cant_combine_insn_p): Only restrict hard register + combinations for SMALL_REGISTER_CLASSES machines. + 2000-12-22 Bernd Schmidt * calls.c (emit_call_1): Fall back to call_pop/call_value_pop if no diff --git a/gcc/combine.c b/gcc/combine.c index e84e31bf84c1..2b7af1e1cd26 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -1330,6 +1330,11 @@ cant_combine_insn_p (insn) if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') return 1; + /* For the 2.95.3 release, restrict this code to only handle the machines + where it's strictly needed. */ + if (! SMALL_REGISTER_CLASSES) + return 0; + /* Never combine loads and stores involving hard regs. The register allocator can usually handle such reg-reg moves by tying. If we allow the combiner to make substitutions of hard regs, we risk aborting in -- 2.47.2