This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/30930] New: [4.3 Regression] vector can cause to create an extra variable
- From: "pinskia at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 22 Feb 2007 21:53:42 -0000
- Subject: [Bug tree-optimization/30930] New: [4.3 Regression] vector can cause to create an extra variable
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
While trying to make DECL_GIMPLE_REG_P more generic, I ran into a regression
due to we never change non gimple register variables into gimple registers so I
looked into it and found that I could also reproduce it in the current sources
with vector types (complex does not matter as much as they are always SRA'd).
Testcase:
#define vector __attribute__(( vector_size(16) ))
vector float f(vector float a, int b, vector float c)
{
vector float dd = c*a;
if (0)
{
vector float *d = &a;
vector float *d1 = &c;
g:;
}
if (b)
return dd * a;
return c*a;
}
You will see that a is never turned into a gimple register which could cause
some issues with debugging info and also this introduces an extra variable
which could cause a memory usage/compile time slow down.
--
Summary: [4.3 Regression] vector can cause to create an extra
variable
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: pinskia at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30930