From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8695 invoked by alias); 10 Sep 2009 18:38:00 -0000 Received: (qmail 8648 invoked by uid 48); 10 Sep 2009 18:37:45 -0000 Date: Thu, 10 Sep 2009 18:38:00 -0000 Message-ID: <20090910183745.8647.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug tree-optimization/41089] [4.5 Regression] r147980 (New SRA) breaks stdargs In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "ubizjak at gmail dot com" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2009-09/txt/msg01104.txt.bz2 ------- Comment #21 from ubizjak at gmail dot com 2009-09-10 18:37 ------- Either -fno-tree-fre or -fno-tree-dce "fixes" this test in the sense that somehow disables stdarg optimization: f4: va_list escapes 1, needs to save all GPR units and all FPR units. This all happens on top of: Index: gcc/config/alpha/alpha.c =================================================================== --- gcc/config/alpha/alpha.c (revision 151587) +++ gcc/config/alpha/alpha.c (working copy) @@ -6339,7 +6339,7 @@ alpha_gimplify_va_arg_1 (tree type, tree } addend = offset; - ptr_type = build_pointer_type (type); + ptr_type = build_pointer_type_for_mode (type, ptr_mode, true); if (TREE_CODE (type) == COMPLEX_TYPE) { @@ -6420,7 +6420,7 @@ alpha_gimplify_va_arg (tree valist, tree indirect = pass_by_reference (NULL, TYPE_MODE (type), type, false); if (indirect) - type = build_pointer_type (type); + type = build_pointer_type_for_mode (type, ptr_mode, true); /* Find the value. Note that this will be a stable indirection, or a composite of stable indirections in the case of complex. */ -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41089