This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[tuples][Patch] Tuplify mips backend.
- From: David Daney <ddaney at avtrex dot com>
- To: gcc-patches <gcc-patches at gcc dot gnu dot org>
- Cc: Richard Sandiford <rsandifo at nildram dot co dot uk>
- Date: Wed, 05 Mar 2008 13:21:56 -0800
- Subject: [tuples][Patch] Tuplify mips backend.
With this patch, I am able to build the branch on mipsel-linux with
--enable-languages=c
There are still FAILs in the c testsuite, but the majority of the tests
seem to PASS.
Is this really all there is to tuplifying a backend? I would have
thought more changes would be necessary.
Built/tested on mipsel-linux.
OK to commit?
2008-03-05 David Daney <ddaney@avtrex.com>
* builtins.c (expand_builtin___clear_cache): Disable call to
validate_arglist.
* config/mips/mips.c (mips_gimplify_va_arg_expr): Tuplify.
Index: gcc/builtins.c
===================================================================
--- gcc/builtins.c (revision 132891)
+++ gcc/builtins.c (working copy)
@@ -5806,11 +5806,16 @@ expand_builtin___clear_cache (tree exp A
/* We must not expand to a library call. If we did, any
fallback library function in libgcc that might contain a call to
__builtin___clear_cache() would recurse infinitely. */
+ /* FIXME tuples. */
+#if 0
if (!validate_arglist (exp, POINTER_TYPE, POINTER_TYPE, VOID_TYPE))
{
error ("both arguments to %<__builtin___clear_cache%> must be pointers");
return const0_rtx;
}
+#else
+ gimple_unreachable ();
+#endif
if (HAVE_clear_cache)
{
Index: gcc/config/mips/mips.c
===================================================================
--- gcc/config/mips/mips.c (revision 132891)
+++ gcc/config/mips/mips.c (working copy)
@@ -4856,7 +4856,8 @@ mips_va_start (tree valist, rtx nextarg)
/* Implement TARGET_GIMPLIFY_VA_ARG_EXPR. */
static tree
-mips_gimplify_va_arg_expr (tree valist, tree type, tree *pre_p, tree *post_p)
+mips_gimplify_va_arg_expr (tree valist, tree type, gimple_seq *pre_p,
+ gimple_seq *post_p)
{
tree addr;
bool indirect_p;