* config/pa/predicates.md (integer_store_memory_operand): Accept
REG+D operands with a large offset when reload_in_progress is true.
(floating_point_store_memory_operand): Likewise.
From-SVN: r234765
PR c++/70336
* match.pd (nested int casts): Limit to GIMPLE.
* c-c++-common/pr70336.c: New test.
* gcc.dg/torture/builtin-isinf_sign-1.c (foo): Guard tests
no longer optimized away at -O0 with #ifndef __OPTIMIZE__.
From-SVN: r234764
PR rtl-optimization/70542
* ree.c (add_removable_extension): For VECTOR_MODE_P punt
if there are any uses other than insn or debug insns.
* gcc.dg/torture/pr70542.c: New test.
* gcc.target/i386/avx2-pr70542.c: New test.
From-SVN: r234756
PR tree-optimization/70509
* tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
of the vector base type for index.
* gcc.target/i386/avx512bw-pr70509.c: New test.
From-SVN: r234754
2016-04-05 Richard Biener <rguenther@suse.de>
PR tree-optimization/70526
* tree-sra.c (build_ref_for_offset): Use prev_base to
extract the alias pointer type.
* g++.dg/torture/pr70526.C: New testcase.
From-SVN: r234749
PR target/70525
* config/i386/sse.md (*andnot<mode>3): Simplify assertions.
Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
(*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
* gcc.target/i386/pr70525.c: New test.
From-SVN: r234739
2016-04-05 Richard Biener <rguenther@suse.de>
PR middle-end/70499
* gimplify-me.c (gimple_regimplify_operands): Do not rewrite
non-register type temporaries into SSA.
* g++.dg/torture/pr70499.C: New testcase.
From-SVN: r234738
gcc/cp/ChangeLog:
PR c++/70452
* cp-tree.h (class cache_map): Remove.
* constexpr.c (cv_cache): Change type to
GTY((deletable)) hash_map<tree, tree> *.
(maybe_constant_value): Adjust following the change to cv_cache.
(clear_cv_cache): New static function.
(clear_cv_and_fold_caches): Use it.
* cp-gimplify.c (fold_cache): Change type to
GTY((deletable)) hash_map<tree, tree> *.
(clear_fold_cache): Adjust following the change to fold_cache.
(cp_fold): Likewise.
From-SVN: r234732
The config.cache file should be deleted by "make distclean", just like
config.log and config.status . The directory itself is still not deleted
(just like the gotools and libcc1 directories).
gnattools/
PR bootstrap/70173
* Makefile.in (distclean): Also delete config.cache .
From-SVN: r234721
[gcc]
2016-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
Jakub Jelinek <jakub@redhat.com>
PR middle-end/70457
* tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
to ensure a call statement is compatible with a built-in's
prototype.
* tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
Likewise.
[gcc/testsuite]
2016-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
Jakub Jelinek <jakub@redhat.com>
PR middle-end/70457
* gcc.dg/torture/pr70457.c: New.
Co-Authored-By: Jakub Jelinek <jakub@redhat.com>
From-SVN: r234716
gcc/fortran/ChangeLog:
2016-04-04 Andre Vehreschild <vehre@gcc.gnu.org>
PR fortran/67538
* resolve.c (resolve_allocate_expr): Emit error message when no
array spec and no array valued source= expression is given in an
F2008 allocate() for an array to allocate.
gcc/testsuite/ChangeLog:
2016-04-04 Andre Vehreschild <vehre@gcc.gnu.org>
PR fortran/67538
* gfortran.dg/allocate_with_source_19.f08: New test.
From-SVN: r234714
gcc/fortran/ChangeLog:
2016-04-04 Andre Vehreschild <vehre@gcc.gnu.org>
PR fortran/65795
* trans-array.c (gfc_array_allocate): When the array is a coarray,
do not nullyfing its allocatable components in array_allocate, because
the nullify missed the array ref and nullifies the wrong component.
Cosmetics.
gcc/testsuite/ChangeLog:
2016-04-04 Andre Vehreschild <vehre@gcc.gnu.org>
PR fortran/65795
* gfortran.dg/coarray_allocate_6.f08: New test.
From-SVN: r234710
2016-04-04 Richard Biener <rguenther@suse.de>
PR rtl-optimization/70484
* rtl.h (canon_output_dependence): Declare.
* alias.c (canon_output_dependence): New function.
* dse.c (record_store): Use canon_output_dependence rather
than canon_true_dependence.
* gcc.dg/torture/pr70484.c: New testcase.
From-SVN: r234709
PR ipa/68881
* cgraph.h (symtab_node::copy_visibility_from): New function.
* symtab.c (symtab_node::copy_visibility_from): New function.
* ipa-visibility.c (optimize_weakref): New function.
(function_and_variable_visibility): Use it.
From-SVN: r234708
Fix PR hsa/70402
PR hsa/70402
* hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
value that is really in range handled by SBR instruction.
* hsa-brig.c (emit_switch_insn): Do not emit unconditional
jump.
* hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
* hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
From-SVN: r234707
PR c++/70449
PR c++/70344
* pt.c (instantiate_decl): A function isn't fully defined if
DECL_INITIAL is error_mark_node.
* constexpr.c (cxx_eval_call_expression): Likewise.
From-SVN: r234695
Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate the
"Y" constraint (scalar FP 0.0 immediate).
* gcc/config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
Add the "const_double" to the list of operand constraints.
From-SVN: r234685
PR rtl-optimization/70467
* config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
If low word of the last operand is 0, just emit addition/subtraction
for the high word.
* gcc.target/i386/pr70467-2.c: New test.
From-SVN: r234679
While the expander accepts general_operand as src operand the risbg
pattern only immediate_operand. Unfortunately the expander called
force_reg only for VOIDmode constants missing things like
e.g. symbol_refs. Fixed with the attached patch.
gcc/ChangeLog:
2016-04-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
PR target/70404
* config/s390/s390.c (s390_expand_insv): Check for everything
constant instead of just VOIDmode stuff.
From-SVN: r234678
PR c++/70488
* init.c (warn_placement_new_too_small): Test whether
DECL_SIZE_UNIT or TYPE_SIZE_UNIT are integers that fit into uhwi.
* g++.dg/init/new47.C: New test.
Co-Authored-By: Marek Polacek <polacek@redhat.com>
From-SVN: r234676
Fix PR target/70496
While doing the unified asm rewrite - I inadvertently changed the
meaning of ASM_APP_OFF which causes failures when folks who know what
they are doing switch between arm and thumb states within a
function. The intent of the unified asm rewrite was not to affect any
inline assembler code in that it would remain in divided syntax by
default and switching back to unified asm in normal compiled code
after the inline assembler block. Thanks to Jim Wilson for pointing it
out on the linaro list.
Fixed thusly and a test is added. Tested arm-none-eabi cross and
applied.
Ramana
2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
PR target/70496
* config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM
and TARGET_THUMB.
2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
PR target/70496
* gcc.target/arm/pr70496.c: New test.
From-SVN: r234675