diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2014-07-10 10:38:30 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2014-07-10 10:38:30 +0000 |
commit | d764963b54885cdf3604e54717b1a137492d7415 (patch) | |
tree | 82d9408541093ea1d1f5bd1bb4c82743eac57876 /gcc | |
parent | 56710419ba3361dca740bfa1dc29be0d959246de (diff) | |
download | gcc-d764963b54885cdf3604e54717b1a137492d7415.zip gcc-d764963b54885cdf3604e54717b1a137492d7415.tar.gz gcc-d764963b54885cdf3604e54717b1a137492d7415.tar.bz2 |
re PR middle-end/53590 (compiler fails to generate SIMD instruction for FP division)
PR middle-end/53590
* function.c (allocate_struct_function): Revert r188667 change.
* gimple-low.c (lower_builtin_setjmp): Use properly-typed constant.
From-SVN: r212424
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/function.c | 1 | ||||
-rw-r--r-- | gcc/gimple-low.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gnat.dg/opt39.adb | 31 |
5 files changed, 44 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bc76db4..075aa78 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2014-07-10 Eric Botcazou <ebotcazou@adacore.com> + + PR middle-end/53590 + * function.c (allocate_struct_function): Revert r188667 change. + + * gimple-low.c (lower_builtin_setjmp): Use properly-typed constant. + 2014-07-10 Tom G. Christensen <tgc@jupiterrise.com> * doc/install.texi: Remove links to defunct package providers for diff --git a/gcc/function.c b/gcc/function.c index a0a3bc7..922ef3d 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -4549,6 +4549,7 @@ allocate_struct_function (tree fndecl, bool abstract_p) /* ??? This could be set on a per-function basis by the front-end but is this worth the hassle? */ cfun->can_throw_non_call_exceptions = flag_non_call_exceptions; + cfun->can_delete_dead_exceptions = flag_delete_dead_exceptions; } } diff --git a/gcc/gimple-low.c b/gcc/gimple-low.c index 6a5b2e1..c8a6e6b 100644 --- a/gcc/gimple-low.c +++ b/gcc/gimple-low.c @@ -720,7 +720,7 @@ lower_builtin_setjmp (gimple_stmt_iterator *gsi) these builtins are modelled as non-local label jumps to the label that is passed to these two builtins, so pretend we have a non-local label during GIMPLE passes too. See PR60003. */ - cfun->has_nonlocal_label = true; + cfun->has_nonlocal_label = 1; /* NEXT_LABEL is the label __builtin_longjmp will jump to. Its address is passed to both __builtin_setjmp_setup and __builtin_setjmp_receiver. */ diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index d9542f4..054497b 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2014-07-10 Eric Botcazou <ebotcazou@adacore.com> + + * gnat.dg/opt39.adb: New test. + 2014-07-10 Yuri Rumyantsev <ysrumyan@gmail.com> PR tree-optimization/61742 diff --git a/gcc/testsuite/gnat.dg/opt39.adb b/gcc/testsuite/gnat.dg/opt39.adb new file mode 100644 index 0000000..a00cac7 --- /dev/null +++ b/gcc/testsuite/gnat.dg/opt39.adb @@ -0,0 +1,31 @@ +-- { dg-do compile } +-- { dg-options "-O2 -fno-inline -fdump-tree-optimized" } + +procedure Opt39 (I : Integer) is + + type Rec is record + I1 : Integer; + I2 : Integer; + I3 : Integer; + I4 : Integer; + I5 : Integer; + end record; + + procedure Set (A : access Rec; I : Integer) is + Tmp : Rec := A.all; + begin + Tmp.I1 := I; + A.all := Tmp; + end; + + R : aliased Rec; + +begin + Set (R'Access, I); + if R.I1 /= I then + raise Program_Error; + end if; +end; + +-- { dg-final { scan-tree-dump-times "MEM" 1 "optimized" } } +-- { dg-final { cleanup-tree-dump "optimized" } } |