4.9.1-9
This commit is contained in:
parent
9834bb7938
commit
22888b3c67
10
gcc.spec
10
gcc.spec
@ -200,10 +200,7 @@ Patch15: gcc49-color-auto.patch
|
|||||||
Patch16: gcc49-libgo-p224.patch
|
Patch16: gcc49-libgo-p224.patch
|
||||||
Patch17: gcc49-aarch64-async-unw-tables.patch
|
Patch17: gcc49-aarch64-async-unw-tables.patch
|
||||||
Patch18: gcc49-aarch64-unwind-opt.patch
|
Patch18: gcc49-aarch64-unwind-opt.patch
|
||||||
Patch19: gcc49-pr62098.patch
|
Patch19: gcc49-pr62662.patch
|
||||||
Patch20: gcc49-pr62025.patch
|
|
||||||
Patch21: gcc49-pr62131.patch
|
|
||||||
Patch22: gcc49-pr62662.patch
|
|
||||||
|
|
||||||
Patch1100: cloog-%{cloog_version}-ppc64le-config.patch
|
Patch1100: cloog-%{cloog_version}-ppc64le-config.patch
|
||||||
|
|
||||||
@ -732,10 +729,7 @@ package or when debugging this package.
|
|||||||
rm -f libgo/go/crypto/elliptic/p224{,_test}.go
|
rm -f libgo/go/crypto/elliptic/p224{,_test}.go
|
||||||
%patch17 -p0 -b .aarch64-async-unw-tables~
|
%patch17 -p0 -b .aarch64-async-unw-tables~
|
||||||
%patch18 -p0 -b .aarch64-unwind-opt~
|
%patch18 -p0 -b .aarch64-unwind-opt~
|
||||||
%patch19 -p0 -b .pr62098~
|
%patch19 -p0 -b .pr62662~
|
||||||
%patch20 -p0 -b .pr62025~
|
|
||||||
%patch21 -p0 -b .pr62131~
|
|
||||||
%patch22 -p0 -b .pr62662~
|
|
||||||
|
|
||||||
%if 0%{?_enable_debug_packages}
|
%if 0%{?_enable_debug_packages}
|
||||||
cat > split-debuginfo.sh <<\EOF
|
cat > split-debuginfo.sh <<\EOF
|
||||||
|
@ -1,94 +0,0 @@
|
|||||||
2014-08-14 Jakub Jelinek <jakub@redhat.com>
|
|
||||||
|
|
||||||
PR target/62025
|
|
||||||
* sched-deps.c (find_inc): Limit the test for inc_insn defs
|
|
||||||
vs. mem_insn uses to !backwards case only. Give up also if
|
|
||||||
any mem_insn def is used by inc_insn or if non-clobber
|
|
||||||
mem_insn def in backwards case is clobbered by inc_insn.
|
|
||||||
|
|
||||||
--- gcc/sched-deps.c.jj 2014-08-12 17:06:26.000000000 +0200
|
|
||||||
+++ gcc/sched-deps.c 2014-08-14 00:09:38.000000000 +0200
|
|
||||||
@@ -4746,23 +4746,70 @@ find_inc (struct mem_inc_info *mii, bool
|
|
||||||
"inc conflicts with store failure.\n");
|
|
||||||
goto next;
|
|
||||||
}
|
|
||||||
+ else
|
|
||||||
+ {
|
|
||||||
+ df_ref *use_rec, *def2_rec;
|
|
||||||
+ for (use_rec = DF_INSN_USES (mii->inc_insn);
|
|
||||||
+ *use_rec; use_rec++)
|
|
||||||
+ {
|
|
||||||
+ df_ref use = *use_rec;
|
|
||||||
+ if (reg_overlap_mentioned_p (DF_REF_REG (def),
|
|
||||||
+ DF_REF_REG (use)))
|
|
||||||
+ {
|
|
||||||
+ if (sched_verbose >= 5)
|
|
||||||
+ fprintf (sched_dump,
|
|
||||||
+ "mem def conflict with inc use "
|
|
||||||
+ "failure.\n");
|
|
||||||
+ goto next;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ /* If both inc_insn and mem_insn clobber the same register,
|
|
||||||
+ it is fine, but avoid the case where mem_insn e.g.
|
|
||||||
+ sets CC and originally earlier inc_insn clobbers it. */
|
|
||||||
+ if ((DF_REF_FLAGS (def) & DF_REF_MUST_CLOBBER) == 0
|
|
||||||
+ && backwards)
|
|
||||||
+ for (def2_rec = DF_INSN_DEFS (mii->inc_insn);
|
|
||||||
+ *def2_rec; def2_rec++)
|
|
||||||
+ {
|
|
||||||
+ df_ref def2 = *def2_rec;
|
|
||||||
+ if (reg_overlap_mentioned_p (DF_REF_REG (def),
|
|
||||||
+ DF_REF_REG (def2)))
|
|
||||||
+ {
|
|
||||||
+ if (sched_verbose >= 5)
|
|
||||||
+ fprintf (sched_dump,
|
|
||||||
+ "mem def conflict with inc def "
|
|
||||||
+ "failure.\n");
|
|
||||||
+ goto next;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
/* The inc instruction could have clobbers, make sure those
|
|
||||||
- registers are not used in mem insn. */
|
|
||||||
- for (def_rec = DF_INSN_DEFS (mii->inc_insn); *def_rec; def_rec++)
|
|
||||||
- if (!reg_overlap_mentioned_p (DF_REF_REG (*def_rec), mii->mem_reg0))
|
|
||||||
+ registers are not used in mem insn, if mem_insn is originally
|
|
||||||
+ earlier than inc_insn. */
|
|
||||||
+ if (!backwards)
|
|
||||||
+ for (def_rec = DF_INSN_DEFS (mii->inc_insn); *def_rec; def_rec++)
|
|
||||||
{
|
|
||||||
- df_ref *use_rec;
|
|
||||||
- for (use_rec = DF_INSN_USES (mii->mem_insn); *use_rec; use_rec++)
|
|
||||||
- if (reg_overlap_mentioned_p (DF_REF_REG (*def_rec),
|
|
||||||
- DF_REF_REG (*use_rec)))
|
|
||||||
- {
|
|
||||||
- if (sched_verbose >= 5)
|
|
||||||
- fprintf (sched_dump,
|
|
||||||
- "inc clobber used in store failure.\n");
|
|
||||||
- goto next;
|
|
||||||
- }
|
|
||||||
+ df_ref def = *def_rec;
|
|
||||||
+ if (!reg_overlap_mentioned_p (DF_REF_REG (def), mii->mem_reg0))
|
|
||||||
+ {
|
|
||||||
+ df_ref *use_rec;
|
|
||||||
+ for (use_rec = DF_INSN_USES (mii->mem_insn);
|
|
||||||
+ *use_rec; use_rec++)
|
|
||||||
+ {
|
|
||||||
+ df_ref use = *use_rec;
|
|
||||||
+ if (reg_overlap_mentioned_p (DF_REF_REG (def),
|
|
||||||
+ DF_REF_REG (use)))
|
|
||||||
+ {
|
|
||||||
+ if (sched_verbose >= 5)
|
|
||||||
+ fprintf (sched_dump,
|
|
||||||
+ "inc def conflict with mem use "
|
|
||||||
+ "failure.\n");
|
|
||||||
+ goto next;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
newaddr = mii->inc_input;
|
|
@ -1,30 +0,0 @@
|
|||||||
2014-08-12 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
|
||||||
|
|
||||||
PR target/62098
|
|
||||||
* config/arm/vfp.md (*combine_vcvtf2i): Fix constraint.
|
|
||||||
Remove unnecessary attributes.
|
|
||||||
|
|
||||||
--- gcc/config/arm/vfp.md (revision 213860)
|
|
||||||
+++ gcc/config/arm/vfp.md (revision 213861)
|
|
||||||
@@ -1264,17 +1264,15 @@ (define_insn "*combine_vcvt_f64_<FCVTI32
|
|
||||||
)
|
|
||||||
|
|
||||||
(define_insn "*combine_vcvtf2i"
|
|
||||||
- [(set (match_operand:SI 0 "s_register_operand" "=r")
|
|
||||||
- (fix:SI (fix:SF (mult:SF (match_operand:SF 1 "s_register_operand" "t")
|
|
||||||
+ [(set (match_operand:SI 0 "s_register_operand" "=t")
|
|
||||||
+ (fix:SI (fix:SF (mult:SF (match_operand:SF 1 "s_register_operand" "0")
|
|
||||||
(match_operand 2
|
|
||||||
"const_double_vcvt_power_of_two" "Dp")))))]
|
|
||||||
"TARGET_32BIT && TARGET_HARD_FLOAT && TARGET_VFP3 && !flag_rounding_math"
|
|
||||||
- "vcvt%?.s32.f32\\t%1, %1, %v2\;vmov%?\\t%0, %1"
|
|
||||||
+ "vcvt%?.s32.f32\\t%0, %1, %v2"
|
|
||||||
[(set_attr "predicable" "yes")
|
|
||||||
(set_attr "predicable_short_it" "no")
|
|
||||||
- (set_attr "ce_count" "2")
|
|
||||||
- (set_attr "type" "f_cvtf2i")
|
|
||||||
- (set_attr "length" "8")]
|
|
||||||
+ (set_attr "type" "f_cvtf2i")]
|
|
||||||
)
|
|
||||||
|
|
||||||
;; Store multiple insn used in function prologue.
|
|
@ -1,42 +0,0 @@
|
|||||||
2014-08-15 Jakub Jelinek <jakub@redhat.com>
|
|
||||||
Tobias Burnus <burnus@net-b.de>
|
|
||||||
|
|
||||||
PR fortran/62131
|
|
||||||
* openmp.c (resolve_omp_atomic): Only complain if code->expr1's attr
|
|
||||||
is allocatable, rather than whenever var->attr.allocatable.
|
|
||||||
|
|
||||||
* gfortran.dg/gomp/pr62131.f90: New test.
|
|
||||||
|
|
||||||
--- gcc/fortran/openmp.c (revision 214010)
|
|
||||||
+++ gcc/fortran/openmp.c (revision 214011)
|
|
||||||
@@ -2744,7 +2744,7 @@ resolve_omp_atomic (gfc_code *code)
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (var->attr.allocatable)
|
|
||||||
+ if (gfc_expr_attr (code->expr1).allocatable)
|
|
||||||
{
|
|
||||||
gfc_error ("!$OMP ATOMIC with ALLOCATABLE variable at %L",
|
|
||||||
&code->loc);
|
|
||||||
--- gcc/testsuite/gfortran.dg/gomp/pr62131.f90 (revision 0)
|
|
||||||
+++ gcc/testsuite/gfortran.dg/gomp/pr62131.f90 (revision 214011)
|
|
||||||
@@ -0,0 +1,19 @@
|
|
||||||
+! PR fortran/62131
|
|
||||||
+! { dg-do compile }
|
|
||||||
+! { dg-options "-fopenmp" }
|
|
||||||
+
|
|
||||||
+program pr62131
|
|
||||||
+ integer,allocatable :: nerrs(:,:)
|
|
||||||
+ allocate(nerrs(10,10))
|
|
||||||
+ nerrs(:,:) = 0
|
|
||||||
+!$omp parallel do
|
|
||||||
+ do k=1,10
|
|
||||||
+ call uperrs(k,1)
|
|
||||||
+ end do
|
|
||||||
+contains
|
|
||||||
+ subroutine uperrs(i,io)
|
|
||||||
+ integer,intent(in) :: i,io
|
|
||||||
+!$omp atomic
|
|
||||||
+ nerrs(i,io)=nerrs(i,io)+1
|
|
||||||
+ end subroutine
|
|
||||||
+end
|
|
Loading…
Reference in New Issue
Block a user