re PR middle-end/61209 (internal compiler error: in fold_convert_loc, at fold-const.c:1950)

2014-05-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/61209
	* tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.

	* gfortran.dg/pr61209.f90: New testcase.

From-SVN: r210613
This commit is contained in:
Richard Biener 2014-05-19 14:32:23 +00:00 committed by Richard Biener
parent 40ba8dfb39
commit 051351362b
4 changed files with 60 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2014-05-19 Richard Biener <rguenther@suse.de>
PR tree-optimization/61209
* tree-ssa-sccvn.c (visit_phi): Avoid setting expr to VN_TOP.
2014-05-19 Nick Clifton <nickc@redhat.com>
* except.c (init_eh): Fix computation of builtin setjmp buffer

View File

@ -1,3 +1,8 @@
2014-05-19 Richard Biener <rguenther@suse.de>
PR tree-optimization/61209
* gfortran.dg/pr61209.f90: New testcase.
2014-05-19 Richard Biener <rguenther@suse.de>
PR tree-optimization/61184

View File

@ -0,0 +1,46 @@
! { dg-do compile }
! { dg-options "-O -fbounds-check" }
MODULE array_types
INTERFACE array_data
MODULE PROCEDURE array_data_i1d
END INTERFACE
TYPE array_i1d_type
END TYPE array_i1d_type
TYPE array_i1d_obj
TYPE(array_i1d_type), POINTER :: low
END TYPE array_i1d_obj
TYPE dbcsr_type
TYPE(array_i1d_obj) :: local_rows
LOGICAL :: local_indexing
END TYPE dbcsr_type
TYPE dbcsr_obj
TYPE(dbcsr_type) :: m
END TYPE dbcsr_obj
CONTAINS
FUNCTION array_data_i1d(array) RESULT (DATA)
TYPE(array_i1d_obj), INTENT(IN) :: array
INTEGER, DIMENSION(:), POINTER :: DATA
IF (ASSOCIATED (array%low)) THEN
ENDIF
END FUNCTION array_data_i1d
SUBROUTINE dbcsr_make_index_list (matrix, thread_redist)
TYPE(dbcsr_obj), INTENT(INOUT) :: matrix
LOGICAL, INTENT(IN) :: thread_redist
INTEGER, ALLOCATABLE, DIMENSION(:, :) :: blki
INTEGER, DIMENSION(:), POINTER :: local_rows, td
INTEGER :: blk
nthreads = 0
IF (nthreads .GT. 0 .AND. thread_redist) THEN
IF (matrix%m%local_indexing) THEN
local_rows => array_data (matrix%m%local_rows)
ENDIF
CALL dbcsr_build_row_index_inplace (thr_c, nthreads)
IF (matrix%m%local_indexing) THEN
DO blk = 1, nblks
IF (td(local_rows(blki(1, blk))) .EQ. ithread) THEN
ENDIF
ENDDO
ENDIF
ENDIF
END SUBROUTINE dbcsr_make_index_list
END MODULE

View File

@ -3125,12 +3125,14 @@ visit_phi (gimple phi)
if (is_gimple_min_invariant (sameval))
{
VN_INFO (PHI_RESULT (phi))->has_constants = true;
VN_INFO (PHI_RESULT (phi))->expr = sameval;
if (sameval != VN_TOP)
VN_INFO (PHI_RESULT (phi))->expr = sameval;
}
else
{
VN_INFO (PHI_RESULT (phi))->has_constants = false;
VN_INFO (PHI_RESULT (phi))->expr = sameval;
if (sameval != VN_TOP)
VN_INFO (PHI_RESULT (phi))->expr = sameval;
}
if (TREE_CODE (sameval) == SSA_NAME)