Commit 4c494a15 by Zack Weinberg

ia64.c (ia64_va_arg): Pass pointer for variable-sized type through convert_memory_address.

gcc:
	* config/ia64/ia64.c (ia64_va_arg): Pass pointer for
	variable-sized type through convert_memory_address.
	(ia64_in_small_data_p): Always return false for FUNCTION_DECLs.

gcc/testsuite:
	* lib/gcc-dg.exp (dg-prune-output): New annotation.
	(additional_prunes): New global.
	(gcc-dg-prune): Handle additional per-test pruning.
	(dg-test): Clear additional_prunes between tests.

	* gcc.c-torture/compile/920625-1.c: Remove xfail.  Use
	dg-prune-output to avoid spurious failures from assembler
	complaining about nonexistent WAW violations.
	* gcc.c-torture/compile/981223-1.c: Remove dg-options line.
	Use dg-prune-output to avoid spurious failures from assembler
	warning about Itanium B-step errata.

From-SVN: r74980
parent baba70d0
2003-12-23 Zack Weinberg <zack@codesourcery.com>
* config/ia64/ia64.c (ia64_va_arg): Pass pointer for
variable-sized type through convert_memory_address.
(ia64_in_small_data_p): Always return false for FUNCTION_DECLs.
2003-12-23 Jan Hubicka <jh@suse.cz> 2003-12-23 Jan Hubicka <jh@suse.cz>
* common.opt (fprofile-generate,fprofile-use): Add. * common.opt (fprofile-generate,fprofile-use): Add.
...@@ -47,7 +53,7 @@ ...@@ -47,7 +53,7 @@
-falt-external-templates and -ftemplates. -falt-external-templates and -ftemplates.
* doc/invoke.texi: Remove mention of -fexternal-templates and * doc/invoke.texi: Remove mention of -fexternal-templates and
-falt-external-templates. -falt-external-templates.
2003-12-22 Andrew Pinski <pinskia@physics.uc.edu> 2003-12-22 Andrew Pinski <pinskia@physics.uc.edu>
PR target/13466 PR target/13466
...@@ -62,24 +68,24 @@ ...@@ -62,24 +68,24 @@
2003-12-22 Fariborz Jahanian <fjahanian@apple.com> 2003-12-22 Fariborz Jahanian <fjahanian@apple.com>
* config/rs6000/rs6000.c (legitimate_offset_address_p): Correct * config/rs6000/rs6000.c (legitimate_offset_address_p): Correct
check for the legitimate offset when memory of check for the legitimate offset when memory of
DImode/DFmode/TFmode/TImode mode is being referenced and target DImode/DFmode/TFmode/TImode mode is being referenced and target
is TARGET_POWERPC64. is TARGET_POWERPC64.
2003-12-22 Dale Johannesen <dalej@apple.com> 2003-12-22 Dale Johannesen <dalej@apple.com>
* reload1.c: Add reg_reloaded_call_part_clobbered. * reload1.c: Add reg_reloaded_call_part_clobbered.
(reload_as_needed): Use it. (reload_as_needed): Use it.
(forget_old_reloads_1): Ditto. (forget_old_reloads_1): Ditto.
(emit_reload_insns): Ditto. (emit_reload_insns): Ditto.
2003-12-22 Dale Johannesen <dalej@apple.com> 2003-12-22 Dale Johannesen <dalej@apple.com>
PR optimization/12828 PR optimization/12828
* loop.c: Add find_regs_nested to look inside CLOBBER(MEM). * loop.c: Add find_regs_nested to look inside CLOBBER(MEM).
(scan_loop): Call it. (scan_loop): Call it.
* regclass.c (reg_scan_mark_regs): Look inside CLOBBER(MEM). * regclass.c (reg_scan_mark_regs): Look inside CLOBBER(MEM).
2003-12-22 Andrew Pinski <pinskia@physics.uc.edu> 2003-12-22 Andrew Pinski <pinskia@physics.uc.edu>
...@@ -107,7 +113,7 @@ ...@@ -107,7 +113,7 @@
* configure.in (gather-detailed-mem-stats): New flag. * configure.in (gather-detailed-mem-stats): New flag.
* configure: Regenerate. * configure: Regenerate.
* config.in: Regenerate. * config.in: Regenerate.
* doc/install.texi (Configuration): Document * doc/install.texi (Configuration): Document
--enable-gather-detailed-mem-stats. --enable-gather-detailed-mem-stats.
2003-12-22 Kazu Hirata <kazu@cs.umass.edu> 2003-12-22 Kazu Hirata <kazu@cs.umass.edu>
...@@ -180,7 +186,7 @@ ...@@ -180,7 +186,7 @@
* config/mn10300/mn10300.c: Likewise. * config/mn10300/mn10300.c: Likewise.
2003-12-20 Andrew Pinski <pinskia@gcc.gnu.org> 2003-12-20 Andrew Pinski <pinskia@gcc.gnu.org>
Matt Thomas <matt@3am-software.com> Matt Thomas <matt@3am-software.com>
PR target/12749 PR target/12749
* config/i386/i386.c (print_operand): Print only the first * config/i386/i386.c (print_operand): Print only the first
...@@ -280,11 +286,11 @@ ...@@ -280,11 +286,11 @@
* gcc/config/i386/i386.c (ix86_expand_call, x86_output_mi_thunk): * gcc/config/i386/i386.c (ix86_expand_call, x86_output_mi_thunk):
Trivial fixes for i386.c on Darwin/x86. Trivial fixes for i386.c on Darwin/x86.
2003-12-19 Fariborz Jahanian <fjahanian@apple.com> 2003-12-19 Fariborz Jahanian <fjahanian@apple.com>
* config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Add code to * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Add code to
recognize macho-style lo_sum adrress patterns. recognize macho-style lo_sum adrress patterns.
2003-12-19 Kazu Hirata <kazu@cs.umass.edu> 2003-12-19 Kazu Hirata <kazu@cs.umass.edu>
...@@ -394,7 +400,7 @@ ...@@ -394,7 +400,7 @@
2003-12-18 Ulrich Weigand <uweigand@de.ibm.com> 2003-12-18 Ulrich Weigand <uweigand@de.ibm.com>
* loop.c (move_movables): Handle combination of m->consec, * loop.c (move_movables): Handle combination of m->consec,
m->move_insn_first, and m->insert_temp all nonzero correctly. m->move_insn_first, and m->insert_temp all nonzero correctly.
2003-12-18 Kazu Hirata <kazu@cs.umass.edu> 2003-12-18 Kazu Hirata <kazu@cs.umass.edu>
...@@ -423,7 +429,7 @@ ...@@ -423,7 +429,7 @@
2003-12-17 James E Wilson <wilson@specifixinc.com> 2003-12-17 James E Wilson <wilson@specifixinc.com>
Roger Sayle <roger@eyesopen.com> Roger Sayle <roger@eyesopen.com>
* Makefile.in (gcse.o): Add $(TREE_H) to dependencies. * Makefile.in (gcse.o): Add $(TREE_H) to dependencies.
* gcse.c: Include tree.h. * gcse.c: Include tree.h.
(implicit_set_cond_p): New. (implicit_set_cond_p): New.
...@@ -512,7 +518,7 @@ ...@@ -512,7 +518,7 @@
* config/m32r/m32r.md (cmp_ne_small_const_insn): Remove. * config/m32r/m32r.md (cmp_ne_small_const_insn): Remove.
2003-12-17 Neil Booth <neil@daikokuya.co.uk> 2003-12-17 Neil Booth <neil@daikokuya.co.uk>
Joseph S. Myers <jsm@polyomino.org.uk> Joseph S. Myers <jsm@polyomino.org.uk>
PR c/3347 PR c/3347
* c-decl.c (enum_decl_context): Remove BITFIELD. * c-decl.c (enum_decl_context): Remove BITFIELD.
...@@ -542,7 +548,7 @@ ...@@ -542,7 +548,7 @@
* ginclude/stddef.h (offsetof): Reimplement for C++, using * ginclude/stddef.h (offsetof): Reimplement for C++, using
__offsetof__. __offsetof__.
* doc/extend.texi: Document __offsetof__. * doc/extend.texi: Document __offsetof__.
2003-12-16 Stan Cox <scox@redhat.com> 2003-12-16 Stan Cox <scox@redhat.com>
* config/iq2000/iq2000.h: Formatting. * config/iq2000/iq2000.h: Formatting.
...@@ -581,7 +587,7 @@ ...@@ -581,7 +587,7 @@
* altivec.h (vec_cmple, vec_all_numeric): Fix typo. * altivec.h (vec_cmple, vec_all_numeric): Fix typo.
* testsuite/gcc.dg/altivec-10.c: Test for above. * testsuite/gcc.dg/altivec-10.c: Test for above.
2003-12-15 David O'Brien <obrien@FreeBSD.org> 2003-12-15 David O'Brien <obrien@FreeBSD.org>
* Makefile.in (CPPFLAGS): Initialize from configure. * Makefile.in (CPPFLAGS): Initialize from configure.
......
...@@ -3742,8 +3742,12 @@ ia64_va_arg (tree valist, tree type) ...@@ -3742,8 +3742,12 @@ ia64_va_arg (tree valist, tree type)
/* Variable sized types are passed by reference. */ /* Variable sized types are passed by reference. */
if (TREE_CODE (TYPE_SIZE (type)) != INTEGER_CST) if (TREE_CODE (TYPE_SIZE (type)) != INTEGER_CST)
{ {
rtx addr = std_expand_builtin_va_arg (valist, build_pointer_type (type)); rtx addr = force_reg (ptr_mode,
return gen_rtx_MEM (ptr_mode, force_reg (Pmode, addr)); std_expand_builtin_va_arg (valist, build_pointer_type (type)));
#ifdef POINTERS_EXTEND_UNSIGNED
addr = convert_memory_address (Pmode, addr);
#endif
return gen_rtx_MEM (ptr_mode, addr);
} }
/* Arguments with alignment larger than 8 bytes start at the next even /* Arguments with alignment larger than 8 bytes start at the next even
...@@ -7511,6 +7515,10 @@ ia64_in_small_data_p (tree exp) ...@@ -7511,6 +7515,10 @@ ia64_in_small_data_p (tree exp)
if (TREE_CODE (exp) == STRING_CST) if (TREE_CODE (exp) == STRING_CST)
return false; return false;
/* Functions are never small data. */
if (TREE_CODE (exp) == FUNCTION_DECL)
return false;
if (TREE_CODE (exp) == VAR_DECL && DECL_SECTION_NAME (exp)) if (TREE_CODE (exp) == VAR_DECL && DECL_SECTION_NAME (exp))
{ {
const char *section = TREE_STRING_POINTER (DECL_SECTION_NAME (exp)); const char *section = TREE_STRING_POINTER (DECL_SECTION_NAME (exp));
......
2003-12-23 Zack Weinberg <zack@codesourcery.com>
* lib/gcc-dg.exp (dg-prune-output): New annotation.
(additional_prunes): New global.
(gcc-dg-prune): Handle additional per-test pruning.
(dg-test): Clear additional_prunes between tests.
* gcc.c-torture/compile/920625-1.c: Remove xfail. Use
dg-prune-output to avoid spurious failures from assembler
complaining about nonexistent WAW violations.
* gcc.c-torture/compile/981223-1.c: Remove dg-options line.
Use dg-prune-output to avoid spurious failures from assembler
warning about Itanium B-step errata.
2003-12-23 Mark Mitchell <mark@codesourcery.com> 2003-12-23 Mark Mitchell <mark@codesourcery.com>
* g++.dg/abi/macro0.C: New test. * g++.dg/abi/macro0.C: New test.
...@@ -315,7 +329,7 @@ ...@@ -315,7 +329,7 @@
* g++.dg/template/type1.C: Likewise. * g++.dg/template/type1.C: Likewise.
* g++.old-deja/g++.other/crash32.C: Likewise. * g++.old-deja/g++.other/crash32.C: Likewise.
* g++.old-djea/g++.pt/defarg8.C: Likewise. * g++.old-djea/g++.pt/defarg8.C: Likewise.
2003-12-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net> 2003-12-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
PR c++/13106 PR c++/13106
......
...@@ -11,7 +11,11 @@ ...@@ -11,7 +11,11 @@
(p7) mov r14 = r0 (p7) mov r14 = r0
that appears to be a WAW violation. */ that appears to be a WAW violation. */
/* { dg-xfail-if "missing .pred.rel.mutex directive" "ia64-*-*" { "-O1" "-O2" "-O3" "-Os" } { "" } } */
/* { dg-prune-output "Assembler messages" } */
/* { dg-prune-output "violate\[^\n\]*dependency" } */
/* { dg-prune-output "first path encountering" } */
/* { dg-prune-output "location of the conflicting" } */
typedef unsigned long int unsigned_word; typedef unsigned long int unsigned_word;
typedef signed long int signed_word; typedef signed long int signed_word;
......
/* The problem on IA-64 is that the assembler emits /* The problem on IA-64 is that the assembler emits
Warning: Additional NOP may be necessary to workaround Itanium Warning: Additional NOP may be necessary to workaround Itanium
processor A/B step errata processor A/B step errata */
/* { dg-prune-output "Assembler messages" } */
/* { dg-prune-output "Additional NOP may be necessary" } */
This can be fixed by adding "-mb-step" to the command line, which
does in fact add the extra nop. */
/* { dg-options "-w -mb-step" { target ia64-*-* } } */
__complex__ float __complex__ float
func (__complex__ float x) func (__complex__ float x)
......
...@@ -130,8 +130,17 @@ proc gcc-dg-test { prog do_what extra_tool_flags } { ...@@ -130,8 +130,17 @@ proc gcc-dg-test { prog do_what extra_tool_flags } {
} }
proc gcc-dg-prune { system text } { proc gcc-dg-prune { system text } {
global additional_prunes
set text [prune_gcc_output $text] set text [prune_gcc_output $text]
foreach p $additional_prunes {
if { [string length $p] > 0 } {
# Following regexp matches a complete line containing $p.
regsub -all "(^|\n)\[^\n\]*$p\[^\n\]*" $text "" text
}
}
# If we see "region xxx is full" then the testcase is too big for ram. # If we see "region xxx is full" then the testcase is too big for ram.
# This is tricky to deal with in a large testsuite like c-torture so # This is tricky to deal with in a large testsuite like c-torture so
# deal with it here. Just mark the testcase as unsupported. # deal with it here. Just mark the testcase as unsupported.
...@@ -329,6 +338,18 @@ proc dg-require-dll { args } { ...@@ -329,6 +338,18 @@ proc dg-require-dll { args } {
set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"] set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
} }
# Prune any messages matching ARGS[1] (a regexp) from test output.
proc dg-prune-output { args } {
global additional_prunes
if { [llength $args] != 2 } {
error "[lindex $args 1]: need one argument"
return
}
lappend additional_prunes [lindex $args 1]
}
# Like check_conditional_xfail, but callable from a dg test. # Like check_conditional_xfail, but callable from a dg test.
proc dg-xfail-if { args } { proc dg-xfail-if { args } {
...@@ -341,11 +362,10 @@ proc dg-xfail-if { args } { ...@@ -341,11 +362,10 @@ proc dg-xfail-if { args } {
} }
# We need to make sure that additional_files and additional_sources # We need to make sure that additional_* are cleared out after every
# are both cleared out after every test. It is not enough to clear # test. It is not enough to clear them out *before* the next test run
# them out *before* the next test run because gcc-target-compile gets # because gcc-target-compile gets run directly from some .exp files
# run directly from some .exp files (outside of any test). (Those # (outside of any test). (Those uses should eventually be eliminated.)
# uses should eventually be eliminated.)
# Because the DG framework doesn't provide a hook that is run at the # Because the DG framework doesn't provide a hook that is run at the
# end of a test, we must replace dg-test with a wrapper. # end of a test, we must replace dg-test with a wrapper.
...@@ -356,15 +376,19 @@ if { [info procs saved-dg-test] == [list] } { ...@@ -356,15 +376,19 @@ if { [info procs saved-dg-test] == [list] } {
proc dg-test { args } { proc dg-test { args } {
global additional_files global additional_files
global additional_sources global additional_sources
global additional_prunes
global errorInfo global errorInfo
if { [ catch { eval saved-dg-test $args } errmsg ] } { if { [ catch { eval saved-dg-test $args } errmsg ] } {
set saved_info $errorInfo set saved_info $errorInfo
set additional_files "" set additional_files ""
set additional_sources "" set additional_sources ""
set additional_prunes ""
error $errmsg $saved_info error $errmsg $saved_info
} }
set additional_files "" set additional_files ""
set additional_sources "" set additional_sources ""
set additional_prunes ""
} }
} }
set additional_prunes ""
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment