This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/33246] New: Missed opportunities for vectorization due to data ref analysis
- From: "spop at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 30 Aug 2007 03:02:01 -0000
- Subject: [Bug tree-optimization/33246] New: Missed opportunities for vectorization due to data ref analysis
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
Here is a reduced testcase for Polyhedron:fatigue.f90:928. The non
vectorized loops that compute stress_tensor show up on the top user
times in the profile of that benchmark:
module perdida_m
integer, parameter, private :: LONGreal = selected_real_kind(15,90)
contains
subroutine perdida (lambda, mu, stress_tensor, strain_tensor,
plastic_strain_tensor)
real (kind = LONGreal), intent(in) :: lambda, mu
real (kind = LONGreal), dimension(:,:), intent(in) :: strain_tensor
real (kind = LONGreal), dimension(:,:), intent(inout) ::
plastic_strain_tensor
real (kind = LONGreal), dimension(:,:), intent(out) :: stress_tensor
stress_tensor(:,:) = (1.0_LONGreal - damage) *
&
generalized_hookes_law
(strain_tensor(:,:) - &
plastic_strain_tensor(:,:), lambda, mu)
end subroutine perdida
function generalized_hookes_law (strain_tensor, lambda, mu) result
(stress_tensor)
real (kind = LONGreal), dimension(:,:), intent(in) :: strain_tensor
real (kind = LONGreal), intent(in) :: lambda, mu
real (kind = LONGreal), dimension(3,3) :: stress_tensor
end function generalized_hookes_law
end module perdida_m
This is due to data ref analysis problems:
./fatigue.f90:14: note: not vectorized: data ref analysis failed
(*stress_tensor.0_16)[D.1508_168] = D.1513_173
./fatigue.f90:14: note: bad data references.
and
./fatigue.f90:14: note: not vectorized: data ref analysis failed D.1489_133 =
(*strain_tensor.0_41)[D.1488_132]
./fatigue.f90:14: note: bad data references.
--
Summary: Missed opportunities for vectorization due to data ref
analysis
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: spop at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33246