[gcc r11-1581] amdgcn: Pass vector parameters in memory

Andrew Stubbs ams@gcc.gnu.org
Mon Jun 22 10:08:15 GMT 2020


https://gcc.gnu.org/g:d32495261a8a9d35379180d8ad0bca693f06b104

commit r11-1581-gd32495261a8a9d35379180d8ad0bca693f06b104
Author: Andrew Stubbs <ams@codesourcery.com>
Date:   Tue Mar 31 17:46:17 2020 +0100

    amdgcn: Pass vector parameters in memory
    
    gcc/ChangeLog:
    
            * config/gcn/gcn.c (gcn_function_arg): Disallow vector arguments.
            (gcn_return_in_memory): Return vectors in memory.

Diff:
---
 gcc/config/gcn/gcn.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/gcc/config/gcn/gcn.c b/gcc/config/gcn/gcn.c
index b6ff0bbc2af..5693b75b672 100644
--- a/gcc/config/gcn/gcn.c
+++ b/gcc/config/gcn/gcn.c
@@ -2291,6 +2291,10 @@ gcn_function_arg (cumulative_args_t cum_v, const function_arg_info &arg)
       if (targetm.calls.must_pass_in_stack (arg))
 	return 0;
 
+      /* Vector parameters are not supported yet.  */
+      if (VECTOR_MODE_P (arg.mode))
+	return 0;
+
       int reg_num = FIRST_PARM_REG + cum->num;
       int num_regs = num_arg_regs (arg);
       if (num_regs > 0)
@@ -2478,6 +2482,10 @@ gcn_return_in_memory (const_tree type, const_tree ARG_UNUSED (fntype))
   if (AGGREGATE_TYPE_P (type))
     return true;
 
+  /* Vector return values are not supported yet.  */
+  if (VECTOR_TYPE_P (type))
+    return true;
+
   if (mode == BLKmode)
     return true;


More information about the Gcc-cvs mailing list