aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorZack Weinberg <zack@gcc.gnu.org>2003-12-23 20:25:49 +0000
committerZack Weinberg <zack@gcc.gnu.org>2003-12-23 20:25:49 +0000
commit4c494a15bb5e1bca533f8b1244ab0efbe43da469 (patch)
tree71fae27a9efb2795d277a638a93650d906129668 /gcc
parentbaba70d019dcf4ce9cbd6544465b25154eaed5e0 (diff)
downloadgcc-4c494a15bb5e1bca533f8b1244ab0efbe43da469.zip
gcc-4c494a15bb5e1bca533f8b1244ab0efbe43da469.tar.gz
gcc-4c494a15bb5e1bca533f8b1244ab0efbe43da469.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog50
-rw-r--r--gcc/config/ia64/ia64.c12
-rw-r--r--gcc/testsuite/ChangeLog16
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/920625-1.c6
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/981223-1.c8
-rw-r--r--gcc/testsuite/lib/gcc-dg.exp34
6 files changed, 91 insertions, 35 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index eada3de..58468c9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+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>
* common.opt (fprofile-generate,fprofile-use): Add.
@@ -47,7 +53,7 @@
-falt-external-templates and -ftemplates.
* doc/invoke.texi: Remove mention of -fexternal-templates and
-falt-external-templates.
-
+
2003-12-22 Andrew Pinski <pinskia@physics.uc.edu>
PR target/13466
@@ -62,24 +68,24 @@
2003-12-22 Fariborz Jahanian <fjahanian@apple.com>
- * config/rs6000/rs6000.c (legitimate_offset_address_p): Correct
- check for the legitimate offset when memory of
- DImode/DFmode/TFmode/TImode mode is being referenced and target
+ * config/rs6000/rs6000.c (legitimate_offset_address_p): Correct
+ check for the legitimate offset when memory of
+ DImode/DFmode/TFmode/TImode mode is being referenced and target
is TARGET_POWERPC64.
2003-12-22 Dale Johannesen <dalej@apple.com>
- * reload1.c: Add reg_reloaded_call_part_clobbered.
- (reload_as_needed): Use it.
- (forget_old_reloads_1): Ditto.
- (emit_reload_insns): Ditto.
+ * reload1.c: Add reg_reloaded_call_part_clobbered.
+ (reload_as_needed): Use it.
+ (forget_old_reloads_1): Ditto.
+ (emit_reload_insns): Ditto.
2003-12-22 Dale Johannesen <dalej@apple.com>
- PR optimization/12828
- * loop.c: Add find_regs_nested to look inside CLOBBER(MEM).
- (scan_loop): Call it.
- * regclass.c (reg_scan_mark_regs): Look inside CLOBBER(MEM).
+ PR optimization/12828
+ * loop.c: Add find_regs_nested to look inside CLOBBER(MEM).
+ (scan_loop): Call it.
+ * regclass.c (reg_scan_mark_regs): Look inside CLOBBER(MEM).
2003-12-22 Andrew Pinski <pinskia@physics.uc.edu>
@@ -107,7 +113,7 @@
* configure.in (gather-detailed-mem-stats): New flag.
* configure: Regenerate.
* config.in: Regenerate.
- * doc/install.texi (Configuration): Document
+ * doc/install.texi (Configuration): Document
--enable-gather-detailed-mem-stats.
2003-12-22 Kazu Hirata <kazu@cs.umass.edu>
@@ -180,7 +186,7 @@
* config/mn10300/mn10300.c: Likewise.
2003-12-20 Andrew Pinski <pinskia@gcc.gnu.org>
- Matt Thomas <matt@3am-software.com>
+ Matt Thomas <matt@3am-software.com>
PR target/12749
* config/i386/i386.c (print_operand): Print only the first
@@ -280,11 +286,11 @@
* gcc/config/i386/i386.c (ix86_expand_call, x86_output_mi_thunk):
Trivial fixes for i386.c on Darwin/x86.
-
+
2003-12-19 Fariborz Jahanian <fjahanian@apple.com>
- * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Add code to
- recognize macho-style lo_sum adrress patterns.
+ * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Add code to
+ recognize macho-style lo_sum adrress patterns.
2003-12-19 Kazu Hirata <kazu@cs.umass.edu>
@@ -394,7 +400,7 @@
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.
2003-12-18 Kazu Hirata <kazu@cs.umass.edu>
@@ -423,7 +429,7 @@
2003-12-17 James E Wilson <wilson@specifixinc.com>
Roger Sayle <roger@eyesopen.com>
-
+
* Makefile.in (gcse.o): Add $(TREE_H) to dependencies.
* gcse.c: Include tree.h.
(implicit_set_cond_p): New.
@@ -512,7 +518,7 @@
* config/m32r/m32r.md (cmp_ne_small_const_insn): Remove.
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
* c-decl.c (enum_decl_context): Remove BITFIELD.
@@ -542,7 +548,7 @@
* ginclude/stddef.h (offsetof): Reimplement for C++, using
__offsetof__.
* doc/extend.texi: Document __offsetof__.
-
+
2003-12-16 Stan Cox <scox@redhat.com>
* config/iq2000/iq2000.h: Formatting.
@@ -581,7 +587,7 @@
* altivec.h (vec_cmple, vec_all_numeric): Fix typo.
* testsuite/gcc.dg/altivec-10.c: Test for above.
-
+
2003-12-15 David O'Brien <obrien@FreeBSD.org>
* Makefile.in (CPPFLAGS): Initialize from configure.
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index beba14f..67df9cb 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -3742,8 +3742,12 @@ ia64_va_arg (tree valist, tree type)
/* Variable sized types are passed by reference. */
if (TREE_CODE (TYPE_SIZE (type)) != INTEGER_CST)
{
- rtx addr = std_expand_builtin_va_arg (valist, build_pointer_type (type));
- return gen_rtx_MEM (ptr_mode, force_reg (Pmode, addr));
+ rtx addr = force_reg (ptr_mode,
+ 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
@@ -7511,6 +7515,10 @@ ia64_in_small_data_p (tree exp)
if (TREE_CODE (exp) == STRING_CST)
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))
{
const char *section = TREE_STRING_POINTER (DECL_SECTION_NAME (exp));
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 7c5ee7f..eff3a2d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,17 @@
+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>
* g++.dg/abi/macro0.C: New test.
@@ -315,7 +329,7 @@
* g++.dg/template/type1.C: Likewise.
* g++.old-deja/g++.other/crash32.C: Likewise.
* g++.old-djea/g++.pt/defarg8.C: Likewise.
-
+
2003-12-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
PR c++/13106
diff --git a/gcc/testsuite/gcc.c-torture/compile/920625-1.c b/gcc/testsuite/gcc.c-torture/compile/920625-1.c
index 137e0dc..6a52b02 100644
--- a/gcc/testsuite/gcc.c-torture/compile/920625-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/920625-1.c
@@ -11,7 +11,11 @@
(p7) mov r14 = r0
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 signed long int signed_word;
diff --git a/gcc/testsuite/gcc.c-torture/compile/981223-1.c b/gcc/testsuite/gcc.c-torture/compile/981223-1.c
index d0939f6..b628948 100644
--- a/gcc/testsuite/gcc.c-torture/compile/981223-1.c
+++ b/gcc/testsuite/gcc.c-torture/compile/981223-1.c
@@ -1,11 +1,11 @@
/* The problem on IA-64 is that the assembler emits
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
func (__complex__ float x)
diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc-dg.exp
index 819e3ca..f2ba88e 100644
--- a/gcc/testsuite/lib/gcc-dg.exp
+++ b/gcc/testsuite/lib/gcc-dg.exp
@@ -130,8 +130,17 @@ proc gcc-dg-test { prog do_what extra_tool_flags } {
}
proc gcc-dg-prune { system text } {
+ global additional_prunes
+
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.
# This is tricky to deal with in a large testsuite like c-torture so
# deal with it here. Just mark the testcase as unsupported.
@@ -329,6 +338,18 @@ proc dg-require-dll { args } {
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.
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
-# are both cleared out after every test. It is not enough to clear
-# them out *before* the next test run because gcc-target-compile gets
-# run directly from some .exp files (outside of any test). (Those
-# uses should eventually be eliminated.)
+# We need to make sure that additional_* are cleared out after every
+# test. It is not enough to clear them out *before* the next test run
+# because gcc-target-compile gets run directly from some .exp files
+# (outside of any test). (Those uses should eventually be eliminated.)
# 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.
@@ -356,15 +376,19 @@ if { [info procs saved-dg-test] == [list] } {
proc dg-test { args } {
global additional_files
global additional_sources
+ global additional_prunes
global errorInfo
if { [ catch { eval saved-dg-test $args } errmsg ] } {
set saved_info $errorInfo
set additional_files ""
set additional_sources ""
+ set additional_prunes ""
error $errmsg $saved_info
}
set additional_files ""
set additional_sources ""
+ set additional_prunes ""
}
}
+set additional_prunes ""