diff options
author | Laurent Bercot <ska-adelie@skarnet.org> | 2019-03-07 00:23:26 +0000 |
---|---|---|
committer | Laurent Bercot <ska-adelie@skarnet.org> | 2019-03-07 00:23:26 +0000 |
commit | 5dba7907e14196aa368b0d84d3a2df7a0fd55123 (patch) | |
tree | 56fdada6ebda794f877de30628ac949a0f3a46f6 /system/gcc/lra-pentium.patch | |
parent | 506539dec83c52b7e24bbd3f98cb8bea68b2d886 (diff) | |
parent | 89573ea3c2e8ec27ad4433a00fa238f7be475c54 (diff) | |
download | packages-5dba7907e14196aa368b0d84d3a2df7a0fd55123.tar.gz packages-5dba7907e14196aa368b0d84d3a2df7a0fd55123.tar.bz2 packages-5dba7907e14196aa368b0d84d3a2df7a0fd55123.tar.xz packages-5dba7907e14196aa368b0d84d3a2df7a0fd55123.zip |
Merge branch 'master' of code.foxkit.us:adelie/packages
Diffstat (limited to 'system/gcc/lra-pentium.patch')
-rw-r--r-- | system/gcc/lra-pentium.patch | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/system/gcc/lra-pentium.patch b/system/gcc/lra-pentium.patch deleted file mode 100644 index e876bcc39..000000000 --- a/system/gcc/lra-pentium.patch +++ /dev/null @@ -1,48 +0,0 @@ ---- trunk/gcc/lra-assigns.c 2017/03/10 20:53:18 246058 -+++ trunk/gcc/lra-assigns.c 2017/03/10 21:17:13 246059 -@@ -889,6 +889,30 @@ - live_pseudos_reg_renumber[regno] = hard_regno; - } - -+/* Return true iff there is a reason why pseudo SPILL_REGNO should not -+ be spilled. */ -+static bool -+must_not_spill_p (unsigned spill_regno) -+{ -+ if ((pic_offset_table_rtx != NULL -+ && spill_regno == REGNO (pic_offset_table_rtx)) -+ || ((int) spill_regno >= lra_constraint_new_regno_start -+ && ! bitmap_bit_p (&lra_inheritance_pseudos, spill_regno) -+ && ! bitmap_bit_p (&lra_split_regs, spill_regno) -+ && ! bitmap_bit_p (&lra_subreg_reload_pseudos, spill_regno) -+ && ! bitmap_bit_p (&lra_optional_reload_pseudos, spill_regno))) -+ return true; -+ /* A reload pseudo that requires a singleton register class should -+ not be spilled. -+ FIXME: this mitigates the issue on certain i386 patterns, but -+ does not solve the general case where existing reloads fully -+ cover a limited register class. */ -+ if (!bitmap_bit_p (&non_reload_pseudos, spill_regno) -+ && reg_class_size [reg_preferred_class (spill_regno)] == 1) -+ return true; -+ return false; -+} -+ - /* Array used for sorting reload pseudos for subsequent allocation - after spilling some pseudo. */ - static int *sorted_reload_pseudos; -@@ -960,13 +984,7 @@ - /* Spill pseudos. */ - static_p = false; - EXECUTE_IF_SET_IN_BITMAP (&spill_pseudos_bitmap, 0, spill_regno, bi) -- if ((pic_offset_table_rtx != NULL -- && spill_regno == REGNO (pic_offset_table_rtx)) -- || ((int) spill_regno >= lra_constraint_new_regno_start -- && ! bitmap_bit_p (&lra_inheritance_pseudos, spill_regno) -- && ! bitmap_bit_p (&lra_split_regs, spill_regno) -- && ! bitmap_bit_p (&lra_subreg_reload_pseudos, spill_regno) -- && ! bitmap_bit_p (&lra_optional_reload_pseudos, spill_regno))) -+ if (must_not_spill_p (spill_regno)) - goto fail; - else if (non_spilled_static_chain_regno_p (spill_regno)) - static_p = true; |