This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Fix PR399955: rs6000 needs to handle SSA_NAMEs


Hi,

currently we get ICEs on powerpc when SDmode variables are involved, 
because the backend goes over the gimple instructions to detect the usage 
of that mode and allocate a stack slot.  With SSA expand this can contain 
SSA_NAMEs which we need to look at too, not just VAR_DECLs.

This patch was regstrapped on powerpc64-linux with the same configure 
options that Janis is using (so I can compare testresults posting with my 
results).

The FAILs I now see are either preexisting (from 
http://gcc.gnu.org/ml/gcc-testresults/2009-04/msg02785.html), are Richards 
ICEs with the type verifier where the vectorizer introduces invalid 
conversions, or are these ones:

FAIL: gcc.dg/sms-8.c scan-rtl-dump-times sms "SMS succeeded" 1
FAIL: gcc.dg/vect/slp-perm-8.c scan-tree-dump-times vect "vectorized 1 loops" 2
FAIL: gcc.target/powerpc/20050603-3.c scan-assembler-not inm
FAIL: gcc.target/powerpc/405-dlmzb-strlen-1.c scan-assembler dlmzb\\\\.
FAIL: gcc.target/powerpc/440-dlmzb-strlen-1.c scan-assembler dlmzb\\\\.
FAIL: events output
FAIL: 22_locale/codecvt/unshift/char/1.cc execution test

sms-8 uses long long arithmetic on 32 bit, which involves setting 
SImode subregs of DImode regs, which SMS can't handle.  No idea why it 
should have worked before.  The other scan-asm and vector test are most 
probably changes exposed by the limited TER, but I haven't investigated in 
detail yet.  1.cc seems to fail also for others sometimes.  no idea about 
the "events output" one.

Okay?


Ciao,
Michael.
-- 
	PR tree-optimization/39955
	* config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs.

Index: config/rs6000/rs6000.c
===================================================================
--- config/rs6000/rs6000.c	(revision 146824)
+++ config/rs6000/rs6000.c	(working copy)
@@ -11545,6 +11545,7 @@ rs6000_check_sdmode (tree *tp, int *walk
     case PARM_DECL:
     case FIELD_DECL:
     case RESULT_DECL:
+    case SSA_NAME:
     case REAL_CST:
     case INDIRECT_REF:
     case ALIGN_INDIRECT_REF:


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]