aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@axis.com>2021-02-24 02:22:58 +0100
committerHans-Peter Nilsson <hp@axis.com>2021-02-24 18:38:29 +0100
commit9e0d8a375bae07486c839228a520eaed9004a4f3 (patch)
tree88485221a465a271694fd79336b152ee6923b2ca /gcc
parent70aa0e6eef9d65744f37adc2a3cffef1a8217dc1 (diff)
downloadgcc-9e0d8a375bae07486c839228a520eaed9004a4f3.zip
gcc-9e0d8a375bae07486c839228a520eaed9004a4f3.tar.gz
gcc-9e0d8a375bae07486c839228a520eaed9004a4f3.tar.bz2
cris: support -fstack-usage
All the bits were there, used with a pre-existing -mmax-stackframe=SIZE which unfortunately seems to lack test-cases. Note that the early-return for -mno-prologue-epilogue (what some targets call -mnaked) is deliberately not clearing current_function_static_stack_size, as I consider that erroneous usage but don't really care to emit a better error message. For stack-usage-1.c, like most ILP32 targets, CRIS (at -O0) needs 4 bytes for the return-address. The default size of 256 seems ill chosen but not worth fixing. gcc: * config/cris/cris.c (cris_expand_prologue): Set current_function_static_stack_size, if flag_stack_usage_info. gcc/testsuite: * gcc.dg/stack-usage-1.c: Adjust for CRIS.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/cris/cris.c5
-rw-r--r--gcc/testsuite/gcc.dg/stack-usage-1.c2
2 files changed, 7 insertions, 0 deletions
diff --git a/gcc/config/cris/cris.c b/gcc/config/cris/cris.c
index 8a42aa1..0774ed8 100644
--- a/gcc/config/cris/cris.c
+++ b/gcc/config/cris/cris.c
@@ -2892,8 +2892,13 @@ cris_expand_prologue (void)
framesize += size + cfoa_size;
}
+ /* FIXME: -mmax-stackframe=SIZE is obsoleted; use -Wstack-usage=SIZE
+ instead. Make it an alias? */
if (cris_max_stackframe && framesize > cris_max_stackframe)
warning (0, "stackframe too big: %d bytes", framesize);
+
+ if (flag_stack_usage_info)
+ current_function_static_stack_size = framesize;
}
/* The expander for the epilogue pattern. */
diff --git a/gcc/testsuite/gcc.dg/stack-usage-1.c b/gcc/testsuite/gcc.dg/stack-usage-1.c
index be1254a..93cfe7c 100644
--- a/gcc/testsuite/gcc.dg/stack-usage-1.c
+++ b/gcc/testsuite/gcc.dg/stack-usage-1.c
@@ -103,6 +103,8 @@
#define SIZE 252
#elif defined (__csky__)
# define SIZE 252
+#elif defined (__CRIS__)
+# define SIZE 252
#else
# define SIZE 256
#endif