[gcc r11-7591] cris: define DWARF_FRAME_REGISTERS
Hans-Peter Nilsson
hp@gcc.gnu.org
Wed Mar 10 03:02:00 GMT 2021
https://gcc.gnu.org/g:5987d8a79cda1069c774e5c302d5597310270026
commit r11-7591-g5987d8a79cda1069c774e5c302d5597310270026
Author: Hans-Peter Nilsson <hp@axis.com>
Date: Wed Mar 10 03:54:16 2021 +0100
cris: define DWARF_FRAME_REGISTERS
When DWARF_FRAME_REGISTERS isn't defined, the default is
FIRST_PSEUDO_REGISTER which means that if you add faked
registers to the port, used for frame-context related
elimination, room is allocated for them in the register
context used for frame-unwinding, which is wasteful because
they're eliminated before the final form of the code that is
emitted.
Stopping after MOF saves two register slots in the unwind
contest, compared to the current default. For regular C
programming this is uninteresting, but defining
DWARF_FRAME_REGISTERS now also avoids the need to remember
to define it later, when twiddling with additional faked
registers (alternatively suffering churn from comparing
differences in unwind context). As expected, no effect on
test-results, coremark or local (C-specific)
microbenchmarks.
gcc:
* config/cris/cris.h (DWARF_FRAME_REGISTERS): Define.
Diff:
---
gcc/config/cris/cris.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/gcc/config/cris/cris.h b/gcc/config/cris/cris.h
index 1f8ccc5dec9..4d04ef869f3 100644
--- a/gcc/config/cris/cris.h
+++ b/gcc/config/cris/cris.h
@@ -588,6 +588,9 @@ enum reg_class
#define STATIC_CHAIN_REGNUM CRIS_STATIC_CHAIN_REGNUM
+/* No unwind context is needed for faked registers nor DCCR. Currently not MOF
+ too, but let's keep that open. */
+#define DWARF_FRAME_REGISTERS (CRIS_MOF_REGNUM + 1)
/* Node: Elimination */
More information about the Gcc-cvs
mailing list