re PR rtl-optimization/70902 (GCC freezes while compiling for 'skylake-avx512' target)
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2016-06-26  Uros Bizjak  <ubizjak@gmail.com>
2
3         PR target/70902
4         PR target/71453
5         PR target/71555
6         PR target/71596
7         PR target/71657
8         * config/i386/i386.c (TARGET_SPILL_CLASS): #if 0 out the definition.
9         (ix86_spill_class): Disable to always return NO_REGS.
10
11 2016-06-26  Jan Hubicka  <hubicka@ucw.cz>
12
13         * predict.c: Include gimple-pretty-print.h
14         (predicted_by_loop_heuristics_p): Check also
15         PRED_LOOP_EXIT_WITH_RECURSION
16         (predict_loops): Find self recursive calls and use special purpose
17         predictors for them; dump log about decisions.
18         (pass_profile::execute): Dump info about #of iterations.
19         * predict.def (PRED_LOOP_EXIT_WITH_RECURSION,
20         (PRED_LOOP_GUARD_WITH_RECURSION): New predictors.
21
22 2016-06-26  John David Anglin  <danglin@gcc.gnu.org>
23
24         * config/pa/pa.c (pa_output_indirect_call): Rework to combine
25         output_asm_insn calls and shorten long lines.  Output .CALL
26         argument descriptor using pa_output_arg_descriptor.  Add various
27         inline $$dyncall and other optimizations.
28         (pa_attr_length_indirect_call): Adjust ordering and lengths.
29
30 2016-06-25  Jakub Jelinek  <jakub@redhat.com>
31
32         PR tree-optimization/71643
33         * tree-ssa-tail-merge.c (find_clusters_1): Ignore basic blocks with
34         EH preds.
35
36         * tree-ssa-tail-merge.c (deps_ok_for_redirect_from_bb_to_bb): Don't
37         leak a bitmap if dep_bb is NULL.
38
39         PR tree-optimization/71631
40         * tree-ssa-reassoc.c (reassociate_bb): Pass true as last argument
41         to rewrite_expr_tree even if negate_result, move new_lhs var
42         declaration and initialization earlier, for powi_result set afterwards
43         new_lhs to lhs.  For negate_result, use new_lhs instead of tmp
44         if new_lhs != lhs, and don't shadow gsi var.
45
46 2016-06-24  Jan Hubicka  <hubicka@ucw.cz>
47
48         * predict.c (predict_paths_leading_to, predict_paths_leading_to_edge):
49         Add in_loop parameter.
50         (predict_loops): Add loop guard heuristics.
51         * predict.def (PRED_LOOP_GUARD): New heuristics.
52
53 2016-06-24  Jan Hubicka  <hubicka@ucw.cz>
54
55         * predict.c: Include ipa-utils.h
56         (tree_bb_level_prediction): Predict recursive calls.
57         (tree_estimate_probability_bb): Skip inexpensive calls for call
58         predictor.
59         * predict.def (PRED_RECURSIVE_CALL): New.
60
61 2016-06-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
62
63         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
64         (BU_FLOAT128_1): Likewise.
65         (FABSQ): Likewise.
66         (COPYSIGNQ): Likewise.
67         (RS6000_BUILTIN_NANQ): Likewise.
68         (RS6000_BUILTIN_NANSQ): Likewise.
69         (RS6000_BUILTIN_INFQ): Likewise.
70         (RS6000_BUILTIN_HUGE_VALQ): Likewise.
71         * config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype.
72         (TARGET_FOLD_BUILTIN): New #define.
73         (rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry.
74         (rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128.
75         (rs6000_fold_builtin): New target hook implementation, handling
76         folding of 128-bit NaNs and infinities.
77         (rs6000_init_builtins): Initialize const_str_type_node; ensure all
78         entries are filled in to avoid problems during bootstrap
79         self-test; define builtins for 128-bit NaNs and infinities.
80         (rs6000_opt_mask): Add entry for float128.
81         * config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define.
82         (RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128.
83         (rs6000_builtin_type_index): Add RS6000_BTI_const_str.
84         (const_str_type_node): New #define.
85         * config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert
86         to a define_expand that dispatches to either copysign<mode>3_soft
87         or copysign<mode>3_hard.
88         (copysign<mode>3_hard): Rename from copysign<mode>3.
89         (copysign<mode>3_soft): New define_insn.
90         * doc/extend.texi: Document new builtins.
91
92 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
93
94         * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using
95         PRIu64 instead of lu.
96
97 2016-06-24  Eric Botcazou  <ebotcazou@adacore.com>
98
99         PR debug/71642
100         * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
101         copy the type name.
102
103 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
104
105         PR tree-optimization/71647
106         * omp-low.c (lower_rec_input_clauses): Convert
107         omp_clause_aligned_alignment (c) to size_type_node for the
108         last argument of __builtin_assume_aligned.
109
110 2016-06-24  H.J. Lu  <hongjiu.lu@intel.com>
111
112         * configure.ac (calling ___tls_get_addr via GOT): New
113         assembler/linker check.
114         (HAVE_AS_IX86_TLS_GET_ADDR_GOT): New.  Defined to 1 if 32-bit
115         assembler and linker supports calling ___tls_get_addr via GOT.
116         Otherise, defined to 0.
117         * config.in: Regenerated.
118         * configure: Likewise.
119         * config/i386/constraints.md (Yb): New constraint.
120         * config/i386/i386.h (reg_class): Add TLS_GOTBASE_REGS.
121         (REG_CLASS_NAMES): Likewise.
122         (REG_CLASS_CONTENTS): Likewise.
123         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Replace
124         the b constraint with the Yb constraint.  Call ___tls_get_addr
125         via GOT for GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT
126         is 1.
127         (*tls_local_dynamic_base_32_gnu): Likewise.
128         (*tls_global_dynamic_64_<mode>): Call _tls_get_addr via GOT for
129         GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT is 1.
130         (*tls_local_dynamic_base_64_<mode>): Likewise.
131
132 2016-06-24  Martin Liska  <mliska@suse.cz>
133
134         * cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
135         * cfgloop.h: Change 'struct loop' to 'const struct loop' for a
136         few functions.
137         * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
138         argument to true if the expected number of iterations is
139         loop-based.
140
141 2016-06-24  Uros Bizjak  <ubizjak@gmail.com>
142
143         * configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to
144         assemble for 32bit target.
145         (HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble
146         and $ld_ix86_gld_32_opt to link for 32bit target.
147         (HAVE_AS_IX86_TLSLDMPLT): Ditto.
148         * configure: Regenerate.
149
150 2016-06-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
151
152         * config/arm/arm.c (int_log2): Delete definition and prototype.
153         (shift_op): Use exact_log2 instead of int_log2.
154         (vfp3_const_double_for_fract_bits): Likewise.
155
156 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
157
158         * internal-fn.c (expand_arith_set_overflow): New function.
159         (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
160         Use it.
161         (expand_arith_overflow_result_store): Likewise.  Handle precision
162         smaller than mode precision.
163         * tree-vrp.c (extract_range_basic): For imag part, handle
164         properly signed 1-bit precision result.
165         * doc/extend.texi (__builtin_add_overflow): Document that last
166         argument can't be pointer to enumerated or boolean type.
167         (__builtin_add_overflow_p): Document that last argument can't
168         have enumerated or boolean type.
169
170 2016-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
171             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
172
173         * config/rs6000/predicates.md (splat_input_operand): Rework.
174         Don't allow constants, since the insns that use this predicate
175         don't support constants.  Constants are handled by other insns
176         that are created via combine.  During and after register
177         allocation, only allow indexed or indirect addresses, and not
178         general addresses.  Only allow modes supported by the hardware.
179         * config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage
180         comment.  Move check for using VSPLTIS<x> to a common location,
181         instead of doing it in two different places.
182
183 2016-06-23  Jocelyn Mayer  <l_indien@magic.fr>
184
185         * config/i386/driver-i386.c (host_detect_local_cpu): Set
186         PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
187         <case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for
188         signature_CENTAUR_ebx.
189
190 2016-06-23  H.J. Lu  <hongjiu.lu@intel.com>
191
192         PR target/66232
193         PR target/67400
194         * configure.ac (as_ix86_tls_ldm_opt): Renamed to ...
195         (as_ix86_gas_32_opt): This.
196         (ld_ix86_tls_ldm_opt): Renamed to ...
197         (ld_ix86_gld_32_opt): This.
198         (R_386_TLS_LDM reloc): Updated.
199         (R_386_GOT32X reloc): New assembler/linker check.
200         (HAVE_AS_IX86_GOT32X): New.  Defined to 1 if 32-bit assembler and
201         linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT".  Otherise,
202         defined to 0.
203         * config.in: Regenerated.
204         * configure: Likewise.
205         * config/i386/i386.c (ix86_force_load_from_GOT_p): Return
206         true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode.
207         (ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt
208         if ix86_force_load_from_GOT_p returns true.
209         (ix86_print_operand_address_as): Also support UNSPEC_GOT if
210         ix86_force_load_from_GOT_p returns true.
211         (ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load
212         the external function address via the GOT slot.
213         (ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and
214         HAVE_AS_IX86_GOT32X before returning false.
215         (ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in
216         32-bit mode if ix86_nopic_noplt_attribute_p returns true.
217
218 2016-06-23  Eric Botcazou  <ebotcazou@adacore.com>
219
220         * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant.
221
222 2016-06-23  Andi Kleen  <ak@linux.intel.com>
223
224         * Makefile.in: Regenerate.
225         * doc/install.texi: Document autoprofiledbootstrap.
226
227 2016-06-23  Andi Kleen  <ak@linux.intel.com>
228
229         * config/i386/gcc-auto-profile: New file.
230
231 2016-06-23  Martin Liska  <mliska@suse.cz>
232
233         PR middle-end/71619
234         * predict.c (predict_loops): Revert the hunk that was removed
235         in r237103.
236
237 2016-06-23  Jakub Sejdak  <jakub.sejdak@phoesys.com>
238
239         * config.gcc: Add support for arm*-*-phoenix* targets.
240         * config/arm/t-phoenix: New.
241         * config/phoenix.h: New.
242
243 2016-06-23  Uros Bizjak  <ubizjak@gmail.com>
244             H.J. Lu  <hongjiu.lu@intel.com>
245
246         PR target/67400
247         * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
248         * config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
249         (ix86_legitimate_constant_p): Do not allow UNSPEC_GOTPCREL if
250         ix86_force_load_from_GOT_p returns true.
251         (ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL if
252         ix86_force_load_from_GOT_p returns true.
253         (ix86_print_operand_address_as): Support UNSPEC_GOTPCREL if
254         ix86_force_load_from_GOT_p returns true.
255         (ix86_expand_move): Load the external function address via the
256         GOT slot if ix86_force_load_from_GOT_p returns true.
257         * config/i386/predicates.md (x86_64_immediate_operand): Return
258         false for SYMBOL_REFs where ix86_force_load_from_GOT_p returns true.
259         (x86_64_zext_immediate_operand): Ditto.
260
261 2016-06-22  Uros Bizjak  <ubizjak@gmail.com>
262
263         * config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
264
265 2016-06-22  David Malcolm  <dmalcolm@redhat.com>
266
267         PR c/70339
268         * diagnostic-core.h (pedwarn_at_rich_loc): New prototype.
269         * diagnostic.c (pedwarn_at_rich_loc): New function.
270         * spellcheck.h (best_match::best_match): Add a
271         "best_distance_so_far" optional parameter.
272         (best_match::set_best_so_far): New method.
273         (best_match::get_best_distance): New accessor.
274         (best_match::get_best_candidate_length): New accessor.
275
276 2016-06-22  Nick Clifton  <nickc@redhat.com>
277
278         * dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in
279         place of GET_MODE_CLASS() == MODE_INT, so that partial integer
280         modes are accepted as well.
281         (ucompare_loc_descriptor): Likewise.
282         (minmax_loc_descriptor): Likewise.
283         (clz_loc_descriptor): Likewise.
284         (popcount_loc_descriptor): Likewise.
285         (bswap_loc_descriptor): Likewise.
286         (rotate_loc_descriptor): Likewise.
287         (mem_loc_descriptor): Likewise.
288         (loc_descriptor): Likewise.
289
290 2016-06-22  David Malcolm  <dmalcolm@redhat.com>
291
292         * common.opt (fdiagnostics-parseable-fixits): New option.
293         * diagnostic.c: Include "selftest.h".
294         (print_escaped_string): New function.
295         (print_parseable_fixits): New function.
296         (diagnostic_report_diagnostic): Call print_parseable_fixits.
297         (selftest::assert_print_escaped_string): New function.
298         (ASSERT_PRINT_ESCAPED_STRING_STREQ): New macro.
299         (selftest::test_print_escaped_string): New function.
300         (selftest::test_print_parseable_fixits_none): New function.
301         (selftest::test_print_parseable_fixits_insert): New function.
302         (selftest::test_print_parseable_fixits_remove): New function.
303         (selftest::test_print_parseable_fixits_replace): New function.
304         (selftest::diagnostic_c_tests): New function.
305         * diagnostic.h (struct diagnostic_context): Add field
306         "parseable_fixits_p".
307         * doc/invoke.texi (Diagnostic Message Formatting Options): Add
308         -fdiagnostics-parseable-fixits.
309         (-fdiagnostics-parseable-fixits): New option.
310         * opts.c (common_handle_option): Handle
311         -fdiagnostics-parseable-fixits.
312         * selftest-run-tests.c (selftest::run_tests): Call
313         selftest::diagnostic_c_tests.
314         * selftest.h (selftest::diagnostic_c_tests): New prototype.
315
316 2016-06-22  Ilya Enkovich  <ilya.enkovich@intel.com>
317
318         PR tree-optimization/71488
319         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Support
320         comparison of boolean vectors.
321         * tree-vect-stmts.c (vectorizable_comparison): Vectorize comparison
322         of boolean vectors using bitwise operations.
323
324 2016-06-22  Andreas Schwab  <schwab@suse.de>
325
326         * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
327         Remove declaration.
328
329 2016-06-22  Eric Botcazou  <ebotcazou@adacore.com>
330
331         * function.c (assign_parm_setup_reg): Prevent sharing in another case.
332
333 2016-06-22  Bernd Edlinger  <bernd.edlinger@hotmail.de>
334
335         * config/i386/i386.c (print_reg): Emit an error message on attempt to
336         print FLAGS_REG.
337
338 2016-06-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
339
340         * config/arm/arm.c (arm_cortex_a73_tune): New struct.
341         * config/arm/arm-cores.def (cortex-a73): New entry.
342         (cortex-a73.cortex-a35): Likewise.
343         (cortex-a73.cortex-a53): Likewise.
344         * config/arm/arm-tables.opt: Regenerate.
345         * config/arm/arm-tune.md: Likewise.
346         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle mcpu=cortex-a73,
347         mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
348         * config/arm/t-aprofile: Handle mcpu=cortex-a73,
349         mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
350         * doc/invoke.texi (ARM Options): Document cortex-a73,
351         cortex-a73.cortex-a35 and cortex-a73.cortex-a53.
352
353 2016-06-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
354
355         * config/aarch64/aarch64.c (cortexa73_tunings): New struct.
356         * config/aarch64/aarch64-cores.def (cortex-a73): New entry.
357         (cortex-a73.cortex-a35): Likewise.
358         (cortex-a73.cortex-a53): Likewise.
359         * config/aarch64/aarch64-tune.md: Regenerate.
360         * doc/invoke.texi (AArch64 Options): Document cortex-a73,
361         cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to
362         -mcpu and -mtune.
363
364 2016-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
365
366         * configure.ac (gcc_cv_as_compress_debug): Remove
367         --compress-debug-sections as extra as switch.
368         Handle gas --compress-debug-sections=type.
369         (gcc_cv_ld_compess_debug): Remove bogus ld_date check.
370         Handle gld --compress-debug-sections=type.
371         * configure: Regenerate.
372
373 2016-06-21  Andrew Burgess  <andrew.burgess@embecosm.com>
374
375         * bb-reorder.c (pass_partition_blocks::gate): Update comment.
376
377 2016-06-21  John David Anglin  <danglin@gcc.gnu.org>
378
379         * gcov-tool.c (profile_rewrite): Use int64_t instead of long long.
380         (do_rewrite): likewise.
381
382 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
383
384         * common/config/mep/mep-common.c: Remove.
385         * config.gcc: Remove mep-* support.
386         * config/mep/constraints.md: Remove.
387         * config/mep/default.h: Remove.
388         * config/mep/intrinsics.h: Remove.
389         * config/mep/intrinsics.md: Remove.
390         * config/mep/ivc2-template.h: Remove.
391         * config/mep/mep-c5.cpu: Remove.
392         * config/mep/mep-core.cpu: Remove.
393         * config/mep/mep-default.cpu: Remove.
394         * config/mep/mep-ext-cop.cpu: Remove.
395         * config/mep/mep-intrin.h: Remove.
396         * config/mep/mep-ivc2.cpu: Remove.
397         * config/mep/mep-pragma.c: Remove.
398         * config/mep/mep-protos.h: Remove.
399         * config/mep/mep.c: Remove.
400         * config/mep/mep.cpu: Remove.
401         * config/mep/mep.h: Remove.
402         * config/mep/mep.md: Remove.
403         * config/mep/mep.opt: Remove.
404         * config/mep/predicates.md: Remove.
405         * config/mep/t-mep: Remove.
406         * doc/install.texi: Remove mep-* documentation.
407         * doc/md.texi: Likewise.
408
409 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
410
411         * config.gcc: Remove support for avr-rtems.
412         * config/avr/gen-avr-mmcu-specs.c: Likewise.
413         * config/avr/rtems.h: Remove.
414         * config/avr/t-rtems: Remove.
415
416 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
417
418         * config.gcc: Remove m32r-rtems support.
419         * config/m32r/rtems.h: Remove.
420
421 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
422
423         * config.gcc: Remove h8300-rtems support.
424         * config/h8300/rtems.h: Remove.
425         * config/h8300/t-rtems: Remove.
426
427 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
428
429         * config.gcc: Remove support for knetbsd.
430         * configure.ac: Likewise.
431         * config/i386/knetbsd-gnu.h: Remove.  * config/i386/knetbsd-gnu64.h: Remove.
432         * config/knetbsd-gnu.h: Remove.
433         * configure: Regenerate.
434
435 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
436
437         * config.gcc: Remove support for openbsd 2 and 3.
438         * config/openbsd-oldgas.h: Remove.
439
440 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
441
442         * config.gcc: Remove interix support.
443         * config/i386/i386-interix.h: Remove.
444         * config/i386/interix.opt: Remove.
445         * config/i386/t-interix: Remove.
446         * configure: Regenerate.
447         * configure.ac: Remove interix support.
448         * doc/install.texi: Remove interix documentation.
449
450 2016-06-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
451
452         * config/rs6000/rs6000.h: Add conditional preprocessing directives
453         to disable Power9-specific compiler features if HAVE_AS_POWER9 is
454         not defined.
455
456 2016-06-21  Eric Botcazou  <ebotcazou@adacore.com>
457
458         * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if
459         they are both PLACEHOLDER_EXPRs.
460
461 2016-06-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
462
463         * stor-layout.c (layout_type): Move setting complex MODE to
464         layout_type, instead of setting it ahead of time by the caller.
465         * tree.c (build_complex_type): Likewise.
466
467 2016-06-21  Martin Liska  <mliska@suse.cz>
468
469         * predict.c (force_edge_cold): Replace imposisble with
470         impossible.
471
472 2016-06-21  Ilya Verbin  <ilya.verbin@intel.com>
473
474         * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
475         * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
476
477 2016-06-21  Ilya Verbin  <ilya.verbin@intel.com>
478
479         * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
480
481 2016-06-21  H.J. Lu  <hongjiu.lu@intel.com>
482             Ilya Enkovich  <ilya.enkovich@intel.com>
483
484         PR target/71549
485         * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
486         New member function to convert V1TImode register to SUBREG
487         TImode in debug insn.
488         (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses
489         after changing register mode to V1TImode.
490
491 2016-06-21  Virendra Pathak  <virendra.pathak@broadcom.com>
492
493         * config/aarch64/aarch64-cores.def (vulcan): New core.
494         * config/aarch64/aarch64-tune.md: Regenerate.
495         * doc/invoke.texi: Document vulcan as an available option.
496
497 2016-06-21  Eric Botcazou  <ebotcazou@adacore.com>
498
499         * cse.c (canon_asm_operands): New function extracted from...
500         (canonicalize_insn): ...here.  Call it to canonicalize an ASM_OPERANDS
501         either standalone or member of a PARALLEL.
502
503 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
504
505         PR target/30417
506         * config/avr/gen-avr-mmcu-specs.c (print_mcu):
507         [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
508         [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
509
510 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
511
512         PR target/71103
513         * config/avr/avr.md (movqi): Only handle loading subreg:qi of
514         constant addresses if can_create_pseudo_p.
515
516 2016-06-21  Jakub Jelinek  <jakub@redhat.com>
517
518         PR tree-optimization/71588
519         * tree-ssa-strlen.c (valid_builtin_call): New function.
520         (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
521         it.
522
523 2016-06-20  Jakub Jelinek  <jakub@redhat.com>
524
525         PR middle-end/71581
526         * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
527         see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
528         for conversion of scalar user var to complex type and use the
529         underlying SSA_NAME_VAR in that case.  If EXPR is still NULL,
530         punt.
531
532         PR rtl-optimization/71591
533         * toplev.c (toplev::run_self_tests): If no_backend, complain and
534         don't run any tests.
535
536 2016-06-20  Hans-Peter Nilsson  <hp@axis.com>
537
538         PR target/71571
539         * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
540         delay-slot "nop" for PIC with CRIS v32.  Also add missing leading
541         space for PIC with non-v32 and the common non-PIC "jump".
542
543 2016-06-20  Jakub Jelinek  <jakub@redhat.com>
544
545         PR target/71559
546         * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
547         returned values and add UN*/LTGT/*ORDERED cases with values matching
548         D operand modifier on vcmp for AVX.
549
550 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
551
552         * config/aarch64/aarch64.opt
553         (mpc-relative-literal-loads): Rename internal option name.
554         * config/aarch64/aarch64.c
555         (aarch64_nopcrelative_literal_loads): Rename to
556         aarch64_pcrelative_literal_loads.
557         (aarch64_expand_mov_immediate): Likewise.
558         (aarch64_secondary_reload): Likewise.
559         (aarch64_can_use_per_function_literal_pools_p): Likewise.
560         (aarch64_override_options_after_change_1): Rename and simplify logic.
561         (aarch64_classify_symbol): Merge large model checks into switch,
562         remove pc-relative load check.
563
564 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
565
566         * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
567         costs relative to the cost of a register move.
568
569 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
570
571         * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
572         (vcvt_n_f64_u64): Likewise.
573         (vcvt_n_s64_f64): Likewise.
574         (vcvt_n_u64_f64): Likewise.
575         (vcvt_f64_s64): Likewise.
576         (vrecpe_f64): Likewise.
577         (vcvt_f64_u64): Likewise.
578         (vrecps_f64): Likewise.
579
580 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
581
582         * config/aarch64/aarch64.md
583         (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
584         iterators.
585         (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise.  Correct
586         attributes.
587         * config/aarch64/aarch64-builtins.c
588         (aarch64_types_binop_uss_qualifiers): Delete.
589         (TYPES_BINOP_USS): Likewise.
590         (aarch64_types_binop_sus_qualifiers): Likewise.
591         (TYPES_BINOP_SUS): Likewise.
592         (aarch64_types_fcvt_from_unsigned_qualifiers): New.
593         (TYPES_FCVTIMM_SUS): Likewise.
594         * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
595         rather than BINOP.
596         (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
597         (fcvtzs): Use SHIFTIMM rather than BINOP.
598         (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.
599
600 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
601
602         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
603         costs relative to the cost of a register move.
604
605 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
606
607         * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
608         Allow scalar/single vector modes to be tieable.
609
610 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
611
612         * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
613
614 2016-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
615
616         * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
617         "alignement".
618         * tree.h (TYPE_ALIGN): Likewise.
619
620 2016-06-20  Georg-Johann Lay  <avr@gjlay.de>
621
622         PR target/71103
623         * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
624
625 2016-06-20  Georg-Johann Lay  <avr@gjlay.de>
626
627         * config/avr/avr.c (avr_print_operand): Fix "format not a string
628         literal" build warnings.
629         (avr_print_operand_address): Dito.
630
631 2016-06-19  David Edelsohn  <dje.gcc@gmail.com>
632
633         PR target/71375
634         * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
635         * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
636
637 2016-06-18  John David Anglin  <danglin@gcc.gnu.org>
638
639         * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
640
641 2016-06-18  Eric Botcazou  <ebotcazou@adacore.com>
642
643         PR bootstrap/71435
644         * reload1.c (reload): Pass 0 to finish_spills when called because
645         update_eliminables_and_spill returns true and remove did_spill.
646         (finish_spills): Adjust comment and document GLOBAL parameter.
647
648 2016-06-17  DJ Delorie  <dj@redhat.com>
649
650         PR target/71338
651         * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
652         * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
653         (umulqihi3_virt): Likewise.
654         * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
655         (umulqihi3_real): Likewise.
656
657 2016-06-17  Martin Liska  <mliska@suse.cz>
658
659         * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
660
661 2016-06-17  Martin Liska  <mliska@suse.cz>
662
663         * predict.def: PRED_LOOP_EXIT from 92 to 85.
664
665 2016-06-17  James Greenhalgh  <james.greenhalgh@arm.com>
666
667         * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
668         __FAST_MATH__.
669         (vaddq_f32): Likewise.
670         (vmul_f32): Likewise.
671         (vmulq_f32): Likewise.
672         (vsub_f32): Likewise.
673         (vsubq_f32): Likewise.
674
675 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
676
677         PR tree-optimization/71347
678         * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
679         cost for all uses in group.
680
681 2016-06-17 Bin Cheng  <bin.cheng@arm.com>
682
683         * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
684         insert gimple seq if it's not empty.
685
686 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
687
688         * tree-vectorizer.h (struct dr_with_seg_len): Remove class
689         member OFFSET.
690         * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
691         rather than OFFSET.
692         (comp_dr_with_seg_len_pair): Ditto.
693         (vect_prune_runtime_alias_test_list): Ditto.  Also Canonicalize
694         struct dr_with_seg_len_pair against DR_OFFSET.
695         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle
696         DR_OFFSET directly.
697
698 2016-06-17  Szabolcs Nagy  <szabolcs.nagy@arm.com>
699
700         * config/aarch64/geniterators.sh: Handle parenthesised conditions.
701
702 2016-06-16  John David Anglin  <danglin@gcc.gnu.org>
703
704         * config/pa/pa.c (pa_output_pic_pcrel_sequence): New.
705         (pa_output_lbranch): Use pa_output_pic_pcrel_sequence.
706         (pa_output_millicode_call): Likewise.
707         (pa_output_call): Likewise.
708         (pa_output_indirect_call): Likewise.
709         (pa_asm_output_mi_thunk): Likewise.
710
711 2016-06-16  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
712
713         * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
714
715 2016-06-16  Martin Liska  <mliska@suse.cz>
716
717         * predict.c (combine_predictions_for_insn): When we find a first
718         match predictor, we should consider just predictors with
719         PRED_FLAG_FIRST_MATCH.  Print either first match (if any) or
720         DS theory predictor.
721         (combine_predictions_for_bb): Likewise.
722
723 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
724
725         * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
726         with base of reference to struct.
727
728 2016-06-16  Uros Bizjak  <ubizjak@gmail.com>
729
730         * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
731
732 2016-06-16  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
733
734         PR target/71151
735         * config/avr/avr.c (avr_asm_init_sections): Remove setup of
736         progmem_swtable_section.
737         (progmem_swtable_section): Remove.
738         (avr_asm_function_rodata_section): Remove.
739         (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
740         * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1.
741
742 2016-06-16  Jocelyn Mayer  <l_indien@magic.fr>
743
744         * config/i386/driver-i386.c (host_detect_local_cpu): Set
745         PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.
746         <case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for
747         signature_CENTAUR_ebx.
748         * config/i386/i386.c (ix86_option_override_internal): Add
749         definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4,
750         nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4.
751         * doc/invoke.texi (x86 Options): Document new VIA -march entries.
752
753 2016-06-16  Martin Liska  <mliska@suse.cz>
754
755         * predict.def: Add fortran loop preheader predictor.
756         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
757         fold IFN_BUILTIN_EXPECT with a known constant argument.
758
759 2016-06-16  Martin Liska  <mliska@suse.cz>
760
761         * predict.def: Add 'Fortran' to display text of all
762         PRED_FORTRAN_* predictors.
763
764 2016-06-16  Uros Bizjak  <ubizjak@gmail.com>
765
766         PR target/71242
767         * config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New.
768         [IA64_BUILTIN_NANSQ]: Ditto.
769         (ia64_fold_builtin): New function.
770         (TARGET_FOLD_BUILTIN): New define.
771         (ia64_init_builtins) Declare const_string_type node.
772         Add __builtin_nanq and __builtin_nansq builtin functions.
773         (ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ.
774
775 2016-06-16  Nick Clifton  <nickc@redhat.com>
776
777         * config/msp430/msp430-opts.h (msp430_hwmult_types): Add
778         MSP430_HWMULT_ prefix to enum values.
779         (msp430_regions): Add MSP430_REGION_ prefix to enum values.
780         * config/msp430/msp430.c: Update use of enum values.
781         * config/msp430/msp430.md: Likewise.
782         * config/msp430/msp430.opt: Likewise.
783
784 2016-06-16  Jan Hubicka  <hubicka@ucw.cz>
785
786         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
787         of comparsions in the last iteration.
788
789 2016-06-16  Claudiu Zissulescu  <claziss@synopsys.com>
790             Joern Rennecke  <joern.rennecke@embecosm.com>
791
792         * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
793         addresses.
794         (arc_needs_pcl_p): Add GOTOFFPC.
795         (arc_legitimate_pic_addr_p): Likewise.
796         (arc_output_pic_addr_const): Likewise.
797         (arc_legitimize_pic_address): Generate a pc-relative address using
798         GOTOFFPC.
799         (arc_output_libcall): Use @pcl syntax.
800         (arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC.
801         * config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC.
802         (*movsi_insn): Use @pcl syntax.
803         (doloop_begin_i): Likewise.
804
805 2016-06-16  Martin Liska  <mliska@suse.cz>
806
807         * predict.def: Define a new predictor.
808
809 2016-06-16  Claudiu Zissulescu  <claziss@synopsys.com>
810
811         * config/arc/arc.opt (mtp-regno): Update text.
812
813 2016-06-16  Renlin Li  <renlin.li@arm.com>
814
815         * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
816
817 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
818
819         PR target/71554
820         * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
821         (setcc + and peephole2): Likewise.
822
823         PR rtl-optimization/71532
824         * cse.c (cse_insn): For const/pure calls, invalidate argument passing
825         memory slots.
826
827 2016-06-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
828
829         * config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading
830         DImode constants with XXSPLTIB in vector registers.
831         (vsx_extract_<mode>, V2DImode/V2DFmode): Combine both
832         vsx_extract_<mode>_internal{1,2} into a single insn that handles
833         direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes
834         extraction of the element at the top of the register as a scalar
835         value.
836         (vsx_extract_<mode>_internal1): Likewise.
837         (vsx_extract_<mode>_internal2): Likewise.
838         * config/rs6000/constraints.md (wi constraint): Remove a comment
839         about DImode not being allowed in Altivec registers.
840         (wB constraint): New constraint for constants that can be
841         generated in Altivec registers with VSPLTISW/VUPKHSW.
842         * config/rs6000/predicates.md (xxspltib_constant_split): Update
843         comments.
844         (xxspltib_constant_nosplit): Likewise.
845         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add
846         support for -mupper-regs-di to enable DImode to go into Altivec
847         registers.
848         (POWERPC_MASKS): Likewise.
849         (power7 cpu): Likewise.
850         * config/rs6000/rs6000.opt (-mupper-regs-di): Likewise.
851         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
852         for DImode being allowed in Altivec registers.  Update wi/wj
853         constraints.  Set scalar_in_vmx_p flag.
854         (rs6000_option_override_internal): Add checks for -mupper-regs-di.
855         (xxspltib_constant_p): Allow CONST_INT's with VOIDmode.  Don't
856         return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB.
857         (rs6000_opt_masks): Add -mupper-regs-di.
858         * config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use
859         direct move to use wi and not wj.
860         (lfiwzx): Likewise.
861         (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
862         alternative.
863         (floatunssi<mode>2_lfiwzx_mem): Likewise.
864         (fix_trunc<mode>di2_fctidz): Change second alternative to allow
865         any VSX register, instead of just Altivec registers, to allow
866         either operand to be an Altivec register or both.
867         (fixuns_trunc<mode>di2_fctiduz): Likewise.
868         (movdi_internal32): Add support for -mupper-regs-di.  Add support
869         to load constants via XXSPLTIB or VSPLTISW.  Add spacing to allow
870         the alternatives and attributes to be lined up to be easier to
871         read.
872         (movdi_internal64): Likewise.
873         (64-bit DImode splitters): Change predicates to only split loading
874         up GPR registers.  Add splits for using XXSPLTIB or VSPLTISW to
875         load constants in ISA 3.0 or ISA 2.07 respectively.
876         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
877         -mupper-regs-di.  Update -mupper-regs-df and -mupper-regs-sf to
878         mention -mcpu=power9 sets these options.
879         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the
880         wB constraint.
881
882 2016-06-15  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
883
884         PR target/67353
885         * config/avr/avr.c (avr_set_current_function): Warn misspelled
886         interrupt/ signal handler if -Wmisspelled-isr flag is enabled.
887         * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled
888         by default to warn misspelled interrupt/ signal handler.
889         * doc/invoke.texi (AVR Options): Document it. Update description
890         for -nodevicelib option.
891
892 2016-06-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
893
894         * config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean
895         up parentheses.  Use GET_MODE_UNIT_BITSIZE.
896         (aarch64_<sur>shll2_n<mode>): Likewise.
897
898 2016-06-15  Ilya Enkovich  <ilya.enkovich@intel.com>
899
900         PR middle-end/71529
901         * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
902         DECL_CONTEXT for copied arguments.
903
904 2016-06-15  Alan Hayward  <alan.hayward@arm.com>
905
906         PR tree-optimization/71483
907         * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
908         for slp
909
910 2016-06-15  Martin Liska  <mliska@suse.cz>
911
912         * predict.c (tree_predict_by_opcode): Call predict_edge_def
913         instead of predict_edge w/o a probability.
914
915 2016-06-15  Alan Hayward  <alan.hayward@arm.com>
916
917         PR tree-optimization/71439
918         * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
919         live PHIs.
920
921 2016-06-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
922
923         * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
924         register subregs in SET_SRC.
925
926 2016-06-15  Richard Biener  <rguenther@suse.de>
927
928         * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
929         store restrictions.
930
931 2016-06-15  Richard Biener  <rguenther@suse.de>
932
933         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
934         not consider dependences between accesses that belong to the
935         same group.
936         (vect_analyze_data_ref_dependences): Do not analyze read-read
937         or self-dependences.
938
939 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
940
941         * spellcheck-tree.c: Include spellcheck-tree.h rather than
942         spellcheck.h.
943         (find_closest_identifier): Reimplement in terms of
944         best_match<tree,tree>.
945         * spellcheck-tree.h: New file.
946         * spellcheck.c (struct edit_distance_traits<const char *>): New
947         struct.
948         (find_closest_string): Reimplement in terms of
949         best_match<const char *, const char *>.
950         * spellcheck.h (levenshtein_distance): Move prototype of tree-based
951         overload to spellcheck-tree.h.
952         (find_closest_identifier): Likewise.
953         (struct edit_distance_traits<T>): New template.
954         (class best_match): New class.
955
956 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
957
958         * selftest-run-tests.c (selftest::run_tests): Call
959         selftest::spellcheck_tree_c_tests.
960         * selftest.h (selftest::spellcheck_tree_c_tests): New decl.
961         * spellcheck-tree.c: Include selftest.h and stringpool.h.
962         (selftest::test_find_closest_identifier): New function.
963         (selftest::spellcheck_tree_c_tests): New function.
964         * spellcheck.c (selftest::test_find_closest_string): Verify that
965         the order of the vec does not affect the results for this case.
966         (selftest::test_data): New array.
967         (selftest::test_metric_conditions): New function.
968         (selftest::spellcheck_c_tests): Add a test of case-comparison.
969         Call selftest::test_metric_conditions.
970
971 2016-06-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
972
973         * config/rs6000/rs6000-builtin.def (commentary): Typo.
974         (BU_P9_MISC_1): Likewise.
975         (BU_P9_64BIT_MISC_0): Likewise.
976         (BU_P9_MISC_0): Likewise.
977
978 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
979
980         * gcc-rich-location.c
981         (gcc_rich_location::add_fixit_misspelled_id): New method.
982         * gcc-rich-location.h
983         (gcc_rich_location::add_fixit_misspelled_id): Add decl.
984
985 2016-06-14  Andreas Tobler  <andreast@gcc.gnu.org>
986
987         * config/arm/freebsd.h: Only enable unaligned access for armv6 on
988         FreeBSD 11 and above.
989
990 2016-06-14  Uros Bizjak  <ubizjak@gmail.com>
991
992         * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
993
994 2016-06-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
995
996         * expmed.h: Close parenthesis in "at your option" in copyright
997         boilerplate.
998         * lower-subreg.h: Likewise.
999
1000 2016-06-14  Richard Biener  <rguenther@suse.de>
1001
1002         PR middle-end/71526
1003         * genmatch.c (expr::gen_transform): Use in_type for comparisons
1004         if available.
1005
1006 2015-06-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1007
1008         * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
1009         New function.
1010         (aarch64_rtx_costs): Use it.  Rewrite CONST_INT_P (op1) case to handle
1011         mask+shift version.
1012         * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
1013         New prototype.
1014         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
1015         matching condition with aarch64_mask_and_shift_for_ubfiz_p.
1016
1017 2016-06-14  Richard Biener  <rguenther@suse.de>
1018
1019         PR tree-optimization/71522
1020         * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
1021         copying into float copying.
1022
1023 2016-06-14  Jakub Jelinek  <jakub@redhat.com>
1024
1025         PR tree-optimization/71520
1026         * tree-ssa-tail-merge.c (find_duplicate): Handle labels.
1027         (replace_block_by): Move user labels from bb1 to bb2.
1028
1029 2016-06-14  Richard Biener  <rguenther@suse.de>
1030
1031         PR middle-end/71310
1032         PR bootstrap/71510
1033         * expr.h (get_bit_range): Declare.
1034         * expr.c (get_bit_range): Export.
1035         * fold-const.c (optimize_bit_field_compare): Use get_bit_range and
1036         word_mode again to constrain the bitfield access.
1037
1038 2016-06-14  Richard Biener  <rguenther@suse.de>
1039
1040         PR tree-optimization/71521
1041         * tree-vrp.c (extract_range_from_binary_expr_1): Guard
1042         division int_const_binop against zero divisor.
1043
1044 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
1045
1046         * config/i386/i386.md (signbittf2): New expander.
1047         * config/i386/sse.md (ptesttf2): New insn pattern.
1048
1049 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
1050
1051         PR bootstrap/71481
1052         * input.c (selftest::test_reading_source_line): Avoid reading from
1053         __FILE__ by creating a tempfile with known content and reading
1054         from that instead.
1055
1056 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
1057
1058         * pretty-print.c (assert_pp_format_colored): Skip the test if
1059         GCC_COLORS is set.
1060         (test_pp_format): Remove comment about GCC_COLORS.
1061
1062 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
1063
1064         * input.c (test_reading_source_line): Use SELFTEST_LOCATION.
1065         * pretty-print.c (assert_pp_format_va): Add location param and use
1066         it with ASSERT_STREQ_AT.
1067         (assert_pp_format): Add location param and pass it to
1068         assert_pp_format_va.
1069         (assert_pp_format_colored): Likewise.
1070         (ASSERT_PP_FORMAT_1): New.
1071         (ASSERT_PP_FORMAT_2): New.
1072         (ASSERT_PP_FORMAT_3): New.
1073         (test_pp_format): Provide SELFTEST_LOCATION throughout, either
1074         explicitly, or implicitly via the above macros.
1075         * selftest.c (selftest::pass): Use a selftest::location rather
1076         than file and line.
1077         (selftest::fail): Likewise.  Print the function name.
1078         (selftest::fail_formatted): Likewise.
1079         (selftest::assert_streq): Use a selftest::location rather than
1080         file and line.
1081         * selftest.h (selftest::location): New struct.
1082         (SELFTEST_LOCATION): New macro.
1083         (selftest::pass): Accept a const location & rather than file
1084         and line.
1085         (selftest::fail): Likewise.
1086         (selftest::fail_formatted): Likewise.
1087         (selftest::assert_streq): Likewise.
1088         (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
1089         (ASSERT_FALSE): Likewise.
1090         (ASSERT_EQ): Likewise.
1091         (ASSERT_NE): Likewise.
1092         (ASSERT_STREQ): Likewise.
1093         (ASSERT_PRED1): Likewise.
1094         (ASSERT_STREQ_AT): New macro.
1095
1096 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
1097
1098         * selftest.c (selftest::fail_formatted): New function.
1099         (selftest::assert_streq): New function.
1100         * selftest.h (selftests::fail_formatted): New decl.
1101         (selftest::assert_streq): New decl.
1102         (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq.
1103
1104 2016-06-13  Jeff Law  <law@redhat.com>
1105
1106         PR tree-optimization/71403
1107         * tree-ssa-threadbackward.c
1108         (convert_and_register_jump_thread_path): No longer accept reference
1109         to path.  Do not pop items off the path anymore.
1110         (fsm_find_control_statement_thread_paths): Do not allow threading
1111         to a deeper loop nest.  Pop the last item off the path here rather
1112         than in convert_and_register_jump_thread_path.
1113
1114 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
1115             Wilco Dijkstra  <Wilco.Dijkstra@arm.com>
1116
1117         [AArch64] Emit division using the Newton series
1118
1119         * config/aarch64/aarch64-protos.h
1120         (cpu_approx_modes): Add new member "division".
1121         (aarch64_emit_approx_div): Declare new function.
1122         * config/aarch64/aarch64.c
1123         (generic_approx_modes): New member "division".
1124         (exynosm1_approx_modes): Likewise.
1125         (xgene1_approx_modes): Likewise.
1126         (aarch64_emit_approx_div): Define new function.
1127         * config/aarch64/aarch64.md ("div<mode>3"): New expansion.
1128         * config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise.
1129         * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option.
1130         * doc/invoke.texi (-mlow-precision-div): Describe new option.
1131
1132 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
1133             Wilco Dijkstra  <wilco.dijkstra@arm.com>
1134
1135         [AArch64] Emit square root using the Newton series
1136
1137         * config/aarch64/aarch64-protos.h
1138         (aarch64_emit_approx_rsqrt): Replace with new function
1139         "aarch64_emit_approx_sqrt".
1140         (cpu_approx_modes): New member "sqrt".
1141         * config/aarch64/aarch64.c
1142         (generic_approx_modes): New member "sqrt".
1143         (exynosm1_approx_modes): Likewise.
1144         (xgene1_approx_modes): Likewise.
1145         (aarch64_emit_approx_rsqrt): Replace with new function
1146         "aarch64_emit_approx_sqrt".
1147         (aarch64_override_options_after_change_1): Handle new option.
1148         * config/aarch64/aarch64-simd.md
1149         (rsqrt<mode>2): Use new function instead.
1150         (sqrt<mode>2): New expansion and insn definitions.
1151         * config/aarch64/aarch64.md: Likewise.
1152         * config/aarch64/aarch64.opt
1153         (mlow-precision-sqrt): Add new option description.
1154         * doc/invoke.texi (mlow-precision-sqrt): Likewise.
1155
1156 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
1157
1158         [AArch64] Add more choices for the reciprocal square root approximation
1159
1160         Allow a target to prefer such operation depending on the operation mode.
1161
1162         * config/aarch64/aarch64-protos.h
1163         (AARCH64_APPROX_MODE): New macro.
1164         (AARCH64_APPROX_{NONE,ALL}): Likewise.
1165         (cpu_approx_modes): New structure.
1166         (tune_params): New member "approx_modes".
1167         * config/aarch64/aarch64-tuning-flags.def
1168         (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
1169         * config/aarch64/aarch64.c
1170         (generic_approx_modes): New core "cpu_approx_modes" structure.
1171         (exynosm1_approx_modes): Likewise.
1172         (xgene1_approx_modes): Likewise.
1173         (generic_tunings): New member "approx_modes".
1174         (cortexa35_tunings): Likewise.
1175         (cortexa53_tunings): Likewise.
1176         (cortexa57_tunings): Likewise.
1177         (cortexa72_tunings): Likewise.
1178         (exynosm1_tunings): Likewise.
1179         (thunderx_tunings): Likewise.
1180         (xgene1_tunings): Likewise.
1181         (use_rsqrt_p): New argument for the mode and use new member from
1182         "tune_params".
1183         (aarch64_builtin_reciprocal): Devise mode from builtin.
1184         (aarch64_optab_supported_p): New argument for the mode.
1185         * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.
1186
1187 2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
1188
1189         * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
1190         RS6000_BTM_MODULO flag into the set of flags that are considered
1191         to be part of the common configuration.
1192
1193 2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
1194
1195         * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
1196         difference unsigned.
1197         (vec_absdb): New macro for vector absolute difference unsigned
1198         byte.
1199         (vec_absdh): New macro for vector absolute difference unsigned
1200         half-word.
1201         (vec_absdw): New macro for vector absolute difference unsigned word.
1202         * config/rs6000/altivec.md (UNSPEC_VADU): New value.
1203         (vadu<mode>3): New insn.
1204         (*p9_vadu<mode>3): New insn.
1205         * config/rs6000/rs6000-builtin.def (vadub): New built-in
1206         definition.
1207         (vaduh): New built-in definition.
1208         (vaduw): New built-in definition.
1209         (vadu): New overloaded built-in definition.
1210         (vadub): New overloaded built-in definition.
1211         (vaduh): New overloaded built-in definition.
1212         (vaduw): New overloaded built-in definition.
1213         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1214         overloaded vector absolute difference unsigned functions.
1215         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
1216         the ISA 3.0 vector absolute difference unsigned built-in functions.
1217
1218 2016-06-13  Eric Botcazou  <ebotcazou@adacore.com>
1219
1220         * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
1221         update shared_lookup_references only once after changing operands.
1222
1223 2016-06-13  Thomas Schwinge  <thomas@codesourcery.com>
1224
1225         PR middle-end/71373
1226         * tree-nested.c (convert_nonlocal_omp_clauses)
1227         (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
1228
1229         * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
1230         * tree.def (CASE_LABEL_EXPR): Likewise.
1231
1232 2016-06-13  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1233
1234         PR bootstrap/71481
1235         * input.c (test_builtins): Fix an assertion.
1236
1237 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
1238
1239         * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
1240         (paritysi2): Ditto.
1241         (isinfxf2): Ditto.
1242         (isinf<mode>2): Ditto.
1243
1244 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
1245
1246         * ggc-tests.c (test_finalization): Only test need_finalization_p
1247         for GCC_VERSION >= 4003.
1248
1249 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1250
1251         * config/s390/vecintrin.h: Fix file description in comment.
1252
1253 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1254
1255         * config/s390/s390-builtin-types.def: Change builtin type naming
1256         scheme to match builtin-types.def.
1257
1258 2016-06-13  Marc Glisse  <marc.glisse@inria.fr>
1259
1260         * fold-const.c (optimize_minmax_comparison): Remove.
1261         (fold_comparison): Remove call to the above.
1262         * match.pd (MIN (X, Y) == X, MIN (X, 5) == 0, MIN (X, C1) < C2):
1263         New transformations.
1264
1265 2016-06-13  Alan Hayward  <alan.hayward@arm.com>
1266
1267         PR tree-optimization/71416
1268         * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
1269         multiple entries
1270
1271 2016-06-13  Martin Liska  <mliska@suse.cz>
1272
1273         * predict.c (enum predictor_reason): Prefix enum with REASON_.
1274         (combine_predictions_for_insn): Likewise.
1275         (prune_predictions_for_bb): Likewise.
1276         (combine_predictions_for_bb): Likewise.
1277
1278 2016-06-13  Richard Biener  <rguenther@suse.de>
1279
1280         PR tree-optimization/71505
1281         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
1282         assert match comment.
1283
1284 2016-06-13  Marek Polacek  <polacek@redhat.com>
1285
1286         PR middle-end/71476
1287         * gimplify.c (maybe_warn_switch_unreachable): Factored out of
1288         gimplify_switch_expr.
1289         (warn_switch_unreachable_r): New function.
1290
1291 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1292
1293         PR target/71379
1294         * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
1295         one.
1296
1297 2016-06-13  Richard Biener  <rguenther@suse.de>
1298
1299         PR middle-end/64516
1300         * fold-const.c (fold_unary_loc): Preserve alignment when
1301         folding a VIEW_CONVERT_EXPR into a MEM_REF.
1302
1303 2016-06-13  Martin Liska  <mliska@suse.cz>
1304
1305         PR sanitizer/71458
1306         * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
1307         w/ -fsanitize=bounds.
1308
1309 2016-06-12  Uros Bizjak  <ubizjak@gmail.com>
1310
1311         * config/i386/i386.c (ix86_init_builtins): Calculate
1312         FLOAT128_FTYPE_CONST_STRING function type only once.
1313         * doc/extend.texi (x86 Built-in Functions): Update text, __float128
1314         built-in functions are available for x86-32 and x86-64 targets.
1315
1316 2016-06-12  Uros Bizjak  <ubizjak@gmail.com>
1317
1318         PR target/71241
1319         * config/i386/i386.i386-builtin-types.def (CONST_STRING):
1320         New primitive type.
1321         (FLOAT128_FTYPE_CONST_STRING): New function type.
1322         * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_NANQ]: New.
1323         [IX86_BUILTIN_NANSQ]: Ditto.
1324         (ix86_fold_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
1325         (ix86_init_builtin_types): Declare const_string_type_node.
1326         (ix86_init_builtins): Add __builtin_nanq and __builtin_nansq
1327         builtin functions.
1328         (ix86_expand_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
1329         * doc/extend.texi (x86 Built-in Functions): Document
1330         __builtin_nanq and __builtin_nansq.
1331
1332 2016-06-11  Jiong Wang  <jiong.wang@arm.com>
1333
1334         PR target/71061
1335         * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration.
1336         * config/arm/arm.c (arm_attr_length_pop_multi): New function to return
1337         length for pop patterns.
1338         (arm_attr_length_push_multi): Update comments.
1339         * config/arm/arm.md (*load_multiple_with_writeback): Set "length"
1340         attribute.
1341         (*pop_multiple_with_writeback_and_return): Likewise.
1342         (*pop_multiple_with_return): Likewise.
1343
1344 2016-06-11  Segher Boessenkool  <segher@kernel.crashing.org>
1345
1346         PR middle-end/71310
1347         * fold-const.c (optimize_bit_field_compare): Don't try to use
1348         word_mode unconditionally for reading the bit field, look at
1349         DECL_BIT_FIELD_REPRESENTATIVE instead.
1350
1351 2016-06-11  Kugan Vivekanandarajah  <kuganv@linaro.org>
1352
1353         PR middle-end/71478
1354         * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
1355         vector integer type.
1356
1357 2016-06-10  Jakub Jelinek  <jakub@redhat.com>
1358
1359         PR middle-end/71494
1360         * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
1361         without LABEL_DECL, set *handled_ops_p to false instead of true.
1362
1363 2016-06-10  Martin Sebor  <msebor@redhat.com>
1364
1365         PR c/71392
1366         * builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro.
1367         (ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same.
1368         * builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use
1369         them.
1370         (BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same.
1371         (BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same.
1372         (BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same.
1373         (BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same.
1374         (BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
1375         (BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
1376         (BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
1377         (BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same.
1378
1379 2016-06-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1380
1381         * config/arm/arm.h (pool_vector_label,
1382         return_used_this_function): Remove.
1383
1384 2016-06-10  Jeff Law  <law@redhat.com>
1385
1386         PR tree-optimization/71335
1387         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Filter out
1388         zero length paths here.
1389         (convert_and_register_jump_thread_path): Remove hacks related to
1390         duplicated blocks in the jump thread path.
1391         (fsm_find_control_statement_thread_paths): Avoid putting the same
1392         block on the thread path twice, but ensure the thread path is
1393         unchanged from the caller's point of view.
1394
1395 2016-06-10  Jan Hubicka  <hubicka@ucw.cz>
1396
1397         * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
1398         * predict.def (PRED_LOOP_BRANCH): Remove.
1399
1400 2016-06-10  David Malcolm  <dmalcolm@redhat.com>
1401
1402         * Makefile.in (OBJS): Add ggc-tests.o.
1403         (GTFILES): Add ggc-tests.c.
1404         * ggc-tests.c: New file.
1405         * selftest-run-tests.c (selftest::run_tests): Call
1406         selftest::ggc_tests_c_tests.
1407         * selftest.h (selftest::ggc_tests_c_tests): New prototype.
1408
1409 2016-06-10  Alexander Monakov  <amonakov@ispras.ru>
1410
1411         * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
1412
1413 2016-06-10  Maxim Ostapenko  <m.ostapenko@samsung.com>
1414
1415         PR sanitizer/71480
1416         * varasm.c (place_block_symbol): Adjust alignment for asan protected
1417         STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
1418
1419 2016-06-10  Jan Hubicka  <hubicka@ucw.cz>
1420
1421         * profile.c: Include cfgloop.h.
1422         (branch_prob): Compute estimated number of iterations.
1423         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
1424         recompute estimate number of iterations from profile.
1425
1426 2016-06-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1427
1428         PR inline-asm/68843
1429         * reg-stack.c (check_asm_stack_operands): Explicit input arguments
1430         must be grouped on top of stack.  Don't force early clobber
1431         on ordinary reg outputs.
1432
1433 2016-06-10  Richard Biener  <rguenther@suse.de>
1434
1435         * targhooks.c (default_builtin_vectorization_cost): Adjust
1436         vec_construct cost.
1437
1438 2016-06-10  Richard Biener  <rguenther@suse.de>
1439
1440         * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
1441         to fold the RHS to a constant if possible.
1442
1443 2016-06-10  Thomas Schwinge  <thomas@codesourcery.com>
1444
1445         PR middle-end/71373
1446         * tree-nested.c (convert_nonlocal_omp_clauses)
1447         (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
1448         OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
1449         OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
1450
1451         * gimplify.c (gimplify_adjust_omp_clauses): Discard
1452         OMP_CLAUSE_TILE.
1453         * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
1454
1455         * omp-low.c (scan_sharing_clauses): Don't expect
1456         OMP_CLAUSE__CACHE_.
1457
1458 2016-06-10  Alan Hayward  <alan.hayward@arm.com>
1459
1460         PR tree-optimization/71407
1461         PR tree-optimization/71416
1462         * tree-vect-loop.c (vectorizable_live_operation): Use vectype for
1463         BIT_FIELD_REF type.
1464
1465 2016-06-10  Richard Biener  <rguenther@suse.de>
1466
1467         PR middle-end/71477
1468         * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
1469
1470 2016-06-09  Eric Botcazou  <ebotcazou@adacore.com>
1471
1472         * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
1473
1474 2016-06-09  Vladimir Makarov  <vmakarov@redhat.com>
1475             Jiong Wang  <jiong.wang@arm.com>
1476
1477         PR rtl-optimization/70751
1478         * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
1479         spilled into memory.
1480
1481 2016-06-09  Jonathan Yong  <10walls@gmail.com>
1482
1483         Revert:
1484         2015-09-21  Jonathan Yong  <10walls@gmail.com>
1485
1486         * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
1487         sysroot/usr/lib/32api for additional win32 libraries,
1488         fixes failing Cygwin bootstrapping.
1489
1490 2016-06-09  Marcin Baczyński  <marbacz@gmail.com>
1491
1492         * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
1493         Delete.
1494
1495 2016-06-09  David Malcolm  <dmalcolm@redhat.com>
1496
1497         PR bootstrap/71471
1498         * pretty-print.c (pp_indent): Specify that %p is printed in a
1499         host-dependent manner.
1500         (test_pp_format): Remove the test for %p.
1501
1502 2016-06-09  Maciej W. Rozycki  <macro@imgtec.com>
1503
1504         * config/mips/mips.c (mips_output_jump): Fix formatting.
1505
1506 2016-06-09  Richard Biener  <rguenther@suse.de>
1507
1508         PR tree-optimization/71462
1509         * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
1510         removed blocks.
1511
1512 2016-06-09  Martin Liska  <mliska@suse.cz>
1513
1514         * predict.c (dump_prediction): Add new argument.
1515         (enum predictor_reason): New enum.
1516         (struct predictor_hash): New struct.
1517         (predictor_hash::hash): New function.
1518         (predictor_hash::equal): Likewise.
1519         (not_removed_prediction_p): New function.
1520         (prune_predictions_for_bb): Likewise.
1521         (combine_predictions_for_bb): Prune predictions.
1522
1523 2016-06-09  Martin Liska  <mliska@suse.cz>
1524
1525         * predict.c (filter_predictions): New function.
1526         (remove_predictions_associated_with_edge): Use the filter
1527         function.
1528         (equal_edge_p): New function.
1529
1530 2016-06-09  Stefan Bruens  <stefan.bruens@rwth-aachen.de>
1531
1532         * doc/invoke.texi (ARM Options): Use lexicographical ordering.
1533         Correct usage of @samp vs @option, add @samp where appropriate.
1534         Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
1535         Add armv6s-m and document it, as it is no official ARM name.
1536
1537 2016-06-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1538
1539         * ifcvt.c (struct noce_if_info): Add transform_name field.
1540         (noce_try_move): Set if_info->transform_name to the function name.
1541         (noce_try_ifelse_collapse): Likewise.
1542         (noce_try_store_flag): Likewise.
1543         (noce_try_inverse_constants): Likewise.
1544         (noce_try_store_flag_constants): Likewise.
1545         (noce_try_addcc): Likewise.
1546         (noce_try_store_flag_mask): Likewise.
1547         (noce_try_cmove): Likewise.
1548         (noce_try_cmove_arith): Likewise.
1549         (noce_try_minmax): Likewise.
1550         (noce_try_abs): Likewise.
1551         (noce_try_sign_mask): Likewise.
1552         (noce_try_bitop): Likewise.
1553         (noce_convert_multiple_sets): Likewise.
1554         (noce_process_if_block): Print if_info->transform_name to
1555         dump_file if transformation succeeded.
1556
1557 2016-06-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1558
1559         * config/arm/cortex-a57.md (cortex_a57_alu):
1560         Handle csel type.
1561
1562 2016-06-08  Martin Sebor  <msebor@redhat.com>
1563             Jakub Jelinek  <jakub@redhat.com>
1564
1565         PR c++/70507
1566         PR c/68120
1567         * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
1568         BUILT_IN_MUL_OVERFLOW_P): New builtins.
1569         * builtins.c: Include gimple-fold.h.
1570         (fold_builtin_arith_overflow): Handle
1571         BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
1572         (fold_builtin_3): Likewise.
1573         * doc/extend.texi (Integer Overflow Builtins): Document
1574         __builtin_{add,sub,mul}_overflow_p.
1575
1576 2016-06-08  Jose E. Marchesi  <jose.marchesi@oracle.com>
1577
1578         * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
1579         SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
1580
1581 2016-06-08  Alan Lawrence  <alan.lawrence@arm.com>
1582
1583         * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
1584         Rewrite, looking one level down for records and arrays.
1585
1586 2016-06-08  David Malcolm  <dmalcolm@redhat.com>
1587
1588         * pretty-print.c: Include "selftest.h".
1589         (pp_format): Fix comment.
1590         (identifier_to_locale): Likewise.
1591         (selftest::test_basic_printing): New function.
1592         (selftest::assert_pp_format): New function.
1593         (selftest::test_pp_format): New function.
1594         (selftest::pretty_print_c_tests): New function.
1595         * selftest-run-tests.c (selftest::run_tests): Call
1596         selftest::pretty_print_c_tests.
1597         * selftest.h (pretty_print_c_tests): New declaration.
1598
1599 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
1600
1601         * invoke.texi (max-loop-headers-insns): Document.
1602         * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
1603         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
1604         (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
1605
1606 2016-06-08  Richard Biener  <rguenther@suse.de>
1607
1608         * tree-vect-stmts.c (vectorizable_load): Remove restrictions
1609         on strided SLP loads and fall back to scalar loads in case
1610         we can't chunk them.
1611
1612 2016-06-08  Richard Biener  <rguenther@suse.de>
1613
1614         PR tree-optimization/71452
1615         * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
1616         type used for the SSA rewrite has enough precision to cover
1617         the dynamic type of the location.
1618
1619 2016-06-08  Jakub Jelinek  <jakub@redhat.com>
1620             Richard Biener  <rguenther@suse.de>
1621
1622         PR c++/71448
1623         * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
1624         the same as DECL_P (base0) for indirect_base0.  Use equality_code
1625         in one further place.
1626
1627 2016-06-08  Richard Sandiford  <richard.sandiford@arm.com>
1628
1629         * expmed.c (store_bit_field_1): Do not restrict a multiword op0
1630         to one word if the field is known to overlap other words.
1631         (extract_bit_field_1): Likewise.
1632         (store_split_bit_field): Remove compensating code.
1633         (extract_split_bit_field): Likewise.
1634
1635 2016-06-08  Bernd Schmidt  <bschmidt@redhat.com>
1636
1637         PR debug/71432
1638         PR ada/71413
1639         * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
1640
1641 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1642
1643         * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
1644         VDQF.
1645         * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
1646         (arch64_addpv4sf): Delete.
1647         (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
1648         "gen_aarch64_addpv4sf".
1649         * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly.  Use
1650         builtin.
1651         (vpadds_f32): Likewise.
1652         (vpaddq_f32): Likewise.
1653         (vpaddq_f64): Likewise.
1654
1655 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1656
1657         * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
1658         VALLF.
1659         * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
1660         to VALLF.  Rename to "fabd<mode>3".
1661         "*fabd_scalar<mode>3): Delete.
1662         * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
1663         Use builtin.
1664         (vabdd_f64): Likewise.
1665         (vabd_f32): Likewise.
1666         (vabd_f64): Likewise.
1667         (vabdq_f32): Likewise.
1668         (vabdq_f64): Likewise.
1669
1670 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1671
1672         * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
1673         VALLF.
1674         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
1675         "aarch64_rsqrts<mode>".
1676         * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
1677         * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly.  Use
1678         builtin.
1679         (vrsqrtsd_f64): Likewise.
1680         (vrsqrts_f32): Likewise.
1681         (vrsqrts_f64): Likewise.
1682         (vrsqrtsq_f32): Likewise.
1683         (vrsqrtsq_f64): Likewise.
1684
1685 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1686
1687         * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
1688         VALLF.
1689         * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
1690         "aarch64_rsqrte<mode>".
1691         * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
1692         * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly.  Use
1693         builtin.
1694         (vrsqrted_f64): Likewise.
1695         (vrsqrte_f32): Likewise.
1696         (vrsqrte_f64): Likewise.
1697         (vrsqrteq_f32): Likewise.
1698         (vrsqrteq_f64): Likewise.
1699
1700 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1701
1702         * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
1703         (ucvtf): Likewise.
1704         (fcvtzs): Likewise.
1705         (fcvtzu): Likewise.
1706         * config/aarch64/aarch64-simd.md
1707         (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
1708         (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
1709         * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
1710         Use builtin.
1711         (vcvt_n_f32_u32): Likewise.
1712         (vcvt_n_s32_f32): Likewise.
1713         (vcvt_n_u32_f32): Likewise.
1714         (vcvtq_n_f32_s32): Likewise.
1715         (vcvtq_n_f32_u32): Likewise.
1716         (vcvtq_n_f64_s64): Likewise.
1717         (vcvtq_n_f64_u64): Likewise.
1718         (vcvtq_n_s32_f32): Likewise.
1719         (vcvtq_n_s64_f64): Likewise.
1720         (vcvtq_n_u32_f32): Likewise.
1721         (vcvtq_n_u64_f64): Likewise.
1722         * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
1723         (VSDQ_SDI): Likewise.
1724         (fcvt_target): Support V4DI, V4SI and V2SI.
1725         (FCVT_TARGET): Likewise.
1726
1727 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1728
1729         * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
1730         (TYPES_BINOP_SUS): Likewise.
1731         (aarch64_simd_builtin_data): Update include file name.
1732         (aarch64_builtins): Likewise.
1733         * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
1734         for conversion between scalar float-point and fixed-point.
1735         (ucvtf): Likewise.
1736         (fcvtzs): Likewise.
1737         (fcvtzu): Likewise.
1738         * config/aarch64/aarch64.md
1739         (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
1740         pattern for conversion between scalar float to fixed-pointer.
1741         (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
1742         (UNSPEC_FCVTZS): New UNSPEC enumeration.
1743         (UNSPEC_FCVTZU): Likewise.
1744         (UNSPEC_SCVTF): Likewise.
1745         (UNSPEC_UCVTF): Likewise.
1746         * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
1747         Use builtin.
1748         (vcvtd_n_f64_u64): Likewise.
1749         (vcvtd_n_s64_f64): Likewise.
1750         (vcvtd_n_u64_f64): Likewise.
1751         (vcvtd_n_f32_s32): Likewise.
1752         (vcvts_n_f32_u32): Likewise.
1753         (vcvtd_n_s32_f32): Likewise.
1754         (vcvts_n_u32_f32): Likewise.
1755         * config/aarch64/iterators.md (fcvt_target): Support integer to float
1756         mapping.
1757         (FCVT_TARGET): Likewise.
1758         (FCVT_FIXED2F): New iterator.
1759         (FCVT_F2FIXED): Likewise.
1760         (fcvt_fixed_insn): New define_int_attr.
1761
1762 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
1763
1764         * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
1765         some statements was removed.
1766
1767 2016-06-08  Alan Hayward  <alan.hayward@arm.com>
1768
1769         * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
1770         * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
1771         (vect_can_advance_ivs_p): likewise.
1772         (vect_update_ivs_after_vectorizer): likewise.
1773         * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
1774         (vect_analyze_scalar_cycles_1): likewise.
1775         (vect_analyze_loop_operations): likewise.
1776         (report_vect_op): likewise.
1777         (vect_is_slp_reduction): likewise.
1778         (vect_is_simple_reduction): likewise.
1779         (get_initial_def_for_induction): likewise.
1780         (vect_transform_loop): likewise.
1781         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
1782         (vect_recog_sad_pattern): likewise.
1783         (vect_recog_widen_sum_pattern): likewise.
1784         (vect_recog_widening_pattern): likewise.
1785         (vect_recog_divmod_pattern): likewise.
1786         * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
1787         (vect_analyze_slp_instance): likewise.
1788         (vect_transform_slp_perm_load): likewise.
1789         (vect_schedule_slp_instance): likewise.
1790
1791 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
1792
1793         * predict.c (predict_iv_comparison): Mention that heuristics is broken.
1794         (return_prediction): PRED_CONST_RETURN predict return as not taken.
1795         * predict.def (PRED_CONTINUE): Change hitrate 50->67
1796         (PRED_LOOP_BRANCH): Document predictor as broken.
1797         (PRED_LOOP_EXIT): Change hitrate 91->92.
1798         (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
1799         (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
1800         (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
1801         (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
1802         (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
1803         (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
1804         (PRED_CALL): Chane hitrate 71->67.
1805         (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
1806         (PRED_GOTO): Document as unused right now.
1807         (PRED_CONST_RETURN): Change hitrate 67->69
1808         (PRED_NEGATIVE_RETURN): Change hitrate 96->98
1809         (PRED_NULL_RETURN): Change hitrate 91->90.
1810         (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
1811         (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
1812         (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
1813
1814 2016-06-07  Bill Seurer  <seurer@linux.vnet.ibm.com>
1815
1816         * config/rs6000/altivec.h: Add __builtin_vec_mul.
1817         * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
1818         special case Altivec builtin.
1819         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
1820         VSX_BUILTIN_VEC_MUL (replaced with special case code).
1821         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
1822         code for ALTIVEC_BUILTIN_VEC_MUL.
1823         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
1824         for __builtin_vec_mul.
1825
1826 2016-06-07  Peter Bergner  <bergner@vnet.ibm.com>
1827
1828         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
1829         -mno-htm.
1830
1831 2016-06-07  David Malcolm  <dmalcolm@redhat.com>
1832
1833         * spellcheck.c (selftest::test_find_closest_string): New function.
1834         (spellcheck_c_tests): Call the above.
1835
1836 2016-06-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1837
1838         * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
1839
1840 2016-06-07  Jakub Jelinek  <jakub@redhat.com>
1841
1842         * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
1843         Yv=Yv,C alternatives.
1844
1845 2016-06-07  Richard Biener  <rguenther@suse.de>
1846
1847         PR c/61564
1848         * common.opt (ffast-math): Make Optimization.
1849
1850 2016-06-07  Simon Dardis  <simon.dardis@imgtec.com>
1851             Prachi Godbole  <prachi.godbole@imgtec.com>
1852
1853         * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
1854         `fabs' and `fneg' type attributes.
1855         (p5600_fpu_fabs): Add `fmove' to the comment.
1856
1857 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
1858
1859         * gimple.c: Include builtins.h
1860         (gimple_inexpensive_call_p): New function.
1861         * gimple.h (gimple_inexpensive_call_p): Declare.
1862         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
1863         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
1864         fix formatting.
1865
1866 2016-06-07  Paolo Carlini  <paolo.carlini@oracle.com>
1867
1868         * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
1869         (inform, inform_at_rich_loc, inform_n, warning, warning_at,
1870         warning_at_rich_loc, warning_n, pedwarn, permerror,
1871         permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
1872         sorry, fatal_error, internal_error, internal_error_no_backtrace):
1873         Use the above.
1874
1875 2016-06-07  Richard Biener  <rguenther@suse.de>
1876
1877         PR tree-optimization/71428
1878         * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
1879         BIT_FIELD_REF op vs. load.
1880
1881 2016-06-07  Richard Biener  <rguenther@suse.de>
1882
1883         PR middle-end/71423
1884         * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
1885         for signed ops.
1886
1887 2016-06-06  John David Anglin  <danglin@gcc.gnu.org>
1888
1889         * config/pa/pa.md (call): Generate indirect long calls to non-local
1890         functions on TARGET_64BIT.
1891         (call_value): Likewise.
1892
1893 2016-06-06  John David Anglin  <danglin@gcc.gnu.org>
1894
1895         * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
1896         pattern and subsequent splitters.
1897         (call_val_reg_64bit_post_reload): Likewise.
1898
1899 2016-06-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
1900
1901         PR middle-end/71408
1902         * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
1903         propagate_op_to_single_use.
1904
1905 2016-06-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
1906
1907         PR middle-end/71281
1908         * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
1909
1910 2016-06-07  Uros Bizjak  <ubizjak@gmail.com>
1911
1912         * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
1913         (enum x86_dirflag_state): New enum.
1914         (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
1915         (machine_function): Remove needs_cld.
1916         (ix86_current_function_needs_cld): Remove.
1917         * config/i386/i386.c (ix86_set_func_type): Set
1918         ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
1919         (ix86_expand_prologue): Do not emit CLD here.
1920         (ix86_dirflag_mode_needed): New function.
1921         (ix86_dirflag_mode_entry): Ditto.
1922         (ix86_mode_needed): Handle X86_DIRFLAG entity.
1923         (ix86_mode_after): Ditto.
1924         (ix86_mode_entry): Ditto.
1925         (ix86_mode_exit): Ditto.
1926         (ix86_emit_mode_set): Ditto.
1927         * config/i386/i386.md (strmov_singleop): Set
1928         ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
1929         Do not set ix86_current_function_needs_cld.
1930         (rep_mov): Ditto.
1931         (strset_singleop): Ditto.
1932         (rep_stos): Ditto.
1933         (cmpstrnqi_nz_1): Ditto.
1934         (cmpstrnqi_1): Ditto.
1935         (strlenqi_1): Ditto.
1936
1937 2016-06-06  Jakub Jelinek  <jakub@redhat.com>
1938
1939         PR tree-optimization/71259
1940         * tree-vect-slp.c (vect_get_constant_vectors): For
1941         VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
1942         one for constant op, and use COND_EXPR for non-constant.
1943
1944 2016-06-06  David Malcolm  <dmalcolm@redhat.com>
1945
1946         * Makefile.in (OBJS): Add function-tests.o,
1947         hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
1948         selftest-run-tests.o.
1949         (OBJS-libcommon): Add selftest.o.
1950         (OBJS-libcommon-target): Add selftest.o.
1951         (all.internal): Add "selftest".
1952         (all.cross): Likewise.
1953         (selftest): New phony target.
1954         (s-selftest): New target.
1955         (selftest-gdb): New phony target.
1956         (COLLECT2_OBJS): Add selftest.o.
1957         * bitmap.c: Include "selftest.h".
1958         (selftest::test_gc_alloc): New function.
1959         (selftest::test_set_range): New function.
1960         (selftest::test_clear_bit_in_middle): New function.
1961         (selftest::test_copying): New function.
1962         (selftest::test_bitmap_single_bit_set_p): New function.
1963         (selftest::bitmap_c_tests): New function.
1964         * common.opt (fself-test): New.
1965         * diagnostic-show-locus.c: Include "selftest.h".
1966         (make_range): New function.
1967         (test_range_contains_point_for_single_point): New function.
1968         (test_range_contains_point_for_single_line): New function.
1969         (test_range_contains_point_for_multiple_lines): New function.
1970         (assert_eq): New function.
1971         (test_get_line_width_without_trailing_whitespace): New function.
1972         (selftest::diagnostic_show_locus_c_tests): New function.
1973         * et-forest.c: Include "selftest.h".
1974         (selftest::test_single_node): New function.
1975         (selftest::test_simple_tree): New function.
1976         (selftest::test_disconnected_nodes): New function.
1977         (selftest::et_forest_c_tests): New function.
1978         * fold-const.c: Include "selftest.h".
1979         (selftest::assert_binop_folds_to_const): New function.
1980         (selftest::assert_binop_folds_to_nonlvalue): New function.
1981         (selftest::test_arithmetic_folding): New function.
1982         (selftest::fold_const_c_tests): New function.
1983         * function-tests.c: New file.
1984         * gimple.c: Include "selftest.h".
1985         Include "gimple-pretty-print.h".
1986         (selftest::verify_gimple_pp): New function.
1987         (selftest::test_assign_single): New function.
1988         (selftest::test_assign_binop): New function.
1989         (selftest::test_nop_stmt): New function.
1990         (selftest::test_return_stmt): New function.
1991         (selftest::test_return_without_value): New function.
1992         (selftest::gimple_c_tests): New function.
1993         * hash-map-tests.c: New file.
1994         * hash-set-tests.c: New file.
1995         * input.c: Include "selftest.h".
1996         (selftest::assert_loceq): New function.
1997         (selftest::test_accessing_ordinary_linemaps): New function.
1998         (selftest::test_unknown_location): New function.
1999         (selftest::test_builtins): New function.
2000         (selftest::test_reading_source_line): New function.
2001         (selftest::input_c_tests): New function.
2002         * rtl-tests.c: New file.
2003         * selftest-run-tests.c: New file.
2004         * selftest.c: New file.
2005         * selftest.h: New file.
2006         * spellcheck.c: Include "selftest.h".
2007         (selftest::levenshtein_distance_unit_test_oneway): New function,
2008         adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
2009         (selftest::levenshtein_distance_unit_test): Likewise.
2010         (selftest::spellcheck_c_tests): Likewise.
2011         * toplev.c: Include selftest.h.
2012         (toplev::run_self_tests): New.
2013         (toplev::main): Handle -fself-test.
2014         * toplev.h (toplev::run_self_tests): New.
2015         * tree.c: Include "selftest.h".
2016         (selftest::test_integer_constants): New function.
2017         (selftest::test_identifiers): New function.
2018         (selftest::test_labels): New function.
2019         (selftest::tree_c_tests): New function.
2020         * tree-cfg.c: Include "selftest.h".
2021         (selftest::push_fndecl): New function.
2022         (selftest::test_linear_chain): New function.
2023         (selftest::test_diamond): New function.
2024         (selftest::test_fully_connected): New function.
2025         (selftest::tree_cfg_c_tests): New function.
2026         * vec.c: Include "selftest.h".
2027         (selftest::safe_push_range): New function.
2028         (selftest::test_quick_push): New function.
2029         (selftest::test_safe_push): New function.
2030         (selftest::test_truncate): New function.
2031         (selftest::test_safe_grow_cleared): New function.
2032         (selftest::test_pop): New function.
2033         (selftest::test_safe_insert): New function.
2034         (selftest::test_ordered_remove): New function.
2035         (selftest::test_unordered_remove): New function.
2036         (selftest::test_block_remove): New function.
2037         (selftest::reverse_cmp): New function.
2038         (selftest::test_qsort): New function.
2039         (selftest::vec_c_tests): New function.c.
2040         * wide-int.cc: Include selftest.h and wide-int-print.h.
2041         (selftest::from_int <wide_int>): New function.
2042         (selftest::from_int <offset_int>): New function.
2043         (selftest::from_int <widest_int>): New function.
2044         (selftest::assert_deceq): New function.
2045         (selftest::assert_hexeq): New function.
2046         (selftest::test_printing <VALUE_TYPE>): New function template.
2047         (selftest::test_ops <VALUE_TYPE>): New function template.
2048         (selftest::test_comparisons <VALUE_TYPE>): New function template.
2049         (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
2050         template.
2051         (selftest::wide_int_cc_tests): New function.
2052
2053 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2054
2055         PR middle-end/37780
2056         * ifcvt.c (noce_try_ifelse_collapse): New function.
2057         Declare prototype.
2058         (noce_process_if_block): Call noce_try_ifelse_collapse.
2059         * simplify-rtx.c (simplify_cond_clz_ctz): New function.
2060         (simplify_ternary_operation): Use the above to simplify
2061         conditional CLZ/CTZ expressions.
2062
2063 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2064
2065         PR middle-end/37780
2066         * config/aarch64/aarch64.md (ctz<mode>2): Convert to
2067         define_insn_and_split.
2068
2069 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2070
2071         PR middle-end/37780
2072         * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
2073
2074 2016-06-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2075
2076         PR c/24414
2077         * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
2078         Implicitly clobber memory for basic asm with non-empty assembler
2079         string.  Use targetm.md_asm_adjust also here.
2080         * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
2081         * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
2082         * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
2083         non-empty assembler string.
2084         * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
2085         * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
2086         (decode_asm_operands): Handle basic asm in PARALLEL block.
2087         (extract_insn): Handle basic asm in PARALLEL block.
2088         * doc/extend.texi: Mention new behavior of basic asm.
2089         * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
2090         * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
2091         branch_needs_nop_p): Use asm_noperands.
2092
2093 2016-06-06  Jose E. Marchesi  <jose.marchesi@oracle.com>
2094
2095         * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
2096         Include the M7 SPARC DFA scheduler.
2097         New attribute v3pipe.
2098         Annotate insns with v3pipe where appropriate.
2099         Define cpu_feature vis4.
2100         Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
2101         Add (V8QI "8") to vbits.
2102         Add insns {add,sub}v8qi3
2103         Add insns ss{add,sub}v8qi3
2104         Add insns us{add,sub}{v8qi,v4hi}3
2105         Add insns {min,max}{v8qi,v4hi,v2si}3
2106         Add insns {minu,maxu}{v8qi,v4hi,v2si}3
2107         Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
2108         * config/sparc/niagara4.md: Add a comment explaining the
2109         discrepancy between the documented latenty numbers and the
2110         implemented ones.
2111         * config/sparc/niagara7.md: New file.
2112         * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
2113         supports SPARC5 and VIS 4.0 instructions.
2114         * configure: Regenerate.
2115         * config.in: Likewise.
2116         * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
2117         * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
2118         TARGET_CPU_niagara7.
2119         (ASM_CPU64_DEFAULT_SPEC): Likewise.
2120         (CPP_CPU_SPEC): Handle niagara7.
2121         (ASM_CPU_SPEC): Likewise.
2122         * config/sparc/sparc-opts.h (processor_type): Add
2123         PROCESSOR_NIAGARA7.
2124         (mvis4): New option.
2125         * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
2126         (AS_NIAGARA7_FLAG): Define.
2127         (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
2128         (CPP_CPU64_DEFAULT_SPEC): Likewise.
2129         (CPP_CPU_SPEC): Handle niagara7.
2130         (ASM_CPU_SPEC): Likewise.
2131         * config/sparc/sparc.c (niagara7_costs): Define.
2132         (sparc_option_override): Handle niagara7 and adjust cache-related
2133         parameters with better values for niagara cpus.  Also support VIS4.
2134         (sparc32_initialize_trampoline): Likewise.
2135         (sparc_use_sched_lookahead): Likewise.
2136         (sparc_issue_rate): Likewise.
2137         (sparc_register_move_cost): Likewise.
2138         (dump_target_flag_bits): Support VIS4.
2139         (sparc_vis_init_builtins): Likewise.
2140         (sparc_builtins): Likewise.
2141         * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
2142         VIS4 4.0.
2143         * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
2144         UltraSparc M7.
2145         * config/sparc/sparc.opt (sparc_processor_type): New value
2146         niagara7.
2147         * config/sparc/visintrin.h (__attribute__): Prototypes for the
2148         VIS4 builtins.
2149         * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
2150         -mvis4.
2151         * doc/extend.texi (SPARC VIS Built-in Functions): Document the
2152         VIS4 builtins.
2153
2154 2016-06-06  Jonathan Wakely  <jwakely@redhat.com>
2155
2156         * doc/sourcebuild.texi (Directives): Remove extra closing braces.
2157
2158 2016-06-06  Richard Biener  <rguenther@suse.de>
2159
2160         PR tree-optimization/71398
2161         * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
2162         remove edges.
2163
2164 2016-06-05  James Bowman  <james.bowman@ftdichip.com>
2165
2166         * config/ft32/ft32.c (ft32_setup_incoming_varargs,
2167         ft32_expand_prolog, ft32_expand_epilogue):
2168         Handle pretend_args.
2169         * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
2170         * config/ft32/ft32.md: Add pretend_returner.
2171
2172 2016-06-06  Uros Bizjak  <ubizjak@gmail.com>
2173
2174         PR target/71389
2175         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
2176         Copy op1 RTX to avoid invalid sharing.
2177         (ix86_expand_vector_move_misalign): Ditto.
2178
2179 2016-06-05  John David Anglin  <danglin@gcc.gnu.org>
2180
2181         * expr.c (move_by_pieces_d::generate): Mark mode parameter with
2182         ATTRIBUTE_UNUSED.
2183
2184 2016-06-05  Jan Hubicka  <hubicka@ucw.cz>
2185
2186         * predict.c (predicted_by_loop_heuristics_p): New function.
2187         (predict_iv_comparison): Use it.
2188         (predict_loops): Walk from innermost loops; do not predict edges
2189         leaving multiple loops multiple times; implement
2190         PRED_LOOP_ITERATIONS_MAX heuristics.
2191         * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
2192
2193 2016-06-05  Jan Hubicka  <hubicka@ucw.cz>
2194
2195         * cfg.c (check_bb_profile): Do not report mismatched profiles when
2196         only edges out of BB are EH edges.
2197
2198 2016-06-04  Martin Sebor  <msebor@redhat.com>
2199             Marcin Baczyński  <marbacz@gmail.com>
2200
2201         PR c/48116
2202         * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
2203         a void expression in a void function.
2204
2205 2016-06-03  Jan Hubicka  <hubicka@ucw.cz>
2206
2207         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
2208         aux; dump reasons of decisions.
2209         (should_duplicate_loop_header_p): Likewise.
2210         (do_while_loop_p): Likewise.
2211         (ch_base::copy_headers): Dump asi num insns duplicated.
2212
2213 2016-06-04  Jakub Jelinek  <jakub@redhat.com>
2214
2215         PR tree-optimization/71405
2216         * tree-ssa.c (execute_update_addresses_taken): For clobber with
2217         incompatible type, build a new clobber with the right type instead
2218         of building a VIEW_CONVERT_EXPR around it.
2219
2220 2016-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
2221
2222         PR tree-optimization/52171
2223         * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
2224         by_pieces_ninsns instead of move_by_pieces_ninsns.
2225
2226 2016-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
2227
2228         * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
2229         for reg+reg addressing mode.
2230
2231 2016-06-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2232
2233         * rs6000-c.c (c/c-tree.h): Add #include.
2234         (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
2235         in C++ when found in the base position of vec_ld or vec_st.
2236
2237 2016-06-03  Jan Hubicka  <hubicka@ucw.cz>
2238
2239         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
2240         use of profile unless profile status is PROFILE_READ.
2241         * profile.c (compute_branch_probabilities): Set profile status
2242         only after reporting predictor hitrates.
2243
2244 2016-06-03  Joseph Myers  <joseph@codesourcery.com>
2245
2246         PR target/71276
2247         PR target/71277
2248         * common.opt (ffp-int-builtin-inexact): New option.
2249         * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
2250         * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
2251         (ceil@var{m}2): Document dependence on this option.
2252         * ipa-inline-transform.c (inline_call): Handle
2253         flag_fp_int_builtin_inexact.
2254         * ipa-inline.c (can_inline_edge_p): Likewise.
2255         * config/i386/i386.md (rintxf2): Do not test
2256         flag_unsafe_math_optimizations.
2257         (rint<mode>2_frndint): New define_insn.
2258         (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
2259         or !flag_trapping_math for SSE.  Just use gen_rint<mode>2_frndint
2260         for 387 instead of extending and truncating.
2261         (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
2262         !flag_trapping_math instead of flag_unsafe_math_optimizations.
2263         Change to frndint<mode>2_<rounding>.
2264         (frndintxf2_<rounding>_i387): Likewise.  Change to
2265         frndint<mode>2_<rounding>_i387.
2266         (<rounding_insn>xf2): Likewise.
2267         (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
2268         !flag_trapping_math instead of flag_unsafe_math_optimizations for
2269         x87.  Test TARGET_ROUND || !flag_trapping_math ||
2270         flag_fp_int_builtin_inexact instead of !flag_trapping_math for
2271         SSE.  Use ROUND_NO_EXC in constant operand of
2272         gen_sse4_1_round<mode>2.  Just use gen_frndint<mode>2_<rounding>
2273         for 387 instead of extending and truncating.
2274
2275 2016-06-03  H.J. Lu  <hongjiu.lu@intel.com>
2276             Julia Koval  <julia.koval@intel.com>
2277
2278         PR target/66960
2279         PR target/67630
2280         PR target/67634
2281         PR target/67841
2282         PR target/68037
2283         PR target/68618
2284         PR target/68661
2285         PR target/69575
2286         PR target/69596
2287         PR target/69734
2288         * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
2289         * config/i386/i386.c (ix86_conditional_register_usage): Preserve
2290         all registers, except for function return registers if there are
2291         no caller-saved registers.
2292         (ix86_set_func_type): New function.
2293         (ix86_set_current_function): Call ix86_set_func_type to set
2294         no_caller_saved_registers and func_type.  Call reinit_regs if
2295         caller-saved registers are changed.  Don't allow MPX, SSE, MMX
2296         nor x87 instructions in interrupt handler nor function with
2297         no_caller_saved_registers attribute.
2298         (ix86_function_ok_for_sibcall): Return false if there are no
2299         caller-saved registers.
2300         (type_natural_mode): Don't warn ABI change for MMX in interrupt
2301         handler.
2302         (ix86_function_arg_advance): Skip for callee in interrupt handler.
2303         (ix86_function_arg): Return special arguments in interrupt handler.
2304         (ix86_promote_function_mode): Promote pointer to word_mode only
2305         for normal functions.
2306         (ix86_can_use_return_insn_p): Don't use `ret' instruction in
2307         interrupt handler.
2308         (ix86_epilogue_uses): New function.
2309         (ix86_hard_regno_scratch_ok): Likewise.
2310         (ix86_save_reg): Preserve all registers in interrupt handler
2311         after reload.  Preserve all registers, except for function return
2312         registers, if there are no caller-saved registers after reload.
2313         (find_drap_reg): Always use callee-saved register if there are
2314         no caller-saved registers.
2315         (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
2316         for interrupt handler.
2317         (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
2318         Emit cld instruction if stringops are used in interrupt handler
2319         or interrupt handler isn't a leaf function.
2320         (ix86_expand_epilogue): Generate interrupt return for interrupt
2321         handler and pop the 'ERROR_CODE' off the stack before interrupt
2322         return in exception handler.
2323         (ix86_expand_call): Disallow calling interrupt handler directly.
2324         If there are no caller-saved registers, mark all registers that
2325         are clobbered by the call which returns as clobbered.
2326         (ix86_handle_no_caller_saved_registers_attribute): New function.
2327         (ix86_handle_interrupt_attribute): Likewise.
2328         (ix86_attribute_table): Add interrupt and no_caller_saved_registers
2329         attributes.
2330         (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
2331         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
2332         accumulation in interrupt function if stack may be realigned to
2333         avoid DRAP.
2334         (EPILOGUE_USES): New.
2335         (function_type): New enum.
2336         (machine_function): Add func_type and no_caller_saved_registers.
2337         * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
2338         (interrupt_return): New pattern.
2339         * doc/extend.texi: Document x86 interrupt and
2340         no_caller_saved_registers attributes.
2341
2342 2016-06-03  Bernd Schmidt  <bschmidt@redhat.com>
2343
2344         PR tree-optimization/52171
2345         * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
2346         (expand_builtin_memcmp): New arg RESULT_EQ.  All callers changed.
2347         Look for constant strings.  Move some code to emit_block_cmp_hints
2348         and use it.
2349         * builtins.def (BUILT_IN_MEMCMP_EQ): New.
2350         * defaults.h (COMPARE_MAX_PIECES): New macro.
2351         * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
2352         (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
2353         (clear_by_pieces_1): Don't declare.  Move definition before use.
2354         (can_do_by_pieces): New static function.
2355         (can_move_by_pieces): Use it.  Return bool.
2356         (by_pieces_ninsns): Renamed from move_by_pieces_ninsns.  New arg
2357         OP.  All callers changed.  Handle COMPARE_BY_PIECES.
2358         (class pieces_addr); New.
2359         (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
2360         pieces_addr::adjust, pieces_addr::increment_address,
2361         pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
2362         functions for it.
2363         (class op_by_pieces_d): New.
2364         (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
2365         functions for it.
2366         (class move_by_pieces_d, class compare_by_pieces_d,
2367         class store_by_pieces_d): New subclasses of op_by_pieces_d.
2368         (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
2369         move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
2370         store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
2371         compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
2372         compare_by_pieces_d::finish_mode): New member functions.
2373         (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
2374         functions.
2375         (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
2376         (emit_block_cmp_hints): New function.
2377         (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
2378         use the newly defined classes.
2379         * expr.h (by_pieces_constfn): New typedef.
2380         (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
2381         (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
2382         (move_by_pieces_ninsns): Don't declare.
2383         (can_move_by_pieces): Change return value to bool.
2384         * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
2385         (compare_by_pieces_branch_ratio): New hook.
2386         * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
2387         (by_pieces_ninsns): Declare.
2388         * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
2389         COMPARE_BY_PIECES.
2390         (default_compare_by_pieces_branch_ratio): New function.
2391         * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
2392         * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
2393         * doc/tm.texi: Regenerate.
2394         * tree-ssa-strlen.c: Include "builtins.h".
2395         (handle_builtin_memcmp): New static function.
2396         (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
2397         * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
2398
2399 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
2400
2401         * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
2402         relevant stmts which are simple and invariant.
2403         * tree-vect-loop.c (vectorizable_live_operation): Check relevance
2404         instead of simple and invariant
2405
2406 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
2407
2408         * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
2409         (vectorizable_reduction): Check for new relevant state.
2410         (vectorizable_live_operation): vectorize live stmts using
2411         BIT_FIELD_REF.  Remove special case for gimple assigns stmts.
2412         * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
2413         (vect_stmt_relevant_p): Check for stmts which are only used live.
2414         (process_use): Use of a stmt does not inherit it's live value.
2415         (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
2416         (vect_analyze_stmt): Check for new relevant state.
2417         * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
2418         outside the loop, but not inside it.
2419
2420 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
2421
2422         * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
2423         * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
2424         (vect_get_vec_def_for_operand): Split out code.
2425
2426 2016-06-03  Segher Boessenkool  <segher@kernel.crashing.org>
2427
2428         * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
2429
2430 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
2431
2432         * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
2433
2434 2016-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2435
2436         * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
2437
2438 2016-06-03  Jakub Jelinek  <jakub@redhat.com>
2439
2440         PR middle-end/71387
2441         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
2442         to noreturn e->callee->decl that has void return type and void
2443         arguments, adjust gimple_call_fntype and remove lhs even if it had
2444         previously addressable type.
2445
2446 2016-06-02  Jeff Law  <law@redhat.com>
2447
2448         PR tree-optimization/71328
2449         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
2450         error when checking for a jump back onto the copied path.
2451
2452 2016-06-02  David Malcolm  <dmalcolm@redhat.com>
2453
2454         * config/microblaze/microblaze.c (get_branch_target): Add return
2455         NULL_RTX for the non-CALL_P case.
2456         (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
2457         (insert_wic): Remove unused local "j".
2458
2459 2016-06-02  Martin Liska  <mliska@suse.cz>
2460
2461         * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
2462
2463 2016-06-02  H.J. Lu  <hongjiu.lu@intel.com>
2464             Julia Koval  <julia.koval@intel.com>
2465
2466         * function.c (assign_parm_setup_stack): Force source into a
2467         register if needed.
2468         * target.def (function_incoming_arg): Update documentation to
2469         allow arbitrary address computation based on hard register.
2470         * doc/tm.texi: Regenerated.
2471
2472 2016-06-02  Martin Liska  <mliska@suse.cz>
2473
2474         * predict.c (combine_predictions_for_bb): Fix first match in
2475         cases where a first predictor contains more than one occurence
2476         in list of predictors.  Take the best value in such case.
2477
2478 2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2479
2480         PR rtl-optimization/71295
2481         * rtlanal.c (subreg_get_info): If taking a subreg at the requested
2482         offset would go over the size of the inner mode reject it.
2483
2484 2016-06-02  Jakub Jelinek  <jakub@redhat.com>
2485
2486         * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
2487         x=x,x and v=v,m instead of x=x,m.
2488
2489         * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
2490         alternative.  Change x=x,x alternative to v=Yv,Yv and x=rm,C
2491         alternative to v=rm,C.
2492
2493         * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
2494         alternative.  Change x=xm,C alternative to v=vm,C, x=x,x alternative
2495         to v=Yv,Yv and x=x,m to v=v,m.  Use maybe_evex prefix attribute
2496         instead of vex for the last two above mentioned alternatives.
2497
2498 2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2499
2500         PR target/70830
2501         * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
2502
2503 2016-06-02  Segher Boessenkool  <segher@kernel.crashing.org>
2504
2505         * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
2506
2507 2016-06-01  David Malcolm  <dmalcolm@redhat.com>
2508
2509         * config/rl78/rl78.c (rl78_expand_prologue): Convert local
2510         from int to unsigned.
2511
2512 2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
2513
2514         * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
2515         alternatives, eliminating preferred register class.  Add support
2516         for the MTVSRDD instruction in ISA 3.0.
2517         (vsx_splat_v4si_internal): Use splat_input_operand instead of
2518         reg_or_indexed_operand.
2519         (vsx_splat_v4sf_internal): Likewise.
2520
2521 2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
2522
2523         PR target/71186
2524         * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
2525         for loading up all 0's or all 1's.
2526
2527 2016-06-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2528
2529         * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
2530
2531 2016-06-01  Eduard Sanou  <dhole@openmailbox.org>
2532
2533         * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
2534         extension.
2535         * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
2536         * gcc.c (set_source_date_epoch_envvar): New function, sets
2537         the SOURCE_DATE_EPOCH environment variable to the current time.
2538
2539 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
2540
2541         * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
2542         the factor for live Phi nodes.
2543
2544 2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
2545
2546         * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
2547         * tree-parloops.c (parallelize_loops): likewise.
2548         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
2549         tree_unswitch_outer_loop): likewise.
2550
2551 2016-06-01  Jakub Jelinek  <jakub@redhat.com>
2552
2553         PR middle-end/71371
2554         * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
2555         around creation of the temporary.
2556
2557 2016-06-01  Richard Biener  <rguenther@suse.de>
2558
2559         PR tree-optimization/71366
2560         * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
2561         (unloop_loops): Move removing edges here ...
2562         (try_unroll_loop_completely): ... from here.
2563         (try_peel_loop): ... and here.
2564         (tree_unroll_loops_completely_1): Track parent loops via
2565         bitmap of header BBs.
2566         (tree_unroll_loops_completely): Adjust for that.
2567
2568 2016-06-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2569
2570         * config/rs6000/altivec.h (vec_slv): New macro.
2571         (vec_srv): New macro.
2572         * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
2573         (UNSPEC_VSRV): New value.
2574         (vslv): New insn.
2575         (vsrv): New insn.
2576         * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
2577         (vsrv): New builtin definition.
2578         * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
2579         define argument types for new builtin.
2580         (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
2581         new builtin.
2582         * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
2583         functions.
2584
2585 2016-06-01  Uros Bizjak  <ubizjak@gmail.com>
2586             Jocelyn Mayer  <l_indien@magic.fr>
2587
2588         PR target/67310
2589         * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
2590         detect processor family for signature_CENTAUR_ebx.
2591         <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
2592         signature_CENTAUR_ebx.
2593         <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
2594         <default>: Pass x86-64 for has_longmode.
2595
2596 2016-06-01  Nathan Sidwell  <nathan@acm.org>
2597
2598         * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
2599         undefined weak.
2600
2601 2016-06-01  Richard Biener  <rguenther@suse.de>
2602
2603         PR tree-optimization/71261
2604         * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
2605         of stmts successfully put in the bool pattern.  Remove
2606         single-use restriction.
2607         (adjust_bool_pattern_cast): Add cast at the use site via the
2608         pattern def sequence.
2609         (adjust_bool_pattern): Remove recursion, maintain a hash-map
2610         of patterned defs.  Use the pattern def seqence instead of
2611         multiple independent patterns.
2612         (sort_after_uid): New qsort compare function.
2613         (adjust_bool_stmts): New function to process stmts in the bool
2614         pattern in IL order.
2615         (vect_recog_bool_pattern): Adjust.
2616         * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
2617         (ifcvt_walk_pattern_tree): Likewise.
2618         (stmt_is_root_of_bool_pattern): Likewise.
2619         (ifcvt_repair_bool_pattern): Likewise.
2620         (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
2621
2622 2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
2623
2624         * loop-unroll.c (decide_unroll_constant_iterations,
2625         decide_unroll_runtime_iterations, decide_unroll_stupid): Use
2626         likely upper bounds.
2627         * loop-iv.c (find_simple_exit): Dump likely upper bounds.
2628
2629 2016-06-01  Thomas Schwinge  <thomas@codesourcery.com>
2630
2631         * tree-core.h (enum omp_clause_code): Remove
2632         OMP_CLAUSE_DEVICE_RESIDENT.  Adjust all users.
2633
2634 2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2635
2636         * config/arm/sync.md (arm_store_exclusive<mode>):
2637         Use 'H' output modifier on operands[2] rather than creating a new
2638         entry in out-of-bounds memory of the operands array.
2639         (arm_store_release_exclusivedi): Likewise.
2640
2641 2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2642
2643         * config/arm/arm.c (arm_fusion_enabled_p): New function.
2644         * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
2645         * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
2646         Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.
2647
2648 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
2649
2650         * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
2651         into account live statements for mask producers.
2652
2653 2016-06-01  Richard Biener  <rguenther@suse.de>
2654
2655         PR tree-optimization/71311
2656         * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
2657         restrict to non-INTEGER_CST @0.
2658
2659 2016-06-01  Richard Biener  <rguenther@suse.de>
2660
2661         * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
2662         (relational patterns): Use :c to avoid pattern duplications.
2663
2664 2016-06-01  Richard Biener  <rguenther@suse.de>
2665
2666         * genmatch.c (comparison_code_p): New predicate.
2667         (swap_tree_comparison): New function.
2668         (commutate): Add for_vec parameter to append new for entries.
2669         Support commutating relational operators by swapping it alongside
2670         operands.
2671         (lower_commutative): Adjust.
2672         (dt_simplify::gen): Do not pass artificial operators to gen
2673         functions.
2674         (decision_tree::gen): Do not add artificial operators as parameters.
2675         (parser::parse_expr): Verify operator commutativity when :c is
2676         applied.  Allow :C to override this.
2677         * match.pd: Adjust patterns to use :C instead of :c where required.
2678
2679 2016-06-01  Patrick Palka  <ppalka@gcc.gnu.org>
2680
2681         PR tree-optimization/71077
2682         * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
2683         the combining step, use boolean_false_node and boolean_true_node
2684         as the designated false/true return values.
2685
2686 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
2687
2688         * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
2689         * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
2690         (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
2691         PRED_LOOP_EXIT.
2692
2693 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
2694
2695         * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
2696         of flags impliying the register renaming.
2697         * toplev.c (process_options): Do not imply flag_rename_registers with
2698         loop peeling.
2699
2700 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
2701
2702         * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
2703         default implementation.
2704
2705 2016-05-31  Nathan Sidwell  <nathan@acm.org>
2706
2707         * dwarf2out.c (cur_line_info_table): Add GTY marker.
2708
2709 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
2710
2711         * config/sh/constraints.md (b): Remove constraint.
2712         * config/sh/predicates.md (arith_reg_operand): Remove
2713         TARGET_REGISTER_P.
2714         * config/sh/sh-modes.def (PDI): Remove.
2715         * config/sh/sh.c (sh_target_reg_class,
2716         sh_optimize_target_register_callee_saved): Remove functions.
2717         (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
2718         (sh_expand_epilogue): Update comment.
2719         (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
2720         sh_secondary_reload): Remove TARGET_REGS related code.
2721         * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
2722         TARGET_REGISTER_P): Remove macros.
2723         (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
2724         * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
2725         TR1_REG, TR2_REG): Remove constants.
2726         * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
2727
2728 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
2729
2730         * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
2731         define_expand patterns.
2732         (adddi3_compact): Rename to adddi3.
2733         (subdi3_compact): Rename to subdi3.
2734         (*negdi2): Rename to negdi2.
2735         (*abs<mode>2): Rename to abs<mode>2.
2736
2737 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
2738
2739         * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
2740         (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
2741         (atomic_sub_fetchsi): ... this new pattern.
2742         (mvtc): Add CC_REG clobber.
2743
2744 2016-05-31  Marek Polacek  <polacek@redhat.com>
2745
2746         * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
2747
2748 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2749
2750         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
2751         aarch64_fusion_enabled_p to check for fusion capabilities.
2752
2753 2016-05-31  Richard Biener  <rguenther@suse.de>
2754
2755         PR tree-optimization/71352
2756         * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
2757         minus one and a negate.
2758
2759 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2760
2761         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
2762         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
2763         Delete prototype.
2764         * config/aarch64/iterators.md (insn_count): Add descriptive comment.
2765         * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
2766         Remove use of aarch64_simd_attr_length_move, set length attribute
2767         directly.
2768         (*aarch64_be_movoi): Likewise.
2769         (*aarch64_be_movci): Likewise.
2770         (*aarch64_be_movxi): Likewise.
2771
2772 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
2773
2774         * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
2775         It no longer does that.
2776         * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
2777
2778 2016-05-31  Wladimir J. van der Laan  <laanwj@gmail.com>
2779
2780         * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
2781         attribute __unused__.
2782
2783 2016-05-31  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2784
2785         * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
2786         * config/arm/arm.c (arm_arch_thumb1): Define.
2787         (arm_option_override): Initialize arm_arch_thumb1.
2788         * config/arm/arm.h (arm_arch_thumb1): Declare.
2789         (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
2790         support Thumb-1 ISA.
2791
2792 2016-05-31  Kirill Yukhin  <kirill.yukhin@intel.com>
2793
2794         PR target/71346
2795         * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
2796         `Yv' for scalar operand.
2797
2798 2016-05-31  Tom de Vries  <tom@codesourcery.com>
2799
2800         PR tree-optimization/69068
2801         * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
2802         phis with more than two args.
2803
2804 2016-05-30  Andreas Tobler  <andreast@gcc.gnu.org>
2805
2806         * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
2807         armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
2808         target.
2809
2810 2016-05-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
2811
2812         * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
2813         tune_64.
2814         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
2815         support on SPARC.
2816         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
2817         cpu_32, cpu_64, tune_32 and tune_64.
2818         * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
2819
2820 2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
2821
2822         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
2823
2824 2016-05-30  Andi Kleen  <ak@linux.intel.com>
2825
2826         * auto-profile.c (read_profile): Replace asserts with errors
2827         when file does not exist.
2828         * gcov-io.c (gcov_read_words): Dito.
2829
2830 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
2831
2832         * tree-cfg.c (print_loop): Print likely upper bounds.
2833
2834 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
2835
2836         * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
2837         * opts.c (default_options): Enable peel loops at -O3.
2838         * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
2839         (try_peel_loop): Do not re-peel already peeled loops;
2840         use likely upper bounds; fix profile updating.
2841         (pass_complete_unroll::execute): Initialize peeled_loops.
2842
2843 2016-05-30  Martin Liska  <mliska@suse.cz>
2844
2845         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
2846         computed costs by frequency of BB they belong to.
2847         (get_scaled_computation_cost_at): New function.
2848
2849 2016-05-30  Alexander Monakov  <amonakov@ispras.ru>
2850             Marc Glisse  <marc.glisse@inria.fr>
2851
2852         PR tree-optimization/71289
2853         * match.pd (-1 / B < A, A > -1 / B): New transformations.
2854
2855 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
2856
2857         * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
2858
2859 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
2860
2861         * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
2862         for peeled copies; avoid underflow when updating estimates; correctly
2863         scale loop profile.
2864
2865 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
2866
2867         * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
2868         r236875. Corrected oe3 to oe2 as obvious.
2869
2870 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
2871
2872         PR middle-end/71269
2873         PR middle-end/71252
2874         * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
2875         that inserted stmt will not dominate stmts that defines its operand.
2876         (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
2877         (rewrite_expr_tree_parallel): Likewise.
2878
2879 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
2880
2881         PR middle-end/71252
2882         * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
2883         all fields including stmt_to_insert are swapped.
2884
2885 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
2886
2887         * predict.h (force_edge_cold): Declare.
2888         * predict.c (force_edge_cold): New function.
2889         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
2890         updating.
2891         (canonicalize_loop_induction_variables): Fix formating.
2892
2893 2016-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2894
2895         * config/visium/visium.c (visium_split_double_add): Minor tweaks.
2896         (visium_expand_copysign): Use gen_int_mode directly.
2897         (visium_compute_frame_size): Minor tweaks.
2898
2899 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
2900
2901         * tree-vect-loop.c (vect_analyze_loop_2): Use
2902         likely_max_stmt_executions_int.
2903
2904 2016-05-30  Tom de Vries  <tom@codesourcery.com>
2905
2906         PR tree-optimization/69067
2907         * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
2908
2909 2016-05-29  Uros Bizjak  <ubizjak@gmail.com>
2910
2911         PR target/71245
2912         * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
2913         New peepholes to remove unneeded fild/fistp pairs.
2914         (define_peephole2 atomic_loaddi_fpu): Ditto.
2915
2916 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2917
2918         * predict.c (maybe_hot_frequency_p): Avoid division.
2919
2920 2016-05-28  Gerald Pfeifer  <gerald@pfeifer.com>
2921
2922         * doc/install.texi: Use https for shop.fsf.org.
2923
2924 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2925
2926         * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
2927         likely_max_stmt_executions_int.
2928
2929 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2930
2931         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
2932         likely_max_stmt_executions_int.
2933
2934 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2935
2936         * profile.c (compute_branch_probabilities): Do not report hitrates
2937         here.
2938         (branch_prob): Report hitrates here.
2939         * predict.c (gimple_predict_edge): Do not assert profile status;
2940         fix formatting issues.
2941
2942 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2943
2944         * predict.c (edge_predicted_by_p): New function.
2945         (predict_paths_for_bb): Do not put multiple predictions of the same type
2946         on one edge.
2947
2948 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2949
2950         * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
2951         commit.
2952
2953 2016-05-28  Alan Modra  <amodra@gmail.com>
2954
2955         * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
2956
2957 2016-05-28  Alan Modra  <amodra@gmail.com>
2958
2959         PR rtl-optimization/71275
2960         * ira.c (ira): Free dominance info.
2961
2962 2016-05-27  Gerald Pfeifer  <gerald@pfeifer.com>
2963
2964         * doc/sourcebuild.texi: New address for upstream Go repository.
2965
2966 2016-05-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2967
2968         * config/arm/arm.h (TARGET_ARM_V6M): Remove.
2969         (TARGET_ARM_V7M): Likewise.
2970
2971 2016-05-26  Jeff Law  <law@redhat.com>
2972
2973         * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
2974         (thread_across_edge): Remove calls to find_jump_threads_backwards.
2975         * passes.def: Add jump threading passes before DOM/VRP.
2976         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
2977         argument to a basic block from an edge.  Remove tests which are
2978         handled elsewhere.
2979         (pass_data_thread_jumps, class pass_thread_jumps): New.
2980         (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
2981         (make_pass_thread_jumps): Likewise.
2982         * tree-pass.h (make_pass_thread_jumps): Declare.
2983
2984 2016-05-27  Eric Botcazou  <ebotcazou@adacore.com>
2985
2986         * config/visium/visium-protos.h (split_double_move): Rename into...
2987         (visium_split_double_move): ...this.
2988         (visium_split_double_add): Declare.
2989         * config/visium/visium.c (split_double_move): Rename into...
2990         (visium_split_double_move): ...this.
2991         (visium_split_double_add): New function.
2992         (visium_expand_copysign): Renumber operands for consistency.
2993         * config/visium/visium.md (DImode move splitter): Adjust to renaming.
2994         (DFmode move splitter): Likewise.
2995         (*addi3_insn): Split by means of visium_split_double_add.
2996         (*adddi3_insn_flags): Delete.
2997         (*plus_plus_sltu<subst_arith>): New insn.
2998         (*subdi3_insn): Split by means of visium_split_double_add.
2999         (subdi3_insn_flags): Delete.
3000         (*minus_minus_sltu<subst_arith>): New insn.
3001         (*negdi2_insn): Split by means of visium_split_double_add.
3002         (*negdi2_insn_flags): Delete.
3003
3004 2016-05-27  Ulrich Weigand  <uweigand@de.ibm.com>
3005
3006         * configure.ac: Treat a --with-headers option without argument
3007         the same as the default (i.e. consult sys-include directory).
3008         * configure: Regenerate.
3009
3010 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3011
3012         * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
3013         * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
3014         prototype.
3015         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
3016         Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.
3017
3018 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
3019
3020         PR target/63596
3021         * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
3022         tree-stdarg analysis results.
3023         (aarch64_setup_incoming_varargs): Likewise.
3024
3025 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
3026
3027         * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
3028         va_list_gpr_counter_field and va_list_fpr_counter_field.
3029
3030 2016-05-27  Wilco Dijkstra  <wdijkstr@arm.com>
3031
3032         PR67609
3033         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
3034         * config/aarch64/aarch64.c
3035         (aarch64_cannot_change_mode_class): Remove function.
3036         * config/aarch64/aarch64-protos.h
3037         (aarch64_cannot_change_mode_class): Remove.
3038
3039 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
3040
3041         * cfgloop.c (record_niter_bound): Record likely upper bounds.
3042         (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
3043         get_likely_max_loop_iterations_int): New.
3044         * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
3045         any_likely_upper_bound.
3046         (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
3047         Declare.
3048         * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
3049         * loop-unroll.c (unroll_loop_constant_iterations): Update likely
3050         upper bound.
3051         (unroll_loop_constant_iterations): Likewise.
3052         (unroll_loop_runtime_iterations): Likewise.
3053         * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
3054         * lto-streamer-out.c (output_cfg): Likewise.
3055         * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
3056         bounds.
3057         (canonicalize_loop_induction_variables): Dump likely upper bounds.
3058         * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
3059         (likely_max_loop_iterations): New.
3060         (likely_max_loop_iterations_int): New.
3061         (likely_max_stmt_executions): New.
3062         * tree-ssa-loop-niter.h (likely_max_loop_iterations,
3063         likely_max_loop_iterations_int, likely_max_stmt_executions_int,
3064         likely_max_stmt_executions): Declare.
3065
3066 2016-05-27  Marek Polacek  <polacek@redhat.com>
3067
3068         PR middle-end/71308
3069         * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
3070
3071 2016-05-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3072
3073         * config/s390/s390.md (2x risbg splitters): Use
3074         reg_overlap_mentioned_p instead of rtx_equal_p.
3075
3076 2016-05-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
3077
3078         * combine.c (make_compound_operation): Take known zero bits into
3079         account when checking for possible zero_extend.
3080
3081 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3082
3083         * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
3084         Use const_int_operand for operand 2 predicate.  Simplify expand code
3085         as a result.
3086
3087 2016-05-27  Ilya Enkovich  <ilya.enkovich@intel.com>
3088
3089         PR middle-end/71279
3090         * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
3091         into comparison.
3092
3093 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3094
3095         * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
3096         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
3097         that returns CC_SESWPmode and CC_ZESWPmode.
3098         (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
3099         and CC_SESWPmode.
3100         (aarch64_rtx_costs): Likewise.
3101
3102 2016-05-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
3103
3104         * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
3105         for ISA 3.0 min/max support.
3106         (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
3107         conditional move support.
3108         (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
3109         rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
3110         available.
3111         * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
3112         conditional moves where the comparison type is different from move
3113         type.
3114         (fp_minmax): New code iterator for smin/smax.
3115         (minmax): New code attributes for min/max.
3116         (SMINMAX): Likewise.
3117         (smax<mode>3): Combine min, max insns into one insn using the
3118         fp_minmax code iterator.  Add support for ISA 3.0 min/max
3119         instructions that don't need -ffast-math.
3120         (s<minmax><mode>3): Likewise.
3121         (smax<mode>3_vsx): Likewise.
3122         (smin<mode>3): Likewise.
3123         (s<minmax><mode>3_vsx): Likewise.
3124         (smin<mode>3_vsx): Likewise.
3125         (pre-VSX min/max splitters): Likewise.
3126         (s<minmax><mode>3_fpr): Likewise.
3127         (movsfcc): Rewrite floating point conditional moves to combine
3128         SFmode/DFmode into a single insn.
3129         (mov<mode>cc): Likewise.
3130         (movdfcc): Likewise.
3131         (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
3132         SFDF2 iterators to handle all combinations.
3133         (fseldfsf4): Likewise.
3134         (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
3135         (fseldfdf4): Likewise.
3136         (fselsfdf4): Likewise.
3137         (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
3138         comparison instructions that set a 0/-1 mask, and use it for
3139         floating point conditional move via XXSEL.
3140         (fpmask<mode>): Likewise.
3141         (xxsel<mode>): Likewise.
3142         * config/rs6000/predicates.md (min_max_operator): Delete, no
3143         longer used.
3144         (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
3145         instructions that generate a 0/-1 mask for use with XXSEL.
3146         * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
3147         say whether floating point min/max is available, either through
3148         FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
3149         (TARGET_MINMAX_DF): Likewise.
3150
3151 2016-05-27  Alan Modra  <amodra@gmail.com>
3152
3153         PR rtl-optimization/71275
3154         * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
3155         for update_equiv_regs and combine_and_move_insns.
3156
3157 2016-05-26  Uros Bizjak  <ubizjak@gmail.com>
3158
3159         * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
3160         if_then_else or cond RTXes to calculate attribute value.
3161         * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
3162         <attr "length_immediate>: Ditto.
3163         (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
3164         * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
3165         (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
3166         <attr "type">: Ditto.
3167         <attr "prefix_data16">: Ditto.
3168         <attr "prefix_extra">: Ditto.
3169         <attr "length_immediate">: Ditto.
3170         <attr "prefix">: Ditto.
3171         (vec_set<mode>_0) <attr "isa">: Ditto.
3172         <attr "prefix_extra">: Ditto.
3173         <attr "length_immediate">: Ditto.
3174         <attr "prefix">: Ditto.
3175         (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
3176         (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
3177         (sse2_storelpd) <attr "prefix_data16">: Ditto.
3178         (sse2_loadhpd) <attr "prefix_data16">: Ditto.
3179         (sse2_loadlpd) <attr "prefix_data16">: Ditto.
3180         <attr "length_immediate">: Ditto.
3181         <attr "prefix">: Ditto.
3182         (sse2_movsd) <attr "length_immediate">: Ditto.
3183         <attr "prefix">: Ditto.
3184         (vec_concatv2df)  <attr "isa">: Ditto.
3185         <attr "prefix">: Ditto.
3186         (*vec_extractv4si) <attr "prefix_extra">: Ditto.
3187         (*vec_extractv2di_1) <attr "isa">: Ditto.
3188         <attr "type">: Ditto.
3189         <attr "length_immediate">: Ditto.
3190         <attr "prefix_rex">: Ditto.
3191         <attr "prefix_extra">: Ditto.
3192         (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
3193         <attr "prefix_extra">: Ditto.
3194         <attr "length_immediate">: Ditto.
3195         (vec_concatv2di) <attr "isa">: Ditto.
3196         <attr "prefix_extra">: Ditto.
3197         <attr "length_immediate">: Ditto.
3198         <attr "prefix">: Ditto.
3199
3200 2016-05-26  Martin Liska  <mliska@suse.cz>
3201
3202         * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
3203         function.
3204         (operator+): Likewise.
3205         (operator-): Likewise.
3206         (comp_cost::operator+=): Likewise.
3207         (comp_cost::operator-=): Likewise.
3208         (comp_cost::operator/=): Likewise.
3209         (comp_cost::operator*=): Likewise.
3210         (operator<): Likewise.
3211         (operator==): Likewise.
3212         (operator<=): Likewise.
3213         (new_cost): Remove.
3214         (infinite_cost_p): Likewise.
3215         (add_costs): Likewise.
3216         (sub_costs): Likewise.
3217         (compare_costs): Likewise.
3218         (set_group_iv_cost): Use the newly introduced functions.
3219         (get_address_cost): Likewise.
3220         (get_shiftadd_cost): Likewise.
3221         (force_expr_to_var_cost): Likewise.
3222         (split_address_cost): Likewise.
3223         (ptr_difference_cost): Likewise.
3224         (difference_cost): Likewise.
3225         (get_computation_cost_at): Likewise.
3226         (determine_group_iv_cost_generic): Likewise.
3227         (determine_group_iv_cost_address): Likewise.
3228         (determine_group_iv_cost_cond): Likewise.
3229         (autoinc_possible_for_pair): Likewise.
3230         (determine_group_iv_costs): Likewise.
3231         (cheaper_cost_pair): Likewise.
3232         (iv_ca_recount_cost): Likewise.
3233         (iv_ca_set_no_cp): Likewise.
3234         (iv_ca_set_cp): Likewise.
3235         (iv_ca_cost): Likewise.
3236         (iv_ca_new): Likewise.
3237         (iv_ca_dump): Likewise.
3238         (iv_ca_narrow): Likewise.
3239         (iv_ca_prune): Likewise.
3240         (iv_ca_replace): Likewise.
3241         (try_add_cand_for): Likewise.
3242         (try_improve_iv_set): Likewise.
3243         (find_optimal_iv_set): Likewise.
3244
3245 2016-05-26  Richard Sandiford  <richard.sandiford@arm.com>
3246
3247         * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
3248         that internal functions will clobber all caller-saved registers.
3249
3250 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
3251
3252         * config/aarch64/aarch64.c (aarch64_case_values_threshold):
3253         Return a better case_values_threshold when optimizing.
3254
3255 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
3256
3257         * config/aarch64/aarch64-simd.md (aarch64_combinez):
3258         Add ? to integer variant.
3259         (aarch64_combinez_be): Likewise.
3260
3261 2016-05-26  Jakub Jelinek  <jakub@redhat.com>
3262
3263         * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
3264         instead of x constraint.
3265         (vcvtps2ph256<mask_name>): Likewise.
3266
3267         * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
3268         alternative.  Formatting fix.
3269
3270         * config/i386/sse.md
3271         (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
3272         to ...
3273         (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
3274         (*avx_vperm_broadcast_v4sf): Use v constraint instead of x.  Use
3275         maybe_evex prefix instead of vex.
3276         (*avx_vperm_broadcast_<mode>): Use v constraint instead of x.  Handle
3277         EXT_REX_SSE_REG_P (op0) case in the splitter.
3278
3279 2016-05-25  Jeff Law  <law@redhat.com>
3280
3281         PR tree-optimization/71272
3282         * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
3283         Update comments.  Add test for empty path.
3284
3285 2016-05-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
3286
3287         * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
3288         * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
3289         special case builtin.
3290         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
3291         code for ALTIVEC_BUILTIN_VEC_CMPNE.
3292         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
3293         for __builtin_vec_cmpne.
3294
3295 2016-05-25  Eric Botcazou  <ebotcazou@adacore.com>
3296
3297         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
3298         redundant test and bail out if the type of the new operand is not
3299         a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
3300
3301 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
3302
3303         * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
3304         (x_ix86_target_flags_explicit): Remove.
3305         * config/i386/i386.c (ix86_function_specific_save): Do not copy
3306         x_ix86_target_flags_explicit.
3307         (ix86_function_specific_restore): Ditto.
3308
3309 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
3310             H.J. Lu  <hongjiu.lu@intel.com>
3311
3312         PR target/70738
3313         * common/config/i386/i386-common.c
3314         (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
3315         (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
3316         MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
3317         * config/i386/i386.opt (ix86_target_flags): Add new Variable.
3318         (-mgeneral-regs-only): Add new option.
3319         * config/i386/i386.c (ix86_option_override_internal): Don't enable
3320         x87 instructions if only general registers are allowed.
3321         (ix86_target_string): Add ix86_flags argument. Handle additional
3322         flags options through ix86_flags argument.  Update all callers.
3323         * doc/invoke.texi (x86 Options): Document -mgeneral-regs-only.
3324
3325 2016-05-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3326
3327         PR rtl-optimization/66940
3328         * ifcvt.c (noce_get_alt_condition): Check that incrementing or
3329         decrementing desired_val will not overflow before performing these
3330         operations.
3331
3332 2016-05-25  Ilya Verbin  <ilya.verbin@intel.com>
3333
3334         * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
3335         V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
3336         * config/i386/i386.c (enum ix86_builtins): Add
3337         IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
3338         IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
3339         IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
3340         IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
3341         IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
3342         IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
3343         (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
3344         __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
3345         __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
3346         __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
3347         __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
3348         __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
3349         Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
3350         __builtin_ia32_cvtps2dq512_mask.
3351         (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
3352         V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
3353         (ix86_builtin_vectorized_function): Handle builtins mentioned above.
3354         * config/i386/sse.md
3355         (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
3356         Rename to ...
3357         (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
3358         (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
3359         to ...
3360         (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
3361         (avx512f_vec_pack_sfix_v8df): New define_expand.
3362         (avx512f_roundpd512): Rename to ...
3363         (avx512f_round<castmode>512): ... this.  Change iterator.
3364         (avx512f_roundps512_sfix): New define_expand.
3365         (round<mode>2_sfix): Change iterator.
3366
3367 2016-05-25  Nick Clifton  <nickc@redhat.com>
3368
3369         * config/msp430/msp430.c (msp430_attr): Produce an error if a
3370         static interrupt handler is detected.
3371         * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
3372         default linker script.
3373         * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
3374         the low part of a symbolic pointer.
3375
3376 2016-05-25  Richard Biener  <rguenther@suse.de>
3377
3378         PR tree-optimization/71261
3379         * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
3380         interesting stmt instead of immediate uses when looking
3381         for the use operand to replace.
3382
3383 2016-05-25  Martin Liska  <mliska@suse.cz>
3384
3385         * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
3386
3387 2016-05-25  Richard Biener  <rguenther@suse.de>
3388
3389         PR tree-optimization/71264
3390         * tree-vect-stmts.c (vect_init_vector): Properly deal with
3391         vector type val.
3392
3393 2016-05-25  Martin Liska  <mliska@suse.cz>
3394
3395         PR tree-optimization/71239
3396         * tree.c (array_at_struct_end_p): Do not call operand_equal_p
3397         if DECL_SIZE is NULL.
3398
3399 2016-05-25  Richard Biener  <rguenther@suse.de>
3400
3401         * timevar.def (TV_TREE_LOOP_IFCVT): Add.
3402         * tree-if-conv.c (pass_data_if_conversion): Use it.
3403
3404 2016-05-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3405
3406         * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
3407         * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
3408         * varpool.c (varpool_node::get_availability): Likewise.
3409
3410 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
3411
3412         * config/rs6000/altivec.md (VNEG iterator): New iterator for
3413         VNEGW/VNEGD instructions.
3414         (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
3415         (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
3416         support for ISA 3.0 VNEGW/VNEGD instructions.
3417
3418 2016-05-24  Cesar Philippidis  <cesar@codesourcery.com>
3419
3420         * gimplify.c (omp_notice_variable): Use zero-length arrays for data
3421         pointers inside OACC_DATA regions.
3422         (gimplify_scan_omp_clauses): Prune firstprivate clause associated
3423         with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
3424         (gimplify_adjust_omp_clauses): Fix typo in comment.
3425
3426 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
3427
3428         * config/rs6000/altivec.md (VParity): New mode iterator for vector
3429         parity built-in functions.
3430         (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
3431         zeros.
3432         (p9v_parity<mode>2): Likewise.
3433         * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
3434         parity.
3435         (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
3436         (parity<mode>2): ISA 3.0 expander for vector parity.
3437         * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
3438         power9 built-ins.
3439         (BU_P9_64BIT_MISC_0): Likewise.
3440         (BU_P9_MISC_0): Likewise.
3441         (BU_P9V_AV_1): Likewise.
3442         (BU_P9V_AV_2): Likewise.
3443         (BU_P9V_AV_3): Likewise.
3444         (BU_P9V_AV_P): Likewise.
3445         (BU_P9V_VSX_1): Likewise.
3446         (BU_P9V_OVERLOAD_1): Likewise.
3447         (BU_P9V_OVERLOAD_2): Likewise.
3448         (BU_P9V_OVERLOAD_3): Likewise.
3449         (VCTZB): Add vector count trailing zeros support.
3450         (VCTZH): Likewise.
3451         (VCTZW): Likewise.
3452         (VCTZD): Likewise.
3453         (VPRTYBD): Add vector parity support.
3454         (VPRTYBQ): Likewise.
3455         (VPRTYBW): Likewise.
3456         (VCTZ): Add overloaded vector count trailing zeros support.
3457         (VPRTYB): Add overloaded vector parity support.
3458         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3459         overloaded vector count trailing zeros and parity instructions.
3460         * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
3461         vector parity support.
3462         * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
3463         trailing zeros support.
3464         (vec_cntlz): Likewise.
3465         (vec_vctzb): Likewise.
3466         (vec_vctzd): Likewise.
3467         (vec_vctzh): Likewise.
3468         (vec_vctzw): Likewise.
3469         (vec_vprtyb): Add ISA 3.0 vector parity support.
3470         (vec_vprtybd): Likewise.
3471         (vec_vprtybw): Likewise.
3472         (vec_vprtybq): Likewise.
3473         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
3474         the ISA 3.0 vector count trailing zeros and vector parity built-in
3475         functions.
3476
3477 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
3478
3479         * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
3480         when there is stmt_to_insert.
3481
3482 2016-05-24  Martin Sebor  <msebor@redhat.com>
3483
3484         PR c++/71147
3485         * tree.h (complete_or_array_type_p): New inline function.
3486
3487 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
3488
3489         * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
3490         * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
3491         rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
3492
3493         * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
3494         Limit 1st alternative to noavx isa, split 2nd alternative into one
3495         noavx and one avx alternative, use *x and Bm in the former and
3496         x and m in the latter.
3497
3498         * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
3499         of sse4 for the first alternative, drop %v from the template
3500         and d operand modifier.  Split second alternative into one sse4_noavx
3501         and one avx alternative, use *x instead of *v in the former and v
3502         instead of *v in the latter.
3503         (*sse4_1_extractps): Use noavx isa instead of * for the first
3504         alternative, drop %v from the template.  Split second alternative into
3505         one noavx and one avx alternative, use *x instead of *v in the
3506         former and v instead of *v in the latter.
3507         (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
3508         with noavx and the last one with avx.
3509         (sse4_1_phminposuw): Guard first alternative with noavx isa,
3510         split the second one into one noavx and one avx alternative,
3511         use *x and Bm in the former and x and m in the latter one.
3512         (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
3513         alternatives.
3514
3515         * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
3516         first two alternatives to noavx, use *x instead of *v in the second
3517         one, add avx alternative without *.
3518         (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
3519         sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
3520         sse4_1_<code>v2siv2di2<mask_name>): Likewise.
3521
3522 2016-05-24  Jeff Law  <law@redhat.com>
3523
3524         * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
3525         New function, extracted from...
3526         (fsm_find_control_statement_thread_paths): Here.  Use the new function.
3527         Allow simple copies and constant initializations in the SSA chain.
3528
3529 2016-05-24  Marek Polacek  <polacek@redhat.com>
3530
3531         PR c/71249
3532         * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
3533         scope.
3534
3535 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
3536
3537         PR c++/71257
3538         * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
3539         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
3540         SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.  Add
3541         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
3542         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
3543
3544 2016-05-24  Richard Biener  <rguenther@suse.de>
3545
3546         PR tree-optimization/71240
3547         * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
3548         has integral type.
3549
3550 2016-05-24  Richard Biener  <rguenther@suse.de>
3551
3552         PR tree-optimization/71230
3553         * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
3554
3555 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
3556
3557         * tree-vectorizer.h (vectorizable_comparison): Delete.
3558         * tree-vect-loop.c (vectorizable_reduction): Remove redundant
3559         PURE_SLP_STMT check.
3560         * tree-vect-stmts.c (vectorizable_call): Likewise.
3561         (vectorizable_simd_clone_call): Likewise.
3562         (vectorizable_conversion): Likewise.
3563         (vectorizable_assignment): Likewise.
3564         (vectorizable_shift): Likewise.
3565         (vectorizable_operation): Likewise.
3566         (vectorizable_load): Likewise.
3567         (vectorizable_condition): Likewise.
3568         (vectorizable_store): Likewise.  Assert that we don't have
3569         hybrid SLP.
3570         (vectorizable_comparison): Make static.  Remove redundant
3571         PURE_SLP_STMT check.
3572         (vect_transform_stmt): Assert that we always have an slp_node
3573         if PURE_SLP_STMT.
3574
3575 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3576
3577         * config/arm/neon.md (ashldi3_neon):  Replace comparison of INTVAL of
3578         operands[2] against 1 with comparison against CONST1_RTX.
3579         (<shift>di3_neon): Likewise.
3580         * config/arm/predicates.md (const0_operand): Replace with comparison
3581         against CONST0_RTX.
3582
3583 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3584
3585         * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
3586         operands[2] against 1 with comparison against CONST1_RTX.
3587         (ashrdi3): Likewise.
3588         (lshrdi3): Likewise.
3589         (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
3590         UINTVAL.
3591         (ashrsi3): Likewise.
3592         (lshrsi3): Likewise.
3593         (rotrsi3): Likewise.
3594         (define_split above *compareqi_eq0): Likewise.
3595         (define_split above "prologue"): Likewise.
3596         * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
3597         * config/arm/predicates.md (shift_operator): Likewise.
3598         (shift_nomul_operator): Likewise.
3599         (sat_shift_operator): Likewise.
3600         (thumb1_cmp_operand): Likewise.
3601         (const_neon_scalar_shift_amount_operand): Replace manual range
3602         check with IN_RANGE.
3603         * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
3604         Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
3605
3606 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3607
3608         * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
3609         with HOST_WIDE_INT_1.
3610         (insv): Likewise.
3611         * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
3612         1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
3613         (arm_canonicalize_comparison): Likewise.
3614         (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
3615         HOST_WIDE_INT_1.
3616         (thumb1_size_rtx_costs): Likewise.
3617         (vfp_const_double_index): Replace cast of 1 to unsigned
3618         HOST_WIDE_INT with HOST_WIDE_INT_1U.
3619         (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
3620         HOST_WIDE_INT_1.
3621         (arm_asan_shadow_offset): Replace cast of 1 to unsigned
3622         HOST_WIDE_INT with HOST_WIDE_INT_1U.
3623         * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
3624         HOST_WIDE_INT with HOST_WIDE_INT_1.
3625
3626 2016-05-24  Marek Polacek  <polacek@redhat.com>
3627
3628         * tree-cfg.h (should_remove_lhs_p): New predicate.
3629         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
3630         * gimplify.c (gimplify_modify_expr): Likewise.
3631         * tree-cfg.c (verify_gimple_call): Likewise.
3632         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
3633         * gimple-fold.c: Include "tree-cfg.h".
3634         (gimple_fold_call): Use should_remove_lhs_p.
3635
3636 2016-05-24  Richard Biener  <rguenther@suse.de>
3637
3638         PR tree-optimization/71253
3639         * cfganal.h (control_dependences): Make robust against edge
3640         and BB removal.
3641         (control_dependences::control_dependences): Remove edge_list argument.
3642         (control_dependences::get_edge): Remove.
3643         (control_dependences::get_edge_src): Add.
3644         (control_dependences::get_edge_dest): Likewise.
3645         (control_dependences::m_el): Make a vector of edge src/dest index.
3646         * cfganal.c (control_dependences::find_control_dependence): Adjust.
3647         (control_dependences::control_dependences): Likewise.
3648         (control_dependences::~control_dependence): Likewise.
3649         (control_dependences::get_edge): Remove.
3650         (control_dependences::get_edge_src): Add.
3651         (control_dependences::get_edge_dest): Likewise.
3652         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
3653         get_edge_src.
3654         (perform_tree_ssa_dce): Adjust.
3655         * tree-loop-distribution.c (create_edge_for_control_dependence): Use
3656         get_edge_src.
3657         (pass_loop_distribution::execute): Adjust.  Do loop destroying
3658         conditional on changed.
3659
3660 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3661
3662         PR target/69857
3663         * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
3664         return.  Reindent transformation comment and mention the ARM state
3665         behavior.
3666
3667 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
3668
3669         PR middle-end/71252
3670         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
3671         after build_and_add_sum creates new use stmt.
3672
3673 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
3674
3675         * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
3676         load_lanes/grouped_load classification comes first.  Don't check
3677         whether the vectorization factor is a multiple of the group size
3678         for load_lanes.
3679
3680 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
3681
3682         * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
3683         GROUP_GAP for single-element interleaving.
3684         * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
3685         variable.
3686
3687 2016-05-24  Richard Biener  <rguenther@suse.de>
3688
3689         PR middle-end/70434
3690         PR c/69504
3691         * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
3692         bases which are accessed with non-invariant indices.
3693         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
3694         constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
3695
3696 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
3697
3698         PR middle-end/71170
3699         * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
3700         (add_to_ops_vec): Add stmt_to_insert.
3701         (add_repeat_to_ops_vec): Init stmt_to_insert.
3702         (insert_stmt_before_use): New.
3703         (transform_add_to_multiply): Remove mult_stmt insertion and add it
3704         to ops vector.
3705         (get_ops): Init stmt_to_insert.
3706         (maybe_optimize_range_tests): Likewise.
3707         (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
3708         (rewrite_expr_tree_parallel): Likewise.
3709         (reassociate_bb): Likewise.
3710
3711 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
3712
3713         PR target/71201
3714         * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
3715         ISA 3.0 xxperm fusion alternative.
3716         (altivec_vperm_v8hiv16qi): Likewise.
3717         (altivec_vperm_<mode>_uns_internal): Likewise.
3718         (vperm_v8hiv4si): Likewise.
3719         (vperm_v16qiv8hi): Likewise.
3720
3721 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
3722             Kelvin Nilsen  <kelvin@gcc.gnu.org>
3723
3724         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
3725         vpermr/xxpermr on ISA 3.0.
3726         (altivec_expand_vec_perm_le): Likewise.
3727         * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
3728         (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
3729         ISA 3.0.
3730
3731 2016-05-23  Uros Bizjak  <ubizjak@gmail.com>
3732
3733         * config/i386/i386.h (IS_STACK_MODE): Enable for
3734         TARGET_MIX_SSE_I387.  Rewrite using X87_FLOAT_MODE_P and
3735         SSE_FLOAT_MODE_P macros.
3736         * config/i386/i386.c (ix86_preferred_reload_class): Use
3737         IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
3738         Cleanup regclass processing for CONST_DOUBLE_P.
3739         (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
3740         (ix86_rtx_costs): Remove redundant TARGET_80387 check
3741         with IS_STACK_MODE macro.
3742         * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
3743         with TARGET_SSE2.
3744         (*movdf_internal): Use IS_STACK_MODE macro.
3745         (*movsf_internal): Ditto.
3746
3747 2016-05-23  Marc Glisse  <marc.glisse@inria.fr>
3748
3749         * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
3750         ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
3751
3752 2016-05-23  Jeff Law  <law@redhat.com>
3753
3754         * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
3755         extracted from ...
3756         (fsm_find_control_statement_thread_paths): Call it.
3757
3758 2016-05-23  Martin Jambor  <mjambor@suse.cz>
3759
3760         PR ipa/71234
3761         * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
3762         from_global_constant if t is not NULL.
3763
3764 2016-05-23  Marek Polacek  <polacek@redhat.com>
3765
3766         PR c/49859
3767         * common.opt (Wswitch-unreachable): New option.
3768         * doc/invoke.texi: Document -Wswitch-unreachable.
3769         * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
3770         warning.
3771
3772 2016-05-23  Bin Cheng  <bin.cheng@arm.com>
3773
3774         * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
3775         TMR_INDEX is non-NULL.
3776
3777 2016-05-23  Richard Biener  <rguenther@suse.de>
3778
3779         PR tree-optimization/71230
3780         * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
3781         (try_special_add_to_ops): ... here.  Always test for single-use.
3782
3783 2016-05-23  Martin Jambor  <mjambor@suse.cz>
3784
3785         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
3786         default block if a PHI node in the original one would be resized.
3787
3788 2016-05-23  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
3789
3790         PR tree-optimization/58135
3791         * tree-vect-slp.c: When group size is not multiple
3792         of vector size, allow splitting of store group at
3793         vector boundary.
3794
3795 2016-05-23  Christophe Lyon  <christophe.lyon@linaro.org>
3796
3797         * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
3798
3799 2016-05-22  Jakub Jelinek  <jakub@redhat.com>
3800
3801         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
3802         vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
3803         condition.  For !TARGET_AVX512DQ, emit 32x4 instruction instead
3804         of 64x2.
3805
3806         * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
3807         vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
3808         v constraint instead of x and vinserti32x4 insn.
3809
3810         * config/i386/sse.md (i128vldq): New mode iterator.
3811         (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
3812         avx512dq and avx512vl alternatives.
3813
3814         * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
3815         constraint, use maybe_evex prefix instead of vex.
3816         (vec_dupv4sf): Use v constraint instead of x for output
3817         operand except for noavx alternative, use Yv constraint
3818         instead of x for input.  Use maybe_evex prefix instead of vex.
3819         (*vec_dupv4si): Likewise.
3820         (*vec_dupv2di): Likewise.
3821
3822 2016-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
3823
3824         PR middle-end/40921
3825         * tree-ssa-reassoc.c (try_special_add_to_ops): New.
3826         (linearize_expr_tree): Call try_special_add_to_ops.
3827         (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
3828
3829 2016-05-21  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
3830
3831         * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
3832         to computed stack_usage.
3833
3834 2016-05-21  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
3835
3836         PR target/71103
3837         * config/avr/avr.md (define_expand "mov<mode>"): If the source
3838         operand is subreg (symbol_ref) then move the symbol ref to register.
3839
3840 2016-05-21  Jan Hubicka  <hubicka@ucw.cz>
3841
3842         * tree.c (array_at_struct_end_p): Look through MEM_REF.
3843
3844 2016-05-21  Kugan Vivekanandarajah  <kuganv@linaro.org>
3845
3846         PR middle-end/71179
3847         * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
3848         VECTOR type.
3849
3850 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
3851
3852         * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
3853         ranges by calling get_single_symbol and tidy up.  Look more closely
3854         into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
3855
3856 2016-05-20  Jeff Law  <law@redhat.com>
3857
3858         * bitmap.c (bitmap_find_bit): Remove useless test.
3859
3860 2016-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
3861
3862         * function.c (thread_prologue_and_epilogue_insns): Commit the
3863         insertion of the epilogue.
3864
3865 2016-05-20  Martin Jambor  <mjambor@suse.cz>
3866
3867         PR tree-optimization/70884
3868         * tree-sra.c (initialize_constant_pool_replacements): Do not check
3869         should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
3870         (sort_and_splice_var_accesses): Do not consider multiple scalar reads
3871         of constant pool data as a reason for scalarization.
3872
3873 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
3874
3875         * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
3876         for naked functions.
3877         (thumb1_expand_prologue): Likewise.
3878
3879 2016-05-20  Nathan Sidwell  <nathan@acm.org>
3880
3881         * config/nvptx/nptx.c (nvptx_option_override): Only set
3882         flag_toplevel_reorder, if not explicitly specified.  Set
3883         flag_no_common, unless explicitly specified.
3884
3885 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
3886
3887         * calls.c (can_implement_as_sibling_call_p): Mark param
3888         reg_parm_stack_space with ATTRIBUTE_UNUSED.
3889
3890 2016-05-20  Uros Bizjak  <ubizjak@gmail.com>
3891
3892         * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
3893         Use IS_STACK_MODE when calculating cost of standard 80387 constants.
3894         Fallthru to CONST_VECTOR case to calculate cost of standard SSE
3895         constants.
3896         <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
3897         (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
3898         and CASE_CONST_ANY.
3899
3900 2016-05-20  Cesar Philippidis  <cesar@codesourcery.com>
3901
3902         * config/nvptx/nvptx.md (sincossf3): New pattern.
3903
3904 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
3905
3906         * calls.c (maybe_complain_about_tail_call): New function.
3907         (initialize_argument_information): Call
3908         maybe_complain_about_tail_call when clearing *may_tailcall.
3909         (can_implement_as_sibling_call_p): Call
3910         maybe_complain_about_tail_call when returning false.
3911         (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
3912         ensure try_tail_call is set.  Call maybe_complain_about_tail_call
3913         if tail-call optimization fails.
3914         * cfgexpand.c (expand_call_stmt): Initialize
3915         CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
3916         * gimple-pretty-print.c (dump_gimple_call): Dump
3917         gimple_call_must_tail_p.
3918         * gimple.c (gimple_build_call_from_tree): Call
3919         gimple_call_set_must_tail with the value of
3920         CALL_EXPR_MUST_TAIL_CALL.
3921         * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
3922         (gimple_call_set_must_tail): New function.
3923         (gimple_call_must_tail_p): New function.
3924         * print-tree.c (print_node): Update printing of TREE_STATIC
3925         to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
3926         * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
3927         trailing comment listing applicable flags.
3928         * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
3929
3930 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
3931
3932         * calls.c (expand_call): Move "Rest of purposes for tail call
3933         optimizations to fail" to...
3934         (can_implement_as_sibling_call_p): ...this new function, and
3935         split into multiple "if" statements.
3936
3937 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
3938
3939         * cfgloop.h (expected_loop_iterations_unbounded,
3940         expected_loop_iterations): Unconstify.
3941         * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
3942         profile with known upper bound; return 3 when profile is absent.
3943         (expected_loop_iterations): Update.
3944
3945 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
3946
3947         * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
3948         and get_max_loop_iterations_int.
3949
3950 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
3951
3952         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
3953         realistic upper bounds here.
3954
3955 2016-05-20  Jakub Jelinek  <jakub@redhat.com>
3956
3957         PR c++/71210
3958         * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
3959         calls if the LHS is variable length or has addressable type.
3960         If targets[0]->decl is a noreturn call with void return type and
3961         zero arguments, adjust fntype and remove lhs in that case.
3962
3963 2016-05-20  Marc Glisse  <marc.glisse@inria.fr>
3964
3965         PR tree-optimization/71079
3966         PR tree-optimization/71206
3967         * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
3968
3969 2016-05-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3970
3971         * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
3972         (get_vec_alignment_for_array_decl): Likewise.
3973         (get_vec_alignment_for_record_decl): Likewise.
3974         (increase_alignment::execute): Move code to find alignment to
3975         get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
3976         (type_align_map): New hash_map.
3977
3978 2016-05-20  Richard Guenther  <rguenther@suse.de>
3979
3980         PR tree-optimization/29756
3981         * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
3982         * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
3983         * fold-const.c (operand_equal_p): Likewise.
3984         (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
3985         * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
3986         * tree-inline.c (estimate_operator_cost): Likewise.
3987         * tree-pretty-print.c (dump_generic_node): Likewise.
3988         * tree-ssa-operands.c (get_expr_operands): Likewise.
3989         * cfgexpand.c (expand_debug_expr): Likewise.
3990         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
3991         * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
3992         * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
3993         * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
3994         vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
3995         (execute_update_addresses_taken): Do it.
3996
3997 2016-05-20  Richard Biener  <rguenther@suse.de>
3998
3999         PR tree-optimization/71185
4000         * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
4001         register operations.
4002
4003 2016-05-20  Richard Biener  <rguenther@suse.de>
4004
4005         * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
4006         gimple_seq_add_seq_without_update.
4007         (release_bb_predicate): Assert we have no operands to free.
4008         (if_convertible_loop_p_1): Calculate post dominators later.
4009         Do not free BB predicates here.
4010         (combine_blocks): Do not recompute BB predicates.
4011         (version_loop_for_if_conversion): Save BB predicates around
4012         loop versioning.
4013
4014 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
4015
4016         * function.c (make_epilogue_seq): Remove epilogue_end parameter.
4017         (thread_prologue_and_epilogue_insns): Remove bb_flags.  Restructure
4018         code.  Ignore sibcalls on EDGE_IGNORE edges.
4019         * shrink-wrap.c (handle_simple_exit): New function.  Set EDGE_IGNORE
4020         on edges for sibcalls that run without prologue.  The rest of the
4021         function is combined from...
4022         (fix_fake_fallthrough_edge): ... this, and ...
4023         (try_shrink_wrapping): ... a part of this.  Remove the bb_with
4024         function argument, make it a local variable.
4025
4026 2016-05-19  Sandra Loosemore  <sandra@codesourcery.com>
4027
4028         * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
4029         --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
4030         for 32-bit mode and SEH for 64-bit.
4031         * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
4032         TARGET_64BIT_DEFAULT.
4033
4034 2016-05-19  Ryan Burn  <contact@rnburn.com>
4035
4036         * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
4037         * gengtype.c (open_base_files): Add cilk.h to ifiles.
4038
4039 2016-05-19  Uros Bizjak  <ubizjak@gmail.com>
4040
4041         * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
4042         force pending loads from memory.
4043
4044 2016-05-19  Kelvin Nilsen  <kelvin@gcc.gnu.org>
4045
4046         * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
4047         (UNSPEC_DARN_32): New unspec constant.
4048         (UNSPEC_DARN_RAW): New unspec constant.
4049         (darn_32): New instruction.
4050         (darn_raw): New instruction.
4051         (darn): New instruction.
4052         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
4053         support and documentation for this macro.
4054         (BU_P9_MISC_1): New macro definition.
4055         (BU_P9_64BIT_MISC_0): New macro definition.
4056         (BU_P9_MISC_0): New macro definition.
4057         (darn_32): New builtin definition.
4058         (darn_raw): New builtin definition.
4059         (darn): New builtin definition.
4060         * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
4061         RS6000_BUILTIN_0 directives to surround each occurrence of
4062         #include "rs6000-builtin.def".
4063         (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
4064         RS6000_BTM_64BIT flags to the returned mask, depending on
4065         configuration.
4066         (def_builtin): Correct an error in the assignments made to the
4067         debugging variable attr_string.
4068         (rs6000_expand_builtin): Add support for no-operand built-in
4069         functions.
4070         (builtin_function_type): Remove fatal_error assertion that is no
4071         longer valid.
4072         (rs6000_common_init_builtins): Add support for no-operand built-in
4073         functions.
4074         * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
4075         definition.
4076         (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
4077         definition.
4078         (RS6000_BTM_64BIT): New macro definition.
4079         * doc/extend.texi: Document __builtin_darn (void),
4080         __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
4081         functions.
4082
4083 2016-05-19  Jan Hubicka  <hubicka@ucw.cz>
4084
4085         * tree-vect-loop.c (vect_analyze_loop_2): Use also
4086         max_loop_iterations_int.
4087
4088 2016-05-19  Marek Polacek  <polacek@redhat.com>
4089
4090         PR tree-optimization/71031
4091         * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
4092         condition and adjust the code a bit.
4093
4094 2016-05-19  Martin Liska  <mliska@suse.cz>
4095
4096         * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
4097         auto_vec instead of vec.
4098
4099 2016-05-19  Martin Liska  <mliska@suse.cz>
4100
4101         * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
4102
4103 2016-05-19  Martin Liska  <mliska@suse.cz>
4104
4105         * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
4106
4107 2016-05-19  Martin Liska  <mliska@suse.cz>
4108
4109         * ipa-pure-const.c (set_function_state): Remove an existing
4110         funct_state.
4111         (remove_node_data): Do not free it as it's released
4112         in set_function_state.
4113
4114 2016-05-19  Martin Liska  <mliska@suse.cz>
4115
4116         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
4117         bitmap.
4118
4119 2016-05-19  Martin Liska  <mliska@suse.cz>
4120
4121         * omp-simd-clone.c (simd_clone_adjust): Release vector.
4122
4123 2016-05-19  Martin Liska  <mliska@suse.cz>
4124
4125         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
4126         an auto_vec instead of re-creating it.
4127
4128 2016-05-19  Martin Liska  <mliska@suse.cz>
4129
4130         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
4131         auto_vec instead of vec.
4132
4133 2016-05-19  Martin Liska  <mliska@suse.cz>
4134
4135         * lto-section-in.c (lto_get_section_data): Call
4136         lto_check_version with additional argument.
4137         * lto-streamer.c (lto_check_version): Add new argument.
4138         * lto-streamer.h (lto_check_version): Likewise.
4139
4140 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4141
4142         * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
4143         Don't add cost of inner memory when handling sign-extended loads.
4144
4145 2016-05-19  Ilya Enkovich  <ilya.enkovich@intel.com>
4146
4147         PR rtl-optimization/71148
4148         * cse.c (cse_main): Free dominance info.
4149         (rest_of_handle_cse): Don't free dominance info.
4150         (rest_of_handle_cse2): Likewise.
4151         (rest_of_handle_cse_after_global_opts): Likewise.
4152
4153 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4154
4155         PR target/71056
4156         * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
4157         NULL_TREE early if NEON is not available.  Remove now redundant check
4158         in ARM_CHECK_BUILTIN_MODE.
4159
4160 2016-05-19  Maxim Ostapenko  <m.ostapenko@samsung.com>
4161
4162         PR sanitizer/64354
4163         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
4164         builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
4165         * doc/cpp.texi: Document new macros.
4166
4167 2016-05-19 Bin Cheng  <bin.cheng@arm.com>
4168
4169         PR tree-optimization/69848
4170         * tree-vect-loop.c (vectorizable_reduction): Don't factor
4171         comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
4172
4173 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
4174
4175         * function.c (thread_prologue_and_epilogue_insn): Move the
4176         "goto epilogue_done" one block later.
4177
4178 2016-05-19  Richard Biener  <rguenther@suse.de>
4179
4180         PR tree-optimization/70729
4181         * passes.def: Move LIM pass before PRE.  Remove no longer
4182         required copyprop and move first DCE out of the loop pipeline.
4183
4184 2016-05-18  David Malcolm  <dmalcolm@redhat.com>
4185
4186         PR driver/69265
4187         * Makefile.in (GCC_OBJS): Move spellcheck.o to...
4188         (OBJS-libcommon-target): ...here.
4189         * opts-common.c: Include spellcheck.h.
4190         (cmdline_handle_error): Build a vec of valid options and use it
4191         to suggest provide hints for misspelled arguments.
4192
4193 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
4194
4195         PR c++/71100
4196         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
4197         lhs if it has TREE_ADDRESSABLE type.
4198
4199 2016-05-18  Uros Bizjak  <ubizjak@gmail.com>
4200
4201         PR target/71145
4202         * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
4203         (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
4204
4205 2016-05-18  Martin Jambor  <mjambor@suse.cz>
4206
4207         PR ipa/69708
4208         * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
4209         input for NOP_EXPR pass-through functions.
4210         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
4211         aggregate global constant VAR_DECLs in constant jump functions.
4212
4213 2016-05-18  Martin Jambor  <mjambor@suse.cz>
4214
4215         PR ipa/69708
4216         * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
4217         from TREE_READONLY parameters.
4218
4219 2016-05-18  Martin Jambor  <mjambor@suse.cz>
4220
4221         PR ipa/69708
4222         * cgraph.h (cgraph_indirect_call_info): New field
4223         guaranteed_unmodified.
4224         * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
4225         to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
4226         appropriate.
4227         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
4228         pass the parameter value to ipa_find_agg_cst_for_param.
4229         * ipa-prop.c (ipa_load_from_parm_agg): New parameter
4230         guaranteed_unmodified, store AA results there instead of bailing out
4231         if present.
4232         (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
4233         (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
4234         (find_constructor_constant_at_offset): New function.
4235         (ipa_find_agg_cst_from_init): Likewise.
4236         (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
4237         static initializers of contants, report back through a new paameter
4238         from_global_constant if that was the case.
4239         (try_make_edge_direct_simple_call): Also pass parameter value to
4240         ipa_find_agg_cst_for_param, check guaranteed_unmodified when
4241         appropriate.
4242         (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
4243         (ipa_read_indirect_edge_info): Likewise.
4244         * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
4245         (ipa_load_from_parm_agg): Likewise.
4246
4247 2016-05-18  Jiong Wang  <jiong.wang@arm.com>
4248
4249         PR rtl-optimization/71150
4250         * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
4251         check.
4252
4253 2016-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
4254
4255         PR target/70915
4256         * config/rs6000/constraints.md (wE constraint): New constraint
4257         for a vector constant that can be loaded with XXSPLTIB.
4258         (wM constraint): New constraint for a vector constant of a 1's.
4259         (wS constraint): New constraint for a vector constant that can be
4260         loaded with XXSPLTIB and a vector sign extend instruction.
4261         * config/rs6000/predicates.md (xxspltib_constant_split): New
4262         predicates for wE/wS constraints.
4263         (xxspltib_constant_nosplit): Likewise.
4264         (easy_vector_constant): Add support for constants that can be
4265         loaded via XXSPLTIB.
4266         (all_ones_constant): New predicate for vector constant with all
4267         1's set.
4268         (splat_input_operand): Add support for ISA 3.0 word splat operations.
4269         * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
4270         return if a constant can be loaded with the ISA 3.0 XXSPLTIB
4271         instruction and possibly with a sign extension.
4272         (output_vec_const_move): Add support for XXSPLTIB. If we are
4273         loading up 0/-1 into Altivec registers, prefer using VSPLTISW
4274         instead of XXLXOR/XXLORC.
4275         (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
4276         operations.
4277         (rs6000_legitimize_reload_address): Likewise.
4278         (rs6000_output_move_128bit): Use output_vec_const_move to emit
4279         constants.
4280         * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
4281         combine VSX_M and VSX_M2 into one iterator.
4282         (VSX_M2): Likewise.
4283         (VSINT_84): New iterators for loading constants with XXSPLTIB.
4284         (VSINT_842): Likewise.
4285         (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
4286         (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
4287         XXSPLTIB instruction.
4288         (xxspltib_<mode>_nosplit): Likewise.
4289         (xxspltib_<mode>_split): New insn to load up constants with
4290         XXSPLTIB and a sign extend instruction.
4291         (vsx_mov<mode>): Replace single move that handled all vector types
4292         with separate 32-bit and 64-bit moves.  Combine the movti_<bit>
4293         moves (when -mvsx-timode is in effect) into the main vector
4294         moves.  Eliminate separate moves for <VSr> <VSa>, where the
4295         preferred register class (<VSr>) is listed first, and the
4296         secondary register class (<VSa>) is listed second with a '?' to
4297         discourage use.  Prefer loading 0/-1 in any VSX register for ISA
4298         3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
4299         that if the register was involved in a slow operation, the
4300         clear/set operation does not wait for the slow operation to
4301         finish.  Adjust the length attributes for 32-bit mode.  Use
4302         rs6000_output_move_128bit and drop the use of the string
4303         instructions for 32-bit movti when -mvsx-timode is in effect.  Use
4304         spacing so that the alternatives and attributes don't generate
4305         long lines, and put things in columns, so that it is easier to
4306         match up the operands and attributes with the insn alternatives.
4307         (vsx_mov<mode>_64bit): Likewise.
4308         (vsx_mov<mode>_32bit): Likewise.
4309         (vsx_movti_64bit): Fold movti into normal vector moves.
4310         (vsx_movti_32bit): Likewise.
4311         (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
4312         splat instructions.
4313         (vsx_splat_v4si_internal): Likewise.
4314         (vsx_splat_v4sf_internal): Likewise.
4315         (vector fusion peepholes): Use VSX_M instead of VSX_M2.
4316         (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
4317         extend vector elements.
4318         (vsx_sign_extend_hi_<mode>): Likewise.
4319         (vsx_sign_extend_si_v2di): Likewise.
4320         * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
4321         declaration.
4322         * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
4323         constraints.  Add trailing period to wL documentation.
4324
4325 2016-05-18  Richard Sandiford  <richard.sandiford@arm.com>
4326
4327         PR middle-end/71020
4328         * tree-dfa.h (replace_abnormal_ssa_names): Declare.
4329         * tree-dfa.c (replace_abnormal_ssa_names): New function.
4330         * tree-call-cdce.c: Include tree-dfa.h.
4331         (can_guard_call_p): New function, extracted from...
4332         (can_use_internal_fn): ...here.
4333         (shrink_wrap_one_built_in_call_with_conds): Remove failure path
4334         and return void.
4335         (shrink_wrap_one_built_in_call): Likewise.
4336         (use_internal_fn): Likewise.
4337         (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
4338         and return void.  Call replace_abnormal_ssa_names.
4339         (pass_call_cdce::execute): Check can_guard_call_p during the
4340         initial walk.  Assume shrink_wrap_conditional_dead_built_in_calls
4341         will always change something.
4342
4343 2016-05-18  Martin Jambor  <mjambor@suse.cz>
4344
4345         PR ipa/70646
4346         * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
4347         if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
4348
4349 2016-05-18  Martin Jambor  <mjambor@suse.cz>
4350
4351         PR ipa/70646
4352         * ipa-inline.h (condition): New field size.
4353         * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
4354         for comaprison and store it into the new condition.
4355         (evaluate_conditions_for_known_args): Use condition size to check
4356         access sizes for all but CHANGED conditions.
4357         (unmodified_parm_1): New parameter size_p, store access size into it.
4358         (unmodified_parm): Likewise.
4359         (unmodified_parm_or_parm_agg_item): Likewise.
4360         (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
4361         (set_cond_stmt_execution_predicate): Extract access sizes and store
4362         them to conditions.
4363         (set_switch_stmt_execution_predicate): Likewise.
4364         (will_be_nonconstant_expr_predicate): Likewise.
4365         (will_be_nonconstant_predicate): Likewise.
4366         (inline_read_section): Stream condition size.
4367         (inline_write_summary): Likewise.
4368
4369 2016-05-18  Richard Biener  <rguenther@suse.de>
4370
4371         * tree-ssa-loop-im.c (determine_max_movement): Properly add
4372         condition cost to PHI cost instead of total_cost.
4373
4374 2016-05-18  Martin Liska  <mliska@suse.cz>
4375
4376         PR fortran/70856
4377         * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
4378         merged variables.
4379
4380 2016-05-18  Richard Biener  <rguenther@suse.de>
4381
4382         * lto-streamer.h (LTO_major_version): Bump to 6.
4383
4384 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
4385
4386         * function.c (make_split_prologue_seq, make_prologue_seq,
4387         make_epilogue_seq): New functions, factored out from...
4388         (thread_prologue_and_epilogue_insns): Here.
4389
4390 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
4391
4392         * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
4393         cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
4394         of before.  Add a comment.
4395
4396 2016-05-18 Bin Cheng  <bin.cheng@arm.com>
4397
4398         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
4399         expression pointer, not pointer to the pointer.
4400
4401 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
4402
4403         * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
4404         (avx2_pbroadcast<mode>): Add another alternative with v instead
4405         of x constraints in it, using <pbroadcast_evex_isa> isa.
4406         (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
4407
4408         * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
4409         constraint x instead of v in second alternative, add avx512bw
4410         alternative.
4411
4412         * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
4413         constraint x instead of v in second alternative, add avx512bw
4414         alternative.
4415
4416         * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
4417         constraint x instead of v in second alternative, add avx512bw
4418         alternative.
4419
4420         * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
4421         avx512bw alternative.
4422
4423 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
4424
4425         * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
4426         array to 128 chars.
4427         (define_insn "*andnottf3"): Ditto.
4428         (define_insn "*<code><mode>3"/any_logic): Ditto.
4429         (define_insn "*<code>tf3"/any_logic): Ditto.
4430         (define_insn "sse2_storehpd"): Use Yv constraint for scalar
4431         operand to block AVX-512VL insn variant emit when it is not enabled.
4432
4433 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
4434
4435         * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
4436         constraint fot SF mode.
4437
4438 2016-05-18  Petr Murzin  <petr.murzin@intel.com>
4439             Kirill Yukhin  <kirill.yukhin@intel.com>
4440
4441         * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
4442         modifiers.
4443         (define_insn "rsqrt14<mode>"): Ditto.
4444         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
4445         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
4446         (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
4447         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
4448         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
4449         Ditto.
4450         (define_insn "*avx512f_gatherdi<mode>"): Ditto.
4451         (define_insn "*avx512f_scatterdi<mode>"): Ditto.
4452         * config/i386/i386.c (ix86_print_operand): Expand check for size
4453         override codes for Intel syntax.
4454
4455 2016-05-18  Richard Biener  <rguenther@suse.de>
4456
4457         PR tree-optimization/71168
4458         * tree-loop-distribution.c (distribute_loop): Move *destroy_p
4459         initialization earlier.
4460
4461 2016-05-18  James Greenhalgh  <james.greenhalgh@arm.com>
4462
4463         * config/aarch64/aarch64-simd.md
4464         (aarch64_reduc_plus_internal<mode>): Rename to...
4465         (reduc_plus_scal): ...This, and remove previous implementation.
4466
4467 2016-05-18  Richard Biener  <rguenther@suse.de>
4468
4469         * passes.def: Put late dse and cd_dce in canonical order.
4470
4471 2016-05-17  Jan Hubicka  <hubicka@ucw.cz>
4472
4473         * ipa-inline-transform.c (preserve_function_body_p): Look for
4474         first non-thunk clone.
4475         (save_function_body): Save into first non-thunk.
4476         * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
4477         up call stmt id.
4478         (lto_output_node): Inline thunks don't need body in every
4479         partition.
4480         * lto-streamer-in.c: Do not fixup thunk clones.
4481         * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
4482         thunks.
4483         * tree-inline.c (copy_bb): Be prepared for target node to be new after
4484         folding suceeds.
4485
4486 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
4487
4488         PR middle-end/63586
4489         * tree-ssa-reassoc.c (transform_add_to_multiply): New.
4490         (reassociate_bb): Call transform_add_to_multiply.
4491
4492 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
4493
4494         * config/aarch64/aarch64.c (all_extensions): Removed unused
4495         static variable.
4496
4497 2016-05-17  Nathan Sidwell  <nathan@acm.org>
4498
4499         * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
4500         (TARGET_FUNCTION_ARG_BOUNDARY): Override.
4501
4502 2016-05-17  Mikhail Maltsev  <maltsevm@gmail.com>
4503
4504         PR tree-optimization/54579
4505         PR middle-end/55299
4506         * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
4507
4508 2016-05-17  Marek Polacek  <polacek@redhat.com>
4509
4510         PR ipa/71146
4511         * tree-inline.c (expand_call_inline): Call
4512         maybe_remove_unused_call_args.
4513
4514 2016-05-17  Jim Wilson  <jim.wilson@linaro.org>
4515
4516         * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
4517         * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
4518         * doc/md.texi (fmin@var{m}3): Likewise.
4519
4520 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
4521
4522         * match.pd (X & C): New transformation.
4523
4524 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
4525
4526         * match.pd (~X & Y): New transformation.
4527
4528 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
4529
4530         * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
4531         information for new SSA_NAME.
4532         (simplify_conversion_using_ranges): Get range through get_range_info
4533         instead of get_value_range.
4534
4535 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
4536
4537         * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
4538         Remove inline assembly.
4539         (vmvn_s16): Likewise.
4540         (vmvn_s32): Likewise.
4541         (vmvn_u8): Likewise.
4542         (vmvn_u16): Likewise.
4543         (vmvn_u32): Likewise.
4544         (vmvnq_s8): Likewise.
4545         (vmvnq_s16): Likewise.
4546         (vmvnq_s32): Likewise.
4547         (vmvnq_u8): Likewise.
4548         (vmvnq_u16): Likewise.
4549         (vmvnq_u32): Likewise.
4550         (vmvn_p8): Likewise.
4551         (vmvnq_p16): Likewise.
4552
4553 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
4554
4555         * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
4556         Use builtin.
4557         (vmul_n_s16): Likewise.
4558         (vmul_n_s32): Likewise.
4559         (vmul_n_u16): Likewise.
4560         (vmul_n_u32): Likewise.
4561         (vmulq_n_f32): Likewise.
4562         (vmulq_n_f64): Likewise.
4563         (vmulq_n_s16): Likewise.
4564         (vmulq_n_s32): Likewise.
4565         (vmulq_n_u16): Likewise.
4566         (vmulq_n_u32): Likewise.
4567
4568 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
4569
4570         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
4571         to all supported modes.  Rename to "*aarch64_mul3_elt_from_dup".
4572
4573 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
4574
4575         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
4576         to *aarch64_fma4_elt_from_dup<mode>.
4577         (*aarch64_fnma4_elt_to_128df): Rename to
4578         *aarch64_fnma4_elt_from_dup<mode>.
4579         * config/aarch64/arm_neon.h (vfma_n_f64): New.
4580         (vfms_n_f32): Likewise.
4581         (vfms_n_f64): Likewise.
4582         (vfmsq_n_f32): Likewise.
4583         (vfmsq_n_f64): Likewise.
4584
4585 2016-05-17  Gerald Pfeifer  <gerald@pfeifer.com>
4586
4587         * wide-int.h: Change fixed_wide_int_storage from class to struct.
4588
4589 2016-05-17  Richard Biener  <rguenther@suse.de>
4590
4591         PR tree-optimization/71132
4592         * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
4593         Only add control dependences for blocks in the loop.
4594         (build_rdg): Adjust.
4595         (generate_code_for_partition): Return whether loop should
4596         be destroyed and delay that.
4597         (distribute_loop): Likewise.
4598         (pass_loop_distribution::execute): Record loops to be destroyed
4599         and perform delayed destroying of loops.
4600
4601 2016-05-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4602
4603         PR target/70809
4604         * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
4605
4606 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
4607
4608         * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
4609
4610 2016-05-17  Ilya Enkovich  <ilya.enkovich@intel.com>
4611
4612         PR target/71114
4613         * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
4614         insertion point for instructions generated by validize_mem.
4615
4616 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
4617
4618         * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
4619         in brackets.
4620
4621 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
4622
4623         * config/aarch64/aarch64.c
4624         (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
4625         rather than a macro.
4626
4627 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
4628
4629         * doc/invoke.texi (AArch64 Options): Various updates.
4630
4631 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4632
4633         * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
4634         into instrumentation thunks.
4635         * cif-code.def (CIF_CHKP): New.
4636
4637 2016-05-16  Uros Bizjak  <ubizjak@gmail.com>
4638
4639         * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
4640
4641 2016-05-16  Martin Jambor  <mjambor@suse.cz>
4642
4643         * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
4644         (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
4645
4646 2016-05-16  Marek Polacek  <polacek@redhat.com>
4647
4648         * gimple.c (maybe_remove_unused_call_args): Fix typos in the
4649         commentary.
4650
4651 2016-05-16  Martin Jambor  <mjambor@suse.cz>
4652
4653         PR hsa/70857
4654         * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
4655         the outlined kernel function.
4656
4657 2016-05-16  Robert Suchanek  <robert.suchanek@imgtec.com>
4658
4659         * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
4660         (ISA_HAS_DLSA): Ditto.
4661
4662 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
4663
4664         * config/mips/m5100.md (m51_int_load): Update the latency to 2.
4665
4666 2016-05-16  Nathan Sidwell  <nathan@acm.org>
4667
4668         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
4669         (nvptx_name_replacement): Restore.  Add comment.
4670         (write_fn_proto, write_fn_proto_from_insn,
4671         nvptx_output_call_insn): Restore
4672         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
4673
4674 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
4675
4676         * config/aarch64/aarch64.md
4677         (add<mode>3_compareC_cconly_imm): Remove use of %w.
4678         (add<mode>3_compareC_imm): Likewise.
4679         (<optab>si3_uxtw): Split into register and immediate variants.
4680         (andsi3_compare0_uxtw): Likewise.
4681         (and<mode>3_compare0): Likewise.
4682         (and<mode>3nr_compare0): Likewise.
4683         (stack_protect_test_<mode>): Don't use %x for memory operands.
4684
4685 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
4686
4687         * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
4688
4689 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
4690
4691         * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
4692         Split integer shifts into shift_reg and bfm.
4693         (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
4694         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
4695         (ror<mode>3_insn): Likewise.
4696         (<optab>si3_insn_uxtw): Likewise.
4697         (<optab><mode>3_insn): Change to rotate_imm.
4698         (extr<mode>5_insn_alt): Likewise.
4699         (extrsi5_insn_uxtw): Likewise.
4700         (extrsi5_insn_uxtw_alt): Likewise.
4701
4702 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
4703
4704         * doc/tm.texi: Regenerate.
4705         * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
4706         (TARGET_INVALID_RETURN_TYPE): Remove.
4707         * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
4708         TARGET_INVALID_RETURN_TYPE.
4709         * target.def (invalid_parameter_type): Remove.
4710         (invalid_return_type): Remove.
4711
4712 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4713
4714         * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
4715         on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
4716         calls from thunk.
4717         * ipa-inline-transform.c (inline_call): When inlining into thunk produce
4718         gimple body.
4719         (preserve_function_body_p): No need to preserve function body
4720         * cif-codes.def (CIF_THUNK): Remove.
4721         * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
4722
4723 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4724
4725         * tree-inline.c (expand_call_inline): recurse after inlining thunk.
4726
4727 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4728
4729         * tree.c (free_lang_data_in_decl): Also set target/optimization flags
4730         for thunks.
4731
4732 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4733
4734         * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
4735         (inline_small_functions): Do not look for function symbol when
4736         resetting caches.
4737
4738 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4739
4740         * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
4741         of inline thunks
4742
4743 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
4744             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4745             Jiong Wang  <jiong.wang@arm.com>
4746
4747         * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
4748         for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
4749         Define __ARM_FP16_ARGS when appropriate.
4750         * config/arm/arm.c (arm_invalid_parameter_type): Remove
4751         declaration.
4752         (arm_invalid_return_type): Likewise.
4753         (TARGET_INVALID_PARAMETER_TYPE): Remove.
4754         (TARGET_INVALID_RETURN_TYPE): Remove.
4755         (aapcs_vfp_sub_candidate): Allow HFmode.
4756         (aapcs_vfp_allocate): Add comment.  Support HFmode.
4757         (aapcs_vfp_allocate_return_reg): Likewise.
4758         (struct aapcs_cp_arg_layout): Slightly reword comments for
4759         is_return_candidate and allocate_return_reg.
4760         (output_mov_vfp): Update assert.
4761         (arm_hard_regno_mode_ok): Remove comment, update HF-mode
4762         condition.
4763         (arm_invalid_parameter_type): Remove.
4764         (amr_invalid_return_type): Remove.
4765         * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
4766         * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
4767         * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
4768
4769 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
4770
4771         * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
4772         * config/aarch64/arch64-protos.h
4773         (aarch64_legitimize_reload_address): Remove.
4774         * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
4775         Remove.
4776
4777 2016-05-16  Eric Botcazou  <ebotcazou@adacore.com>
4778
4779         * configure.ac: Add ACX_NONCANONICAL_HOST.
4780         * configure: Regenerate.
4781         * Makefile.in: Set host_noncanonical.
4782
4783 2016-05-14  Uros Bizjak  <ubizjak@gmail.com>
4784
4785         PR target/71097
4786         * config/i386/i386.md (*movtf_internal): Before register allocation,
4787         do not allow FP constants for CM_MEDIUM memory model, allow only
4788         standard FP constants for CM_LARGE and CM_LARGE_PIC models.
4789         (*movxf_internal): Ditto.
4790         (*movdf_internal): Ditto.
4791         (*movsf_internal): Ditto.
4792
4793 2016-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
4794
4795         PR rtl-optimization/67483
4796         * combine.c (make_compound_operation): Don't call extract_left_shift
4797         with negative shift amounts.
4798
4799 2016-05-13  Jakub Jelinek  <jakub@redhat.com>
4800
4801         PR bootstrap/71071
4802         * fold-const.c (fold_checksum_tree): Allow modification
4803         of TYPE_ALIAS_SET during folding.
4804
4805         * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
4806         ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
4807         (ix86_split_to_parts): Likewise.  Fix up formatting.
4808
4809 2016-05-13  H.J. Lu  <hongjiu.lu@intel.com>
4810
4811         * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
4812         unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
4813         printf format.
4814
4815 2016-05-13  Nathan Sidwell  <nathan@acm.org>
4816
4817         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
4818         (nvptx_name_replacement): Delete.
4819         (write_fn_proto, write_fn_proto_from_insn,
4820         nvptx_output_call_insn): Remove nvptx_name_replacement call.
4821         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
4822         * langhooks.c (add_builtin_funcction_common): Call
4823         targetm.mangle_decl_assembler_name.
4824
4825         * config/nvptx/nvptx.c (write_fn_proto): Handle
4826         BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
4827
4828 2016-05-13  Martin Liska  <mliska@suse.cz>
4829
4830         * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
4831         and PRIu64 in printf format.
4832
4833 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4834
4835         * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
4836         comment.
4837
4838 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4839
4840         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
4841         Change --param max-completely-peeled-times to
4842         --param max-completely-peel-times in dump file printing.
4843
4844 2016-05-13  Richard Biener  <rguenther@suse.de>
4845
4846         PR tree-optimization/42587
4847         * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
4848         (find_bswap_or_nop_1): Likewise.
4849         (bswap_replace): Likewise.
4850
4851 2016-05-13  Martin Liska  <mliska@suse.cz>
4852
4853         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
4854         Initialize a variable with default value.
4855
4856 2016-05-13  Martin Liska  <mliska@suse.cz>
4857
4858         * doc/invoke.texi: Enhance explanation of error recovery
4859         of sanitizers.
4860
4861 2016-05-13  Martin Liska  <mliska@suse.cz>
4862
4863         * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
4864         (struct cost_pair): Change inv_expr_id (int) to inv_expr
4865         (iv_inv_expr_ent *).
4866         (struct iv_inv_expr_ent): Comment struct fields.
4867         (sort_iv_inv_expr_ent): New function.
4868         (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
4869         (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
4870         a hash_map between iv_inv_expr_ent and number of usages.
4871         (niter_for_exit): Fix coding style.
4872         (tree_ssa_iv_optimize_init): Use renamed variable.
4873         (determine_base_object): Fix coding style.
4874         (alloc_iv): Likewise.
4875         (find_interesting_uses_outside): Likewise.
4876         (add_candidate_1): Likewise.
4877         (add_standard_iv_candidates): Likewise.
4878         (set_group_iv_cost): Replace inv_expr_id with inv_expr.
4879         (prepare_decl_rtl): Fix coding style.
4880         (get_address_cost): Likewise.
4881         (get_shiftadd_cost): Likewise.
4882         (force_expr_to_var_cost): Likewise.
4883         (compare_aff_trees): Likewise.
4884         (get_expr_id): Restructure the function.
4885         (get_loop_invariant_expr_id): Renamed to
4886         get_loop_invariant_expr.
4887         (get_computation_cost_at): Replace usage of inv_expr_id with
4888         inv_expr.
4889         (get_computation_cost): Likewise.
4890         (determine_group_iv_cost_generic): Likewise.
4891         (determine_group_iv_cost_address): Likewise.
4892         (iv_period): Fix coding style.
4893         (iv_elimination_compare_lt): Likewise.
4894         (may_eliminate_iv): Likewise.
4895         (determine_group_iv_cost_cond):  Replace usage of inv_expr_id with
4896         inv_expr.
4897         (determine_group_iv_costs): Dump invariant expressions.
4898         (iv_ca_recount_cost): Use the newly added hash_map.
4899         (iv_ca_set_remove_invariants): Fix coding style.
4900         (iv_ca_set_add_invariants): Fix coding style.
4901         (iv_ca_set_no_cp): Utilize the newly added hash_map for used
4902         invariants.
4903         (iv_ca_set_cp): Likewise.
4904         (iv_ca_new): Initialize the newly added hash_map and remove
4905         initialization of fields.
4906         (iv_ca_free): Delete the hash_map.
4907         (iv_ca_dump): Dump invariant expressions.
4908         (iv_ca_extend): Fix coding style.
4909         (try_add_cand_for): Likewise.
4910         (create_new_ivs): Dump information about # of avg iterations and
4911         # of used invariant expressions.
4912         (rewrite_use_compare): Fix coding style.
4913         (free_loop_data): Set default value for max_inv_expr_id.
4914
4915 2016-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
4916
4917         * cse.c (rest_of_handle_cse): Use cleanup_cfg
4918         returned value cse_cfg_altered computation.
4919         (rest_of_handle_cse2): Likewise.
4920         (rest_of_handle_cse_after_global_opts): Likewise.
4921
4922 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4923
4924         PR target/53440
4925         * config/arm/arm.c (arm32_output_mi_thunk): New.
4926         (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
4927         to split Thumb1 vs TARGET_32BIT functionality.
4928         (arm_thumb1_mi_thunk): New.
4929
4930 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4931
4932         * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
4933         to true.
4934
4935 2016-05-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4936
4937         PR target/71080
4938         * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
4939
4940 2016-05-13  Eric Botcazou  <ebotcazou@adacore.com>
4941
4942         * builtins.c (expand_builtin_memcmp): Do not emit the call here.
4943         (expand_builtin_trap): Emit a regular call.
4944         (set_builtin_user_assembler_name): Remove obsolete cases.
4945         * dse.c (scan_insn): Adjust.
4946         * except.c: Include calls.h.
4947         (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
4948         emit a regular call to setjmp.
4949         * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
4950         (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
4951         (emit_block_move_via_libcall): Delete.
4952         (block_move_fn): Delete.
4953         (init_block_move_fn): Likewise.
4954         (emit_block_move_libcall_fn): Likewise.
4955         (emit_block_op_via_libcall): New function.
4956         (set_storage_via_libcall): Tidy up and use memset builtin.
4957         (block_clear_fn): Delete.
4958         (init_block_clear_fn): Likewise.
4959         (clear_storage_libcall_fn): Likewise.
4960         (expand_assignment): Call emit_block_move_via_libcall.
4961         Do not include gt-expr.h.
4962         * expr.h (emit_block_op_via_libcall): Declare.
4963         (emit_block_copy_via_libcall): New inline function.
4964         (emit_block_move_via_libcall): Likewise.
4965         (emit_block_comp_via_libcall): Likewise.
4966         (block_clear_fn): Delete.
4967         (init_block_move_fn): Likewise.
4968         (init_block_clear_fn): Likewise.
4969         (emit_block_move_via_libcall): Likewise.
4970         (set_storage_via_libcall): Add default parameter value.
4971         * libfuncs.h (enum libfunc_index): Remove obsolete values.
4972         (abort_libfunc): Delete.
4973         (memcpy_libfunc): Likewise.
4974         (memmove_libfunc): Likewise.
4975         (memcmp_libfunc): Likewise.
4976         (memset_libfunc): Likewise.
4977         (setbits_libfunc): Likewise.
4978         (setjmp_libfunc): Likewise.
4979         (longjmp_libfunc): Likewise.
4980         (profile_function_entry_libfunc): Likewise.
4981         (profile_function_exit_libfunc): Likewise.
4982         (gcov_flush_libfunc): Likewise.
4983         * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
4984         and DECL_VISIBILITY on the declaration.
4985         (init_optabs): Do not initialize obsolete libfuncs.
4986         * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
4987         * tree-core.h (ECF_RET1): Define.
4988         (ECF_TM_PURE): Adjust.
4989         (ECF_TM_BUILTIN): Likewise.
4990         * tree.c (set_call_expr_flags): Deal with ECF_RET1.
4991         (build_common_builtin_nodes): Initialize abort builtin.
4992         Add ECF_RET1 on memcpy, memmove and memset builtins.
4993         Pass final flags for alloca and alloca_with_align builtins.
4994         * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
4995         obsolete builtins.
4996         * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
4997         * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
4998         set_storage_via_libcall and call emit_block_copy_via_libcall.
4999
5000 2016-05-12  Uros Bizjak  <ubizjak@gmail.com>
5001
5002         * config/i386/i386.md (*call_got_x32): Change operand 0 to
5003         DImode before it is passed to ix86_output_call_operand.
5004         (*call_value_got_x32): Ditto for operand 1.
5005
5006 2016-05-12  Jiong Wang  <jiong.wang@arm.com>
5007
5008         PR rtl-optimization/70904
5009         * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
5010         reload for wide mode.
5011
5012 2016-05-12  Marek Polacek  <polacek@redhat.com>
5013
5014         PR c/70756
5015         * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
5016         * langhooks.c (lhd_incomplete_type_error): Add location parameter.
5017         * langhooks.h (incomplete_type_error): Likewise.
5018         * tree.c (size_in_bytes_loc): Renamed from size_in_bytes.  Add location
5019         parameter, pass it down to incomplete_type_error.
5020         * tree.h (size_in_bytes): New inline overload.
5021         (size_in_bytes_loc): Renamed from size_in_bytes.
5022
5023 2016-05-12  Richard Biener  <rguenther@suse.de>
5024
5025         PR tree-optimization/71059
5026         * tree-ssa-pre.c (phi_translate_1): Fully fold translated
5027         nary before looking up or entering the expression into the VN
5028         hashes.
5029         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
5030         Make sure to re-use NARYs without result as inserted by
5031         phi-translation.
5032
5033 2016-05-12  Richard Biener  <rguenther@suse.de>
5034
5035         PR tree-optimization/71062
5036         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
5037         field.
5038         * tree-ssa-structalias.c (set_uids_in_ptset): Set
5039         vars_contains_restrict if the var is a restrict tag.
5040         * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
5041         do not disambiguate pointers against it.
5042         (dump_points_to_solution): Re-structure and adjust for new
5043         vars_contains_restrict flag.
5044         * gimple-pretty-print.c (pp_points_to_solution): Likewise.
5045
5046 2016-05-12  Martin Liska  <mliska@suse.cz>
5047
5048         * doc/invoke.texi: Explain connection between
5049         -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
5050
5051 2016-05-12  Ilya Enkovich  <ilya.enkovich@intel.com>
5052
5053         PR tree-optimization/71006
5054         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
5055         consider COND_EXPR as a mask producer.
5056
5057 2016-05-12  Marek Polacek  <polacek@redhat.com>
5058
5059         PR driver/71063
5060         * opts.c (common_handle_option): Detect missing argument for --help^.
5061
5062 2016-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5063
5064         PR target/70830
5065         * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
5066         when popping the PC and within an interrupt handler routine.
5067         Add missing tab to output of "ldmfd".
5068         (output_return_instruction): Output LDMFD with SP update rather
5069         than POP when returning from interrupt handler.
5070
5071 2016-05-12  Jakub Jelinek  <jakub@redhat.com>
5072
5073         * config/i386/i386.md (isa): Add x64_avx512dq, enable if
5074         TARGET_64BIT && TARGET_AVX512DQ.
5075         * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
5076         (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
5077         (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
5078         *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
5079         (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
5080         (*vec_extractv4si_zext): Add avx512dq alternative.
5081         (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
5082         use v instead of x constraint in other alternatives where possible.
5083
5084         * config/i386/sse.md (sse2_loadld): Use v instead of x
5085         constraint in alternatives 0,1,4.
5086
5087         * config/i386/sse.md (pinsr_evex_isa): New mode attr.
5088         (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
5089         v constraints instead of x and <pinsr_evex_isa> isa attribute.
5090
5091         PR target/71019
5092         * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
5093         <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
5094         is not emitted unless TARGET_AVX512BW.
5095         (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
5096         Likewise.  For TARGET_AVX512BW, use "=v" constraint instead of "=x"
5097         for the result operand.
5098
5099         * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
5100         constraint instead of x in avx alternatives.  Use maybe_evex instead
5101         of vex prefix.
5102
5103         * config/i386/constraints.md (Yv): New constraint.
5104         * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
5105         TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
5106         * config/i386/i386.md (avx512fvecmode): New mode attr.
5107         (*pushtf): Use v constraint instead of x.
5108         (*movtf_internal): Likewise.  For TARGET_AVX512VL and
5109         xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
5110         (*absneg<mode>2): Use Yv constraint instead of x constraint.
5111         (*absnegtf2_sse): Likewise.
5112         (copysign<mode>3_const, copysign<mode>3_var): Likewise.
5113         * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
5114         avx512f alternatives.
5115         (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
5116
5117 2016-05-12  Richard Biener  <rguenther@suse.de>
5118
5119         PR tree-optimization/71060
5120         * tree-data-ref.c (initialize_data_dependence_relation): Do not
5121         require exact match of DR_BASE_OBJECT but only matching address and
5122         type.
5123
5124 2016-05-12  Richard Biener  <rguenther@suse.de>
5125
5126         PR tree-optimization/70986
5127         * cfganal.c: Include cfgloop.h.
5128         (dfs_find_deadend): Prefer to take edges exiting loops.
5129
5130 2016-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5131
5132         * gcc.target/powerpc/pr70963.c: Require at least power8 at both
5133         compile and run time.
5134
5135 2016-05-11  Mikhail Maltsev  <maltsevm@gmail.com>
5136
5137         PR c/43651
5138         * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
5139
5140 2016-05-11  Uros Bizjak  <ubizjak@gmail.com>
5141
5142         * config/i386/i386.c (legitimize_pic_address): Use
5143         copy_to_suggested_reg instead of gen_movsi.
5144
5145 2016-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
5146
5147         * config/rs6000/predicates.md (quad_memory_operand): Move most of
5148         the code into quad_address_p and call it to share code with
5149         vsx_quad_dform_memory_operand.
5150         (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
5151         d-form support.
5152         * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
5153         bit instead of being a separate word.  Split -mpower9-dform into
5154         two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
5155         * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
5156         for the register class supporting 128-bit quad word memory offsets.
5157         (mode_supports_vsx_dform_quad): Helper function to return if the
5158         register class uses quad word memory offsets.
5159         (rs6000_debug_addr_mask): Add support for quad word memory offsets.
5160         (rs6000_debug_reg_global): Always print if we are using LRA or not.
5161         (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
5162         instructions are enabled, set up the appropriate addr_masks for
5163         128-bit types.
5164         (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
5165         -mpower9-dform-scalar, instead of -mpower9-dform.
5166         (rs6000_option_override_internal): Split -mpower9-dform into two
5167         switches, -mpower9-dform-scalar and -mpower9-dform-vector.  The
5168         -mpower9-dform switch sets or clears both.  If we are not using
5169         the LRA register allocator, do not enable -mpower9-dform-vector by
5170         default.  If we are using LRA, enable -mpower9-dform-vector and
5171         -mvsx-timode if it is appropriate.  Issue a warning if either
5172         -mpower9-dform-vector or -mvsx-timode are explicitly used without
5173         enabling LRA.
5174         (quad_address_offset_p): New helper function to return if the
5175         offset is legal for quad word memory instructions.
5176         (quad_address_p): New function to determin if GPR or vector
5177         register quad word memory addresses are legal.
5178         (mem_operand_gpr): Validate quad word address offsets.
5179         (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
5180         d-form (register + offset) instructions.
5181         (offsettable_ok_by_alignment): Likewise.
5182         (rs6000_legitimate_offset_address_p): Likewise.
5183         (legitimate_lo_sum_address_p): Likewise.
5184         (rs6000_legitimize_address): Likewise.
5185         (rs6000_legitimize_reload_address): Add more debug statements for
5186         -mdebug=addr.
5187         (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
5188         d-form instructions.
5189         (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
5190         d-form instructions.  Distinguish different cases in debug
5191         output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
5192         d-form instructions.
5193         (rs6000_preferred_reload_class): Likewise.
5194         (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
5195         instructions.  If ISA 3.0 is available, generate lxvx/stxvx instead
5196         of the ISA 2.06 indexed memory instructions.
5197         (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
5198         use them to save/restore the saved vector registers instead of
5199         using Altivec instructions.
5200         (rs6000_emit_epilogue): Likewise.
5201         (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
5202         (rs6000_opt_masks): Split -mpower9-dform into
5203         -mpower9-dform-scalar and -mpower9-dform-vector.
5204         (rs6000_print_options_internal): Print -mno-<switch> if <switch>
5205         was not selected.
5206         * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
5207         ISA 3.0 vector indexed memory instructions, and fold the code into
5208         the normal mov<mode> patterns.
5209         (p9_vecstore_<mode>): Likewise.
5210         (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
5211         instructions.
5212         (vsx_movti_64bit): Likewise.
5213         (vsx_movti_32bit): Likewise.
5214         * config/rs6000/constraints.md (wO constraint): New constraint for
5215         ISA 3.0 vector d-form support.
5216         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
5217         -mpower9-dform-scalar instead of -mpower9-dform.  Add note not to
5218         include -mpower9-dform-vector until we switch over to LRA.
5219         (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
5220         switches, -mpower9-dform-scalar and -mpower9-dform-vector.
5221         * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
5222         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
5223         for -mpower9-dform and -mlra.
5224         * doc/md.texi (wO constraint): Document wO constraint.
5225
5226 2016-05-11  Alexander Monakov  <amonakov@ispras.ru>
5227
5228         * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
5229         'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
5230         * genautomata.c (output_internal_insn_code_evaluation): Simplify.
5231         Move handling of non-insn arguments inline into the sole user:
5232         (output_trans_func): ...here.
5233         (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
5234         in emitted function prototype.
5235         (output_internal_insn_latency_func): Ditto.  Simplify.
5236         (output_internal_maximal_insn_latency_func): Ditto.  Delete
5237         always-unused argument.
5238         (output_insn_latency_func): Ditto.
5239         (output_maximal_insn_latency_func): Ditto.
5240
5241 2016-05-11  Richard Biener  <rguenther@suse.de>
5242
5243         PR tree-optimization/71055
5244         * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
5245         sth with precision not equal to access size verify we don't chop
5246         off bits.
5247
5248 2016-05-11  Richard Biener  <rguenther@suse.de>
5249
5250         PR debug/71057
5251         * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
5252         (dwarf2out_finish): Move retry_incomplete_types call ...
5253         (dwarf2out_early_finish): ... here.
5254
5255 2016-05-11  Richard Biener  <rguenther@suse.de>
5256
5257         PR middle-end/71002
5258         * alias.c (reference_alias_ptr_type): Preserve alias-set zero
5259         if the langhook insists on it.
5260         * fold-const.c (make_bit_field_ref): Add arg for the original
5261         reference and preserve its alias-set.
5262         (decode_field_reference): Take exp by reference and adjust it
5263         to the original memory reference.
5264         (optimize_bit_field_compare): Adjust callers.
5265         (fold_truth_andor_1): Likewise.
5266         * gimplify.c (gimplify_expr): Adjust in-SSA form test.
5267
5268 2016-05-11  Ilya Enkovich  <ilya.enkovich@intel.com>
5269
5270         PR middle-end/70807
5271         * cfgrtl.h (delete_insn_and_edges): Now return bool.
5272         * cfgrtl.c (delete_insn_and_edges): Likewise.
5273         * config/i386/i386.c (convert_scalars_to_vector): Remove
5274         redundant code.
5275         * cse.c (cse_insn): Compute cse_cfg_altered.
5276         (delete_trivially_dead_insns): Likewise.
5277         (cse_cc_succs): Likewise.
5278         (rest_of_handle_cse): Free dominance info if required.
5279         (rest_of_handle_cse2): Likewise.
5280         (rest_of_handle_cse_after_global_opts): Likewise.
5281
5282 2016-05-11  Alan Modra  <amodra@gmail.com>
5283
5284         * config/rs6000/rs6000.c (is_complex_IBM_long_double,
5285         abi_v4_pass_in_fpr): New functions.
5286         (rs6000_function_arg_boundary): Exclude complex IBM long double
5287         from 64-bit alignment when ABI_V4.
5288         (rs6000_function_arg, rs6000_function_arg_advance_1,
5289         rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
5290
5291 2016-05-10  Segher Boessenkool  <segher@kernel.crashing.org>
5292
5293         PR rtl-optimization/71028
5294         * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
5295         jump with just a return in the fallthrough block if the branch
5296         block contains just a return as well.
5297
5298 2016-05-10  Marc Glisse  <marc.glisse@inria.fr>
5299
5300         * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
5301         * match.pd ((X & Y) ^ Y): ... this.
5302         ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
5303         | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
5304
5305 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
5306
5307         * read-md.c (require_char_ws): New function.
5308         (read_string): Simplify using require_char_ws.
5309         (handle_constants): Likewise.
5310         (handle_enum): Likewise.
5311         (handle_file): Likewise.
5312         * read-md.h (require_char_ws): New declaration.
5313         * read-rtl.c (read_conditions): Simplify using require_char_ws.
5314         (read_mapping): Likewise.
5315         (read_rtx_code): Likewise.
5316         (read_nested_rtx): Likewise.
5317
5318 2016-05-10  James Norris  <jnorris@codesourcery.com>
5319
5320         * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
5321         if offloading is enabled and -fopenacc or -fopenmp is specified.
5322         (CRTOFFLOADEND): Likewise.
5323         (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
5324         (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
5325
5326 2016-05-10  Uros Bizjak  <ubizjak@gmail.com>
5327
5328         * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
5329         gotoff_operand code paths.  Use copy_to_suggested_regs and
5330         expand_simple_binop where appropriate.  Cleanup.
5331
5332 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
5333
5334         PR target/70799
5335         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
5336         integer constants.
5337         (dimode_scalar_chain::vector_const_cost): New.
5338         (dimode_scalar_chain::compute_convert_gain): Handle constants.
5339         (dimode_scalar_chain::convert_op): Likewise.
5340         (dimode_scalar_chain::convert_insn): Likewise.
5341
5342 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
5343
5344         * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
5345         unary operation, not a binary one.
5346
5347 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
5348
5349         PR middle-end/70877
5350         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
5351         calls with type casted fndecl.
5352
5353 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
5354
5355         PR tree-optimization/70786
5356         * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
5357         * calls.c (initialize_argument_information): Bind bounds
5358         with corresponding args passed by reference.
5359
5360 2016-05-10  Jakub Jelinek  <jakub@redhat.com>
5361
5362         PR target/70927
5363         * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
5364         *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
5365         use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
5366         accordingly.
5367
5368 2016-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5369
5370         PR target/70963
5371         * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
5372         code for a zero scale factor.
5373         (vsx_xvcvdpuxds_scale): Likewise.
5374
5375 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
5376
5377         * diagnostic-show-locus.c (layout::layout): Call show_ruler
5378         if show_ruler_p was set on the context.
5379         (layout::show_ruler): New method.
5380         * diagnostic.h (struct diagnostic_context): Add field
5381         "show_ruler_p".
5382
5383 2016-05-10  Richard Biener  <rguenther@suse.de>
5384
5385         PR tree-optimization/71039
5386         * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
5387         (chk_uses): New function.
5388         (propagate_with_phi): Verify we can safely replicate the lhs of an
5389         aggregate assignment on all incoming edges.
5390
5391 2016-05-10  Oleg Endo  <olegendo@gcc.gnu.org>
5392
5393         * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
5394         Forward declare.
5395         (rx_atomic_sequence): New class.
5396         * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
5397         (is_interrupt_func, is_fast_interrupt_func): Make non-static and
5398         non-inline.
5399         (rx_atomic_sequence::rx_atomic_sequence,
5400         rx_atomic_sequence::~rx_atomic_sequence): New functions.
5401         * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
5402         CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
5403         CTRLREG_INTB): New constants.
5404         (FETCHOP): New code iterator.
5405         (fethcop_name, fetchop_name2): New iterator code attributes.
5406         (QIHI): New mode iterator.
5407         (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
5408         atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
5409         atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
5410
5411 2016-05-10  Martin Liska  <mliska@suse.cz>
5412
5413         * tree-inline.c (remap_dependence_clique): Do not remap
5414         debugging statements.
5415
5416 2016-05-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5417
5418         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
5419         ("*fixuns_truncdfdi2_z13")
5420         ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
5421         ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
5422         ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
5423
5424 2016-05-10  Richard Biener  <rguenther@suse.de>
5425
5426         PR tree-optimization/70497
5427         PR tree-optimization/28367
5428         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
5429         split out from ...
5430         (visit_reference_op_load): ... here.
5431         (vn_reference_lookup_3): Use it to handle subreg-like accesses
5432         with simplified BIT_FIELD_REFs.
5433         * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
5434         * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
5435         correctly.
5436
5437 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
5438
5439         * dwarf2out.c (add_abstract_origin_attribute): Adjust
5440         documentation comment.  For BLOCK nodes, add a
5441         DW_AT_abstract_origin attribute that points to the DIE generated
5442         for the origin BLOCK.
5443         (gen_lexical_block_die): Call add_abstract_origin_attribute for
5444         blocks from inlined functions.
5445
5446 2016-05-10  Alan Modra  <amodra@gmail.com>
5447
5448         PR target/70947
5449         * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
5450         regrename modifying insns saving lr before __morestack call.
5451         * config/rs6000/rs6000.md (split_stack_return): Similarly for
5452         insns restoring lr after __morestack call.
5453
5454 2016-05-09  Jakub Jelinek  <jakub@redhat.com>
5455
5456         * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
5457         lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
5458         expanders.
5459         * config/i386/sse.md (vec_interleave_high<mode>,
5460         vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
5461         <avx512>_vpermt2var<mode>3_maskz): Likewise.
5462
5463 2016-05-04  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
5464
5465         * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
5466         function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
5467         parallel reassociation for power8 and forward.
5468
5469 2016-05-09  Uros Bizjak  <ubizjak@gmail.com>
5470
5471         * config/i386/i386.md (absneg splitters with general regs): Use
5472         general_reg_operand predicate.
5473         (btsq peephole2): Use x86_64_immediate_operand to check if new
5474         value is suitable for immediate operand.  Generate emitted insn
5475         using RTL expressions.
5476         (btcq peephole2): Ditto.
5477         (btrq peephole2): Ditto.  Generate correct immediate operand
5478         for AND masking.
5479
5480 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
5481
5482         * cfgexpand.c (expand_debug_expr): Fix address offset for negative
5483         bitpos.
5484
5485 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
5486
5487         * tree-affine.c (wide_int_constant_multiple_p): Add missing
5488         pointer dereference.
5489
5490 2016-05-09  Richard Biener  <rguenther@suse.de>
5491
5492         PR tree-optimization/70985
5493         * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
5494         op0 isn't a gimple register.
5495
5496 2016-05-09  Prachi Godbole  <prachi.godbole@imgtec.com>
5497
5498         * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
5499         (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
5500         (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
5501         (i6400_fpu_mult): New cpu units.
5502         (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
5503         (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
5504         (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
5505         (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
5506         (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
5507         (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
5508         (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
5509         (i6400_msa_long_float4, i6400_msa_long_float5)
5510         (i6400_msa_long_float8, i6400_msa_fdiv_df)
5511         (i6400_msa_fdiv_sf): New reservations.
5512         * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
5513         (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
5514         (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
5515         (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
5516         (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
5517         (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
5518         (msa_short_cmp, msa_short_float2, msa_short_logic3)
5519         (msa_short_store4, msa_long_load, msa_short_store)
5520         (msa_long_logic, msa_long_float2, msa_long_float4)
5521         (msa_long_float5, msa_long_float8, msa_long_mult)
5522         (msa_long_fdiv, msa_long_div): New reservations.
5523
5524 2016-05-09  Robert Suchanek  <robert.suchanek@imgtec.com>
5525             Sameera Deshpande  <sameera.deshpande@imgtec.com>
5526             Matthew Fortune  <matthew.fortune@imgtec.com>
5527             Graham Stott  <graham.stott@imgtec.com>
5528             Chao-ying Fu  <chao-ying.fu@imgtec.com>
5529
5530         * config.gcc: Add MSA header file for mips*-*-* target.
5531         * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
5532         (Ubv8i, Urv8):  New constraints.
5533         * config/mips/mips-ftypes.def: Add function types for MSA
5534         builtins.
5535         * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
5536         (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
5537         * config/mips/mips-msa.md: New file.
5538         * config/mips/mips-protos.h
5539         (mips_split_128bit_const_insns): New prototype.
5540         (mips_msa_idiv_insns): Likewise.
5541         (mips_split_128bit_move): Likewise.
5542         (mips_split_128bit_move_p): Likewise.
5543         (mips_split_msa_copy_d): Likewise.
5544         (mips_split_msa_insert_d): Likewise.
5545         (mips_split_msa_fill_d): Likewise.
5546         (mips_expand_msa_branch): Likewise.
5547         (mips_const_vector_same_val_p): Likewise.
5548         (mips_const_vector_same_bytes_p): Likewise.
5549         (mips_const_vector_same_int_p): Likewise.
5550         (mips_const_vector_shuffle_set_p): Likewise.
5551         (mips_const_vector_bitimm_set_p): Likewise.
5552         (mips_const_vector_bitimm_clr_p): Likewise.
5553         (mips_msa_vec_parallel_const_half): Likewise.
5554         (mips_msa_output_division): Likewise.
5555         (mips_ldst_scaled_shift): Likewise.
5556         (mips_expand_vec_cond_expr): Likewise.
5557         * config/mips/mips.c (enum mips_builtin_type): Add
5558         MIPS_BUILTIN_MSA_TEST_BRANCH.
5559         (mips_gen_const_int_vector_shuffle): New prototype.
5560         (mips_const_vector_bitimm_set_p): New function.
5561         (mips_const_vector_bitimm_clr_p): Likewise.
5562         (mips_const_vector_same_val_p): Likewise.
5563         (mips_const_vector_same_bytes_p): Likewise.
5564         (mips_const_vector_same_int_p): Likewise.
5565         (mips_const_vector_shuffle_set_p): Likewise.
5566         (mips_symbol_insns): Forbid loading symbols via immediate for
5567         MSA.
5568         (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
5569         stores.
5570         (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
5571         MSA.
5572         (mips_lx_address_p): Add support load indexed address for MSA.
5573         (mips_address_insns): Add calculation of instructions needed for
5574         stores and loads for MSA.
5575         (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR.  Handle
5576         CONST_VECTOR for MSA and let it fall through.
5577         (mips_ldst_scaled_shift): New function.
5578         (mips_subword_at_byte): Likewise.
5579         (mips_msa_idiv_insns): Likewise.
5580         (mips_legitimize_move): Validate MSA moves.
5581         (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases.  Add
5582         calculation of costs for MSA division.
5583         (mips_split_move_p): Check if MSA moves need splitting.
5584         (mips_split_move): Split MSA moves if necessary.
5585         (mips_split_128bit_move_p): New function.
5586         (mips_split_128bit_move): Likewise.
5587         (mips_split_msa_copy_d): Likewise.
5588         (mips_split_msa_insert_d): Likewise.
5589         (mips_split_msa_fill_d): Likewise.
5590         (mips_output_move): Handle MSA moves.
5591         (mips_expand_msa_branch): New function.
5592         (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
5593         Reinstate 'y' modifier.
5594         (mips_file_start): Add MSA .gnu_attribute.
5595         (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
5596         FPRs.
5597         (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
5598         (mips_class_max_nregs): Add register size for MSA supported mode.
5599         (mips_cannot_change_mode_class): Allow conversion between MSA
5600         vector modes and TImode.
5601         (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
5602         instruction.
5603         (mips_secondary_reload_class): Force MSA loads/stores via memory.
5604         (mips_preferred_simd_mode): Add preffered modes for MSA.
5605         (mips_vector_mode_supported_p): Add MSA supported modes.
5606         (mips_autovectorize_vector_sizes): New function.
5607         (mips_msa_output_division): Likewise.
5608         (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
5609         (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
5610         (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
5611         (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
5612         (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
5613         (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
5614         (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
5615         (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
5616         (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
5617         (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
5618         (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
5619         (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
5620         (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
5621         (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
5622         (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
5623         (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
5624         (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
5625         (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
5626         (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
5627         (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
5628         (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
5629         (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
5630         (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
5631         (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
5632         (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
5633         (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
5634         (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
5635         (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
5636         (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
5637         (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
5638         (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
5639         (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
5640         (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
5641         (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
5642         (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
5643         (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
5644         (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
5645         (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
5646         (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
5647         (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
5648         (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
5649         (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
5650         (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
5651         (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
5652         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
5653         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
5654         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
5655         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
5656         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
5657         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
5658         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
5659         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
5660         (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
5661         (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
5662         (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
5663         (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
5664         (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
5665         (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
5666         (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
5667         (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
5668         (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
5669         (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
5670         (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
5671         (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
5672         (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
5673         (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
5674         (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
5675         (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
5676         (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
5677         (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
5678         (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
5679         (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
5680         (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
5681         (CODE_FOR_msa_ldi_d): New code_aliasing macros.
5682         (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
5683         slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
5684         srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
5685         srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
5686         srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
5687         srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
5688         bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
5689         bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
5690         bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
5691         binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
5692         binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
5693         binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
5694         addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
5695         subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
5696         max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
5697         max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
5698         maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
5699         mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
5700         mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
5701         min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
5702         ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
5703         clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
5704         clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
5705         clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
5706         clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
5707         clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
5708         st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
5709         sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
5710         adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
5711         adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
5712         ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
5713         aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
5714         aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
5715         subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
5716         subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
5717         subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
5718         asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
5719         maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
5720         msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
5721         div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
5722         hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
5723         hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
5724         mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
5725         dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
5726         dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
5727         dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
5728         sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
5729         splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
5730         pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
5731         ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
5732         ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
5733         ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
5734         ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
5735         bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
5736         fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
5737         pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
5738         nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
5739         copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
5740         insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
5741         bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
5742         fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
5743         fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
5744         fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
5745         fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
5746         fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
5747         fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
5748         fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
5749         fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
5750         fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
5751         fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
5752         mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
5753         msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
5754         fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
5755         flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
5756         ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
5757         ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
5758         ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
5759         move_v builtins.
5760         (mips_get_builtin_decl_index): New array.
5761         (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
5762         (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
5763         (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
5764         (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
5765         (mips_init_builtins): Initialize mips_get_builtin_decl_index
5766         array.
5767         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
5768         hook.
5769         (mips_expand_builtin_insn): Prepare operands for
5770         CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
5771         CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
5772         CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
5773         CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
5774         CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
5775         CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
5776         CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
5777         CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
5778         CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
5779         CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
5780         CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
5781         CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
5782         CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
5783         CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
5784         CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
5785         CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
5786         CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
5787         CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
5788         CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
5789         CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
5790         CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
5791         CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
5792         CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
5793         CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
5794         CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
5795         CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
5796         CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
5797         CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
5798         CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
5799         CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
5800         CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
5801         CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
5802         CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
5803         CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
5804         CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
5805         CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
5806         CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
5807         CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
5808         CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
5809         CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
5810         CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
5811         (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
5812         (mips_set_compression_mode): Disallow MSA with MIPS16 code.
5813         (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
5814         These are set implicitly and an error is reported if overridden.
5815         (mips_expand_builtin_msa_test_branch): New function.
5816         (mips_expand_msa_shuffle): Likewise.
5817         (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
5818         (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
5819         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
5820         (mips_expand_vec_unpack): Add support for MSA.
5821         (mips_expand_vector_init): Likewise.
5822         (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
5823         instead of const0_rtx.
5824         (mips_msa_vec_parallel_const_half): New function.
5825         (mips_gen_const_int_vector): Likewise.
5826         (mips_gen_const_int_vector_shuffle): Likewise.
5827         (mips_expand_msa_cmp): Likewise.
5828         (mips_expand_vec_cond_expr): Likewise.
5829         * config/mips/mips.h
5830         (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
5831         (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
5832         specified.
5833         (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
5834         (ISA_HAS_MSA): New macro.
5835         (UNITS_PER_MSA_REG): Likewise.
5836         (BITS_PER_MSA_REG): Likewise.
5837         (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
5838         (MSA_REG_FIRST): New macro.
5839         (MSA_REG_LAST): Likewise.
5840         (MSA_REG_NUM): Likewise.
5841         (MSA_REG_P): Likewise.
5842         (MSA_REG_RTX_P): Likewise.
5843         (MSA_SUPPORTED_MODE_P): Likewise.
5844         (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
5845         (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
5846         * config/mips/mips.md: Include mips-msa.md.
5847         (alu_type): Add simd_add.
5848         (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
5849         (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
5850         simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
5851         simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
5852         simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
5853         simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
5854         simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
5855         simd_move, simd_load, simd_store.  Choose "multi" for moves
5856         for "qword_mode".
5857         (qword_mode): New attribute.
5858         (insn_count): Add instruction count for quad moves.
5859         Increase the count for MIPS SIMD division.
5860         (UNITMODE): Add UNITMODEs for vector types.
5861         (addsub): New code iterator.
5862         * config/mips/mips.opt (mmsa): New option.
5863         * config/mips/msa.h: New file.
5864         * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
5865         specified.
5866         * config/mips/mti-linux.h: Likewise.
5867         * config/mips/predicates.md
5868         (const_msa_branch_operand): New constraint.
5869         (const_uimm3_operand): Likewise.
5870         (const_uimm4_operand): Likewise.
5871         (const_uimm5_operand): Likewise.
5872         (const_uimm8_operand): Likewise.
5873         (const_imm5_operand): Likewise.
5874         (aq10b_operand): Likewise.
5875         (aq10h_operand): Likewise.
5876         (aq10w_operand): Likewise.
5877         (aq10d_operand): Likewise.
5878         (const_m1_operand): Likewise.
5879         (reg_or_m1_operand): Likewise.
5880         (const_exp_2_operand): Likewise.
5881         (const_exp_4_operand): Likewise.
5882         (const_exp_8_operand): Likewise.
5883         (const_exp_16_operand): Likewise.
5884         (const_vector_same_val_operand): Likewise.
5885         (const_vector_same_simm5_operand): Likewise.
5886         (const_vector_same_uimm5_operand): Likewise.
5887         (const_vector_same_uimm6_operand): Likewise.
5888         (const_vector_same_uimm8_operand): Likewise.
5889         (par_const_vector_shf_set_operand): Likewise.
5890         (reg_or_vector_same_val_operand): Likewise.
5891         (reg_or_vector_same_simm5_operand): Likewise.
5892         (reg_or_vector_same_uimm6_operand): Likewise.
5893         * doc/extend.texi (MIPS SIMD Architecture Functions): New
5894         section.
5895         * doc/invoke.texi (-mmsa): Document new option.
5896
5897 2016-05-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5898
5899         * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
5900         * configure: Regenerate.
5901         * config.in: Regenerate.
5902         * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
5903         on -fvtable-verify.
5904         * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
5905         (ENDFILE_VTV_SPEC): Define.
5906
5907 2016-05-09  Kaushik Phatak  <kaushik.phatak@kpit.com>
5908
5909         * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
5910         registers in all interrupt handlers if necessary.
5911         (rl78_option_override): Add warning.
5912         (MUST_SAVE_MDUC_REGISTERS): New macro.
5913         (rl78_expand_epilogue): Restore the MDUC registers if necessary.
5914         * config/rl78/rl78.c (check_mduc_usage): New function.
5915         (mduc_regs): New structure to hold MDUC register data.
5916         * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
5917         (mulsi3_g13): Add is_g13_muldiv_insn attribute.
5918         (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
5919         (mulhi3_g13): Add is_g13_muldiv_insn attribute.
5920         * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
5921         * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
5922
5923 2016-05-09  Bin Cheng  <bin.cheng@arm.com>
5924
5925         * tree-if-conv.c (tree-ssa-loop.h): Include header file.
5926         (tree-ssa-loop-niter.h): Ditto.
5927         (idx_within_array_bound, ref_within_array_bound): New functions.
5928         (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
5929         Factor out check on writable base object to ...
5930         (base_object_writable): ... here.
5931
5932 2016-05-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5933
5934         * config/arm/arm.md (probe_stack): Add modes to set source
5935         and destination.
5936
5937 2016-05-09  Bernd Schmidt  <bschmidt@redhat.com>
5938
5939         * regrename.c (base_reg_class_for_rename): New static function.
5940         (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
5941
5942 2016-05-08  Jan Hubicka  <hubicka@ucw.cz>
5943
5944         * cgraph.c (thunk_adjust): Export.
5945         * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
5946         * cgraphunit.c (thunk_adjust): Export.
5947         (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
5948         thunks.
5949         * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
5950         inlinable.
5951         * tree-inline.c (expand_call_inline): Expand thunks inline.
5952
5953 2016-05-08  Uros Bizjak  <ubizjak@gmail.com>
5954
5955         PR target/70998
5956         * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
5957         (*sse2_vd_cvtss2sd): Ditto.
5958         * config/i386/i386.md
5959         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
5960         Generate *sse2_vd_cvtsd2ss pattern.
5961         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
5962         Generate *sse2_vd_cvtss2sd pattern.
5963
5964 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
5965
5966         * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
5967         * config/sh/sh.c (get_sh_arg_class): ... this new function.  Update its
5968         users.
5969
5970 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
5971
5972         * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
5973         * config/sh/sh.c: Define and declare variables on first use throughout
5974         the file.
5975         (current_function_interrupt): Change to bool type.
5976         (frame_insn): Rename to emit_frame_insn and update users.
5977         (push_regs): Use bool for 'interrupt_handler' argument.
5978         (save_schedule_s): Remove.
5979         (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
5980         (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
5981         targetm.asm_out.unaligned_op.di.
5982         (gen_far_branch): Remove redundant forward declaration.
5983         (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
5984         MAX_TEMPS, save_schedule_ssave_schedule): Remove.
5985         (sh_set_return_address, sh_function_ok_for_sibcall,
5986         scavenge_reg): Update comments.
5987         (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
5988         (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
5989         (sh_attr_renesas_p): Remove unnecessary parentheses.
5990         (branch_dest): Simplify.
5991         * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
5992         Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
5993         (CUMULATIVE_ARGS): Change macro to typedef.
5994         (current_function_interrupt): Change to bool type.
5995         (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
5996         Surround with __cplusplus ifdef.
5997         (sh_compare_op0, sh_compare_op1): Remove.
5998         (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
5999
6000 2016-05-07  Jim Wilson  <jim.wilson@linaro.org>
6001
6002         * config/arm/arm.md: (arch): Add neon.
6003         (arch_enabled): Return yes for arch neon when TARGET_NEON.
6004         * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3.  Add
6005         neon_move as type for alt 3.  Add arch attr enabling alt 3 for neon.
6006         Emit vmov.i64 for alt 3.  Renumber alternatives 3 to 8.  Adjust
6007         attributes for alt renumbering.  Mark alt 3 as non-predicable.
6008         (thumb2_movdf_vfp): Likewise.
6009
6010 2016-05-07  Uros Bizjak  <ubizjak@gmail.com>
6011
6012         * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
6013         to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
6014         (*andqi_1): Add preferred_for_speed attribute to disparage
6015         alternative 2 for TARGET_PARTIAL_REG_STALL targets.
6016         (*<code>qi_1): Ditto.
6017         (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
6018         alternative 1 for TARGET_PARTIAL_REG_STALL targets.
6019         (*ashlqi3_1): Ditto.
6020         (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
6021         Add preferred_for_size attribute to disparage alternative 0 and
6022         preferred_for_speed attribute to disparage alternative 1 for
6023         TARGET_PARTIAL_REG_STALL targets.
6024
6025 2016-05-07  Tom de Vries  <tom@codesourcery.com>
6026
6027         PR tree-optimization/70956
6028         * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
6029         def.
6030
6031 2016-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
6032
6033         * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
6034         * config/sh/sh.c (sh_cbranch_distance): Implement it.
6035         * config/sh/sh.md (branch_zero): Remove define_attr.
6036         (define_delay): Disable delay slot if branch distance is one insn.
6037
6038 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
6039
6040         * config/i386/i386.md (LEAMODE): New mode attribute.
6041         (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
6042         (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
6043         and LEAMODE mode attribute.  Use VOIDmode const_0_to_3_operand as
6044         operand 2 predicate.
6045         (*lea<mode>_general_2): Use VOIDmode for const248_operand.
6046         (*lea<mode>_general_3): Ditto.
6047         (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
6048
6049 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
6050
6051         * genmddump.c (main): Convert argv from char ** to const char **.
6052
6053 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
6054
6055         * coretypes.h (OVERRIDE): New macro.
6056         (FINAL): New macro.
6057
6058 2016-05-06  Eric Botcazou  <ebotcazou@adacore.com>
6059
6060         * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
6061         allow coalescing if the types are compatible.
6062
6063 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
6064
6065         * pass_manager.h (pass_manager::register_pass_name): New method.
6066         (pass_manager::get_pass_by_name): New method.
6067         (pass_manager::create_pass_tab): New method.
6068         (pass_manager::m_name_to_pass_map): New field.
6069         * passes.c (name_to_pass_map): Delete global in favor of field
6070         "m_name_to_pass_map" of pass_manager.
6071         (register_pass_name): Rename from a function to...
6072         (pass_manager::register_pass_name): ...this method, updating
6073         for renaming of global "name_to_pass_map" to field
6074         "m_name_to_pass_map".
6075         (create_pass_tab): Rename from a function to...
6076         (pass_manager::create_pass_tab): ...this method, updating
6077         for renaming of global "name_to_pass_map" to field.
6078         (get_pass_by_name): Rename from a function to...
6079         (pass_manager::get_pass_by_name): ...this method.
6080         (enable_disable_pass): Convert use of get_pass_by_name to
6081         a method call, locating the pass_manager singleton.
6082
6083 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
6084
6085         * genattr-common.c (main): Convert argv from char ** to const char **.
6086         * genattr.c (main): Likewise.
6087         * genattrtab.c (main): Likewise.
6088         * genautomata.c (initiate_automaton_gen): Likewise.
6089         (main): Likewise.
6090         * gencodes.c (main): Likewise.
6091         * genconditions.c (main): Likewise.
6092         * genconfig.c (main): Likewise.
6093         * genconstants.c (main): Likewise.
6094         * genemit.c (main): Likewise.
6095         * genenums.c (main): Likewise.
6096         * genextract.c (main): Likewise.
6097         * genflags.c (main): Likewise.
6098         * genmddeps.c (main): Likewise.
6099         * genopinit.c (main): Likewise.
6100         * genoutput.c (main): Likewise.
6101         * genpeep.c (main): Likewise.
6102         * genpreds.c (main): Likewise.
6103         * genrecog.c (main): Likewise.
6104         * gensupport.c (init_rtx_reader_args_cb): Likewise.
6105         (init_rtx_reader_args): Likewise.
6106         * gensupport.h (init_rtx_reader_args_cb): Likewise.
6107         (init_rtx_reader_args): Likewise.
6108         * gentarget-def.c (main): Likewise.
6109         * read-md.c (read_md_files): Likewise.
6110         * read-md.h (read_md_files): Likewise.
6111
6112 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
6113
6114         * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
6115         instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
6116         * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
6117         Remove unused predicate.
6118         (register_and_not_fp_reg_operand): Ditto.
6119
6120 2016-05-06  Martin Liska  <mliska@suse.cz>
6121
6122         * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
6123         instead of vec as the vector is local to the function.
6124
6125 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
6126
6127         * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
6128         avx512bw alternative.
6129
6130         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
6131         before the ashr<mode>3 pattern.
6132
6133         * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
6134         v instead of x in vex or maybe_vex alternatives, use
6135         maybe_evex instead of vex in prefix.
6136
6137         * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
6138         *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
6139         vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
6140         in vex or maybe_vex alternatives, use maybe_evex instead of vex
6141         in prefix.
6142
6143         * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
6144         v instead of x in vex or maybe_vex alternatives, use
6145         maybe_evex instead of vex in prefix.
6146
6147         * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
6148         sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
6149         sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
6150         sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
6151         alternatives, use maybe_evex instead of vex in prefix.
6152
6153         * config/i386/sse.md (vec_interleave_lowv4sf,
6154         *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
6155         v instead of x in vex or maybe_vex alternatives, use
6156         maybe_evex instead of vex in prefix.
6157
6158         * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
6159         v instead of x in vex or maybe_vex alternatives, use
6160         maybe_evex instead of vex in prefix.
6161
6162         * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
6163         v constraint instead of x.
6164
6165 2016-05-06  Nathan Sidwell  <nathan@codesourcery.com>
6166
6167         * gimple.c (gimple_call_same_target_p): Unique functions are eq.
6168         * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
6169         equality first.
6170
6171 2016-05-06  Richard Biener  <rguenther@suse.de>
6172
6173         PR tree-optimization/70948
6174         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
6175         Properly clobber all fields of va_list for __builtin_va_start.
6176
6177 2016-05-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
6178
6179         PR debug/70935
6180         * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
6181         loop latch destination.
6182
6183 2016-05-06  Martin Liska  <mliska@suse.cz>
6184
6185         * tree-ssa-uninit.c: Apply manual changes
6186         to the GNU coding style.
6187         (prune_uninit_phi_opnds): Rename from
6188         prune_uninit_phi_opnds_in_unrealizable_paths.
6189
6190 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
6191
6192         * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
6193         mspace): Remove deprecated options.
6194         * doc/invoke.texi (SH options): Remove -mspace.
6195
6196 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
6197
6198         * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
6199
6200 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
6201
6202         * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
6203         corresponding combine split pattern.
6204
6205 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
6206
6207         PR target/58219
6208         * config/sh/predicates.md (long_displacement_mem_operand): New.
6209         * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
6210         Add movi20, movi20s alternatives.  Adjust length attribute for
6211         alternatives.
6212         (movsi_ie): Allow for any FPU.  Adjust length attribute for
6213         alternatives.
6214         (movsi_i_lowpart): Add movi20, movi20s alternatives.  Adjust length
6215         attribute for alternatives.
6216         (*mov<mode>): Use long_displacement_mem_operand for length attribute.
6217         (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
6218         length attribute for alternatives.
6219
6220 2016-05-06  Richard Biener  <rguenther@suse.de>
6221
6222         PR tree-optimization/70960
6223         * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
6224
6225 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
6226
6227         PR target/52933
6228         * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
6229         * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
6230
6231 2016-05-06  Marek Polacek  <polacek@redhat.com>
6232
6233         PR sanitizer/70875
6234         * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
6235
6236 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
6237
6238         PR target/54089
6239         * config/sh/sh.md (*rotcr): Add another variant.
6240
6241 2016-05-06  Richard Biener  <rguenther@suse.de>
6242
6243         PR middle-end/70931
6244         * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
6245
6246 2016-05-06  Richard Biener  <rguenther@suse.de>
6247
6248         PR middle-end/70941
6249         * fold-const.c (split_tree): Always convert to the original type
6250         before negating.
6251
6252 2016-05-06  Richard Biener  <rguenther@suse.de>
6253
6254         * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
6255         (fwprop_addr): Likewise.
6256
6257 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
6258
6259         PR target/70873
6260         * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
6261         New prototype.
6262         * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
6263         * config/i386/i386.md (push mem splitter): Use find_constant_src in
6264         the splitter condition.
6265         (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
6266         the splitter condition.
6267         (FP float_extend load splitter): Ditto.
6268
6269 2016-05-05  Uros Bizjak  <ubizjak@gmail.com>
6270
6271         * config/i386/i386.md (peehole2 patterns): Change true_regnum
6272         to REGNO in all peephole2 patterns.
6273         (post-reload splitters): Change true_regnum to REGNO in
6274         post-reload splitters.
6275         (zero_extend splitters): Use general_reg_operand and
6276         nonimmediate_gr_operand predicates.
6277
6278 2016-05-05  Jakub Jelinek  <jakub@redhat.com>
6279
6280         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
6281         v constraint instead of x.
6282
6283 2016-05-05  Alan Modra  <amodra@gmail.com>
6284
6285         PR target/68662
6286         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
6287         set OPTION_MASK_RELOCATABLE when flag_pic == 2.  Set
6288         TARGET_NO_FP_IN_TOC for -mrelocatable.
6289         (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
6290         TARGET_RELOCATABLE test.
6291         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
6292         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
6293         * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
6294         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
6295         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
6296         * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
6297         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
6298         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
6299         * config/rs6000/predicates.md (easy_fp_constant): Likewise.
6300         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
6301         Likewise.
6302         (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
6303         (rs6000_stack_info): Likewise.
6304         (rs6000_elf_asm_out_constructor): Likewise.
6305         (rs6000_elf_asm_out_destructor): Likewise.
6306         (rs6000_elf_declare_function_name): Likewise.
6307         * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
6308         * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
6309         Don't define.
6310
6311 2016-05-05  Alan Modra  <amodra@gmail.com>
6312
6313         * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
6314
6315 2016-05-05  Alan Modra  <amodra@gmail.com>
6316
6317         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
6318         out-of-line gpr restore for one or two regs if that would add
6319         a save of lr.
6320
6321 2016-05-04  Uros Bizjak  <ubizjak@gmail.com>
6322
6323         PR target/70873
6324         * config/i386/i386.md
6325         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
6326         Change to post-epilogue_completed late splitter.  Use sse_reg_operand
6327         as operand 0 predicate.
6328         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
6329         Ditto.
6330         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
6331         Ditto.  Emit the pattern using RTX.
6332
6333         (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
6334         Use sse_reg_opreand as operand 0 predicate.  Do not use true_regnum in
6335         the post-reload splitter.  Use lowpart_subreg instead of gen_rtx_REG.
6336         (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
6337         Ditto.
6338         (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
6339         sse_reg_operand as operand 0 predicate.
6340
6341         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
6342         Use sse_reg_opreand as operand 0 predicate.  Use lowpart_subreg
6343         instead of gen_rtx_REG.
6344         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
6345         Ditto.
6346
6347 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
6348
6349         * function.c (emit_use_return_register_into_block): Delete.
6350         (gen_return_pattern): Delete.
6351         (emit_return_into_block): Delete.
6352         (active_insn_between): Delete.
6353         (convert_jumps_to_returns): Delete.
6354         (emit_return_for_exit): Delete.
6355         (thread_prologue_and_epilogue_insns): Delete all code dealing with
6356         simple_return for shrink-wrapped blocks.
6357         * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
6358         end of blocks that need one.
6359         (get_unconverted_simple_return): Delete.
6360         (convert_to_simple_return): Delete.
6361         * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
6362         (convert_to_simple_return): Ditto.
6363
6364 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
6365
6366         * cfgcleanup.c (bb_is_just_return): New function.
6367         (try_optimize_cfg): Simplify jumps to return, branches to return,
6368         and branches around return.
6369
6370 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
6371
6372         * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
6373         branch to a return.
6374
6375 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
6376
6377         PR c++/70906
6378         PR c++/70933
6379         * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
6380         * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
6381         assert flags & OEP_HASH_CHECK, instead of asserting it
6382         never happens.  Handle TARGET_EXPR.
6383         * fold-const.c (operand_equal_p): For hash verification,
6384         or in OEP_HASH_CHECK into flags.
6385
6386 2016-05-04  Eric Botcazou  <ebotcazou@adacore.com>
6387
6388         * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
6389         comment.
6390         (compute_samebase_partition_bases): Fix typo.
6391
6392 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
6393
6394         * config/i386/sse.md (vec_interleave_highv8sf,
6395         vec_interleave_lowv8sf, vec_interleave_highv4df,
6396         vec_interleave_lowv4df): Remove constraints from expanders.
6397
6398         * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
6399
6400 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
6401
6402         * tree-inline.c (expand_call_inline): Fix path dealing with
6403         making lhs of call statement undefined.
6404
6405 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
6406
6407         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
6408         Check availability on NODE, too.
6409         * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
6410         (cgraph_node::call_for_symbol_and_aliases): Likewise.
6411         (varpool_node::call_for_symbol_and_aliase): Likewise.
6412         * ipa-pure-const.c (add_new_function): Analyze all bodies.
6413         (propagate_pure_const): Propagate across interposable functions, too.
6414         (skip_function_for_local_pure_const): Do not skip interposable bodies
6415         with aliases.
6416         (pass_local_pure_const::execute): Update.
6417
6418 2016-05-04  Marek Polacek  <polacek@redhat.com>
6419
6420         * doc/invoke.texi: Document -Wdangling-else.
6421
6422 2016-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
6423
6424         * config.gcc: Error out when conflicting multilib is detected.  Do not
6425         loop over multilibs since no combination is legal.
6426
6427 2016-05-04  Alan Modra  <amodra@gmail.com>
6428
6429         * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
6430         * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
6431         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
6432         Align .toc.
6433
6434 2016-05-04  Matthew Fortune  <matthew.fortune@imgtec.com>
6435
6436         * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
6437         Clean up p5600 comments.
6438
6439 2016-05-04  Richard Biener  <rguenther@suse.de>
6440
6441         * match.pd: Add BIT_FIELD_REF canonicalizations and vector
6442         constructor simplifications.
6443         * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
6444
6445 2016-05-04  Oleg Endo  <olegendo@gcc.gnu.org>
6446
6447         * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
6448         * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
6449         result.set_rtx is null instead of aborting.
6450         * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
6451         Always enable.
6452         (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
6453         * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
6454         *mov<mode>_store_postinc): New patterns.
6455
6456 2016-05-04  Marc Glisse  <marc.glisse@inria.fr>
6457
6458         * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR.  Mark
6459         as commutative.  Check both conversions are NOP.
6460         ((A & B) OP (C & B)): Remove.
6461
6462 2016-05-04  Alan Modra  <amodra@gmail.com>
6463
6464         * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
6465
6466 2016-05-04  Alan Modra  <amodra@gmail.com>
6467
6468         PR target/70866
6469         * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
6470         when cr2,3,4 are all fixed regs.
6471
6472 2016-05-04  Bernd Schmidt  <bschmidt@redhat.com>
6473
6474         PR rtl-optimization/57193
6475         * opts.c (default_options_table): Revert OPT_frename_registers change.
6476         * doc/invoke.texi (-frename-registers, -O2): Likewise.
6477
6478 2016-05-03  Martin Sebor  <msebor@redhat.com>
6479
6480         PR c++/66561
6481         * builtins.c (fold_builtin_FILE): New function.
6482         (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
6483         (fold_builtin_0): Call them.
6484         * gimplify.c (gimplify_call_expr): Remove the handling of
6485         BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
6486
6487         PR c++/66561
6488         * doc/extend.texi (Other Builtins): Update __builtin_FILE,
6489         __builtin_FUNCTION, and __builtin_LINE to reflect they yield
6490         constants.
6491
6492         PR c++/66639
6493         * doc/extend.texi (Function Names as Strings): Update __func__,
6494         __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
6495         constants.
6496
6497 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
6498             Richard Biener  <rguenther@suse.de>
6499
6500         PR tree-optimization/70916
6501         * tree-if-conv.c: Include cfganal.h.
6502         (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
6503         and remove_fake_exit_edges around the optimization pass.
6504
6505 2016-05-03  Jan Hubicka  <hubicka@ucw.cz>
6506
6507         * cgraph.c (symbol_table::create_edge): Set inline_failed.
6508         (cgraph_edge::make_direct): Likewise.
6509         (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
6510         * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
6511         * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
6512         (CIF_THUNK): New code.
6513         * ipa-inline-analysis.c (initialize_inline_failed): Preserve
6514         CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
6515         (compute_inline_parameters): Set inline_failed for thunks.
6516         (inline_analyze_function): Cleanup.
6517         * ipa-inline.c (can_inline_edge_p): Do not deal with
6518         call_stmt_cannot_inline_p.
6519         (can_early_inline_edge_p): Likewise.
6520         (early_inliner): Initialize inline_failed.
6521         * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
6522
6523 2016-05-03  Uros Bizjak  <ubizjak@gmail.com>
6524
6525         * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
6526         from nonimm_ssenomem_operand.
6527         (nonimm_ssenomem_operand): New predicate.
6528         * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
6529         as operand 0 predicate.
6530         (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
6531         Disable unsupported alternatives using "enabled" attribute.
6532         Use register_ssemem_operand as operand 0 predicate.
6533         (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
6534
6535 2016-05-03  Marek Polacek  <polacek@redhat.com>
6536
6537         PR c/70859
6538         * input.c (expansion_point_location): New function.
6539         * input.h (expansion_point_location): Declare.
6540
6541 2016-05-03  Pierre-Marie de Rodat  <derodat@adacore.com>
6542
6543         * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
6544         occurence with frame_offset_ ones.
6545
6546 2016-05-03  Alan Modra  <amodra@gmail.com>
6547
6548         PR rtl-optimization/70890
6549         * ira.c (combine_and_move_insns): When moving def_insn, remove
6550         equivs on use_insn.
6551
6552 2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
6553
6554         * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
6555         ("*r<noxa>sbg_<mode>_srl"): New define_insns.
6556         ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
6557         ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
6558
6559 2016-05-03  Alan Modra  <amodra@gmail.com>
6560
6561         * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
6562         for SAVE_MULTIPLE/STORE_MULTIPLE.
6563
6564 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
6565
6566         * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
6567         *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
6568
6569 2016-05-03  Richard Biener  <rguenther@suse.de>
6570
6571         * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
6572         default true.
6573         (gimplify_arg): Likewise.
6574         * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
6575         re-writing the result to a decl if required.
6576         (internal_get_tmp_var): Add allow_ssa parameter
6577         and override into_ssa with it.
6578         (get_formal_tmp_var): Adjust.
6579         (get_initialized_tmp_var): Add allow_ssa parameter.
6580         (gimplify_arg): Add allow_ssa parameter and avoid generating
6581         SSA names for the result false.
6582         (gimplify_call_expr): If the call may return twice do not
6583         gimplify parameters into SSA.
6584         (prepare_gimple_addressable): Do not allow an SSA name as temporary.
6585         (gimplify_modify_expr): Adjust assert.  For noreturn calls
6586         with a SSA name LHS adjust its def.
6587         (gimplify_save_expr): Do not allow an SSA name as save-expr result.
6588         (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
6589         (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
6590         (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
6591         an SSA name.  Likewise for OMP_CLAUSE_REDUCTION operands.
6592         (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL.  Likewise
6593         for OMP_FOR_COND,  OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
6594         (optimize_target_teams): Do not allow SSA names for clause operands.
6595         (gimplify_expr): Likewise for where we mark the result addressable.
6596         * passes.def (pass_init_datastructures): Remove.
6597         * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
6598         (rewrite_stmt): Likewise.
6599         * tree-inline.c (initialize_cfun): Properly transfer SSA state.
6600         (replace_locals_op): Replace SSA names.
6601         (copy_gimple_seq_and_replace_locals): Init src_cfun.
6602         * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
6603         * cgraph.c (release_function_body): Free CFG annotations only
6604         when we have a CFG.  Simplify.
6605         * gimple-fold.c (gimplify_and_update_call_from_tree): Use
6606         force_gimple_operand instead of get_initialized_tmp_var.
6607         * tree-pass.h (make_pass_init_datastructures): Remove.
6608         * tree-ssa.c (execute_init_datastructures): Remove.
6609         (pass_data_init_datastructures): Likewise.
6610         (class pass_init_datastructures): Likewise.
6611         (make_pass_init_datastructures): Likewise.
6612         * omp-low.c (create_omp_child_function): Init SSA data structures.
6613         (grid_expand_target_grid_body): Likewise.
6614         * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
6615         name before adding it to names_to_release.
6616         (remove_bb): Always release SSA defs.
6617         * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
6618         before dereferencing it.
6619         * cgraphunit.c (init_lowered_empty_function): Always
6620         int SSA data structures.
6621         * tree-ssanames.c (release_defs): Remove assert that we are in
6622         SSA form.
6623         * trans-mem.c (diagnose_tm_1): Handle SSA name function.
6624
6625 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
6626             Uros Bizjak  <ubizjak@gmail.com>
6627
6628         PR rtl-optimization/70467
6629         * config/i386/predicates.md (x86_64_hilo_int_operand,
6630         x86_64_hilo_general_operand): New predicates.
6631         * config/i386/constraints.md (Wd): New constraint.
6632         * config/i386/i386.md (mode attr di): Use Wd instead of e.
6633         (general_hilo_operand): New mode attr.
6634         (add<mode>3, sub<mode>3): Use <general_hilo_operand>
6635         instead of <general_operand>.
6636         (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
6637         x86_64_hilo_general_operand instead of <general_operand>.
6638
6639 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
6640
6641         PR tree-optimization/70916
6642         * tree-if-conv.c (constant_or_ssa_name): Removed.
6643         (fold_build_cond_expr): Use is_gimple_val instead of
6644         constant_or_ssa_name.
6645
6646         PR tree-optimization/70916
6647         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
6648         if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
6649
6650         PR target/49244
6651         * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
6652         (optimize_atomic_bit_test_and): New function.
6653         (pass_fold_builtins::execute): Use it.
6654         * optabs.def (atomic_bit_test_and_set_optab,
6655         atomic_bit_test_and_complement_optab,
6656         atomic_bit_test_and_reset_optab): New optabs.
6657         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
6658         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
6659         * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
6660         * builtins.c (expand_ifn_atomic_bit_test_and): New function.
6661         * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
6662         expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
6663         expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
6664         * doc/md.texi (atomic_bit_test_and_set@var{mode},
6665         atomic_bit_test_and_complement@var{mode},
6666         atomic_bit_test_and_reset@var{mode}): Document.
6667         * config/i386/sync.md (atomic_bit_test_and_set<mode>,
6668         atomic_bit_test_and_complement<mode>,
6669         atomic_bit_test_and_reset<mode>): New expanders.
6670         (atomic_bit_test_and_set<mode>_1,
6671         atomic_bit_test_and_complement<mode>_1,
6672         atomic_bit_test_and_reset<mode>_1): New insns.
6673
6674 2016-05-03  Richard Sandiford  <richard.sandiford@arm.com>
6675
6676         PR rtl-optimization/70687
6677         * combine.c (change_zero_ext): Check for scalar modes.  Use wide_int
6678         instead of unsigned HOST_WIDE_INT.
6679
6680 2016-05-03  Bernd Schmidt  <bschmidt@redhat.com>
6681
6682         PR rtl-optimization/44281
6683         * hard-reg-set.h (struct target_hard_regs): New field
6684         x_fixed_nonglobal_reg_set.
6685         (fixed_nonglobal_reg_set): New macro.
6686         * reginfo.c (init_reg_sets_1): Initialize it.
6687         * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
6688         of fixed_reg_set.
6689         * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
6690
6691 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
6692
6693         PR tree-optimization/56541
6694         * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
6695         * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
6696         * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
6697         (any_complicated_phi): new static variable.
6698         (aggressive_if_conv): delete.
6699         (if_convertible_phi_p): support phis with more than two arguments.
6700         (if_convertible_bb_p): remvoe check on aggressive_if_conv and
6701         critical pred edges.
6702         (ifcvt_split_critical_edges): support phis with more than two
6703         arguments by checking new parameter.  only split critical edges
6704         if needed.
6705         (tree_if_conversion): handle simd pragma marked loop using new
6706         local variable aggressive_if_conv.  check any_complicated_phi.
6707
6708 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
6709
6710         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
6711         before using it.
6712
6713 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
6714
6715         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
6716         cbase.
6717
6718 2016-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
6719
6720         * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
6721         (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
6722         define_insn_and_split.
6723         (mulsi3_i): New define_insn_and_split.
6724         (mulsi3_call): Convert to define_insn.
6725         (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
6726         Remove constraints.
6727
6728 2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
6729
6730         * machmode.h (mode_complex): Add support to give the complex mode
6731         for a given mode.
6732         (GET_MODE_COMPLEX_MODE): Likewise.
6733         * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
6734         stored by build_complex_type and gfc_build_complex_type instead of
6735         trying to figure out the appropriate mode based on the size. Raise
6736         an assertion error, if the type was not set.
6737         * genmodes.c (struct mode_data): Add field for the complex type of
6738         the given type.
6739         (blank_mode): Likewise.
6740         (make_complex_modes): Remember the complex mode created in the
6741         base type.
6742         (emit_mode_complex): Write out the mode_complex array to map a
6743         type mode to the complex version.
6744         (emit_insn_modes_c): Likewise.
6745         * tree.c (build_complex_type): Set the complex type to use before
6746         calling layout_type.
6747         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
6748         support for __float128 complex datatypes.
6749         (rs6000_hard_regno_mode_ok): Likewise.
6750         (rs6000_setup_reg_addr_masks): Likewise.
6751         (rs6000_complex_function_value): Likewise.
6752         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
6753         __float128 and __ibm128 complex.
6754         (FLOAT128_IBM_P): Likewise.
6755         (ALTIVEC_ARG_MAX_RETURN): Likewise.
6756         * doc/extend.texi (Additional Floating Types): Document that
6757         -mfloat128 must be used to enable __float128.  Document complex
6758         __float128 and __ibm128 support.
6759
6760 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
6761
6762         PR target/49244
6763         * gimple.c (gimple_builtin_call_types_compatible_p): Allow
6764         char/short arguments promoted to int because of promote_prototypes.
6765
6766 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
6767
6768         * config/i386/predicates.md (register_ssemem_operand): New predicate.
6769         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
6770         *cmpi<FPCMP:unord><MODEF:mode>_mixed and
6771         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.  Disable unsupported
6772         alternatives using "enabled" attribute.  Use register_ssemem_operand
6773         as operand 1 predicate.
6774         (*cmpi<unord>xf_i387): Split XFmode pattern from
6775         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
6776         (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
6777         *absneg<mode>2_i387.  Disable unsupported alternatives using
6778         "enabled" attribute.
6779         (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
6780
6781 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
6782
6783         * omp-low.c (lower_oacc_head_tail): Assert there is at least one
6784         marker.
6785         (oacc_loop_process): Check mask for loop termination.
6786
6787 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
6788
6789         * cif-code.def (CIF_THUNK): Add.
6790         * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
6791         accidental change.
6792
6793 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
6794
6795         * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
6796         (dump_inline_summary): Dump it.
6797         (fp_expression_p): New predicate.
6798         (estimate_function_body_sizes): Use it.
6799         (inline_merge_summary): Merge fp_expressions.
6800         (inline_read_section): Read fp_expressions.
6801         (inline_write_summary): Write fp_expressions.
6802         * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
6803         codegen boundary if either caller or callee is !fp_expressions.
6804         * ipa-inline.h (inline_summary): Add fp_expressions.
6805         * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
6806         to fp_expressions be sure the fp generation flags are updated.
6807
6808 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
6809
6810         PR rtl-optimization/70467
6811         * cse.c (cse_insn): Handle no-op MEM moves after folding.
6812
6813         PR rtl-optimization/70467
6814         * ipa-pure-const.c (check_call): Handle internal calls even in
6815         ipa mode like in local mode.
6816
6817 2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6818
6819         * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
6820
6821 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
6822
6823         * match.pd (X u< X, X u> X): New transformations.
6824
6825 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
6826
6827         * flag-types.h (enum warn_strict_overflow_code): Move ...
6828         * coretypes.h: ... here.
6829         * fold-const.h (fold_overflow_warning): Declare.
6830         * fold-const.c (fold_overflow_warning): Make non-static.
6831         (fold_comparison): Move the transformation of X +- C1 CMP C2
6832         into X CMP C2 -+ C1 ...
6833         * match.pd: ... here.
6834         * gimple-fold.c (fold_stmt_1): Protect with
6835         fold_defer_overflow_warnings.
6836
6837 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
6838
6839         * omp-low.c (struct oacc_loop): Add 'inner' field.
6840         (new_oacc_loop_raw): Initialize it to zero.
6841         (oacc_loop_fixed_partitions): Initialize it.
6842         (oacc_loop_auto_partitions): Partition outermost loop to outermost
6843         available partitioning.
6844
6845 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
6846
6847         * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
6848         register_operand.
6849         (umulsidi3): Likewise.
6850         (indirect_jump): Fix jump instruction assembly patterns.
6851
6852 2016-05-02  Thomas Schwinge  <thomas@codesourcery.com>
6853
6854         PR target/70860
6855         * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
6856         (nvptx_function_value): Assert non-NULL cfun.
6857
6858 2016-05-02  Eric Botcazou  <ebotcazou@adacore.com>
6859
6860         PR rtl-optimization/70886
6861         * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
6862
6863         * cselib.h (rtx_equal_for_cselib_1): Declare.
6864         (rtx_equal_for_cselib_p: New inline function.
6865         * cselib.c (rtx_equal_for_cselib_p): Delete.
6866         (rtx_equal_for_cselib_1): Make public.
6867
6868 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
6869
6870         * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
6871         (register_mixssei387nonimm_operand): Remove predicate.
6872         * config/i386/i386.md (*fop_<mode>_comm): Merge from
6873         *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387.  Disable unsupported
6874         alternatives using "enabled" attribute.  Also check X87_ENABLE_ARITH
6875         for TARGET_MIX_SSE_I387 alternatives.
6876         (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
6877         Disable unsupported alternatives using "enabled" attribute.  Use
6878         nonimm_ssenomem_operand as operand 1 predicate.  Also check
6879         X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
6880
6881 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
6882
6883         * tree.c (cst_and_fits_in_hwi): Simplify.
6884
6885 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
6886
6887         * tree.h (wi::to_wide): New function.
6888         * expr.c (expand_expr_real_1): Use wi::to_wide.
6889         * fold-const.c (int_const_binop_1): Likewise.
6890         (extract_muldiv_1): Likewise.
6891
6892 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
6893
6894         * wide-int.h: Update offset_int and widest_int documentation.
6895         (WI_SIGNED_SHIFT_RESULT): New macro.
6896         (wi::binary_shift): Define signed_shift_result_type for
6897         shifts on offset_int- and widest_int-like types.
6898         (generic_wide_int): Support <<= and >>= if << and >> are supported.
6899         * tree.h (int_bit_position): Use shift operators instead of wi::
6900          shifts.
6901         * alias.c (adjust_offset_for_component_ref): Likewise.
6902         * expr.c (get_inner_reference): Likewise.
6903         * fold-const.c (fold_comparison): Likewise.
6904         * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
6905         * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
6906         * tree-dfa.c (get_ref_base_and_extent): Likewise.
6907         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
6908         (stmt_kills_ref_p): Likewise.
6909         * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
6910         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
6911         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
6912         (ao_ref_init_from_vn_reference): Likewise.
6913
6914 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
6915
6916         * wide-int.h: Update offset_int and widest_int documentation.
6917         (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
6918         (wi::binary_traits): Allow ordered comparisons between offset_int and
6919         offset_int, between widest_int and widest_int, and between either
6920         of these types and basic C types.
6921         (operator <, <=, >, >=): Define for the same combinations.
6922         * tree.h (tree_int_cst_lt): Use comparison operators instead
6923         of wi:: comparisons.
6924         (tree_int_cst_le): Likewise.
6925         * gimple-fold.c (fold_array_ctor_reference): Likewise.
6926         (fold_nonarray_ctor_reference): Likewise.
6927         * gimple-ssa-strength-reduction.c (record_increment): Likewise.
6928         * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
6929         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
6930         * tree-sra.c (completely_scalarize): Likewise.
6931         * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
6932         * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
6933         * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
6934         (check_for_binary_op_overflow): Likewise.
6935         (search_for_addr_array): Likewise.
6936         * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
6937
6938 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
6939
6940         * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
6941         (arc_save_restore): Likewise.
6942         (arc_dwarf_register_span): Likewise.
6943         (arc_output_pic_addr_const): Initialize suffix variable.
6944
6945 2016-05-02  Martin Liska  <mliska@suse.cz>
6946
6947         * symbol-summary.h (function_summary::function_summary):
6948         Remove checking assert for all cgraph nodes.
6949         (function_summary::get): Check summary_uid.
6950         (symtab_insertion): Check summary_uid.
6951
6952 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
6953
6954         * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
6955         * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
6956         bmaskn instruction.
6957         (arc_dwarf_register_span): Remove enum keyword.
6958         (compact_memory_operand_p): New function.
6959         * config/arc/arc.h (reg_class): Add code density register classes.
6960         (REG_CLASS_NAMES): Likewise.
6961         (REG_CLASS_CONTENTS): Likewise.
6962         * config/arc/arc.md (*movqi_insn): Add code density instructions.
6963         (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
6964         (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
6965         (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
6966         * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
6967         constraints.
6968         (h, Rcd, Rsd, Rzd): New register constraints.
6969         (T): Use compact_memory_operand_p function.
6970         * config/arc/predicates.md (compact_load_memory_operand): Remove.
6971
6972 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
6973
6974         * config/sh/sh.md (*negnegt, *movtt): Remove.
6975
6976 2016-05-02  Marek Polacek  <polacek@redhat.com>
6977             Tom de Vries  <tom@codesourcery.com>
6978
6979         PR tree-optimization/70700
6980         * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
6981         bigger than FIRST_REF_NODE.
6982
6983 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
6984
6985         PR target/52898
6986         * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
6987         TARGET_CMPEQDI_T.
6988         (prepare_cbranch_operands): Don't use scratch register.  Assume that
6989         function is used when pseudos can be created.
6990         (expand_cbranchdi4): Likewise.  Remove unused TARGET_CMPEQDI_T paths.
6991         * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
6992         (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
6993         define_expand.  Allow it only when pseudos can be created.
6994         * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
6995
6996 2016-05-01  Uros Bizjak  <ubizjak@gmail.com>
6997
6998         * config/i386/constraints.md (BC): Only allow -1 operands.
6999         * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
7000         Add "enabled" attribute.  Update XI mode attribute calculation.
7001         * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
7002         (*movoi_internal_avx): Update XI mode attribute calculation.
7003         (*movti_internal): Ditto.
7004
7005 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
7006
7007         * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
7008         cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
7009
7010 2016-05-01  Eric Botcazou  <ebotcazou@adacore.com>
7011
7012         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
7013         statement on instruction code.  Remove trailing spaces.
7014         (altivec_expand_stv_builtin): Likewise.
7015
7016 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
7017
7018         * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
7019         (TARGET_FPU_DOUBLE): Simplify.
7020         (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
7021         'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
7022         * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
7023         with 'TARGET_FPU_DOUBLE'.
7024         * config/sh/sh.md: Likewise.
7025
7026 2016-05-01  Yoshinori Sato  <ysato@users.sourceforge.jp>
7027
7028         * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
7029         SH_DIV_STR_FOR_SIZE): Remove.
7030         * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
7031         SH_DIV_STR_FOR_SIZE): Remove.
7032
7033 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
7034
7035         * config/sh/predicates.md (any_register_operand, zero_extend_operand,
7036         logical_reg_operand): Delete.
7037         (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
7038         arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
7039         logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
7040         match_operand and match_test.
7041         (sh_const_vec, sh_1el_vec): Remove redundant checks.  Declare local
7042         variables on their first use.  Return bool values.
7043         * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
7044         * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
7045         arith_reg_operand for input operand.  Remove empty constraints.
7046         (xorsi3): Delete.
7047         (*xorsi3_compact): Rename to xorsi3.
7048         (zero_extend<mode>si2): Use arith_reg_operand for input operand.
7049         (*zero_extend<mode>si2_disp_mem): Update comment.
7050         (mov_nop): Delete.
7051
7052 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
7053
7054         * config/sh/t-sh: Remove SH5 support.
7055         * config.gcc: Likewise.
7056         * configure: Likewise.
7057
7058 2016-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7059
7060         * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
7061
7062 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
7063
7064         * config/sh/sh.c (register_sh_passes, sh_option_override,
7065         sh_print_operand, prepare_move_operands,
7066         sh_can_follow_jump): Remove TARGET_SH1 checks.
7067         * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
7068         PROMOTE_MODE): Likewise.
7069         * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
7070         movdi): Likewise.
7071
7072 2016-04-30  Alan Modra  <amodra@gmail.com>
7073
7074         * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
7075         restoring when fixed_reg_p, but allow out-of-line or stmw save.
7076         Check for user regs later to avoid unnecessary looping over regs.
7077         Merge user reg check with non-saved reg check.  Don't force
7078         inline VR restore when static chain used.
7079         (rs6000_frame_related): Omit eh_frame info for user regs when
7080         saving.
7081         (fixed_regs_p): Delete.
7082
7083 2016-04-30  Alan Modra  <amodra@gmail.com>
7084
7085         * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
7086         (SAVE_STRATEGY, REST_STRATEGY): ..this.  Renumber and sort enum.
7087         Update all uses.
7088
7089 2016-04-30  Alan Modra  <amodra@gmail.com>
7090
7091         PR target/69645
7092         * config/rs6000/rs6000.c (fixed_reg_p): New function.
7093         (fixed_regs_p): Rename from global_regs_p.  Call fixed_reg_p.
7094         Update all uses.
7095
7096 2016-04-30  Alan Modra  <amodra@gmail.com>
7097
7098         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
7099         Remove redundant PIC_OFFSET_TABLE_REGNUM test.  Replace with
7100         flag_pic test for Darwin.
7101
7102 2016-04-30  Alan Modra  <amodra@gmail.com>
7103
7104         * regs.h (struct reg_info_t): Delete freq_calls_crossed and
7105         throw_calls_crossed.
7106         (REG_FREQ_CALLS_CROSSED): Delete.
7107         (REG_N_THROWING_CALLS_CROSSED): Delete.
7108         * regstat.c (regstat_bb_compute_ri): Don't calculate
7109         REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
7110         (dump_reg_info): Don't print call cross frequency.
7111         * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
7112         and REG_N_THROWING_CALLS_CROSSED.
7113
7114 2016-04-30  Alan Modra  <amodra@gmail.com>
7115
7116         * regs.h (struct reg_info_t): Delete live_length.
7117         (REG_LIVE_LENGTH): Delete macro.
7118         * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
7119         local_live, local_processed and local_live_last_luid params.
7120         Replace bb_index param with bb.  Don't set REG_LIVE_LENGTH.
7121         Formatting fixes.
7122         (regstat_compute_ri): Adjust for above.  Don't set
7123         REG_LIVE_LENGTH.
7124         (dump_reg_info): Don't print live length.
7125         * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
7126         with test of setjmp_crosses.  Don't set REG_LIVE_LENGTH.
7127         Localize loop_depth var.
7128
7129 2016-04-30  Alan Modra  <amodra@gmail.com>
7130
7131         * ira.c (enum valid_equiv): New.
7132         (validate_equiv_mem): Return enum.
7133         (update_equiv_mem): Create replacement in more cases.
7134         (add_store_equivs): Update validate_equiv_mem call.
7135
7136 2016-04-30  Alan Modra  <amodra@gmail.com>
7137
7138         * ira.c (combine_and_move_insns): Rather than scanning insns,
7139         use DF infrastucture to find use and def insns.
7140
7141 2016-04-30  Alan Modra  <amodra@gmail.com>
7142
7143         ira.c (combine_and_move_insns): Move invariant conditions..
7144         (ira.c): ..to here.  Call combine_and_move_insns before
7145         add_store_equivs.  Call grow_reg_equivs later.  Allocate
7146         req_equiv later using max_reg_num() rather than global max_regno.
7147         (contains_replace_regs): Delete.
7148         (add_store_equivs): Remove contains_replace_regs test.
7149
7150 2016-04-30  Alan Modra  <amodra@gmail.com>
7151
7152         * ira.c (struct equiv_mem_data): New.
7153         (equiv_mem, equiv_mem_modified): Delete static vars.
7154         (validate_equiv_mem_from_store): Use "data" param to communicate..
7155         (validate_equiv_mem): ..from here.
7156
7157 2016-04-30  Alan Modra  <amodra@gmail.com>
7158
7159         * ira.c (add_store_equivs, combine_and_move_insns): New functions,
7160         split out from..
7161         (update_reg_equivs): ..here.  Move allocation and freeing of
7162         reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
7163         end_alias_analysis to..
7164         (ira): ..here.
7165
7166 2016-04-30  Alan Modra  <amodra@gmail.com>
7167
7168         * ira.c (pdx_subregs): Delete.
7169         (struct equivalence): Add pdx_subregs field.
7170         (set_paradoxical_subreg): Remove pdx_subregs param.  Update
7171         pdx_subregs access.
7172         (update_equiv_regs): Don't create or free pdx_subregs.  Update
7173         pdx_subregs access.
7174
7175 2016-04-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7176
7177         * config/rs6000/altivec.h: Change definitions of vec_xl and
7178         vec_xst.
7179         * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
7180         (LD_ELEMREV_V2DI): New.
7181         (LD_ELEMREV_V4SF): New.
7182         (LD_ELEMREV_V4SI): New.
7183         (LD_ELEMREV_V8HI): New.
7184         (LD_ELEMREV_V16QI): New.
7185         (ST_ELEMREV_V2DF): New.
7186         (ST_ELEMREV_V2DI): New.
7187         (ST_ELEMREV_V4SF): New.
7188         (ST_ELEMREV_V4SI): New.
7189         (ST_ELEMREV_V8HI): New.
7190         (ST_ELEMREV_V16QI): New.
7191         (XL): New.
7192         (XST): New.
7193         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7194         descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
7195         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
7196         TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
7197         (altivec_expand_builtin): Add handling for
7198         VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
7199         (rs6000_invalid_builtin): Add error-checking for
7200         RS6000_BTM_P9_VECTOR.
7201         (altivec_init_builtins): Define builtins used to implement vec_xl
7202         and vec_xst.
7203         (rs6000_builtin_mask_names): Define power9-vector.
7204         * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
7205         (RS6000_BTM_P9_VECTOR): Define.
7206         (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
7207         * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
7208         (vsx_ld_elemrev_v2df): Likewise.
7209         (vsx_ld_elemrev_v4sf): Likewise.
7210         (vsx_ld_elemrev_v4si): Likewise.
7211         (vsx_ld_elemrev_v8hi): Likewise.
7212         (vsx_ld_elemrev_v16qi): Likewise.
7213         (vsx_st_elemrev_v2df): Likewise.
7214         (vsx_st_elemrev_v2di): Likewise.
7215         (vsx_st_elemrev_v4sf): Likewise.
7216         (vsx_st_elemrev_v4si): Likewise.
7217         (vsx_st_elemrev_v8hi): Likewise.
7218         (vsx_st_elemrev_v16qi): Likewise.
7219         * doc/extend.texi: Add prototypes for vec_xl and vec_xst.  Correct
7220         grammar.
7221
7222 2016-04-29  Patrick Palka  <ppalka@gcc.gnu.org>
7223
7224         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
7225         out into ...
7226         (simplify_control_stmt_condition_1): ... here.  Recurse into
7227         BIT_AND_EXPRs and BIT_IOR_EXPRs.
7228
7229 2016-04-29  David Edelsohn  <dje.gcc@gmail.com>
7230
7231         PR target/69810
7232         * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
7233         (zero_extendqi<mode>2_dot): Revert earlier conversion from
7234         define_insn_and_split to define_insn.
7235         (zero_extendqi<mode>2_dot2): Same.
7236         (extendqi<mode>2_dot): Same.
7237         (extendqi<mode>2_dot2): Same.
7238
7239 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
7240
7241         * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
7242         (probe_stack): New expander.
7243         (probe_stack_<mode>): New insn pattern.
7244
7245 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
7246
7247         * config/i386/i386.md
7248         (operations with memory inputs setting flags peephole2):
7249         Remove uneeded REG_P checks.  Cleanup pattern generation.
7250
7251 2016-04-29  Ilya Enkovich  <ilya.enkovich@intel.com>
7252
7253         * tree-vect-loop.c (vect_transform_loop): Fix
7254         nb_iterations_upper_bound computation for vectorized loop.
7255
7256 2016-04-29  Marek Polacek  <polacek@redhat.com>
7257             Jakub Jelinek  <jakub@redhat.com>
7258
7259         PR sanitizer/70342
7260         * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
7261         TARGET_EXPR_SLOT as a base.
7262
7263 2016-04-29  Andrew Burgess  <andrew.burgess@embecosm.com>
7264
7265         * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
7266         with 'rCm2' constraints to limit possible immediate size.
7267         (*load_zeroextendqisi_update): Likewise.
7268         (*load_signextendqisi_update): Likewise.
7269         (*loadhi_update): Likewise.
7270         (*load_zeroextendhisi_update): Likewise.
7271         (*load_signextendhisi_update): Likewise.
7272         (*loadsi_update): Likewise.
7273         (*loadsf_update): Likewise.
7274
7275 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
7276
7277         * config/i386/predicates.md (constm1_operand): Fix comparison.
7278
7279 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
7280
7281         * testsuite/gcc.target/arc/ieee_eq.c: New test.
7282
7283 2016-04-29  Oleg Endo  <olegendo@gcc.gnu.org>
7284
7285         * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
7286         remaining SH5 related settings.
7287         * config/sh/sh-protos.h (shmedia_cleanup_truncate,
7288         shmedia_prepare_call_address): Delete.
7289         * config/sh/sh.c (sh_print_operand, output_stack_adjust,
7290         DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
7291         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
7292         UNSUPPORTED_SH2A): Remove m5 checks.
7293         (sh_divide_strategy_e): Remove SH5 division strategies.
7294         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
7295         * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
7296
7297 2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7298
7299         * config/s390/s390.c (s390_rtx_costs): Update documentation.
7300
7301 2016-04-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7302
7303         * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
7304         * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
7305         Change lder to ldr.
7306         * config/s390/vector.md ("mov<mode>"): Likewise.
7307
7308 2016-04-29  Ulrich Weigand  <uweigand@de.ibm.com>
7309
7310         * config/s390/constraints.md ("U", "W"): Invoke
7311         s390_mem_constraint with "ZR" and "ZT".
7312         * config/s390/s390.c (s390_check_qrst_address): Reject invalid
7313         addresses when using LRA.  Accept also short displacements for S
7314         and T constraints.  Do not check for long displacement target for
7315         S and T constraints.
7316         (s390_mem_constraint): Remove handling of U and W constraints.
7317         * config/s390/s390.md (various patterns): Remove the short
7318         displacement constraints (Q and R) if a long displacement
7319         constraint is present.  Add longdisp as required CPU capability.
7320         * config/s390/vector.md: Likewise.
7321         * config/s390/vx-builtins.md: Likewise.
7322
7323 2016-04-29  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
7324
7325         PR target/60040
7326         * reload1.c (reload): Call finish_spills before
7327         restarting reload loop. Skip select_reload_regs
7328         if update_eliminables_and_spill returns true.
7329
7330 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
7331
7332         * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
7333         * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
7334         (umulhisi3_imm): Update predicates and constraint letters.
7335         (umulhisi3_reg): Declare instruction as commutative.
7336         * config/arc/constraints.md (J12, J16): New constraints.
7337         * config/arc/predicates.md (short_unsigned_const_operand): New
7338         predicate.
7339         (arc_short_operand): Likewise.
7340         * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
7341
7342 2016-04-29  Richard Biener  <rguenther@suse.de>
7343
7344         PR tree-optimization/13962
7345         PR tree-optimization/65686
7346         * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
7347         * tree-ssa-alias.c (ptrs_compare_unequal): New function
7348         using PTA to compare pointers.
7349         * match.pd: Add pattern for pointer equality compare simplification
7350         using ptrs_compare_unequal.
7351
7352 2016-04-29  Richard Biener  <rguenther@suse.de>
7353
7354         * stor-layout.c (layout_type): Do not build a pointer-to-element
7355         type for arrays.
7356
7357 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
7358
7359         * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
7360         Use SWI mode iterator.  Use general_reg_operand predicate.
7361         (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
7362         peephole to MMX and SSE part.  Use mmx_reg_operand and sse_reg_operand
7363         predicates.
7364
7365 2016-04-29  Jakub Jelinek  <jakub@redhat.com>
7366
7367         PR middle-end/70843
7368         * fold-const.c (operand_equal_p): Don't verify hash value equality
7369         if arg0 == arg1.
7370         * tree.c (inchash::add_expr): Handle STATEMENT_LIST.  Ignore BLOCK
7371         and OMP_CLAUSE.
7372
7373 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
7374
7375         PR target/70858
7376         * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
7377         to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
7378         (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
7379         __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
7380         __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
7381
7382 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
7383
7384         * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
7385         to info.  Don't initialize separate fields to 0.  Clean up
7386         formatting a bit.
7387
7388 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
7389
7390         * config/i386/i386.md (peephole2s for operations with memory inputs):
7391         Use SWI mode iterator.
7392         (peephole2s for operations with memory outputs): Ditto.
7393         Do not check for stack checking probe.
7394
7395         (probe_stack): Remove expander.
7396
7397 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
7398             Andrew Burgess  <andrew.burgess@embecosm.com>
7399
7400         * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
7401         operands as 32-bits.
7402
7403 2016-04-28  Jason Merrill  <jason@redhat.com>
7404
7405         * gdbinit.in: Skip line-map.h.
7406
7407 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
7408             Andrew Burgess  <andrew.burgess@embecosm.com>
7409
7410         * config/arc/arc.c (arc_conditional_register_usage): Take
7411         TARGET_RRQ_CLASS into account.
7412         (arc_print_operand): Support printing 'p' and 's' operands.
7413         * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
7414         as 0.
7415         (TARGET_RRQ_CLASS): Define.
7416         (IS_POWEROF2_OR_0_P): Define.
7417         * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
7418         alternatives.
7419         (*tst_movb): New define_insn.
7420         (*tst): Avoid recognition if it could prevent '*tst_movb'
7421         combination; replace c/CnL with c/Chs alternative.
7422         (*tst_bitfield_tst): New define_insn.
7423         (*tst_bitfield_asr): New define_insn.
7424         (*tst_bitfield): New define_insn.
7425         (andsi3_i): Add Rrq variant.
7426         (extzv): New define_expand.
7427         (insv): New define_expand.
7428         (*insv_i): New define_insn.
7429         (*movb): New define_insn.
7430         (*movb_signed): New define_insn.
7431         (*movb_high): New define_insn.
7432         (*movb_high_signed): New define_insn.
7433         (*movb_high_signed + 1): New define_split pattern.
7434         (*mrgb): New define_insn.
7435         (*mrgb + 1): New define_peephole2 pattern.
7436         (*mrgb + 2): New define_peephole2 pattern.
7437         * config/arc/arc.opt (mbitops): New option for nps400, uses
7438         TARGET_NPS_BITOPS_DEFAULT.
7439         * config/arc/constraints.md (q): Make register class conditional.
7440         (Rrq): New register constraint.
7441         (Chs): New constraint.
7442         (Clo): New constraint.
7443         (Chi): New constraint.
7444         (Cbf): New constraint.
7445         (Cbn): New constraint.
7446         (C18): New constraint.
7447         (Cbi): New constraint.
7448
7449 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
7450
7451         * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
7452         dst->popcount.
7453         (bitmap_intersection_of_preds): Ditto.
7454         (bitmap_union_of_succs): Ditto.
7455         (bitmap_union_of_preds): Ditto.
7456         * sbitmap.c (do_popcount): Delete.
7457         (BITMAP_DEBUGGING): Delete.
7458         (sbitmap_verify_popcount): Delete.
7459         (sbitmap_alloc): Don't initialize the popcount field.
7460         (sbitmap_alloc_with_popcount): Delete.
7461         (sbitmap_resize): Don't resize the popcount array.
7462         (sbitmap_vector_alloc): Don't initialize the popcount field.
7463         (bitmap_copy): Don't copy the popcount array.
7464         (bitmap_clear): Don't clear the popcount array.
7465         (bitmap_clear): Delete the popcount array handling.
7466         (bitmap_ior_and_compl): Delete the popcount assert.
7467         (bitmap_not): Ditto.
7468         (bitmap_and_compl): Ditto.
7469         (bitmap_and): Delete the popcount array handling.
7470         (bitmap_xor): Ditto.
7471         (bitmap_ior): Ditto.
7472         (bitmap_or_and): Delete the popcount assert.
7473         (bitmap_and_or): Ditto.
7474         (popcount_table): Delete.
7475         (sbitmap_elt_popcount): Delete.
7476         * sbitmap.h (simple_bitmap_def): Delete the popcount field.
7477         (bitmap_set_bit): Delete the popcount assert.
7478         (bitmap_clear_bit): Ditto.
7479         (sbitmap_free): Don't free the popcount array.
7480         (sbitmap_alloc_with_popcount): Delete declaration.
7481         (sbitmap_popcount): Ditto.
7482
7483 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
7484             Andrew Burgess  <andrew.burgess@embecosm.com>
7485
7486         * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
7487         (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
7488         * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
7489         (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
7490         * config/arc/arc.opt (mcmem): New option.
7491         * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
7492         supply length for r/m alternative.
7493         (*extendqisi2_ac): Likewise.
7494         (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
7495         r/Uex alternative.
7496         (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
7497         (movhi_insn): Likewise.
7498         (movsi_insn): Add r/Ucm,Ucm/w alternatives.
7499         (*zero_extendqihi2_i): Add r/Ucm alternative.
7500         (*zero_extendqisi2_ac): Likewise.
7501         (*zero_extendhisi2_i): Likewise.
7502         * config/arc/constraints.md (Uex): New memory constraint.
7503         (Ucm): New define_constraint.
7504         * config/arc/predicates.md (long_immediate_loadstore_operand):
7505         Return 0 for MEM with cmem_address address.
7506         (cmem_address_0): New predicates.
7507         (cmem_address_1): Likewise.
7508         (cmem_address_2): Likewise.
7509         (cmem_address): Likewise.
7510
7511 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
7512
7513         * config/rs6000/rs6000.c (machine_function): Rename
7514         insn_chain_scanned_p to spe_insn_chain_scanned_p.
7515         (rs6000_stack_info): Adjust.
7516
7517 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
7518             Andrew Burgess  <andrew.burgess@embecosm.com>
7519
7520         * config/arc/constraints.md (Usd): Convert to define_constraint.
7521         (Us<): Likewise.
7522         (Us>): Likewise.
7523
7524 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
7525
7526         PR target/70821
7527         * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
7528         Add new peephole2 where the first insn is *mov<mode>_or instead of
7529         *mov<mode>_internal.
7530
7531 2016-04-28  Segher Boesssenkool  <segher@kernel.crashing.org>
7532
7533         * tracer.c (bb_seen): Make static.
7534
7535 2016-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>
7536
7537         * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
7538         support, setup defaults.
7539         * config/arc/arc-opts.h (enum processor_type): Add NPS400.
7540         * config/arc/arc.c (arc_init): Add NPS400 support.
7541         * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
7542         (TARGET_ARC700): NPS400 is also an ARC700.
7543         * config/arc/arc.opt: Add NPS400 options to -mcpu=.
7544
7545 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
7546
7547         PR target/70668
7548         * config/nds32/nds32.md (casesi): Don't access the operands array
7549         out of bounds.
7550
7551 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
7552
7553         * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
7554         (or $-1,reg peephole2): Ditto.
7555         (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
7556
7557 2016-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
7558
7559         * doc/extend.texi (Common Function Attributes) [optimize]:
7560         Discourage use of the optimize attribute.
7561
7562 2016-04-28  Bill Seurer  <seurer@linux.vnet.ibm.com>
7563
7564         * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
7565         special case builtin.
7566         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
7567         ALTIVEC_BUILTIN_VEC_ADDE.
7568         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
7569         support for ALTIVEC_BUILTIN_VEC_ADDE.
7570         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
7571         for __builtin_vec_adde.
7572
7573 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
7574
7575         * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
7576         * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
7577
7578 2016-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7579
7580         PR testsuite/70595
7581         * doc/sourcebuild.texi (Effective-Target Keywords, Other
7582         attributes): Document cilkplus_runtime.
7583
7584 2016-04-28  Martin Jambor  <mjambor@suse.cz>
7585
7586         * tree-cfg.c (verify_expr): Verify that local declarations belong to
7587         this function.  Call verify_expr on MEM_REFs and bases of other
7588         handled_components.
7589
7590 2016-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7591
7592         * internal-fn.c (expand_arith_overflow): Convert preprocessor check
7593         for WORD_REGISTER_OPERATIONS to runtime check.
7594
7595 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
7596
7597         * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
7598
7599 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
7600
7601         * config/arc/arc.c (arc_process_double_reg_moves): Fix for
7602         big-endian compilation.
7603         * config/arc/arc.md (addf3): Likewise.
7604         (subdf3): Likewise.
7605         (muldf3): Likewise.
7606
7607 2016-04-28  Richard Biener  <rguenther@suse.de>
7608
7609         PR tree-optimization/70840
7610         * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
7611         Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
7612         Mark x * pow(x,c) -> pow(x,c+1) commutative.
7613         Add powi(x,y) * powi(z,y) -> powi(x*z,y).
7614
7615 2015-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7616
7617         * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
7618         and explain why in a comment.
7619
7620 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
7621
7622         * config/arc/arc.md (cpu_facility): Add fpx variant.
7623         (subdf3): Prohibit use reverse sub when assist operations option
7624         is enabled.
7625         * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
7626         instructions only when FPX is enabled.
7627         * testsuite/gcc.target/arc/trsub.c: New test.
7628
7629 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
7630
7631         * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
7632         mult_operator when calculating "type" attribute.
7633         (*fop_<mode>_1_i387): Ditto.
7634         (*fop_xf_1_i387): Ditto.
7635         (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
7636         Use std::swap to swap operands.  Use RTL expressions to generate
7637         converted pattern.
7638
7639 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
7640             Joern Rennecke  <joern.rennecke@embecosm.com>
7641
7642         * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
7643         declaration.
7644         (emit_pic_move): Remove.
7645         (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
7646         * config/arc/arc.c (emit_pic_move): Removed.
7647         (TARGET_HAVE_TLS): Define.
7648         (arc_conditional_register_usage): Test for arc_tp_regno.
7649         (arc_print_operand, arc_print_operand_address): Handle TLS
7650         unspecs.
7651         (arc_needs_pcl_p): New function.
7652         (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
7653         (arc_legitimate_pic_addr_p): Handle TLS unspecs.
7654         (arc_raw_symbolic_reference_mentioned_p): Likewise.
7655         (arc_get_tp, arc_emit_call_tls_get_addr): New function.
7656         (arc_legitimize_tls_address): Likewise.
7657         (DTPOFF_ZERO_SYM): Define.
7658         (arc_legitimize_pic_address): Make it static, handle TLS cases.
7659         (arc_output_pic_addr_const): Print TLS unspecs.
7660         (prepare_pic_move): New function, replaces emit_pic_move.
7661         (arc_legitimate_constant_p): Handle TLS unspecs.
7662         (arc_legitimate_address_p): Likewise.
7663         (arc_rewrite_small_data_p): Use assert for TLS constants.
7664         (prepare_move_operands): Use prepare_pic_move.
7665         (arc_legitimize_address): Legitimize tls addresses.
7666         (arc_epilogue_uses): Check for arc_tp_regno.
7667         (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
7668         * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
7669         Define.
7670         [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
7671         Likewise.
7672         [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
7673         %(arc_tls_extra_start_spec).
7674         (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
7675         (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
7676         (EH_USES): Define.
7677         (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
7678         * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
7679         (UNSPEC_TLS_OFF): Add.
7680         (R10_REG): Define.
7681         (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
7682         (get_thread_pointersi): New patterns.
7683         * config/arc/arc.opt (mtp-regno): New option.
7684         * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
7685         (move_dest_operand): Likewise.
7686         * configure: Regenerate.
7687         * configure.ac: Add arc*-*-* case to test for tls.
7688         * doc/invoke.texi (ARC options): Document mtp-regno.
7689
7690 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
7691
7692         * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
7693         the new ARC HS SIMD instructions.
7694         (arc_preferred_simd_mode): New function.
7695         (arc_autovectorize_vector_sizes): Likewise.
7696         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
7697         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
7698         (arc_init_reg_tables): Accept new ARC HS SIMD modes.
7699         (arc_init_builtins): Add new SIMD builtin types.
7700         (arc_split_move): Handle 64 bit vector moves.
7701         * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
7702         (TARGET_PLUS_QMACW): Define.
7703         * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
7704         (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
7705         (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
7706         (VSUBADD4H): New builtins.
7707         * config/arc/simdext.md: Add new ARC HS SIMD instructions.
7708         * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
7709
7710 2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
7711             Matthias Klose  <doko@debian.org>
7712
7713         * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
7714
7715 2016-04-28  Richard Biener  <rguenther@suse.de>
7716
7717         PR middle-end/70777
7718         * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
7719         canonicalization.
7720
7721 2016-04-28  Oleg Endo  <olegendo@gcc.gnu.org>
7722
7723         * common/config/sh/sh-common.c: Remove SH5 support.
7724         * config/sh/constraints.md: Likewise.
7725         * config/sh/config/sh/elf.h: Likewise.
7726         * config/sh/linux.h: Likewise.
7727         * config/sh/netbsd-elf.h: Likewise.
7728         * config/sh/predicates.md: Likewise.
7729         * config/sh/sh-c.c: Likewise.
7730         * config/sh/sh-protos.h: Likewise.
7731         * config/sh/sh.c: Likewise.
7732         * config/sh/sh.h: Likewise.
7733         * config/sh/sh.md: Likewise.
7734         * config/sh/sh.opt: Likewise.
7735         * config/sh/sync.md: Likewise.
7736         * config/sh/sh64.h: Delete.
7737         * config/sh/shmedia.h: Likewise.
7738         * config/sh/shmedia.md: Likewise.
7739         * config/sh/sshmedia.h: Likewise.
7740         * config/sh/t-netbsd-sh5-64: Likewise.
7741         * config/sh/t-sh64: Likewise.
7742         * config/sh/ushmedia.h: Likewise.
7743
7744 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
7745
7746         * config/i386/i386.md (sign_extend to memory peephole2s): Use
7747         general_reg_operand instead of register_operand predicate.
7748
7749 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7750
7751         * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
7752
7753 2016-04-27  Marc Glisse  <marc.glisse@inria.fr>
7754
7755         * match.pd (A - B > A, A + B < A): New transformations.
7756
7757 2016-04-27  Patrick Palka  <ppalka@gcc.gnu.org>
7758
7759         * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
7760         which defaults to true.  Emit an outer pair of parentheses only if
7761         EMIT_PARENS.  When continuing a chain of && or || (or & or |),
7762         don't emit parentheses for the right-hand operand.
7763
7764 2016-04-27  Jeff Law  <law@redhat.com>
7765
7766         * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
7767
7768 2016-04-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7769
7770         * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
7771         (altivec_lvx_<mode>_internal): Document.
7772         (altivec_lvx_<mode>_2op): New define_insn.
7773         (altivec_lvx_<mode>_1op): Likewise.
7774         (altivec_lvx_<mode>_2op_si): Likewise.
7775         (altivec_lvx_<mode>_1op_si): Likewise.
7776         (altivec_stvx_<mode>): Remove.
7777         (altivec_stvx_<mode>_internal): Document.
7778         (altivec_stvx_<mode>_2op): New define_insn.
7779         (altivec_stvx_<mode>_1op): Likewise.
7780         (altivec_stvx_<mode>_2op_si): Likewise.
7781         (altivec_stvx_<mode>_1op_si): Likewise.
7782         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7783         Expand vec_ld and vec_st during parsing.
7784         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
7785         changes.
7786         (altivec_expand_stvx_be): Likewise.
7787         (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
7788         address-masking behavior in RTL.
7789         (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
7790         address-masking behavior in RTL.
7791         (altivec_expand_builtin): Change builtin code arguments for calls
7792         to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
7793         (insn_is_swappable_p): Avoid incorrect swap optimization in the
7794         presence of lvx/stvx patterns.
7795         (alignment_with_canonical_addr): New function.
7796         (alignment_mask): Likewise.
7797         (find_alignment_op): Likewise.
7798         (recombine_lvx_pattern): Likewise.
7799         (recombine_stvx_pattern): Likewise.
7800         (recombine_lvx_stvx_patterns): Likewise.
7801         (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
7802         stvx patterns from expand.
7803         * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
7804         expansions.
7805         (vector_altivec_store_<mode>): Likewise.
7806
7807 2016-04-26  Evandro Menezes  <e.menezes@samsung.com>
7808
7809         * config/aarch64/aarch64.md
7810         (*movhf_aarch64): Add "movi %0, #0" to zero up register and
7811         remove the "fp" attributes.
7812         (*movsf_aarch64): Add "movi %0, #0" to zero up register and
7813         add the "simd" attributes.
7814         (*movdf_aarch64): Likewise.
7815         (*movtf_aarch64): Remove the "fp" attributes.
7816         * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
7817         * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
7818
7819 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
7820
7821         * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
7822         rtx to rtx_code_label *.
7823         * rtl.h (maybe_set_first_label_num): Likewise.
7824
7825 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
7826
7827         * df-core.c (df_add_problem): Make the problem param be const.
7828         (df_remove_problem): Make local "problem" be const.
7829         * df-problems.c (problem_RD): Make const.
7830         (problem_LR): Likewise.
7831         (problem_LIVE): Likewise.
7832         (problem_MIR): Likewise.
7833         (problem_CHAIN): Likewise.
7834         (problem_WORD_LR): Likewise.
7835         (problem_NOTE): Likewise.
7836         (problem_MD): Likewise.
7837         * df-scan.c (problem_SCAN): Likewise.
7838         * df.h (struct df_problem): Make field "dependent_problem" be
7839         const.
7840         (struct dataflow): Likewise for field "problem".
7841         (df_add_problem): Make param const.
7842
7843 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
7844
7845         * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
7846         inter-unit moves to/from vector registers are enabled.  Do not disable
7847         for TARGET_MMX.
7848
7849 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
7850
7851         * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
7852         DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
7853         #define to...
7854         (enum df_problem_id): ...this new enum.
7855         (struct df_problem): Convert field "id" from "int" to
7856         enum df_problem_id.
7857
7858 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
7859
7860         * rtl.def: Update comment for "things in the instruction chain" to
7861         reflect the removal of the leading "i" field for INSN_UID in
7862         r210360.  Fix bogus apostrophe.
7863
7864 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
7865
7866         * config/i386/i386.md
7867         (lea arith with mem operand + setcc peephole2): Set operator mode.
7868
7869 2016-04-27  H.J. Lu  <hongjiu.lu@intel.com>
7870
7871         PR target/70155
7872         * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
7873         (dimode_scalar_to_vector_candidate_p): This.
7874         (timode_scalar_to_vector_candidate_p): New function.
7875         (scalar_to_vector_candidate_p): Likewise.
7876         (timode_check_non_convertible_regs): Likewise.
7877         (timode_remove_non_convertible_regs): Likewise.
7878         (remove_non_convertible_regs): Likewise.
7879         (remove_non_convertible_regs): Renamed to ...
7880         (dimode_remove_non_convertible_regs): This.
7881         (scalar_chain::~scalar_chain): Make it virtual.
7882         (scalar_chain::compute_convert_gain): Make it pure virtual.
7883         (scalar_chain::mark_dual_mode_def): Likewise.
7884         (scalar_chain::convert_insn): Likewise.
7885         (scalar_chain::convert_registers): Likewise.
7886         (scalar_chain::add_to_queue): Make it protected.
7887         (scalar_chain::emit_conversion_insns): Likewise.
7888         (scalar_chain::replace_with_subreg): Likewise.
7889         (scalar_chain::replace_with_subreg_in_insn): Likewise.
7890         (scalar_chain::convert_op): Likewise.
7891         (scalar_chain::convert_reg): Likewise.
7892         (scalar_chain::make_vector_copies): Likewise.
7893         (scalar_chain::convert_registers): New pure virtual function.
7894         (class dimode_scalar_chain): New class.
7895         (class timode_scalar_chain): Likewise.
7896         (scalar_chain::mark_dual_mode_def): Renamed to ...
7897         (dimode_scalar_chain::mark_dual_mode_def): This.
7898         (timode_scalar_chain::mark_dual_mode_def): New function.
7899         (timode_scalar_chain::convert_insn): Likewise.
7900         (dimode_scalar_chain::convert_registers): Likewise.
7901         (scalar_chain::compute_convert_gain): Renamed to ...
7902         (dimode_scalar_chain::compute_convert_gain): This.
7903         (scalar_chain::replace_with_subreg): Renamed to ...
7904         (dimode_scalar_chain::replace_with_subreg): This.
7905         (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
7906         (dimode_scalar_chain::replace_with_subreg_in_insn): This.
7907         (scalar_chain::make_vector_copies): Renamed to ...
7908         (dimode_scalar_chain::make_vector_copies): This.
7909         (scalar_chain::convert_reg): Renamed to ...
7910         (dimode_scalar_chain::convert_reg ): This.
7911         (scalar_chain::convert_op): Renamed to ...
7912         (dimode_scalar_chain::convert_op): This.
7913         (scalar_chain::convert_insn): Renamed to ...
7914         (dimode_scalar_chain::convert_insn): This.
7915         (scalar_chain::convert): Call convert_registers.
7916         (convert_scalars_to_vector): Change to scalar_chain pointer to
7917         use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
7918         in 32-bit mode.  Delete scalar_chain pointer.  Call
7919         free_dominance_info in 64-bit mode.
7920         (pass_stv::gate): Remove TARGET_64BIT check.
7921         (ix86_option_override): Put the 64-bit STV pass before the CSE
7922         pass.
7923
7924 2016-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>
7925
7926         * dwarf2out.h (struct dw_loc_descr_node): Remove the
7927         dw_loc_frame_offset field.
7928         * dwarf2out.c (new_loc_descr): Likewise.
7929         (resolve_args_picking_1): Turn the VISITED hash set into a
7930         FRAME_OFFSET hash map. Use it to associate a frame offset to
7931         visited nodes. Remove uses of the CHECKING_P macro.
7932         (resolve_args_picking): Update call to resolve_args_picking_1.
7933
7934 2016-04-27  Martin Liska  <mliska@suse.cz>
7935
7936         * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
7937         (free_loop_data): Release vuses of groups.
7938
7939 2016-04-27  Bin Cheng  <bin.cheng@arm.com>
7940
7941         * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
7942         instead of redundant use_id and boolean have_use_for.
7943         (struct iv_use): Change sub_id into group_id.  Remove field next.
7944         Move fields: related_cands, n_map_members, cost_map and selected
7945         to ...
7946         (struct iv_group): ... here.  New structure.
7947         (struct iv_common_cand): Use structure declaration directly.
7948         (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
7949         (MAX_CONSIDERED_USES): Rename macro to ...
7950         (MAX_CONSIDERED_GROUPS): ... here.
7951         (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
7952         (dump_iv, dump_use, dump_cand): Refactor format of dump information.
7953         (dump_uses): Rename to ...
7954         (dump_groups): ... here.  Update all uses.
7955         (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
7956         (find_induction_variables): Refactor format of dump information.
7957         (record_sub_use): Delete.
7958         (record_use): Update all uses.
7959         (record_group): New function.
7960         (record_group_use, find_interesting_uses_op): Call above functions.
7961         Update all uses.
7962         (find_interesting_uses_cond): Ditto.
7963         (group_compare_offset): New function.
7964         (split_all_small_groups): Rename to ...
7965         (split_small_address_groups_p): ... here.  Update all uses.
7966         (split_address_groups):  Update all uses.
7967         (find_interesting_uses): Refactor format of dump information.
7968         (add_candidate_1): Update all uses.  Remove redundant check on iv,
7969         base and step.
7970         (add_candidate, record_common_cand): Remove redundant assert.
7971         (add_iv_candidate_for_biv): Update use.
7972         (add_iv_candidate_derived_from_uses): Update all uses.
7973         (add_iv_candidate_for_groups, record_important_candidates): Ditto.
7974         (alloc_use_cost_map): Ditto.
7975         (set_use_iv_cost, get_use_iv_cost): Rename to ...
7976         (set_group_iv_cost, get_group_iv_cost): ... here.  Update all uses.
7977         (determine_use_iv_cost_generic): Ditto.
7978         (determine_group_iv_cost_generic): Ditto.
7979         (determine_use_iv_cost_address): Ditto.
7980         (determine_group_iv_cost_address): Ditto.
7981         (determine_use_iv_cost_condition): Ditto.
7982         (determine_group_iv_cost_cond): Ditto.
7983         (determine_use_iv_cost): Ditto.
7984         (determine_group_iv_cost): Ditto.
7985         (set_autoinc_for_original_candidates): Update all uses.
7986         (find_iv_candidates): Update all uses.  Refactor dump information.
7987         (determine_use_iv_costs): Ditto.
7988         (determine_iv_costs): Ditto.
7989         (iv_ca_cand_for_use): Rename to ...
7990         (iv_ca_cand_for_group): ... here.  Update all uses.
7991         (iv_ca_add_use, iv_ca_add_group): Ditto.
7992         (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
7993         (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
7994         (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
7995         (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
7996         (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
7997         (create_new_iv, adjust_iv_update_pos): Ditto.
7998         (rewrite_use_address): Delete.
7999         (rewrite_use_address_1): Rename to ...
8000         (rewrite_use_address): ... here.
8001         (rewrite_use_compare): Update all uses.
8002         (rewrite_use): Delete.
8003         (rewrite_uses): Rename to ...
8004         (rewrite_groups): ... here.  Update all uses.
8005         (remove_unused_ivs, free_loop_data): Update all uses.
8006         (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
8007
8008 2016-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8009
8010         * rtlanal.c (nonzero_bits1): Convert preprocessor check
8011         for WORD_REGISTER_OPERATIONS to runtime check.
8012
8013 2016-04-27  Richard Biener  <rguenther@suse.de>
8014
8015         PR ipa/70760
8016         * tree-ssa-structalias.c (find_func_aliases_for_call): Use
8017         aggregate_value_p to determine if a function result is
8018         returned by reference.
8019         (ipa_pta_execute): Functions having their address taken are
8020         not automatically nonlocal.
8021
8022 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
8023
8024         PR sanitizer/70683
8025         * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
8026         * fold-const.c (operand_equal_p): If flag_checking and
8027         OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
8028         and if it returns non-zero, assert iterative_hash_expr on both
8029         args is the same.
8030
8031 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
8032
8033         * doc/invoke.texi (-frename-registers): Also enabled at -Os.
8034
8035 2016-04-27  Nick Clifton  <nickc@redhat.com>
8036
8037         PR middle-end/49889
8038         * varasm.c (merge_weak): Generate an error if an attempt is made
8039         to convert a non-weak static function into a weak, public function.
8040
8041 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
8042
8043         * params.def (MAX_PARTITION_SIZE): New param.
8044         * doc/invoke.texi: Document lto-max-partition.
8045
8046 2016-04-27  Richard Biener  <rguenther@suse.de>
8047
8048         PR ipa/70785
8049         * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
8050         function cummulating used_from_other_partition, externally_visible
8051         and force_output from aliases.
8052         (refered_from_nonlocal_var): Likewise.
8053         (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
8054         node flags properly.
8055
8056 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
8057
8058         * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
8059         (-Wmemset-elt-size): New item.
8060
8061 2016-04-27  Eric Botcazou  <ebotcazou@adacore.com>
8062
8063         PR ada/70759
8064         * stor-layout.h (internal_reference_types): Delete.
8065         * stor-layout.c (reference_types_internal): Likewise.
8066         (internal_reference_types): Likewise.
8067         (layout_type) <REFERENCE_TYPE>: Adjust.
8068
8069 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
8070
8071         PR sanitizer/70683
8072         * tree.h (inchash::add_expr): Add FLAGS argument.
8073         * tree.c (inchash::add_expr): Likewise.  If not OEP_ADDRESS_OF,
8074         use STRIP_NOPS first.  For INTEGER_CST assert not OEP_ADDRESS_OF.
8075         For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
8076         Formatting fix.  Adjust recursive calls.  For tcc_comparison,
8077         if swap_tree_comparison (code) is smaller than code, hash that
8078         and arguments in the other order.  Hash CONVERT_EXPR the same
8079         as NOP_EXPR.  For OEP_ADDRESS_OF hash MEM_REF with 0 offset
8080         of ADDR_EXPR of decl as the decl itself.  Add or remove
8081         OEP_ADDRESS_OF from recursive flags as needed.  For
8082         FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
8083         operands commutatively and only the third one normally.
8084         For internal CALL_EXPR hash in CALL_EXPR_IFN.
8085
8086 2016-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
8087
8088         * config/rtems.h (LIB_SPEC): Add -latomic.
8089
8090 2016-04-27  Joel Sherrill  <joel@rtems.org>
8091
8092         * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
8093         xilink.ld and flags not relevant to RTEMS.
8094
8095 2016-04-26  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
8096
8097         * toplev.c (backend_init_target): Avoid calling init_reload when using
8098         LRA.
8099
8100 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
8101
8102         * reorg.c (try_merge_delay_insns): Declare i and j inside the
8103         for loops rather than one for the whole function.
8104
8105 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
8106
8107         * match.pd (X + CST CMP X): New transformation.
8108
8109 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
8110
8111         * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
8112         * fold-const.c (fold_binary_loc): Remove 2 transformations
8113         superseded by match.pd.
8114         * match.pd (x+x -> x*2): Generalize to integers.
8115
8116 2016-04-26  Bernd Schmidt  <bschmidt@redhat.com>
8117
8118         * config/i386/i386.md (operation on memory peephole): Duplicate an
8119         existing peephole and adapt it to match lea rather than an operation
8120         that clobbers CC.
8121
8122         PR rtl-optimization/57193
8123         * opts.c (default_options_table): Add OPT_frename_registers at -O2
8124         and above.
8125         * doc/invoke.texi (-frename-registers, -O2): Update documentation.
8126
8127 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
8128
8129         * tree-if-conv.c (any_pred_load_store): New static variable.
8130         (if_convertible_gimple_assign_stmt_p): Remove parameter.  Use
8131         any_pred_load_store instead of and_mask_load_store.
8132         (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
8133         (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
8134         (combine_blocks, tree_if_conversion): Ditto.
8135
8136 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
8137
8138         PR tree-optimization/70771
8139         PR tree-optimization/70775
8140         * tree-if-conv.c (if_convertible_phi_p): Remove check on special
8141         virtual PHI nodes.  Delete parameter.
8142         (if_convertible_loop_p_1): Delete argument to above function.
8143         (predicate_all_scalar_phis): Delete code handling single-argument
8144         PHIs.
8145         (tree_if_conversion): Mark and update virtual SSA.
8146
8147 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8148
8149         PR target/61821
8150         * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
8151         (x86_elf_aligned_common): Rename to ...
8152         (x86_elf_aligned_decl_common): ... this.
8153         Add decl arg.  Switch to .lbss for largecomm object.  Use
8154         LARGECOMM_SECTION_ASM_OP.
8155         * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
8156         renaming.
8157         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
8158         (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
8159         Pass new decl arg.
8160         * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
8161         [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
8162
8163 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8164
8165         PR target/59407
8166         * config/i386/i386.c (SECTION_LARGE): Define.
8167         (x86_64_elf_select_section): Set it for large data/bss sections.
8168         Only clear SECTION_WRITE for .lrodata.
8169         (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
8170         data/bss sections.
8171         * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
8172         * varasm.c (default_elf_asm_named_section): Grow flagchars.
8173         [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
8174         SECTION_MACH_DEP.
8175         * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
8176         * doc/tm.texi: Regenerate.
8177
8178 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
8179
8180         PR bootstrap/70704
8181         * configure.ac (--enable-checking): Document extra flag, for
8182         non-release builds default to --enable-checking=yes,extra.
8183         If misc checking and extra checking, define CHECKING_P to 2 instead
8184         of 1.
8185         * common.opt (fchecking=): Add.
8186         * doc/invoke.texi (-fchecking=): Document.
8187         * doc/install.texi: Document --enable-checking changes.
8188         * configure: Regenerated.
8189         * config.in: Regenerated.
8190
8191 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
8192
8193         * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
8194         attribute instead of which_alternative.
8195         * config/i386/sse.md (*mov<mode>_internal): Ditto.
8196         Use EXT_REX_SSE_REG_P where appropriate.
8197
8198 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
8199
8200         * config/i386/predicates.md (const0_operand): Do not match
8201         const_wide_int code.
8202         (const1_operand): Ditto.
8203
8204 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
8205
8206         * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
8207         for SSE constm1 operands and TARGET_AVX512VL.
8208         (*movti_internal): Ditto.
8209         (*mov<mode>_or): Use constm1_operand predicate.
8210         * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
8211         for SSE vector_all_ones operands and TARGET_AVX512VL.
8212         * config/i386/predicates.md (constm1_operand): New predicate.
8213         * config/i386/i386.c (standard_sse_constant_opcode): Simplify
8214         emission of constant -1 load.
8215
8216 2016-04-25  Jason Merrill  <jason@redhat.com>
8217
8218         * gdbinit.in: Skip is-a.h.
8219
8220         * attribs.c (register_scoped_attributes): Fix logic.
8221         * attribs.h: Declare register_scoped_attributes.
8222
8223 2016-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8224
8225         * config/rs6000/rs6000-builtin.def: Correct pasto error for
8226         stxvd2x and stxvw4x built-in functions.
8227
8228 2016-04-25  DJ Delorie  <dj@redhat.com>
8229
8230         * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
8231         (ashrhi3): Likewise.
8232         (lshrhi3): Likewise.
8233
8234 2016-04-25  Richard Biener  <rguenther@suse.de>
8235
8236         PR tree-optimization/70780
8237         * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
8238         wasn't visited yet.
8239         (compute_antic): Mark blocks with abnormal preds as visited as
8240         they have a final empty antic-in solution already.
8241
8242 2016-04-25  Michael Collison  <michael.collison@linaro.org>
8243
8244         * ChangeLog(2016-04-25): Fix ChangeLog formatting.
8245
8246 2016-04-25  Michael Collison  <michael.collison@linaro.org>
8247
8248         * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
8249         mode is VQI to improve mixed mode vectorization.
8250         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
8251         define_insn to match low half of signed vaddw.
8252         * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
8253         define_insn to match high half of signed vaddw.
8254         * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
8255         define_insn to match low half of unsigned vaddw.
8256         * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
8257         define_insn to match high half of unsigned vaddw.
8258         * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
8259         (arm_simd_check_vect_par_cnst_half_p): Likewise.
8260         * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
8261         for new function.
8262         (arm_simd_check_vect_par_cnst_half_p): Likewise.
8263         * config/arm/predicates.md (vect_par_constant_high): Support
8264         big endian and simplify by calling
8265         arm_simd_check_vect_par_cnst_half
8266         (vect_par_constant_low): Likewise.
8267
8268 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
8269
8270         * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
8271         predicate for operand 2.
8272
8273 2016-04-24  Uros Bizjak  <ubizjak@gmail.com>
8274             H.J. Lu  <hongjiu.lu@intel.com>
8275
8276         * config/i386/i386-protos.h (standard_sse_constant_p): Add
8277         machine_mode argument.
8278         * config/i386/i386.c (standard_sse_constant_p): Return 2 for
8279         constm1_rtx operands.  For VOIDmode constants, get mode from
8280         pred_mode.  Check mode size if the mode is supported by ABI.
8281         (standard_sse_constant_opcode): Do not use standard_constant_p.
8282         Strictly check ABI support for all-ones operands.
8283         (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
8284         immediates. Update calls to standard_sse_constant_p.
8285         (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
8286         (ix86_rtx_costs): Ditto.
8287         * config/i386/i386.md (*movxi_internal_avx512f): Use
8288         nonimmediate_or_sse_const_operand instead of vector_move_operand.
8289         Use (v,BC) alternative instead of (v,C). Use register_operand
8290         checks instead of MEM_P.
8291         (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
8292         of vector_move_operand.  Add (v,BC) alternative and corresponding avx2
8293         isa attribute.  Use register_operand checks instead of MEM_P.
8294         (*movti_internal): Use nonimmediate_or_sse_const_operand for
8295         TARGET_SSE.  Improve TARGET_SSE insn constraint.  Add (v,BC)
8296         alternative and corresponding sse2 isa attribute.
8297         (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
8298         to standard_sse_constant_p.
8299         (FP constant splitters): Ditto.
8300         * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
8301         (C): Ditto.
8302         * config/i386/predicates.md (constm1_operand): Remove.
8303         (nonimmediate_or_sse_const_operand): Rewrite using RTX.
8304         * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
8305         vector_all_ones_operand instead of constm1_operand.
8306
8307 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8308
8309         * print-rtl.c (print_rtx_insn_vec): New function.
8310         * print-rtl.h: New prototype.
8311         * store-motion.c (struct st_expr): Make avail_stores a vector.
8312         (st_expr_entry): Adjust.
8313         (free_st_expr_entry): Likewise.
8314         (print_store_motion_mems): Likewise.
8315         (find_moveable_store): Likewise.
8316         (compute_store_table): Likewise.
8317         (delete_store): Likewise.
8318         (build_store_vectors): Likewise.
8319
8320 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8321
8322         * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
8323
8324 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8325
8326         * vec.h (vec_safe_contains): New function.
8327         (vec::contains): Likewise.
8328         (vec::begin): Likewise.
8329         (vec::end): Likewise.
8330
8331 2016-04-23  Jakub Jelinek  <jakub@redhat.com>
8332
8333         PR sanitizer/70712
8334         * cfgexpand.c (expand_stack_vars): Fix typo.
8335
8336 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
8337
8338         * system.h (list, map, set, vector): Include conditionally.
8339         * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
8340         * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
8341         * ipa-icf.c (INCLUDE_LIST): Define.
8342         * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
8343         * config/sh/sh.c (INCLUDE_VECTOR): Define.
8344         * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
8345         (INCLUDE_LIST, INCLUDE_VECTOR): Define.
8346         * cp/logic.cc (INCLUDE_LIST): Define.
8347         * fortran/trans-common.c (INCLUDE_MAP): Define.
8348
8349 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
8350
8351         * auto-profile.c: Remove <string.h> include.
8352         * ipa-icf-gimple.c: Remove <list> include.
8353         * diagnostic.c: Remove <new> include.
8354         * genmatch.c: Likewise.
8355         * pretty-print.c: Likewise.
8356         * toplev.c: Likewise
8357         * c/c-objc-common.c: Likewise.
8358         * cp/error.c: Likewise.
8359         * fortran/error.c: Likewise.
8360
8361 2016-04-22  Richard Biener  <rguenther@suse.de>
8362
8363         * lto-streamer-in.c (input_ssa_names): Do not allocate
8364         GIMPLE_NOP for all SSA names.
8365         * lto-streamer-out.c (output_ssa_names): Do not output
8366         SSA names that should have been released.
8367
8368 2016-04-22  Richard Biener  <rguenther@suse.de>
8369
8370         PR tree-optimization/70740
8371         * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
8372         VDEF.
8373
8374 2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
8375
8376         PR target/70750
8377         * config/i386/predicates.md (call_insn_operand): Replace
8378         sibcall_memory_operand with memory_operand.
8379
8380 2016-04-21  Patrick Palka  <ppalka@gcc.gnu.org>
8381
8382         * tree-vrp.c (register_edge_assert_for_2): Remove redundant
8383         has_single_use() tests.
8384         (register_edge_assert_for_1): Likewise.
8385         (find_assert_locations_1): Check the liveness bitmap instead of
8386         checking has_single_use().
8387
8388 2016-04-21  Kirill Yukhin  <kirill.yukhin@intel.com>
8389
8390         PR target/70728
8391         * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
8392         Extract AVX-512BW constraint from AVX.
8393
8394 2016-04-21  Richard Biener  <rguenther@suse.de>
8395
8396         PR tree-optimization/70725
8397         * tree-if-conv.c (if_convertible_phi_p): Adjust guard
8398         for phi_convertible_by_degenerating_args.
8399         (predicate_all_scalar_phis): Handle single-argument PHIs.
8400
8401 2016-04-21  Richard Biener  <rguenther@suse.de>
8402
8403         PR middle-end/70747
8404         * fold-const.c (fold_comparison): Return properly typed
8405         constant boolean.
8406
8407 2016-04-21  Bin Cheng  <bin.cheng@arm.com>
8408
8409         PR tree-optimization/70715
8410         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
8411         after expanding BASE using expand_simple_operations.
8412
8413 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
8414
8415         * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
8416         New transformations.
8417
8418 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
8419
8420         * match.pd (min(int_max, x), max(int_min, x)): New transformations.
8421
8422 2016-04-20  Jan Hubicka  <jh@suse.cz>
8423
8424         * ipa-inline.c (can_inline_edge_p): Pass caller info to
8425         ultiimate_alias_target.
8426         (update_callee_keys): Likewise.
8427         (lookup_recursive_calls): Likewise.
8428         (speculation_useful_p): Likewise.
8429
8430 2016-04-20  Jan Hubicka  <jh@suse.cz>
8431
8432         PR ipa/70018
8433         * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
8434         (set_nothrow_flag_1): ... this; handle interposition correctly;
8435         recurse on aliases and thunks.
8436         (cgraph_node::set_nothrow_flag): New.
8437         * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
8438         functions compiled with non-call exceptions that binds to current
8439         def.
8440         (propagate_nothrow): Be safe WRT interposition.
8441         * cgraph.h (set_nothrow_flag): Update prototype.
8442
8443 2016-04-18  Jan Hubicka  <jh@suse.cz>
8444
8445         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
8446         max_loop_iterations_int.
8447         (tree_unswitch_outer_loop): Likewise.
8448
8449 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
8450
8451         PR tree-optimization/69489
8452         * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
8453         (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
8454         Revise dump message.
8455         (if_convertible_bb_p): Remove check on edge count of basic block's
8456         predecessors.
8457
8458 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
8459
8460         PR tree-optimization/56625
8461         PR tree-optimization/69489
8462         * tree-data-ref.h (DR_INNERMOST): New macro.
8463         * tree-if-conv.c (innermost_loop_behavior_hash): New class for
8464         hashing struct innermost_loop_behavior.
8465         (ref_DR_map): Remove.
8466         (innermost_DR_map): New map.
8467         (baseref_DR_map): Revise comment.
8468         (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
8469         to innermost_DR_map accroding to its innermost loop behavior.
8470         (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
8471         to its innermost loop behavior.
8472         (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
8473         Add initialization for innermost_DR_map.  Record memory reference
8474         in DR_BASE_ADDRESS if the reference is compound one or it doesn't
8475         have innermost loop behavior.
8476         (if_convertible_loop_p): Remove release for ref_DR_map.  Release
8477         innermost_DR_map.
8478
8479 2016-04-20  Uros Bizjak  <ubizjak@gmail.com>
8480
8481         * config/i386/i386.md (*lea<mode>_general_1): Rename from
8482         *lea_general_1.  Use explicit SWI12 mode interator.
8483         (*lea<mode>_general_2): Rename from *lea_general_2.
8484         Use explicit SWI12 mode interator.
8485         (*lea<mode>_general_3): Rename from *lea_general_3.
8486         Use explicit SWI12 mode interator.
8487         (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
8488         Use explicit SWI12 mode interator.
8489         (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
8490         Use explicit SWI48 mode interator.
8491
8492 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
8493
8494         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
8495         Short-cut unaligned load and store cases.  Handle all integer
8496         vector modes.
8497         (ix86_expand_vector_move_misalign): Short-cut unaligned load
8498         and store cases.  Call ix86_avx256_split_vector_move_misalign
8499         directly without checking mode class.
8500
8501 2016-04-20  Andrew Pinski  <apinski@cavium.com>
8502             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8503
8504         PR target/64971
8505         * config/aarch64/aarch64.md (sibcall): Force call
8506         address to be DImode for ILP32.
8507         (sibcall_value): Likewise.
8508
8509 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
8510
8511         * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
8512
8513 2016-04-20  Richard Biener  <rguenther@suse.de>
8514
8515         * gimple-match.h (maybe_build_generic_op): Adjust prototype.
8516         * gimple-match-head.c (maybe_build_generic_op): Pass all ops
8517         by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
8518         (maybe_push_res_to_seq): Adjust.
8519         * gimple-fold.c (maybe_build_generic_op): Likewise.
8520
8521 2016-04-20  Marek Polacek  <polacek@redhat.com>
8522
8523         * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
8524         rather than true.
8525
8526 2016-04-20  Ilya Enkovich  <ilya.enkovich@intel.com>
8527
8528         * config/i386/sse.md (vec_unpacks_lo_hi): Always
8529         use kmovw to support AVX512F target.
8530
8531 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
8532
8533         * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
8534
8535 2016-04-20  Marek Polacek  <polacek@redhat.com>
8536
8537         PR tree-optimization/70725
8538         * tree-if-conv.c (is_false_predicate): New function.
8539         (predicate_mem_writes): Use it.
8540
8541 2016-04-20  Richard Biener  <rguenther@suse.de>
8542
8543         PR tree-optimization/70726
8544         * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
8545         shift amounts from a pattern stmt operand.
8546
8547 2016-04-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8548
8549         PR target/70674
8550         * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
8551         stack_restore_from_fpr pattern when restoring r15.
8552         (s390_optimize_prologue): Strip away the memory barrier in the
8553         parallel when trying to get rid of restore insns.
8554         * config/s390/s390.md ("stack_restore_from_fpr"): New insn
8555         definition for loading the stack pointer from an FPR.  Compared to
8556         the normal move insn this pattern includes a full memory barrier.
8557
8558 2016-04-19  Jakub Jelinek  <jakub@redhat.com>
8559
8560         PR middle-end/70680
8561         * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
8562         implicitly linear or lastprivate iterator on the outer context.
8563
8564 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
8565
8566         * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
8567         alignment check.
8568         * config/i386/i386.md (ssememalign): Removed.
8569         * config/i386/sse.md: Remove ssememalign attribute from patterns.
8570
8571 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
8572
8573         PR target/69201
8574         * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
8575         const short * to __builtin_ia32_loaddquhi512_mask.
8576         (_mm512_maskz_loadu_epi16): Likewise.
8577         (_mm512_mask_storeu_epi16): Pass short * to
8578         __builtin_ia32_storedquhi512_mask.
8579         (_mm512_mask_loadu_epi8): Pass const char * to
8580         __builtin_ia32_loaddquqi512_mask.
8581         (_mm512_maskz_loadu_epi8): Likewise.
8582         (_mm512_mask_storeu_epi8): Pass char * to
8583         __builtin_ia32_storedquqi512_mask.
8584         * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
8585         const double * to __builtin_ia32_loadupd512_mask.
8586         (_mm512_mask_loadu_pd): Likewise.
8587         (_mm512_maskz_loadu_pd): Likewise.
8588         (_mm512_storeu_pd): Pass double * to
8589         __builtin_ia32_storeupd512_mask.
8590         (_mm512_mask_storeu_pd): Likewise.
8591         (_mm512_loadu_ps): Pass const float * to
8592         __builtin_ia32_loadups512_mask.
8593         (_mm512_mask_loadu_ps): Likewise.
8594         (_mm512_maskz_loadu_ps): Likewise.
8595         (_mm512_storeu_ps): Pass float * to
8596         __builtin_ia32_storeups512_mask.
8597         (_mm512_mask_storeu_ps): Likewise.
8598         (_mm512_mask_loadu_epi64): Pass const long long * to
8599         __builtin_ia32_loaddqudi512_mask.
8600         (_mm512_maskz_loadu_epi64): Likewise.
8601         (_mm512_mask_storeu_epi64): Pass long long *
8602         to __builtin_ia32_storedqudi512_mask.
8603         (_mm512_loadu_si512): Pass const int * to
8604         __builtin_ia32_loaddqusi512_mask.
8605         (_mm512_mask_loadu_epi32): Likewise.
8606         (_mm512_maskz_loadu_epi32): Likewise.
8607         (_mm512_storeu_si512): Pass int * to
8608         __builtin_ia32_storedqusi512_mask.
8609         (_mm512_mask_storeu_epi32): Likewise.
8610         * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
8611         char * to __builtin_ia32_storedquqi256_mask.
8612         (_mm_mask_storeu_epi8): Likewise.
8613         (_mm256_mask_loadu_epi16): Pass const short * to
8614         __builtin_ia32_loaddquhi256_mask.
8615         (_mm256_maskz_loadu_epi16): Likewise.
8616         (_mm_mask_loadu_epi16): Pass const short * to
8617         __builtin_ia32_loaddquhi128_mask.
8618         (_mm_maskz_loadu_epi16): Likewise.
8619         (_mm256_mask_loadu_epi8): Pass const char * to
8620         __builtin_ia32_loaddquqi256_mask.
8621         (_mm256_maskz_loadu_epi8): Likewise.
8622         (_mm_mask_loadu_epi8): Pass const char * to
8623         __builtin_ia32_loaddquqi128_mask.
8624         (_mm_maskz_loadu_epi8): Likewise.
8625         (_mm256_mask_storeu_epi16): Pass short * to.
8626         __builtin_ia32_storedquhi256_mask.
8627         (_mm_mask_storeu_epi16): Pass short * to.
8628         __builtin_ia32_storedquhi128_mask.
8629         * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
8630         const double * to __builtin_ia32_loadupd256_mask.
8631         (_mm256_maskz_loadu_pd): Likewise.
8632         (_mm_mask_loadu_pd): Pass onst double * to
8633         __builtin_ia32_loadupd128_mask.
8634         (_mm_maskz_loadu_pd): Likewise.
8635         (_mm256_mask_storeu_pd): Pass double * to
8636         __builtin_ia32_storeupd256_mask.
8637         (_mm_mask_storeu_pd): Pass double * to
8638         __builtin_ia32_storeupd128_mask.
8639         (_mm256_mask_loadu_ps): Pass const float * to
8640         __builtin_ia32_loadups256_mask.
8641         (_mm256_maskz_loadu_ps): Likewise.
8642         (_mm_mask_loadu_ps): Pass const float * to
8643         __builtin_ia32_loadups128_mask.
8644         (_mm_maskz_loadu_ps): Likewise.
8645         (_mm256_mask_storeu_ps): Pass float * to
8646         __builtin_ia32_storeups256_mask.
8647         (_mm_mask_storeu_ps): ass float * to
8648         __builtin_ia32_storeups128_mask.
8649         (_mm256_mask_loadu_epi64): Pass const long long * to
8650         __builtin_ia32_loaddqudi256_mask.
8651         (_mm256_maskz_loadu_epi64): Likewise.
8652         (_mm_mask_loadu_epi64): Pass const long long * to
8653         __builtin_ia32_loaddqudi128_mask.
8654         (_mm_maskz_loadu_epi64): Likewise.
8655         (_mm256_mask_storeu_epi64): Pass long long * to
8656         __builtin_ia32_storedqudi256_mask.
8657         (_mm_mask_storeu_epi64): Pass long long * to
8658         __builtin_ia32_storedqudi128_mask.
8659         (_mm256_mask_loadu_epi32): Pass const int * to
8660         __builtin_ia32_loaddqusi256_mask.
8661         (_mm256_maskz_loadu_epi32): Likewise.
8662         (_mm_mask_loadu_epi32): Pass const int * to
8663         __builtin_ia32_loaddqusi128_mask.
8664         (_mm_maskz_loadu_epi32): Likewise.
8665         (_mm256_mask_storeu_epi32): Pass int * to
8666         __builtin_ia32_storedqusi256_mask.
8667         (_mm_mask_storeu_epi32): Pass int * to
8668         __builtin_ia32_storedqusi128_mask.
8669         * config/i386/i386-builtin-types.def (PCSHORT): New.
8670         (PINT64): Likewise.
8671         (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
8672         (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
8673         (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
8674         (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
8675         (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
8676         (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
8677         (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
8678         (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
8679         (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
8680         (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
8681         (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
8682         (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
8683         (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
8684         (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
8685         (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
8686         (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
8687         (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
8688         (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
8689         (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
8690         (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
8691         (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
8692         (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
8693         (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
8694         (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
8695         (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
8696         (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
8697         (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
8698         (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
8699         (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
8700         (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
8701         (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
8702         (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
8703         (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
8704         (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
8705         (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
8706         (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
8707         (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
8708         (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
8709         (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
8710         (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
8711         (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
8712         (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
8713         (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
8714         (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
8715         (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
8716         (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
8717         (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
8718         (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
8719         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
8720         use UNSPEC_STOREU.
8721         (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
8722         (ix86_avx256_split_vector_move_misalign): Don't use unaligned
8723         load nor store.
8724         (ix86_expand_vector_move_misalign): Likewise.
8725         (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
8726         to scalar function prototype for unaligned load/store builtins.
8727         (ix86_expand_special_args_builtin): Updated.
8728         * config/i386/sse.md (UNSPEC_LOADU): Removed.
8729         (UNSPEC_STOREU): Likewise.
8730         (VI_ULOADSTORE_BW_AVX512VL): Likewise.
8731         (VI_ULOADSTORE_F_AVX512VL): Likewise.
8732         (ssescalarsize): Handle V4TI, V2TI and V1TI.
8733         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
8734         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
8735         (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
8736         (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
8737         (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
8738         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
8739         (sse2_avx_avx512f>_storedqu<mode>): Likewise.
8740         (<avx512>_storedqu<mode>_mask): Likewise.
8741         (*sse4_2_pcmpestr_unaligned): Likewise.
8742         (*sse4_2_pcmpistr_unaligned): Likewise.
8743         (*mov<mode>_internal): Renamed to ...
8744         (mov<mode>_internal): This.  Remove check of AVX and IAMCU on
8745         misaligned operand.  Replace vmovdqu64 with vmovdqu<ssescalarsize>.
8746         (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
8747         (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
8748
8749 2016-04-19  Richard Biener  <rguenther@suse.de>
8750
8751         PR tree-optimization/70171
8752         * tree-ssa-phiprop.c: Include stor-layout.h.
8753         (phiprop_insert_phi): Handle the aggregate copy case.
8754         (propagate_with_phi): Likewise.
8755
8756 2016-04-19  Uros Bizjak  <ubizjak@gmail.com>
8757
8758         * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
8759         instead of simplify_gen_subreg (... , 0).
8760         (ix86_delegitimize_address): Ditto.
8761         (ix86_split_divmod): Ditto.
8762         (ix86_split_copysign_const): Ditto.
8763         (ix86_split_copysign_var): Ditto.
8764         (ix86_expand_args_builtin): Ditto.
8765         (ix86_expand_round_builtin): Ditto.
8766         (ix86_expand_special_args_builtin): Ditto.
8767         * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
8768         (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
8769         (udivmodqi4): Ditto.
8770         (absneg splitters): Ditto.
8771         (*jcc_bt<mode>_1): Ditto.
8772
8773 2016-04-19  Richard Biener  <rguenther@suse.de>
8774
8775         PR tree-optimization/70724
8776         * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
8777         restoring out from ...
8778         (free_scc_vn): ... here.
8779         * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
8780         * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
8781         tail merging.
8782         (pass_fre::execute): Restore SSA info.
8783
8784 2016-04-19  Richard Biener  <rguenther@suse.de>
8785
8786         * gimple-walk.h (struct walk_stmt_info): Add stmt member.
8787         * gimple-walk.c (walk_gimple_op): Initialize it.
8788         (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
8789         * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
8790         remapping SSA names of defs.
8791         (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
8792         adjustment.
8793
8794 2016-04-18  Vladimir Makarov  <vmakarov@redhat.com>
8795
8796         PR middle-end/70689
8797         * lra-constraints.c (equiv_substition_p): New.
8798         (process_alt_operands): Use it.
8799         (swap_operands): Swap it.
8800         (curr_insn_transform): Update it.
8801
8802 2016-04-18  Michael Matz  <matz@suse.de>
8803
8804         * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
8805         (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
8806         * tree-core.h (tree_type_common.align): Use bit-field.
8807         (tree_type_common.spare): New.
8808         (tree_decl_common.off_align): Make smaller.
8809         (tree_decl_common.align): Use bit-field.
8810
8811         * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
8812         * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
8813         (scan_sharing_clauses): Ditto.
8814         (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
8815         (omp_finish_file): Ditto.
8816         * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
8817         (layout_decl): Ditto.
8818         (relayout_decl): Ditto.
8819         (finalize_record_size): Use SET_TYPE_ALIGN.
8820         (finalize_type_size): Ditto.
8821         (finish_builtin_struct): Ditto.
8822         (layout_type): Ditto.
8823         (initialize_sizetypes): Ditto.
8824         * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
8825         * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
8826         (lookup_field_for_decl): Use SET_DECL_ALIGN.
8827         (get_chain_field): Ditto.
8828         (get_trampoline_type): Ditto.
8829         (get_nl_goto_field): Ditto.
8830         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
8831         SET_DECL_ALIGN.
8832         (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
8833         * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
8834         * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
8835         (build_qualified_type): Use SET_TYPE_ALIGN.
8836         (build_aligned_type, build_range_type_1): Ditto.
8837         (build_atomic_base): Ditto.
8838         (build_common_tree_nodes): Ditto.
8839         * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
8840         (expand_one_stack_var_at): Ditto.
8841         * coverage.c (build_var): Use SET_DECL_ALIGN.
8842         * except.c (init_eh): Ditto.
8843         * function.c (assign_parm_setup_block): Ditto.
8844         * symtab.c (increase_alignment_1): Ditto.
8845         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
8846         * tree-vect-stmts.c (ensure_base_align): Ditto.
8847         * varasm.c (align_variable): Ditto.
8848         (assemble_variable): Ditto.
8849         (build_constant_desc): Ditto.
8850         (output_constant_def_contents): Ditto.
8851
8852         * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
8853         * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
8854         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
8855         * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
8856         * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
8857
8858 2016-04-18  H.J. Lu  <hongjiu.lu@intel.com>
8859
8860         PR target/70708
8861         * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
8862         replace %vmovsd with "%vmovq".
8863         (vec_concatv2df): Likewise.
8864
8865 2016-04-18  Uros Bizjak  <ubizjak@gmail.com>
8866
8867         * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
8868         (*vec_extractv2si_0): Ditto.
8869         * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
8870         (zero_extended_scalar_load_operand splitters): Ditto.
8871         (vec_extract splitters): Ditto.
8872         (*vec_extractv4si_0_zext): Ditto.
8873         (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
8874         and lowpart_subreg.
8875         (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
8876         (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
8877         (*sse4_1_extractps): Use lowpart_subreg.
8878         * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
8879
8880 2016-04-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8881
8882         * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
8883         gld requirements.
8884         (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
8885         Mention Solaris 11 packaging changes.
8886         Update gas and gld requirements.
8887         Remove reference to pre-Solaris 10 bug.
8888         (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
8889         systems and bugs.
8890         (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
8891         with cc.
8892
8893 2016-04-17  Jan Hubicka  <jh@suse.cz>
8894
8895         * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
8896         max_loop_iterations_int.
8897
8898 2016-04-18  Richard Biener  <rguenther@suse.de>
8899
8900         PR tree-optimization/43434
8901         * tree-ssa-structalias.c (struct vls_data): New.
8902         (visit_loadstore): Handle all pointer-based accesses.
8903         (compute_dependence_clique): Compute a bitmap of restrict tags
8904         assigned bases and pass it to visit_loadstore.
8905
8906 2016-04-18  Matthew Wahab  <matthew.wahab@arm.com>
8907
8908         PR target/70711
8909         * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
8910         armv8.1-a and armv8.1-a+crc.
8911
8912 2016-04-18  Richard Biener  <rguenther@suse.de>
8913
8914         PR tree-optimization/70701
8915         * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
8916         references after translating through a memcpy.
8917
8918 2016-04-18  Richard Biener  <rguenther@suse.de>
8919
8920         * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
8921         (compute_antic): ... here.  For partial antic use regular
8922         postorder and scrap iteration.
8923         (compute_partial_antic_aux): Remove unused return value.
8924         (init_pre): Do not allocate postorder.
8925         (fini_pre): Do not free postorder.
8926
8927 2016-04-18  Richard Biener  <rguenther@suse.de>
8928
8929         PR middle-end/37870
8930         * expmed.c (extract_bit_field_1): Remove broken case
8931         using a wider MODE_INT mode.
8932
8933 2016-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
8934
8935         * has-brig.c (lendian16): Don't try to use __builtin_bswap16
8936         unless compiling with at least GCC-4.8.
8937
8938 2016-04-17  Jan Hubicka  <jh@suse.cz>
8939
8940         PR bootstrap/70706
8941         * graphite.c (graphite_finalize): Update call to
8942         tree_estimate_probability.
8943         * predict.h (tree_estimate_probability): Update prototype.
8944
8945 2016-04-17  Jan Hubicka  <jh@suse.cz>
8946
8947         * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
8948         (tree_estimate_probability): Likewise.
8949         (pass_profile::execute): Update.
8950         (report_predictor_hitrates): New function.
8951         * profile.c (compute_branch_probabilities): Use it.
8952         * predict.h (report_predictor_hitrates): Declare.
8953
8954 2016-04-17  Jan Hubicka  <jh@suse.cz>
8955
8956         PR ipa/70018
8957         * cgraph.h (cgraph_node::set_const_flag,
8958         cgraph_node::set_pure_flag): Update prototype to return bool;
8959         update comment.
8960         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
8961         of interposable symbol are interposable, too.
8962         (cgraph_set_const_flag_1): Rename to ...
8963         (set_const_flag_1): ... this one; change to self recursive function
8964         instead of call_for_symbol_thunks_and_aliases. Handle correctly
8965         clearnig the flag in all variants and also virtual thunks of const
8966         functions are pure; track if any change was done.
8967         (cgraph_node::set_const_flag): Update.
8968         (struct set_pure_flag_info): New struct.
8969         (cgraph_set_pure_flag_1): Rename to ...
8970         (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
8971         rather than pointer encoded flags; track if any changes was done;
8972         handle correctly clearning flag and setting flag of aliases already
8973         declared const.
8974         (cgraph_node::set_pure_flag): Update.
8975         (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
8976
8977 2016-04-17  Tom de Vries  <tom@codesourcery.com>
8978
8979         PR other/70433
8980         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
8981         backslash in label.
8982
8983 2016-04-17  Tom de Vries  <tom@codesourcery.com>
8984
8985         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
8986         '{}<> ' as escape-for-record.
8987
8988 2016-04-17  Tom de Vries  <tom@codesourcery.com>
8989
8990         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
8991         structure.
8992
8993 2016-04-17  Tom de Vries  <tom@codesourcery.com>
8994
8995         PR other/70185
8996         * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
8997         * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
8998         * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
8999         * passes.c (finish_optimization_passes): Only call
9000         finish_graph_dump_file if dfi->graph_dump_initialized.
9001         (execute_function_dump, pass_init_dump_file): Use
9002         dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
9003
9004 2016-04-17  Tom de Vries  <tom@codesourcery.com>
9005
9006         PR tree-optimization/70256
9007         * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
9008         (debug_varmap): New function.
9009
9010 2016-04-17  Tom de Vries  <tom@codesourcery.com>
9011
9012         PR other/70183
9013         * passes.c (pass_manager::register_pass): Propagate pflags.
9014
9015 2016-04-17  Tom de Vries  <tom@codesourcery.com>
9016
9017         PR other/68875
9018         * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
9019         * passes.c (pass_manager::pass_manager): Declare and init p_start in
9020         INSERT_PASSES_AFTER.  Add pass parameter to TERMINATE_PASS_LIST, and
9021         check if it's equal to p_start.
9022         * passes.def: Add arguments to TERMINATE_PASS_LISTs.
9023
9024 2016-04-15  Jan Hubicka  <jh@suse.cz>
9025
9026         PR ipa/70018
9027         * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
9028         function does not bind to current def.
9029         * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
9030         handle conservatively calls to functions that does not need to bind
9031         to current def.
9032         (check_call): Update call of worse_state.
9033         (ignore_edge_for_nothrow): Update.
9034         (ignore_edge_for_pure_const): Likewise.
9035         (propagate_pure_const): Update calls to worse_state.
9036         (skip_function_for_local_pure_const): Reformat comments.
9037
9038 2016-04-15  Jan Hubicka  <jh@suse.cz>
9039
9040         PR ipa/70018
9041         * cgraph.c (cgraph_node::get_availability): Add REF parameter.
9042         (cgraph_node::function_symbol): Likewise.
9043         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
9044         * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
9045         (symtab_node::ultimate_alias_target): Add REF parameter.
9046         (symtab_node::binds_to_current_def_p): Declare.
9047         (symtab_node;:ultimate_alias_target_1): Add REF parameter.
9048         (cgraph_node::function_symbol): Likewise.
9049         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
9050         (cgraph_node::get_availability): Likewise.
9051         (cgraph_edge::binds_to_current_def_p): New inline function.
9052         (varpool_node::get_availability): Add REF parameter.
9053         (varpool_node::ultimate_alias_target): Likewise.
9054         * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
9055         (symtab_node::binds_to_current_def_p): Likewise.
9056         * varpool.c (varpool_node::get_availability): Likewise.
9057
9058 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
9059
9060         PR target/70662
9061         * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
9062         Fix mode size check.
9063
9064 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
9065
9066         * BASE-VER: Set to 7.0.0.
9067
9068 2016-04-15  Alexander Monakov  <amonakov@ispras.ru>
9069
9070         * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
9071
9072 2016-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9073
9074         * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
9075         architecture revisions.
9076
9077 2016-04-15  Bernd Schmidt  <bschmidt@redhat.com>
9078
9079         * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
9080         * config/i386/i386.c (ix86_using_red_zone): No longer static.
9081         * config/i386/i386.md (stack decrement to push peepholes): Guard
9082         with !x86_using_red_zone ().
9083
9084 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
9085
9086         PR c++/70675
9087         * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
9088         to dump_generic_node.
9089         (NIY): Pass also flags to do_niy.
9090
9091 2016-04-15  Thomas Schwinge  <thomas@codesourcery.com>
9092
9093         * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
9094         (simd_clone_vector_of_formal_parm_types)
9095         (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
9096         (simd_clone_mangle, simd_clone_create)
9097         (simd_clone_adjust_return_type, create_tmp_simd_array)
9098         (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
9099         (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
9100         (ipa_simd_modify_function_body, simd_clone_linear_addend)
9101         (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
9102         (pass_data_omp_simd_clone, class pass_omp_simd_clone)
9103         (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
9104         * omp-simd-clone.c: ... this new file.
9105         (simd_clone_vector_of_formal_parm_types): Make it static.
9106         * Makefile.in (OBJS): Add omp-simd-clone.o.
9107
9108 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
9109
9110         PR target/70662
9111         * config/i386/sse.md: Use proper memory operand modifiers.
9112
9113
9114 2016-04-15  Richard Biener  <rguenther@suse.de>
9115         Alan Modra  <amodra@gmail.com>
9116
9117         PR tree-optimization/70130
9118         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
9119         when alignment stays not the same and no not use the realign
9120         scheme then.
9121
9122 2016-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
9123
9124         PR target/70669
9125         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
9126         direct move handlers for KFmode. Change TFmode handlers test from
9127         FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
9128
9129 2016-04-14  Jakub Jelinek  <jakub@redhat.com>
9130
9131         PR c++/70594
9132         * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
9133         * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
9134         (inlined_polymorphic_ctor_dtor_block_p): Use it.
9135         * tree-ssa-live.c (remove_unused_scope_block_p): When
9136         in_ctor_dtor_block, avoid discarding not just BLOCKs with
9137         BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
9138         block_ultimate_origin is FUNCTION_DECL.
9139         (remove_unused_locals): If current_function_decl is
9140         polymorphic_ctor_dtor_p, pass initial true to
9141         remove_unused_scope_block_p' is_ctor_dtor_block.
9142
9143 2016-04-14  Martin Sebor  <msebor@redhat.com>
9144
9145         PR c++/69517
9146         PR c++/70019
9147         PR c++/70588
9148         * doc/extend.texi (Variable Length): Revert.
9149
9150 2016-04-14  Marek Polacek  <polacek@redhat.com>
9151             Jan Hubicka  <hubicka@ucw.cz>
9152
9153         PR c++/70029
9154         * tree.c (verify_type): Disable the canonical type of main variant
9155         check.
9156
9157 2016-04-14  Jason Merrill  <jason@redhat.com>
9158
9159         * cfgexpand.c, expr.c: Revert previous change.
9160
9161 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
9162
9163         PR middle-end/70643
9164         * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
9165         when building a mem ref for the incoming reduction variable.
9166
9167 2016-04-14  Richard Biener  <rguenther@suse.de>
9168
9169         PR tree-optimization/70614
9170         * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
9171         loop if the evolution dropped to chrec_dont_know.
9172         (interpret_condition_phi): Likewise.
9173
9174 2016-04-14  Richard Biener  <rguenther@suse.de>
9175
9176         PR tree-optimization/70623
9177         * tree-ssa-pre.c (changed_blocks): Make global ...
9178         (compute_antic): ... local here.  Move and fix worklist
9179         handling here.  Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
9180         (compute_antic_aux): Add dumping for MAX assumed succs.  Remove
9181         worklist handling, dump when ANTIC_IN changed.
9182         (compute_partial_antic_aux): Remove worklist handling.
9183         (init_pre): Do not compute post dominators.  Add a comment about
9184         the CFG order chosen.
9185         (fini_pre): Do not free post dominators.
9186
9187 2016-04-13  Martin Sebor  <msebor@redhat.com>
9188
9189         PR c++/69517
9190         PR c++/70019
9191         PR c++/70588
9192         * doc/extend.texi (Variable Length): Document C++ specifics.
9193
9194 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
9195
9196         PR c++/70641
9197         * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
9198         on all recursive call stmts.  Return TODO_cleanup_cfg if any dead
9199         eh edges have been purged.
9200
9201         PR c++/70594
9202         * tree-sra.c (create_access_replacement,
9203         get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
9204         gets fancy name.
9205         * tree-pretty-print.c (dump_fancy_name): New function.
9206         (dump_decl_name, dump_generic_node): Use it.
9207
9208 2016-04-13  Jason Merrill  <jason@redhat.com>
9209
9210         * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
9211         * expr.c (expand_expr_real_1): Likewise.
9212
9213 2016-04-13  Ilya Enkovich  <ilya.enkovich@intel.com>
9214
9215         * config/i386/i386.md (kunpckhi): Swap operands.
9216         (kunpcksi): Likewise.
9217         (kunpckdi): Likewise.
9218         * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
9219         (vec_pack_trunc_<mode>): Likewise.
9220
9221 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
9222
9223         PR debug/70628
9224         * explow.c (convert_memory_address_addr_space_1): Formatting fix.
9225
9226         PR middle-end/70633
9227         * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
9228         gimplification turns some element into non-constant.
9229
9230         PR debug/70628
9231         * rtl.h (convert_memory_address_addr_space_1): New prototype.
9232         * explow.c (convert_memory_address_addr_space_1): No longer static,
9233         add NO_EMIT argument and don't call convert_modes if true, pass
9234         it down recursively, remove break after return.
9235         (convert_memory_address_addr_space): Adjust caller.
9236         * simplify-rtx.c (simplify_unary_operation_1): Call
9237         convert_memory_address_addr_space_1 instead of convert_memory_address,
9238         if it returns NULL, don't simplify.
9239
9240 2016-04-12  Eric Botcazou  <ebotcazou@adacore.com>
9241
9242         PR target/70630
9243         * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
9244
9245 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
9246
9247         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
9248         Bump the upper SIMDLEN limits, so that if the return type or
9249         characteristic type if the return type is void can be passed in
9250         all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
9251         allowed.
9252
9253 2016-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
9254
9255         PR target/70640
9256         * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
9257         Do not use "=" constraint on an input constraint.
9258         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
9259         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
9260         (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
9261         generates (neg (abs ...)) instead of (abs ...).
9262
9263 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
9264
9265         PR rtl-optimization/70596
9266         * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
9267         just invalidate LRA data and reset them.  Adjust dump wording.
9268
9269 2016-04-12  Martin Liska  <mliska@suse.cz>
9270
9271         Revert
9272         2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
9273
9274         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
9275         estimates here.
9276         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
9277         max_loop_iterations_int.
9278         (tree_unswitch_outer_loop): Likewise.
9279         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
9280         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
9281
9282 2016-04-12  Tom de Vries  <tom@codesourcery.com>
9283
9284         PR tree-optimization/68756
9285         * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
9286         instead of new_name.
9287
9288 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
9289
9290         PR tree-optimization/70602
9291         * tree-sra.c (generate_subtree_copies): Don't write anything into
9292         constant pool decls.
9293
9294         * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
9295         regardless whether there are depend clauses or not.
9296
9297 2016-04-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
9298
9299         PR target/70381
9300         * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
9301         target attribute and pragma from changing the -mfloat128
9302         and -mfloat128-hardware options.
9303
9304         * doc/extend.texi (Additional Floating Types): Document PowerPC
9305         __float128 restrictions.
9306
9307 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
9308
9309         PR target/70133
9310         * config/aarch64/driver-aarch64.c
9311         (aarch64_get_extension_string_for_isa_flags): New.
9312         (arch_extension): Rename to...
9313         (aarch64_arch_extension): ...This.
9314         (ext_to_feat_string): Rename to...
9315         (aarch64_extensions): ...This.
9316         (aarch64_core_data): Keep track of architecture extension flags.
9317         (cpu_data): Rename to...
9318         (aarch64_cpu_data): ...This.
9319         (aarch64_arch_driver_info): Keep track of architecture extension
9320         flags.
9321         (get_arch_name_from_id): Rename to...
9322         (get_arch_from_id): ...This, change return type.
9323         (host_detect_local_cpu): Update and reformat for renames, handle
9324         extensions through common infrastructure.
9325
9326 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
9327
9328         PR target/70133
9329         * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
9330         track of a canonical flag name.
9331         (all_extensions): Likewise.
9332         (arch_to_arch_name): Also track extension flags enabled by the arch.
9333         (all_architectures): Likewise.
9334         (aarch64_parse_extension): Move to here.
9335         (aarch64_get_extension_string_for_isa_flags): Take a new argument,
9336         rework.
9337         (aarch64_rewrite_selected_cpu): Update for above change.
9338         * config/aarch64/aarch64-option-extensions.def: Rework the way flags
9339         are handled, such that the single explicit value enabled by an
9340         extension is kept seperate from the implicit values it also enables.
9341         * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
9342         to here.
9343         (aarch64_parse_extension): New.
9344         * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
9345         here to config/aarch64/aarch64-protos.h.
9346         (aarch64_parse_extension): Move from here to
9347         common/config/aarch64/aarch64-common.c.
9348         (aarch64_option_print): Update.
9349         (aarch64_declare_function_name): Likewise.
9350         (aarch64_start_file): Likewise.
9351         * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
9352         the canonical flag for extensions.
9353         * config.gcc (aarch64*-*-*): Extend regex for capturing extension
9354         flags.
9355
9356 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
9357
9358         * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
9359         AARCH64_FL_CRC.
9360
9361 2016-04-09  Tom de Vries  <tom@codesourcery.com>
9362
9363         PR tree-optimization/68953
9364         * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
9365         first to last subscript.
9366
9367 2016-04-09  Jakub Jelinek  <jakub@redhat.com>
9368
9369         PR tree-optimization/70586
9370         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
9371         for any calls.
9372
9373 2016-04-08  Cesar Philippidis  <cesar@codesourcery.com>
9374
9375         PR lto/70289
9376         PR ipa/70348
9377         PR tree-optimization/70373
9378         PR middle-end/70533
9379         PR middle-end/70534
9380         PR middle-end/70535
9381         * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
9382         clauses for acc parallel reductions as necessary.  Error on those
9383         that are private.
9384         * omp-low.c (scan_sharing_clauses): Don't install variables which
9385         are used in acc parallel reductions.
9386         (lower_rec_input_clauses): Remove dead code.
9387         (lower_oacc_reductions): Add support for reference reductions.
9388         (lower_reduction_clauses): Remove dead code.
9389         (lower_omp_target): Don't remap variables appearing in acc parallel
9390         reductions.
9391         * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
9392
9393 2016-04-08  Jakub Jelinek  <jakub@redhat.com>
9394
9395         PR middle-end/70593
9396         * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
9397         with multiple SSA_NAME defs, force the outputs other than first
9398         to be live before calling live_track_process_def on each output.
9399
9400         PR rtl-optimization/70574
9401         * fwprop.c (forward_propagate_and_simplify): Don't add
9402         REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
9403         (try_fwprop_subst): Don't add REG_EQUAL note if there are any
9404         paradoxical subregs within *loc.
9405
9406 2016-04-08  Thomas Schwinge  <thomas@codesourcery.com>
9407
9408         * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
9409         -ftree-parallelize-loops={0,1}.
9410         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
9411         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
9412         * config/ia64/hpux.h (LIB_SPEC): Likewise.
9413         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
9414         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
9415
9416 2016-04-08  Maxim Ostapenko  <m.ostapenko@samsung.com>
9417
9418         PR sanitizer/70541
9419         * asan.c (instrument_derefs): If we get unknown location, extract it
9420         with EXPR_LOCATION.
9421         (maybe_instrument_call): Instrument gimple_call's arguments if needed.
9422
9423 2016-04-08  Tom de Vries  <tom@codesourcery.com>
9424
9425         * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
9426         implicit firstprivate clause.
9427
9428 2016-04-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9429
9430         PR target/70566
9431         * config/arm/thumb2.md (tst + branch-> lsls + branch
9432         peephole below *orsi_not_shiftsi_si): Require that condition
9433         register is dead after the peephole.
9434         (second peephole after the above): Likewise.
9435
9436 2016-04-08  Alan Modra  <amodra@gmail.com>
9437
9438         PR target/70117
9439         * builtins.c (fold_builtin_classify): For IBM extended precision,
9440         look at just the high-order double to test for NaN.
9441         (fold_builtin_interclass_mathfn): Similarly for Inf.  For isnormal
9442         test just the high double for Inf but both doubles for subnormal
9443         limit.
9444
9445 2016-04-07  Jakub Jelinek  <jakub@redhat.com>
9446
9447         * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
9448         * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
9449         node->simdclone->mask_mode != VOIDmode masks.
9450         (simd_clone_adjust_argument_types): Likewise.  Move sc var definition
9451         earlier, use it instead of node->simdclone.
9452         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
9453         Set clonei->mask_mode.
9454
9455 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
9456
9457         PR c/70436
9458         * parser.c (cp_parser_iteration_statement): New parameter IF_P.
9459         Pass it through to cp_parser_already_scoped_statement.
9460         (cp_parser_already_scoped_statement): New parameter IF_P.  Pass
9461         it through to cp_parser_statement.
9462         (cp_parser_statement): Pass IF_P through to
9463         cp_parser_iteration_statement.
9464         (cp_parser_pragma): Adjust call to
9465         cp_parser_iteration_statement.
9466
9467 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
9468
9469         PR c/70436
9470         * gimplify.c (gimplify_omp_ordered): Add explicit braces to
9471         resolve a future -Wparentheses warning.
9472         * omp-low.c (scan_sharing_clauses): Likewise.
9473         * tree-parloops.c (eliminate_local_variables): Likewise.
9474
9475 2016-04-06  Vladimir Makarov  <vmakarov@redhat.com>
9476
9477         PR rtl-optimization/70398
9478         * lra-constraints.c (process_address_1): Check zero scale and code
9479         for reloading with zero scale.
9480
9481 2016-04-06  Uros Bizjak  <ubizjak@gmail.com>
9482
9483         * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
9484         (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
9485
9486 2016-04-06  Jakub Jelinek  <jakub@redhat.com>
9487
9488         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
9489         Add support for AVX512F clones, include them by default for
9490         exported OpenMP declare simd functions.  For AVX2 allow simdlen 32
9491         and use it if charasteric type is 8-bit, for AVX512F allow simdlen
9492         up to 128.
9493
9494         PR middle-end/70550
9495         * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
9496         * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
9497         firstprivate clauses.
9498         * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
9499         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
9500         (lower_omp_target): Set TREE_NO_WARNING for
9501         non-addressable possibly uninitialized vars which are copied into
9502         addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
9503
9504 2016-04-05  John David Anglin  <danglin@gcc.gnu.org>
9505
9506         * config/pa/predicates.md (integer_store_memory_operand): Accept
9507         REG+D operands with a large offset when reload_in_progress is true.
9508         (floating_point_store_memory_operand): Likewise.
9509
9510 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
9511
9512         PR c++/70336
9513         * match.pd (nested int casts): Limit to GIMPLE.
9514
9515 2016-04-05  Jan Hubicka  <hubicka@ucw.cz>
9516
9517         PR ipa/66223
9518         * ipa-devirt.c (maybe_record_node): Fix comment; use
9519         SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
9520
9521 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
9522
9523         PR rtl-optimization/70542
9524         * ree.c (add_removable_extension): For VECTOR_MODE_P punt
9525         if there are any uses other than insn or debug insns.
9526
9527 2016-04-05  Marc Glisse  <marc.glisse@inria.fr>
9528             Jakub Jelinek  <jakub@redhat.com>
9529
9530         PR tree-optimization/70509
9531         * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
9532         Shift HOST_WIDE_INT_1U instead of 1.
9533
9534 2016-04-05  Zdenek Sojka  <zsojka@seznam.cz>
9535
9536         PR tree-optimization/70509
9537         * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
9538         of the vector base type for index.
9539
9540 2016-04-05  Uros Bizjak  <ubizjak@gmail.com>
9541
9542         PR target/70510
9543         * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
9544
9545 2016-04-05  Richard Biener  <rguenther@suse.de>
9546
9547         PR tree-optimization/70526
9548         * tree-sra.c (build_ref_for_offset): Use prev_base to
9549         extract the alias pointer type.
9550
9551 2016-04-05  Richard Biener  <rguenther@suse.de>
9552
9553         * dse.c (struct store_info): Remove alias_set member.
9554         (struct read_info_type): Likewise.
9555         (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
9556         spill_deleted, clear_alias_set_lookup): Remove.
9557         (get_group_info): Remove dead base == NULL_RTX case.
9558         (dse_step0): Remove initialization of removed variables.
9559         (delete_dead_store_insn): Reomve alias set dumping.
9560         (free_read_records): Remove alias_set handling.
9561         (canon_address): Remove alias_set_out parameter.
9562         (record_store): Remove spill_alias_set, it's always zero.
9563         (check_mem_read_rtx): Likewise.
9564         (dse_step2): Rename from ...
9565         (dse_step2_nospill): ... this.  Adjust.
9566         (scan_stores): Rename from ...
9567         (scan_stores_nospill): ... this.
9568         (scan_reads): Rename from ...
9569         (scan_reads_nospill): ... this.
9570         (scan_stores_spill, scan_reads_spill): Remove.
9571         (dse_step3_scan): Remove for_spills argument which is always false.
9572         (dse_step3): Likewise.
9573         (dse_step5): Rename from ...
9574         (dse_step5_nospill): ... this.  Remove alias_set handling.
9575         (rest_of_handle_dse): Adjust.
9576
9577 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
9578
9579         PR target/70525
9580         * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
9581         Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
9582         V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
9583         (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
9584
9585 2016-04-05  Richard Biener  <rguenther@suse.de>
9586
9587         PR middle-end/70499
9588         * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
9589         non-register type temporaries into SSA.
9590
9591 2016-04-04  Jan Hubicka  <hubicka@ucw.cz>
9592
9593         PR ipa/66223
9594         * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
9595         calls when sanitizing.
9596         (possible_polymorphic_call_target_p): Fix formatting.
9597
9598 2016-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9599             Jakub Jelinek <jakub@redhat.com>
9600
9601         PR middle-end/70457
9602         * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
9603         to ensure a call statement is compatible with a built-in's
9604         prototype.
9605         * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
9606         Likewise.
9607
9608 2016-04-04  Richard Biener  <rguenther@suse.de>
9609
9610         PR rtl-optimization/70484
9611         * rtl.h (canon_output_dependence): Declare.
9612         * alias.c (canon_output_dependence): New function.
9613         * dse.c (record_store): Use canon_output_dependence rather
9614         than canon_true_dependence.
9615
9616 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
9617
9618         PR ipa/68881
9619         * cgraph.h (symtab_node::copy_visibility_from): New function.
9620         * symtab.c (symtab_node::copy_visibility_from): New function.
9621         * ipa-visibility.c (optimize_weakref): New function.
9622         (function_and_variable_visibility): Use it.
9623
9624 2016-04-04  Martin Liska  <mliska@suse.cz>
9625
9626         PR hsa/70402
9627         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
9628         value that is really in range handled by SBR instruction.
9629         * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
9630         * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
9631         * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
9632
9633 2016-04-03  Oleg Endo  <olegendo@gcc.gnu.org>
9634
9635         PR target/70416
9636         PR target/67391
9637         * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
9638         set, but not for SP_REG operands.
9639
9640 2016-04-02  Martin Sebor  <msebor@redhat.com>
9641
9642         PR c++/67376
9643         * fold-const.c (maybe_nonzero_address): New function.
9644         (fold_comparison): Call it.  Fold equality and relational
9645         expressions involving null pointers.
9646         (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
9647
9648 2016-03-31  Evandro Menezes  <e.menezes@samsung.com>
9649
9650         Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
9651         the "Y" constraint (scalar FP 0.0 immediate).
9652
9653         * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
9654         Add the "const_double" to the list of operand constraints.
9655
9656 2016-04-01  Jakub Jelinek  <jakub@redhat.com>
9657
9658         PR rtl-optimization/70467
9659         * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
9660         If low word of the last operand is 0, just emit addition/subtraction
9661         for the high word.
9662
9663 2016-04-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9664
9665         PR target/70404
9666         * config/s390/s390.c (s390_expand_insv): Check for everything
9667         constant instead of just VOIDmode stuff.
9668
9669 2016-04-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9670
9671         PR target/70496
9672         * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
9673
9674 2016-04-01  Nathan Sidwell  <nathan@acm.org>
9675
9676         * tree.def (TRY_CATCH_EXPR): Correct documentation.
9677
9678 2016-03-31  Vladimir Makarov  <vmakarov@redhat.com>
9679
9680         PR rtl-optimization/70461
9681         * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
9682         is necessary.
9683
9684 2016-03-31  Martin Liska  <mliska@suse.cz>
9685
9686         PR hsa/70399
9687         * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
9688         a tree value or an immediate integer value to a buffer
9689         that is eventually copied to a BRIG section.
9690         (emit_immediate_operand): Call the function here.
9691         * hsa-dump.c (dump_hsa_immed): Remove checking assert.
9692         * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
9693         of class' fields that are removed.
9694         (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
9695         * hsa.h (class hsa_op_immed): Remove m_brig_repr and
9696         m_brig_repr_size fields.
9697
9698 2016-03-31  Martin Liska  <mliska@suse.cz>
9699
9700         PR hsa/70391
9701         * hsa-gen.c (hsa_function_representation::update_dominance): New
9702         function.
9703         (convert_addr_to_flat_segment): Likewise.
9704         (gen_hsa_memory_set): New alignment argument.
9705         (gen_hsa_ctor_assignment): Likewise.
9706         (gen_hsa_insns_for_single_assignment): Provide alignment
9707         to gen_hsa_ctor_assignment.
9708         (gen_hsa_insns_for_direct_call): Add new argument.
9709         (expand_lhs_of_string_op): New function.
9710         (expand_string_operation_builtin): Likewise.
9711         (expand_memory_copy): New function.
9712         (expand_memory_set): New function.
9713         (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
9714         (convert_switch_statements): Change signature.
9715         (generate_hsa): Use a return value of the function.
9716         (pass_gen_hsail::execute): Do not call
9717         convert_switch_statements here.
9718         * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
9719         * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
9720         (hsa_function_representation::update_dominance): New function.
9721
9722 2016-03-31  Martin Liska  <mliska@suse.cz>
9723
9724         PR hsa/70391
9725         * hsa-brig.c (emit_directive_variable): Emit alignment
9726         according to hsa_symbol::m_align.
9727         * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
9728         (dump_hsa_symbol): Dump alignment of HSA symbols.
9729         * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
9730         (gen_hsa_addr_with_align): New function.
9731         (hsa_bitmemref_alignment): Use newly added function.
9732         (gen_hsa_insns_for_load): Likewise.
9733         (gen_hsa_insns_for_store): Likewise.
9734         (gen_hsa_memory_copy): New argument added.
9735         (gen_hsa_insns_for_single_assignment): Respect
9736         alignment for assignments processed via gen_hsa_memory_copy.
9737         (gen_hsa_insns_for_direct_call): Likewise.
9738         (gen_hsa_insns_for_return): Likewise.
9739         (gen_function_def_parameters): Set default alignment.
9740         * hsa.c (hsa_object_alignment): New function.
9741         (hsa_byte_alignment): Pasted function.
9742         * hsa.h (hsa_symbol::m_align): New field.
9743
9744 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
9745
9746         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
9747         scratch field for goto case.
9748
9749 2016-03-31  James Greenhalgh  <james.greenhalgh@arm.com>
9750
9751         * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
9752
9753 2016-03-31  Ilya Enkovich  <enkovich.gnu@gmail.com>
9754
9755         PR target/70442
9756         * config/i386/i386.c (scalar_chain::convert_op): Fix description.
9757         (scalar_chain::convert_insn): Call convert_op for reg
9758         moves to handle undefined registers.
9759
9760 2016-03-31  Nathan Sidwell  <nathan@acm.org>
9761
9762         PR c++/70393
9763         * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
9764         Assert we don't want to move backwards.
9765
9766 2016-03-31  Kirill Yukhin  <kirill.yukhin@intel.com>
9767
9768         PR target/70453
9769         * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
9770
9771 2016-03-31  Jakub Jelinek  <jakub@redhat.com>
9772
9773         PR rtl-optimization/70460
9774         * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
9775         with operand from REG_LABEL_OPERAND, instead substitute
9776         SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
9777         Don't do anything for REG_NON_LOCAL_GOTO jumps.
9778
9779 2016-03-31  Martin Liska  <mliska@suse.cz>
9780
9781         * passes.c (execute_one_pass): Do not call
9782         todo_after for a discarded function.
9783
9784 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
9785
9786         * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
9787         (no_cost, infinite_cost): Initialize the new field.
9788         (get_computation_cost_at): Record setup cost.
9789         (determine_use_iv_cost_address): Skip cost computation for sub
9790         uses if we can estimate it without losing accuracy.
9791
9792 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
9793
9794         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
9795         estimates here.
9796         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
9797         max_loop_iterations_int.
9798         (tree_unswitch_outer_loop): Likewise.
9799         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
9800         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
9801
9802 2016-03-30  Richard Biener  <rguenther@suse.de>
9803
9804         PR middle-end/70450
9805         * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
9806
9807 2016-03-30  Jakub Jelinek  <jakub@redhat.com>
9808
9809         PR target/70421
9810         * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
9811         in gen_blendm expander.
9812
9813 2016-03-30  Nick Clifton  <nickc@redhat.com>
9814
9815         PR target/62254
9816         * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
9817         case where we are already provided with an SImode SUBREG.
9818
9819 2016-03-30  H.J. Lu  <hongjiu.lu@intel.com>
9820
9821         PR target/70439
9822         * config/i386/i386.c (ix86_expand_epilogue): Properly check
9823         conflict between DRAP register and __builtin_eh_return.
9824
9825 2016-03-30  Michael Matz  <matz@suse.de>
9826             Richard Biener  <rguenther@suse.de>
9827
9828         PR ipa/12392
9829         * ipa-polymorphic-call.c (struct type_change_info): Change
9830         speculative to an unsigned allowing to limit the work we do.
9831         (csftc_abort_walking_p): New inline function..
9832         (check_stmt_for_type_change): Limit the number of may-defs
9833         skipped for speculative devirtualization to
9834         max-speculative-devirt-maydefs.
9835         * params.def (max-speculative-devirt-maydefs): New param.
9836         * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
9837
9838 2016-03-30  Mike Stump  <mrs@gcc.gnu.org>
9839
9840         PR target/63890
9841         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
9842         and TARGET_MACHO.
9843
9844 2016-03-30  Patrick Palka  <ppalka@gcc.gnu.org>
9845
9846         PR tree-optimization/59124
9847         * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
9848         where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
9849
9850 2016-03-29  Jeff Law  <law@redhat.com>
9851
9852         * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
9853
9854 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
9855
9856         * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
9857         to HOST_WIDE_INT.
9858
9859 2016-03-29  Thomas Schwinge  <thomas@codesourcery.com>
9860
9861         * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
9862         * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
9863         gcrt0.o if linking dynamically.
9864
9865 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
9866
9867         PR ipa/70283
9868         * ipa-devirt.c (methods_equal_p): New function.
9869         (compare_virtual_tables): Use it.
9870         * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
9871         * cgraphclones.c (clone_function_name_1): Use
9872         symbol_table::symbol_suffix_separator.
9873         * coverage.c (build_var): Likewise.
9874         * symtab.c (symbol_table::symbol_suffix_separator): New.
9875
9876 2016-03-29  Jakub Jelinek  <jakub@redhat.com>
9877
9878         PR rtl-optimization/70429
9879         * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
9880         (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
9881         mode != result_mode.
9882
9883         PR c++/70353
9884         * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
9885
9886         PR tree-optimization/70405
9887         * ssa-iterators.h (num_imm_uses): Add missing braces.
9888
9889 2016-03-29  Vladimir Makarov  <vmakarov@redhat.com>
9890
9891         PR rtl-optimization/68695
9892         * ira-color.c (allocno_copy_cost_saving): New.
9893         (improve_allocation): Use it.
9894
9895 2016-03-29  Richard Henderson  <rth@redhat.com>
9896
9897         PR middle-end/70355
9898         * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
9899
9900 2016-03-29  Richard Biener  <rguenther@suse.de>
9901
9902         PR middle-end/70424
9903         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
9904         use alignment returned by get_pointer_alignment_1 if it is
9905         bigger than BITS_PER_UNIT.
9906         * builtins.c (get_pointer_alignment_1): Do not return true
9907         for alignment extracted from SSA info.
9908
9909 2016-03-28  James Bowman  <james.bowman@ftdichip.com>
9910
9911         * config/ft32/ft32.opt (mnodiv): New.
9912         * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
9913         * doc/invoke.texi (FT32 Options -mnodiv): New.
9914
9915 2016-03-28  Kirill Yukhin  <kirill.yukhin@intel.com>
9916
9917         PR target/70406
9918         * config/i386/i386.md (define_split, andn): Fix modes.
9919
9920 2016-03-26  Richard Biener  <rguenther@suse.de>
9921             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9922
9923         PR ipa/70366
9924         * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
9925         instead of
9926         TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
9927         as 2nd argument to cl_optimization_restore().
9928
9929 2016-03-25  Richard Henderson  <rth@redhat.com>
9930
9931         PR target/70120
9932         * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
9933         * config/aarch64/aarch64-protos.h: Declare it.
9934         * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
9935
9936 2016-03-25  Alan Modra  <amodra@gmail.com>
9937
9938         PR target/70052
9939         * config/rs6000/constraints.md (j): Simplify.
9940         * config/rs6000/predicates.md (easy_fp_constant): Exclude
9941         decimal float 0.D.
9942         * config/rs6000/rs6000.md (zero_fp): New mode_attr.
9943         (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
9944          mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
9945         in all constraint alternatives.
9946         (movtd_64bit_nodm): Delete "j" constraint alternative.
9947
9948 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
9949
9950         * tree-ssa-propagate.c: Enhance docs for
9951         SSA_PROP_NOT_INTERESTING.
9952
9953 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
9954
9955         * doc/extend.texi: Fix typo in documentation to pure attribute.
9956
9957 2016-03-24  John David Anglin  <danglin@gcc.gnu.org>
9958
9959         PR target/70319
9960         * config/pa/pa.md (bswapdi2): Use a scratch register.
9961
9962 2016-03-24  Richard Henderson  <rth@redhat.com>
9963
9964         PR middle-end/69845
9965         * fold-const.c (extract_muldiv_1): Correct test for multiplication
9966         overflow.
9967
9968 2016-03-24  Uros Bizjak  <ubizjak@gmail.com>
9969
9970         * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
9971         using ix86_expand_binary_operator instead of gen_andsi3.
9972
9973 2016-03-24  Richard Biener  <rguenther@suse.de>
9974
9975         PR tree-optimization/70396
9976         * tree-vect-stmts.c (vectorizable_comparison): Use
9977         get_vectype_for_scalar_type.
9978
9979 2016-03-24  Richard Biener  <rguenther@suse.de>
9980
9981         PR middle-end/70370
9982         * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
9983         with register bases.
9984
9985 2016-03-24  Richard Biener  <rguenther@suse.de>
9986
9987         PR tree-optimization/70372
9988         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
9989         build_all_ones_cst to also handle vector types correctly.
9990
9991 2016-03-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
9992
9993         PR target/70381
9994         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
9995         -mfloat128 here.
9996
9997 2016-03-23  Marek Polacek  <polacek@redhat.com>
9998
9999         PR c++/69884
10000         * doc/invoke.texi: Document -Wignored-attributes.
10001
10002 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
10003
10004         PR tree-optimization/69042
10005         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
10006         parameter from 30 to 40.
10007
10008 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
10009
10010         PR tree-optimization/69042
10011         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
10012         for use with constant offset stripped in base.
10013
10014 2016-03-23  Richard Biener  <rguenther@suse.de>
10015
10016         PR middle-end/70251
10017         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
10018         mode compatibility check.
10019         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
10020
10021 2016-03-23  Jeff Law  <law@redhat.com>
10022
10023         PR tree-optimization/64058
10024         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
10025         CONFLICT_COUNT.
10026         (struct ssa_conflicts): Move up earlier in the file.
10027         (conflicts_, var_map_): New static variables.
10028         (initialize_conflict_count): New function to initialize the
10029         CONFLICT_COUNT field for each conflict pair.
10030         (compare_pairs): Lazily initialize the conflict count and use it
10031         as the first tie-breaker.
10032         (sort_coalesce_list): Add new arguments conflicts, map.  Initialize
10033         and wipe conflicts_ and map_ around the call to qsort.  Remove
10034         special case for 2 coalesce pairs.
10035         * bitmap.c (bitmap_count_unique_bits): New function.
10036         (bitmap_count_bits_in_word): New function, extracted from
10037         bitmap_count_bits.
10038         (bitmap_count_bits): Use bitmap_count_bits_in_word.
10039         * bitmap.h (bitmap_count_unique_bits): Declare it.
10040
10041 2016-03-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
10042
10043         PR target/69917
10044         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
10045         transparent alias chain for decl assembler name.
10046         * config/sol2.c (solaris_assemble_visibility): Likewise.
10047
10048 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10049
10050         * config/arm/arm1020e.md (1020call_op): Reduce reservation
10051         duration.
10052         (v10_fdivs): Likewise.
10053         (v10_fdivd): Likewise.
10054
10055 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10056
10057         PR driver/70132
10058         * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
10059         to not call fclose twice on file.
10060
10061 2016-03-23  Jakub Jelinek  <jakub@redhat.com>
10062
10063         PR tree-optimization/70354
10064         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
10065         oprnd0 is wider than oprnd1 and there is a cast from the wider
10066         type to oprnd1, mask it with the mask of the narrower type.
10067
10068         PR target/70321
10069         * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
10070         Optimize TARGET_STV splitters, if high or low word of last argument
10071         is 0 or -1.
10072
10073 2016-03-22  Jeff Law  <law@redhat.com>
10074
10075         PR target/70232
10076         tree-ssa-threadbackward.c
10077         (fsm_find_control_statement_thread_paths): Correctly distinguish
10078         between old style jump threads vs FSM jump threads.
10079
10080 2016-03-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
10081
10082         PR target/70302
10083         * config/i386/i386.c (scalar_chain::convert_op): Support
10084         uninitialized register usage case.
10085
10086 2016-03-22  Richard Biener  <rguenther@suse.de>
10087
10088         PR middle-end/70251
10089         * genmatch.c (gen_transform): Adjust last parameter to a three-state
10090         int...
10091         (capture::gen_transform): ... to change behavior when substituting
10092         a condition into cond or not-cond expr context.
10093         (dt_simplify::gen_1): Adjust.
10094         * gimple-match-head.c: Include gimplify.h for unshare_expr.
10095         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
10096         last change and instead change to
10097         A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
10098         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
10099
10100 2016-03-22  Anthony Green  <green@moxielogic.com>
10101
10102         * config/moxie/moxiebox.h (CC1_SPEC): Define.  Fix endianness
10103         issue for moxiebox targets.
10104         (CC1PLUS_SPEC): Ditto.
10105
10106 2016-03-22  Richard Biener  <rguenther@suse.de>
10107
10108         PR middle-end/70333
10109         * fold-const.c (extract_muldiv_1): Properly perform multiplication
10110         in the wide type.
10111
10112 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
10113
10114         * config/i386/i386.c (def_builtin): Remove duplicated functionality.
10115
10116 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
10117
10118         PR target/70325
10119         * config/i386/i386.c (def_builtin): Handle
10120         OPTION_MASK_ISA_AVX512VL to be and-ed with other
10121         bits.
10122         (const struct builtin_description bdesc_special_args[]):
10123         Remove duplicate ISA bits.
10124
10125 2016-03-22  Jakub Jelinek  <jakub@redhat.com>
10126
10127         PR target/70329
10128         * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
10129         d.perm[i] for i >= d.nelt.  If not full_interleave, compute d.perm[i]
10130         in a way that works also for AVX512BW.
10131
10132         PR target/70300
10133         * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
10134         instead of source if operands[1] is xmm16 and above and
10135         !TARGET_AVX512VL.  Use avx512f_vec_dupv16sf_1 instead of
10136         vec_interleave_lowv4sf if we need to unpack xmm16 and above.
10137
10138         PR c++/70295
10139         * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
10140         on assign if (*from_p) is a comparison, set it to
10141         TREE_NO_WARNING (*from_p).
10142
10143 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
10144
10145         PR middle-end/70326
10146         * lra.c (restore_scratches): Ignore deleted insns.
10147
10148 2016-03-21  Marc Glisse  <marc.glisse@inria.fr>
10149             Jakub Jelinek  <jakub@redhat.com>
10150
10151         PR tree-optimization/70317
10152         * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
10153         to HONOR_NANS.
10154
10155 2016-03-21  Uros Bizjak  <ubizjak@gmail.com>
10156
10157         PR target/70327
10158         * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
10159         of ix86_expand_move.
10160         (movoi): Ditto.
10161         (movti): Use general_operand for operand 1 predicate.
10162
10163 2016-03-21  Martin Liska  <mliska@suse.cz>
10164
10165         * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
10166         insns.
10167         (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
10168
10169 2016-03-21  Martin Liska  <mliska@suse.cz>
10170
10171         PR ipa/70306
10172         * ipa-icf.c (sem_function::parse): Skip static
10173         constructors and destructors.
10174
10175 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
10176
10177         PR target/70296
10178         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
10179         function-like macro, peek following token(s) if it is followed
10180         by CPP_OPEN_PAREN token with optional padding in between, and
10181         if not, don't treat it like a macro.
10182
10183 2016-03-21  Thomas Schwinge  <thomas@codesourcery.com>
10184             Alexander Monakov  <amonakov@ispras.ru>
10185
10186         * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
10187         for the stabs debug format.
10188
10189 2016-03-21  Richard Biener  <rguenther@suse.de>
10190
10191         PR tree-optimization/70310
10192         * tree-vect-generic.c (expand_vector_condition): Fold the built
10193         condition.
10194
10195 2016-03-21  Kirill Yukhin  <kirill.yukhin@intel.com>
10196
10197         PR target/70293
10198         * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
10199         Block third alternative for AVX-512VL target,
10200
10201 2016-03-21  Martin Liska  <mliska@suse.cz>
10202
10203         PR hsa/70234
10204         * hsa-brig.c (emit_function_directives): Mark unemitted
10205         global variables for emission.
10206         * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
10207         (get_symbol_for_decl): Likewise.
10208         * hsa.h (struct hsa_symbol): New flag.
10209
10210 2016-03-21  Richard Biener  <rguenther@suse.de>
10211
10212         PR tree-optimization/70288
10213         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
10214         we do not estimate unsimplified all-constant conditionals or
10215         switches as optimized away.
10216
10217 2016-03-21  Andrey Belevantsev  <abel@ispras.ru>
10218
10219         PR rtl-optimization/69102
10220         * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
10221         when we have a readonly dependency context.
10222
10223 2016-03-18  Jeff Law  <law@redhat.com>
10224
10225         PR rtl-optimization/70263
10226         * ira.c (memref_used_between_p): Assert we found END in the insn chain.
10227         (update_equiv_regs): When trying to move a store to after the insn
10228         that sets the source of the store, make sure the store occurs after
10229         the insn that sets the source of the store.  When successful note
10230         the REG_EQUIV note created in the dump file.
10231
10232 2016-03-16  David Wohlferd  <dw@LimeGreenSocks.com>
10233             Bernd Schmidt  <bschmidt@redhat.com>
10234
10235         * doc/extend.texi: Document more potential problems with basic asms.
10236
10237 2016-03-18  Bernd Schmidt  <bschmidt@redhat.com>
10238
10239         PR rtl-optimization/70278
10240         * lra-constraints.c (split_reg): Handle the case where biggest_mode is
10241         VOIDmode.
10242
10243 2016-03-18  Jason Merrill  <jason@redhat.com>
10244
10245         * calls.c (load_register_parameters): Fix zero size sibcall logic.
10246
10247 2016-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
10248
10249         * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
10250         values to 128b regs.
10251
10252 2016-03-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
10253
10254         PR tree-optimization/70252
10255         * tree-vect-stmts.c (supportable_widening_operation): Check resulting
10256         boolean vector has a proper number of elements.
10257         (supportable_narrowing_operation): Likewise.
10258
10259 2016-03-18  Tom de Vries  <tom@codesourcery.com>
10260
10261         PR ipa/70269
10262         * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
10263
10264 2016-03-18  Jakub Jelinek  <jakub@redhat.com>
10265
10266         * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
10267         instead of replace_rtx for DEBUG_INSNs.
10268
10269 2016-03-18  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
10270
10271         * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
10272         load type reservations.
10273
10274 2016-03-17  John David Anglin  <danglin@gcc.gnu.org>
10275
10276         PR target/70188
10277         * config/pa/constraints.md: Revert 2015-02-13 change.  Use
10278         define_constraint for "Q" and "T" constraints.
10279
10280 2016-03-17  Evandro Menezes  <e.menezes@samsung.com>
10281
10282         Tweak the pipeline model for Exynos M1
10283
10284         * config/aarch64/aarch64.c (exynosm1_tunings):  Enable weak prefetching
10285         model.
10286
10287 2016-03-17  David Malcolm  <dmalcolm@redhat.com>
10288
10289         PR c/70264
10290         * diagnostic-show-locus.c (compatible_locations_p): Handle the case
10291         where one or both locations aren't within a line_map.
10292
10293 2016-03-17  H.J. Lu  <hongjiu.lu@intel.com>
10294
10295         PR driver/70192
10296         * opts.c (finish_options): Don't set flag_pie to the default if
10297         -fpic, -fPIC, -fno-pic or -fno-PIC is used.  Set flag_pic to 0
10298         if it is -1.
10299
10300 2016-03-17  Joern Rennecke  <joern.rennecke@embecosm.com>
10301
10302         * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
10303         true as ALL_REGS argument to replace_rtx.
10304
10305 2016-03-17  Richard Biener  <rguenther@suse.de>
10306
10307         PR debug/70271
10308         * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
10309         last.
10310
10311 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
10312
10313         PR target/70245
10314         * rtl.h (replace_rtx): Add ALL_REGS argument.
10315         * rtlanal.c (replace_rtx): Likewise.  If true, use REGNO
10316         equality and assert mode is the same, instead of just rtx pointer
10317         equality.
10318         * config/i386/i386.md (mov + arithmetics with load peephole): Pass
10319         true as ALL_REGS argument to replace_rtx.
10320
10321 2016-03-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
10322
10323         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
10324         for boolean vector with vector mode only.
10325         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
10326
10327 2016-03-17  Nick Clifton  <nickc@redhat.com>
10328
10329         PR target/70162
10330         * config/rx/rx.c (rx_print_integer): Print negative constants in
10331         decimal.
10332
10333 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
10334
10335         PR target/70261
10336         * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
10337
10338 2016-03-16  Richard Henderson  <rth@redhat.com>
10339             Richard Biener  <rguenth@suse.de>
10340
10341         PR middle-end/70240
10342         PR middle-end/68215
10343         PR tree-opt/68714
10344         * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
10345         first operand as is_gimple_condexpr.
10346
10347         PR middle-end/70240
10348         PR middle-end/68215
10349         Revert r231575
10350         2015-12-11  Eric Botcazou  <ebotcazou@adacore.com>
10351         * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
10352         Do not gimplify the result.
10353         (do_unop): Adjust call to tree_vec_extract.
10354         (do_binop): Likewise.
10355         (do_compare): Likewise.
10356         (do_plus_minus): Likewise.
10357         (do_negate): Likewise.
10358         (expand_vector_condition): Likewise.
10359         (do_cond): Likewise.
10360
10361 2016-03-16  Richard Henderson  <rth@redhat.com>
10362
10363         PR target/70048
10364         * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
10365         (aarch64_classify_address): Use it.
10366         (aarch64_legitimize_address): Force all subexpressions of PLUS
10367         into registers.  Simplify as (sfp+const)+reg or (reg+reg)+const.
10368
10369 2016-03-16  Jakub Jelinek  <jakub@redhat.com>
10370             Richard Biener  <rguenth@suse.de>
10371
10372         PR target/70245
10373         * rtlanal.c (replace_rtx): For REG, if from is a REG,
10374         return to even if only REGNO is equal, and assert
10375         mode is the same.
10376
10377 2016-03-11  Jeff Law  <law@redhat.com>
10378
10379         PR rtl-optimization/70224
10380         * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
10381
10382 2016-03-16  Richard Henderson  <rth@redhat.com>
10383
10384         PR middle-end/70199
10385         * function.h (struct function): Add has_forced_label_in_static.
10386         * gimplify.c (force_labels_r): Set it.
10387         * lto-streamer-in.c (input_struct_function_base): Read it.
10388         * lto-streamer-out.c (output_struct_function_base): Write it.
10389         * tree-inline.c (has_label_address_in_static_1): Remove.
10390         (copy_forbidden): Remove fndecl parameter; test
10391         has_forced_label_in_static.
10392         (inline_forbidden_p): Update call to copy_forbidden.
10393         (tree_versionable_function_p): Likewise.
10394         * ipa-chkp.c (chkp_instrumentable_p): Likewise.
10395         (chkp_versioning): Likewise.
10396         * tree-inline.h (copy_forbidden): Update decl.
10397
10398 2016-03-16  Marek Polacek  <polacek@redhat.com>
10399
10400         PR c/70093
10401         * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
10402         function being thunked if the result type doesn't have fixed size.
10403         * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
10404         doesn't have fixed size.
10405
10406 2016-03-16  Bin Cheng  <bin.cheng@arm.com>
10407
10408         * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
10409         reporting malformed loop nest.
10410
10411 2016-03-16  Tom de Vries  <tom@codesourcery.com>
10412
10413         PR lto/70187
10414         * ipa-devirt.c (possible_polymorphic_call_targets): Move
10415         nodes.length () == 1 test to before first nodes[0] access.
10416
10417 2016-03-16  Tom de Vries  <tom@codesourcery.com>
10418
10419         PR tree-optimization/68715
10420         * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
10421         single_pred_p test.
10422
10423 2016-03-16  Tom de Vries  <tom@codesourcery.com>
10424
10425         PR tree-optimization/68809
10426         * graphite-scop-detection.c (same_close_phi_node): Test if result types
10427         are the same.
10428
10429 2016-03-16  Carlos O'Donell  <carlos@redhat.com>
10430             Sandra Loosemore  <sandra@codesourcery.com>
10431
10432         * doc/extend.texi (Common Function Attributes): Describe ifunc impact
10433         on leaf attribute. Mention ELF interposition problems.
10434
10435 2016-03-16  Alan Modra  <amodra@gmail.com>
10436
10437         PR rtl-optimization/69195
10438         PR rtl-optimization/47992
10439         * ira.c (indirect_jump_optimize): Ignore artificial defs.
10440         Add comments.
10441
10442 2016-03-15  Eric Botcazou  <ebotcazou@adacore.com>
10443
10444         PR bootstrap/69513
10445         * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
10446
10447 2016-03-15  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
10448
10449         * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
10450
10451 2016-03-15  Jakub Jelinek  <jakub@redhat.com>
10452
10453         PR rtl-optimization/70222
10454         * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
10455         optimization if mode is different from result_mode, queue up masking
10456         of the result in outer_op.  Formatting fix.
10457
10458         PR middle-end/70239
10459         * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
10460         of safe_grow.
10461
10462 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
10463
10464         PR rtl-optimization/69032
10465         * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
10466         looping backwards over basic block insns.
10467
10468 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
10469
10470         PR target/66660
10471         * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
10472         to non-speculative when propagating trap bits.
10473
10474 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
10475
10476         PR rtl-optimization/63384
10477         * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
10478         DEBUG_INSN_P insns.
10479
10480 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
10481
10482         PR target/64411
10483         * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
10484         factored out from ...
10485         (sched_analyze_insn): ... here.
10486         * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
10487         * sel-sched-ir.c (setup_id_implicit_regs): New function, use
10488         get_implicit_reg_pending_clobbers in it.
10489         (setup_id_reg_sets): Use setup_id_implicit_regs.
10490         (deps_init_id): Ditto.
10491
10492 2016-03-15  Tom de Vries  <tom@codesourcery.com>
10493
10494         PR ipa/70161
10495         * cgraph.c (cgraph_node::get_body): Save, reset and restore
10496         dump_file_name.
10497         * passes.c (execute_one_ipa_transform_pass): Add missing argument to
10498         execute_function_dump.
10499         (execute_one_pass): Don't dump function if it will be dumped after ipa
10500         transform.
10501
10502 2016-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
10503
10504         * genrecog.c (match_pattern_2): If pred is NULL don't call
10505         safe_predicate_mode on it.
10506
10507 2016-03-14  Jakub Jelinek  <jakub@redhat.com>
10508
10509         PR middle-end/70219
10510         * lra-constraints.c (delete_move_and_clobber): Change assertion
10511         to also allow dregno == 0.
10512
10513 2016-03-14  Richard Henderson  <rth@redhat.com>
10514
10515         PR tree-opt/68714
10516         * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
10517         (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
10518         (reassociate_bb): Use optimize_vec_cond_expr; avoid
10519         optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
10520         on vectors.
10521
10522 2016-03-14  Bernd Schmidt  <bschmidt@redhat.com>
10523
10524         PR target/70083
10525         * lra-lives.c (process_bb_lives): Also update biggest mode for hard
10526         regs.
10527         (lra_create_live_ranges_1): initialize hard register biggest_mode to
10528         VOIDmode.
10529         * lra-constraints.c (split_reg): For hard regs, try to find the
10530         biggest single-register mode used in the function.
10531
10532 2016-03-14  Richard Biener  <rguenther@suse.de>
10533
10534         PR tree-optimization/56365
10535         * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
10536         constants to compare against.
10537
10538 2016-03-14  Segher Boessenkool  <segher@kernel.crashing.org>
10539
10540         PR target/70098
10541         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
10542         *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
10543         (define_split for the GPR case): Use int_reg_operand instead of
10544         gpc_reg_operand for the output.
10545
10546 2016-03-14  Tom de Vries  <tom@codesourcery.com>
10547
10548         PR tree-optimization/70045
10549         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
10550         create_empty_if_region_on_edge argument.
10551
10552 2016-03-13  Eric Botcazou  <ebotcazou@adacore.com>
10553
10554         * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
10555         (STACK_CHECK_PROTECT): Likewise.
10556         * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
10557         (STACK_CHECK_PROTECT): Likewise.
10558         * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
10559         (STACK_CHECK_PROTECT): Likewise.
10560         * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
10561         * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
10562         (STACK_CHECK_PROTECT): Likewise.
10563
10564 2016-03-12  Andrey Belevantsev  <abel@ispras.ru>
10565
10566         PR rtl-optimization/69307
10567         * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
10568         registers in modes that span more than one register.
10569
10570 2016-03-12  Vladimir Makarov  <vmakarov@redhat.com>
10571
10572         PR target/69614
10573         * lra-constraints.c (delete_move_and_clobber): New.
10574         (remove_inheritance_pseudos): Use it.
10575
10576 2016-03-12  Eric Botcazou  <ebotcazou@adacore.com>
10577
10578         PR ada/70017
10579         * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
10580         the libcall is LCT_THROW.
10581         * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
10582         for the checking routine.
10583
10584 2016-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
10585
10586         PR target/70131
10587         * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
10588         optimization if we have direct move.
10589         (roundu32<mode>2_fprs): Likewise.
10590
10591 2016-03-11  Bernd Schmidt  <bschmidt@redhat.com>
10592
10593         PR target/70123
10594         * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
10595         be rematerialized.
10596         (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
10597         Arguments swapped.  All callers changed.  Take reg_renumber into
10598         account, and Calculate and compare register ranges for hard regs.
10599
10600 2016-03-11  Jeff Law  <law@redhat.com>
10601
10602         PR tree-optimization/70190
10603         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
10604         Handle cases where we can not extract the taken edge, even though we
10605         found a constant value.
10606
10607         PR tree-optimization/64058
10608         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
10609         (num_coalesce_pairs): Move up earlier in file.
10610         (find_coalesce_pair): Initialize the INDEX field for each pair
10611         discovered.
10612         (compare_pairs): No longer sort on the elements in each pair.
10613         Instead break ties with the index of the coalesce pair.
10614
10615 2016-03-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10616
10617         PR target/70002
10618         * config/aarch64/aarch64-protos.h
10619         (aarch64_save_restore_target_globals): New prototype.
10620         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
10621         Call the above when popping pragma.
10622         * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
10623         New function.
10624         (aarch64_set_current_function): Rewrite using the above.
10625
10626 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
10627
10628         PR tree-optimization/70177
10629         * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
10630         (extract_ops_from_tree): ... this.  In the 2 argument
10631         overload remove _1 suffix.
10632         * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
10633         (extract_ops_from_tree): ... this.
10634         * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
10635         Adjust callers.
10636         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
10637         * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
10638         extract_ops_from_tree instead of 2 operand one.
10639
10640 2016-03-11  Alan Lawrence  <alan.lawrence@arm.com>
10641
10642         PR tree-optimization/70013
10643         * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
10644         for constant-pool entries.
10645
10646 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
10647
10648         PR rtl-optimization/70174
10649         * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
10650         followed by gen_lowpart on force_reg instead of just gen_lowpart.
10651
10652         PR tree-optimization/70169
10653         * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
10654         LABEL_DECL like VAR_DECL.  Emit nothing instead of gcc_unreachable
10655         for unknown codes.
10656
10657 2016-03-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
10658             Jakub Jelinek  <jakub@redhat.com>
10659
10660         PR target/70160
10661         * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
10662         of uninitialized values.
10663
10664 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10665
10666         * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
10667         define_expand.
10668         ("*trunctddd2"): New pattern definition.
10669         ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
10670         TD->DD truncation.
10671
10672 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10673
10674         * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
10675         definitions for BFP and DFP rounding modes.
10676         ("fixuns_truncdddi2", "fixuns_trunctddi2")
10677         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
10678         ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
10679         ("fix_trunctf<mode>2"): Use the new constants instead of magic
10680         numbers.
10681
10682 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10683
10684         * config/s390/constraints.md: Adjust comment.
10685         ("Y"): Adjust comment.  Rename s390_decompose_shift_count to
10686         s390_decompose_addrstyle_without_index.
10687         * config/s390/predicates.md (shift_count_or_setmem_operand):
10688         Rename to setmem_operand.
10689         * config/s390/s390-protos.h
10690         (s390_decompose_shift_count): Rename to
10691         s390_decompose_addrstyle_without_index.
10692         * config/s390/s390.c (s390_decompose_shift_count)
10693         (s390_mem_constraint, print_shift_count_operand)
10694         (print_operand_address, print_operand): Rename
10695         s390_decompose_shift_count to
10696         s390_decompose_addrstyle_without_index and rename
10697         print_shift_count_operand to print_addrstyle_operand troughout the
10698         file.
10699         * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
10700         ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
10701         Rename shift_count_or_setmem_operand to setmem_operand.
10702         * config/s390/vx-builtins.md ("vec_insert<mode>")
10703         ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
10704         nonmemory_operand.
10705
10706 2016-03-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10707
10708         PR target/70168
10709         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
10710         Handle overlapping retval and newval.
10711
10712 2016-03-10  Nick Clifton  <nickc@redhat.com>
10713
10714         PR target/7044
10715         * config/aarch64/aarch64.c
10716         (aarch64_override_options_after_change_1): When forcing
10717         flag_omit_frame_pointer to be true, use a special value that can
10718         be detected if this function is called again, thus preventing
10719         flag_omit_leaf_frame_pointer from being forced to be false.
10720
10721 2016-03-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10722
10723         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
10724         Set x_flag_omit_leaf_frame_pointer when handling
10725         -momit-leaf-frame-pointer.
10726
10727 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
10728
10729         PR lto/69589
10730         * cgraph.c (cgraph_node::dump): Dump split_part and
10731         indirect_call_target.
10732         * cgraph.h (cgraph_node): Add indirect_call_target flag.
10733         * ipa.c (has_addr_references_p): Cleanup.
10734         (is_indirect_call_target_p): New.
10735         (walk_polymorphic_call_targets): Do not mark virtuals that may be
10736         called indirectly as local.
10737         (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
10738
10739 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
10740
10741         PR ipa/69630
10742         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
10743         on cxa_pure_virtual.
10744
10745 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
10746
10747         PR lto/69589
10748         * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
10749
10750 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
10751
10752         PR lto/69589
10753         * tree.c (need_assembler_name_p): Only record main variant type names.
10754
10755 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
10756
10757         PR target/70113.
10758         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
10759         Always define to 0 or 1.
10760         (TARGET_FIX_ERR_A53_843419): New macro.
10761         * config/aarch64/aarch64-elf-raw.h
10762         (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
10763         * config/aarch64/aarch64-linux.h: Likewise.
10764         * config/aarch64/aarch64.c
10765         (aarch64_override_options_after_change_1): Do not default
10766         aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
10767         843419 is on.
10768         (aarch64_attributes): Handle fix-cortex-a53-843419.
10769         (aarch64_can_inline_p): Likewise.
10770         * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
10771
10772 2016-03-10  Alan Lawrence  <alan.lawrence@arm.com>
10773         Jakub Jelinek <jakub@redhat.com>
10774
10775         * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
10776         * tree.c (array_at_struct_end_p): Do not limit to size of decl for
10777         DECL_COMMONS if flag_unconstrained_commons is set.
10778         * tree-dfa.c (get_ref_base_and_extent): Likewise.
10779         * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
10780         (funconstrained-commons): Document.
10781
10782 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
10783
10784         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
10785         aarch64-fusion-pairs.def and aarch64-tuning-flags.def
10786
10787 2016-03-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
10788
10789         * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
10790         has a proper number of elements.
10791
10792 2016-03-10  Alan Modra  <amodra@gmail.com>
10793
10794         PR rtl-optimization/69195
10795         PR rtl-optimization/47992
10796         * ira.c (recorded_label_ref): Delete.
10797         (update_equiv_regs): Return void.
10798         (indirect_jump_optimize): New function.
10799         (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
10800         before regstat_compute_ri.  Don't rebuild_jump_labels here.
10801         Delete update_regstat.
10802
10803 2016-03-10  Richard Biener  <rguenther@suse.de>
10804
10805         PR tree-optimization/70128
10806         * tree-ssa-structalias.c (set_uids_in_ptset): Set
10807         vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
10808
10809 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
10810
10811         PR tree-optimization/70152
10812         * tree-sra.c (replace_removed_params_ssa_names): Copy over
10813         SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
10814
10815         PR target/70086
10816         * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
10817         instead of gen_sse2_loadlpd.
10818         * config/i386/sse.md (*vec_concatv2df): Rename to...
10819         (vec_concatv2df): ... this.
10820
10821         PR tree-optimization/70127
10822         * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
10823
10824 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
10825
10826         PR c/68473
10827         PR c++/70105
10828         * diagnostic-show-locus.c (compatible_locations_p): New function.
10829         (layout::layout): Sanitize ranges using compatible_locations_p.
10830
10831 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
10832
10833         PR c/68473
10834         PR c++/70105
10835         * diagnostic-show-locus.c (layout_range::layout_range): Replace
10836         location_range param with three const expanded_locations * and a
10837         bool.
10838         (layout::layout): Replace call to
10839         rich_location::lazily_expand_location with get_expanded_location.
10840         Extract the range and perform location expansion here, passing
10841         the results to the layout_range ctor.
10842         * diagnostic.c (source_range::debug): Delete.
10843         * diagnostic.h (diagnostic_expand_location): Reimplement in terms
10844         of rich_location::get_expanded_location.
10845         * gcc-rich-location.c (get_range_for_expr): Delete.
10846         (gcc_rich_location::add_expr): Reimplement to avoid the
10847         rich_location::add_range overload that took a location_range,
10848         passing a location_t instead.
10849
10850 2016-03-09  Richard Biener  <rguenther@suse.de>
10851         Jakub Jelinek  <jakub@redhat.com>
10852
10853         PR tree-optimization/70138
10854         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
10855         Also skip vect_double_reduction_def.
10856
10857 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
10858
10859         PR target/70049
10860         * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
10861         if the operand is "m".
10862
10863 2016-03-09  Nathan Sidwell  <nathan@acm.org>
10864
10865         * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
10866
10867 2016-03-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
10868
10869         * config/i386/i386.c (processor_target_table): Fix cost table
10870         intialization order for znver1.
10871
10872 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
10873
10874         * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
10875         - becuase -> because.
10876         * ipa-reference.c (ignore_module_statics): Likewise.
10877         * cgraph.c (cgraph_node::get_body): Likewise.
10878         * ipa-inline.c (early_inliner): Likewise.
10879         * ipa-devirt.c (types_same_for_odr): Likewise.
10880         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
10881         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
10882
10883 2016-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10884
10885         * tree-ssa-math-opts.c: Fix typo in comment.
10886
10887 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
10888
10889         PR target/70110
10890         * config/i386/i386.c (scalar_chain::make_vector_copies,
10891         scalar_chain::convert_reg): Call end_sequence in between
10892         get_insns and emit_conversion_insns rather than after both
10893         calls.
10894
10895 2016-03-07  Uros Bizjak  <ubizjak@gmail.com>
10896
10897         PR target/70064
10898         * config/i386/i386.h (machine_function): Add
10899         pc_thunk_call_expanded flag.
10900         (ix86_pc_thunk_call_expanded): New define.
10901         * config/i386/i386.md (set_got, set_got_labelled): New expanders.
10902         (*set_got): Rename insn pattern from set_got.
10903         (*set_got_labelled): Rename inst pattern from set_got_labelled.
10904         * config/i386/i386.c (ix86_compute_frame_layout): Use
10905         ix86_pc_thunk_call_expanded to prevent red-zone.
10906
10907 2016-03-07  Martin Jambor  <mjambor@suse.cz>
10908
10909         * hsa.h (hsa_get_ctor_statements): Declare.
10910         (hsa_get_dtor_statements): Likewise.
10911         (hsa_get_kernel_dispatch_type): Likewise.
10912         * hsa.c (hsa_get_ctor_statements): New function.
10913         (hsa_get_dtor_statements): Likewise.
10914         (hsa_get_kernel_dispatch_type): Likewise.
10915         * hsa-brig.c (hsa_cdtor_statements): Removed.
10916         (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
10917         hsa_get_dtor_statements.
10918         * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
10919         (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
10920
10921 2016-03-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>
10922
10923         * config/arm/arm-cores.def (cortex-r8): New.
10924         * config/arm/arm-tables.opt (cortex-r8): Regenerate.
10925         * config/arm/arm-tune.md: Likewise.
10926         * doc/invoke.texi: Add cortex-r8 to list of cpu values.
10927
10928 2016-03-07  Martin Sebor  <msebor@redhat.com>
10929
10930         PR rtl-optimization/19705
10931         * doc/invoke.texi (Options That Control Optimization): Clarify
10932         -fno-branch-count-reg.
10933
10934 2016-02-26  Richard Biener  <rguenther@suse.de>
10935             Jeff Law  <law@redhat.com>
10936
10937         PR tree-optimization/69740
10938         * cfghooks.c (remove_edge): Request loop fixups if we delete
10939         an edge that might turn an irreducible loop into a natural
10940         loop.
10941         * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
10942         Move after definition of loops_state_clear.
10943
10944 2016-03-07  Bin Cheng  <bin.cheng@arm.com>
10945
10946         PR rtl-optimization/69052
10947         * rtlanal.c (commutative_operand_precedence): Set higher precedence
10948         to CONST_WIDE_INT.
10949
10950 2016-03-07  Tom de Vries  <tom@codesourcery.com>
10951
10952         PR tree-optimization/70116
10953         * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
10954         is_tm_ending stmts and ubsan/asan internal functions.
10955         (find_duplicate): Use it.  Don't test is_tm_ending here.
10956
10957 2016-03-07  Richard Biener  <rguenther@suse.de>
10958
10959         PR tree-optimization/70115
10960         * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
10961         (propagate_constants_for_unrolling): Use replace_uses_by.
10962
10963 2016-03-07  Nathan Sidwell  <nathan@codesourcery.com>
10964
10965         PR middle-end/69916
10966         * omp-low.c (struct oacc_loop): Add ifns.
10967         (new_oacc_loop_raw): Initialize it.
10968         (finish_oacc_loop): Clear mask & flags if no ifns.
10969         (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
10970         (oacc_loop_xform_loop): Add ifns arg & adjust.
10971         (oacc_loop_process): Adjust oacc_loop_xform_loop call.
10972
10973 2016-03-07  Richard Henderson  <rth@redhat.com>
10974
10975         PR rtl-opt/70061
10976         * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
10977         (insert_value_copy_on_edge): Likewise.
10978
10979 2016-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10980
10981         * config/arm/arm_neon.h: Show error if using with soft-float ABI.
10982
10983 2016-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10984
10985         PR target/62281
10986         * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
10987
10988 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
10989
10990         * config/i386/i386.c (znver1_cost): Fix Multiply cost.
10991
10992 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
10993
10994         Fix sseimul type attribute.
10995         * config/i386/znver1.md
10996         (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
10997         znver1_sseimul_avx256_load) : Fix the type attribute.
10998         (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
10999         pipe usage and latency.
11000
11001 2016-03-05  Jakub Jelinek  <jakub@redhat.com>
11002
11003         PR c++/70084
11004         * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
11005         of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
11006         to the right type.
11007
11008 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
11009
11010         PR c/69973
11011         * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
11012
11013         PR rtl-optimization/69941
11014         * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
11015         the reg share its mode.
11016
11017 2016-03-04  Jeff Law  <law@redhat.com>
11018
11019         PR tree-optimization/69196
11020         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
11021         If the both SSA_NAMEs are anonymous, then consider them unassociated
11022         and include the PHI in the statement count.
11023
11024 2016-03-05  Tom de Vries  <tom@codesourcery.com>
11025
11026         * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
11027         construct in oacc routine.  Check for oacc region in oacc routine.
11028
11029 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
11030
11031         PR target/70062
11032         * config/i386/i386.c (decide_alg): Add RECUR argument.  Revert
11033         2016-02-22 changes, instead don't recurse if RECUR is already true.
11034         Don't change *dynamic_check if RECUR.  Adjust recursive caller
11035         to pass true to the new argument.
11036         (ix86_expand_set_or_movmem): Adjust decide_alg caller.
11037
11038         PR target/70059
11039         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
11040         <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
11041         fixes.
11042         (vec_set_hi_<mode><mask_name>): Likewise.  Swap VEC_CONCAT operands.
11043
11044 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
11045
11046         PR rtl-optimization/57676
11047         * lra-assigns.c (lra_assign): Guard test for maximum iterations
11048         with flag_checking.
11049
11050 2016-03-04  Ilya Enkovich  <enkovich.gnu@gmail.com>
11051
11052         * tree-vect-patterns.c (search_type_for_mask): Handle
11053         comparison of booleans.
11054
11055 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
11056
11057         * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
11058         Fix @xref usage.
11059
11060         PR debug/69947
11061         * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
11062         all other ops that have dw_val_class_die_ref operands,
11063         and DW_OP_GNU_entry_value.
11064
11065 2016-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11066
11067         PR rtl-optimization/69904
11068         * config/arm/arm.c (arm_cannot_copy_insn_p):
11069         Return true for load-exclusive instructions.
11070
11071 2016-03-03  Jakub Jelinek  <jakub@redhat.com>
11072
11073         PR target/70021
11074         * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
11075         argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
11076         the pattern no matter if it is used just by non-pattern, pattern
11077         or mix thereof.
11078         (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
11079         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
11080         oprnd1 def_stmt is in pattern, don't look through it.
11081
11082 2016-03-03  Marek Polacek  <polacek@redhat.com>
11083
11084         PR middle-end/70050
11085         * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
11086
11087 2016-03-03  Martin Liska  <mliska@suse.cz>
11088
11089         PR tree-optimization/70043
11090         * tree-vect-loop.c (optimize_mask_stores): Move iterator to
11091         previous statement if we see a debug statement.
11092
11093 2016-03-03  Richard Biener  <rguenther@suse.de>
11094
11095         PR tree-optimization/55936
11096         * tree-vrp.c (compare_name_with_value): Add use_equiv_p
11097         parameter and guard unsafe equivalence use.
11098         (vrp_evaluate_conditional_warnv_with_ops): Always use
11099         safe equivalences but not via the quadratic compare_names
11100         helper.
11101
11102 2016-03-03  Michael Collison  <michael.collison@linaro.org>
11103
11104         PR target/70014
11105         * config/arm/arm.md (*subsi3_carryin_const): Change predicate
11106         for operand 1 to s_register_operand. Change predicate for operand
11107         2 to arm_not_immediate_operand.
11108
11109 2016-03-02  H.J. Lu  <hongjiu.lu@intel.com>
11110
11111         * doc/tm.texi: Regenerated.
11112
11113 2016-03-02  Richard Henderson  <rth@redhat.com>
11114
11115         PR rtl-opt/67145
11116         * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
11117         simplification when all args are positive non-fixed registers.
11118
11119 2016-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11120
11121         * target.def (lra_p): Specify that new ports should use LRA.
11122
11123 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
11124
11125         PR libgomp/69555
11126         * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
11127         gimplify_type_sizes the type they refer to.
11128         (omp_notice_variable): Handle reference vars to VLAs.
11129         * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
11130         reference to VLA decls in the second pass instead of first pass.
11131
11132 2016-03-02  Tom de Vries  <tom@codesourcery.com>
11133
11134         PR tree-optimization/68659
11135         * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
11136         new_expr == NULL_TREE.
11137         (get_new_name): Handle ADDR_EXPR.
11138
11139 2016-03-02  Bin Cheng  <bin.cheng@arm.com>
11140
11141         PR rtl-optimization/69052
11142         * loop-invariant.c (canonicalize_address): New function.
11143         (inv_can_prop_to_addr_use): Check validity of address expression
11144         which is canonicalized by above function.
11145
11146 2016-03-02  Alan Modra  <amodra@gmail.com>
11147
11148         PR ipa/69990
11149         * ipa-icf.c (sem_variable::merge): Do not merge an alias with
11150         larger alignment.
11151
11152 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
11153
11154         PR target/70028
11155         * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
11156         (*movhi_internal): Put mask moves from and to memory separately
11157         from moves from/to GPRs.
11158
11159 2016-03-02  Richard Biener  <rguenther@suse.de>
11160
11161         * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
11162         GENERIC expressions in GIMPLE.
11163
11164 2016-03-02  Richard Biener  <rguenther@suse.de>
11165
11166         * config/i386/i386.c (type_natural_mode): Fix typo.
11167
11168 2016-03-02  Nick Clifton  <nickc@redhat.com>
11169
11170         * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
11171
11172 2016-03-02  Richard Biener  <rguenther@suse.de>
11173             Uros Bizjak  <ubizjak@gmail.com>
11174
11175         PR target/67278
11176         * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
11177
11178 2016-03-02  Richard Biener  <rguenther@suse.de>
11179
11180         PR middle-end/67278
11181         * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
11182
11183 2016-03-02  Marek Polacek  <polacek@redhat.com>
11184
11185         PR c/67854
11186         * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
11187         "is promoted to" warning.
11188
11189 2016-03-01  DJ Delorie  <dj@redhat.com>
11190
11191         * config.gcc: Deprecate mep-*.
11192
11193 2016-03-01  Vladimir Makarov  <vmakarov@redhat.com>
11194
11195         PR middle-end/70025
11196         * lra-constraints.c (regno_val_use_in): New.
11197         (match_reload): Use it instead of regno_use_in.
11198
11199 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
11200
11201         PR rtl-optimization/70007
11202         * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
11203         references present in REG_EQUAL notes attached to non-SET patterns.
11204
11205 2016-03-01  Jeff Law  <law@redhat.com>
11206
11207         PR tree-optimization/69196
11208         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
11209         Appropriately clamp the number of statements to copy when the
11210         thread path does not traverse a loop backedge.
11211
11212         PR tree-optimization/69196
11213         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
11214         Do count some PHIs in the thread path against the insn count.  Decrease
11215         final statement count by one as the control statement in the last
11216         block will get removed.  Remove special cased code for handling PHIs
11217         in the last block.
11218
11219 2016-03-01  Uros Bizjak  <ubizjak@gmail.com>
11220
11221         PR target/70027
11222         * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
11223         asm dialect alternatives to explicit GOTPCREL calls.
11224
11225 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
11226
11227         PR ada/70017
11228         * ira.c (do_reload): Issue warning for generic stack checking here...
11229         * reload1.c (reload): ...instead of here and streamline it.
11230
11231 2016-03-01  Nick Clifton  <nickc@redhat.com>
11232
11233         * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
11234
11235 2016-03-01  Richard Biener  <rguenther@suse.de>
11236
11237         PR tree-optimization/69983
11238         * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
11239         types and fall back to operand_equal_p.
11240
11241 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11242
11243         Revert
11244         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11245
11246         * config/s390/constraints.md ("jm8"): New constraint.
11247         * config/s390/predicates.md ("const_int_8bitset_operand"): New
11248         predicate.
11249         * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
11250         into ...
11251         ("*setmem_long<setmem_and>"): New pattern.
11252         ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
11253         into ...
11254         ("*setmem_long_31z<setmem_and>"): New pattern.
11255         * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
11256         New substitution rules with the required attributes.
11257
11258
11259 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11260
11261         Revert
11262         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11263
11264         * gensupport.c (process_substs_on_one_elem): Split loop to
11265         complete mark_operands_used_in_match_dup on all expressions in the
11266         vector first.
11267         (adjust_operands_numbers): Inline into process_substs_on_one_elem
11268         and remove function.
11269
11270 2016-03-01  Richard Biener  <rguenther@suse.de>
11271
11272         PR middle-end/70022
11273         * fold-const.c (fold_indirect_ref_1): Fix range checking for
11274         vector BIT_FIELD_REF extract.
11275
11276 2016-03-01  Richard Biener  <rguenther@suse.de>
11277
11278         PR tree-optimization/69994
11279         * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
11280
11281 2016-03-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
11282
11283         PR tree-optimization/69956
11284         * tree-vect-stmts.c (supportable_widening_operation): Support
11285         multi-step conversion of boolean vectors.
11286         (supportable_narrowing_operation): Likewise.
11287
11288 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11289
11290         * config/s390/s390.c (s390_decompose_address): Don't accept SImode
11291         anymore.
11292
11293 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11294
11295         * config/s390/subst.md (DSI_VI): New mode iterator.
11296         ("addr_style_op_subst"): Use DSI_VI instead of DSI.
11297         * config/s390/vector.md ("vec_set<mode>"): Move expander before
11298         the insn definition.
11299         ("*vec_set<mode>"): Change predicate and add alternative to
11300         support only either register or const_int operands as element
11301         selector.
11302         ("*vec_set<mode>_plus"): New pattern to support reg + const_int
11303         operands.
11304         ("vec_extract<mode>"): New expander.
11305         ("*vec_extract<mode>"): New insn definition supporting reg and
11306         const_int element selectors.
11307         ("*vec_extract<mode>_plus"): New insn definition supporting
11308         reg+const_int element selectors.
11309         ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
11310         following expander+insn definition.
11311         ("<vec_shifts_name><mode>3"): New expander.
11312         ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
11313
11314 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11315
11316         * config/s390/s390.md ("*tabort_1"): Change predicate to
11317         nonmemory_operand.  Add a second alternative to cover
11318         register as well as const int operands.
11319         ("*tabort_1_plus"): New pattern definition.
11320
11321 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11322
11323         * config/s390/s390.md ("*ashrdi3_cc_31")
11324         ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
11325         ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
11326         Merge insn definitions into ...
11327         ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
11328         New pattern definition.
11329         ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
11330         ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
11331         ("*ashr<mode>3_and"): Merge insn definitions into ...
11332         ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
11333         New pattern definition.
11334         * config/s390/subst.md ("addr_style_op_cc_subst")
11335         ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
11336         substitutions patterns plus attributes.
11337         Add ashiftrt to SUBST iterator.
11338
11339 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11340
11341         * config/s390/s390.md ("<shift><mode>3"): Change predicate of
11342         op2 to nonmemory_operand.
11343         ("*<shift>di3_31", "*<shift>di3_31_and"):
11344         Merge into single pattern definition ...
11345         ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
11346         ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
11347         pattern definition ...
11348         ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
11349         * config/s390/subst.md: Add ashift and lshiftrt to SUBST
11350         iterator.
11351
11352 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11353
11354         * config/s390/predicates.md (const_int_6bitset_operand): New
11355         predicate.
11356         * config/s390/s390.md: Include subst.md.
11357         ("rotl<mode>3"): New expander.
11358         ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
11359         ...
11360         ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
11361         * config/s390/subst.md: New file.
11362
11363 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11364
11365         * config/s390/s390.md ("op_type", "atype", "length" attributes):
11366         Remove RRR type.  It doesn't really exist.
11367         ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
11368         attributes.
11369         ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
11370         ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
11371         ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
11372         ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
11373         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
11374         ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
11375         `enabled' attribute.
11376
11377 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11378
11379         * gensupport.c (process_substs_on_one_elem): Split loop to
11380         complete mark_operands_used_in_match_dup on all expressions in the
11381         vector first.
11382         (adjust_operands_numbers): Inline into process_substs_on_one_elem
11383         and remove function.
11384
11385 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
11386
11387         PR target/69706
11388         * config/sparc/sparc.c (NWORDS_UP): Rename to...
11389         (CEIL_NWORDS): ...this.  Use CEIL macro.
11390         (compute_fp_layout): Adjust to above renaming.
11391         (function_arg_union_value): Likewise.
11392         (sparc_arg_partial_bytes): Likewise.
11393         (sparc_function_arg_advance): Likewise.
11394
11395 2016-02-29  Jeff Law  <law@redhat.com>
11396
11397         PR tree-optimization/70005
11398         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
11399         where an object with a boolean range is compared against a value
11400         outside [0..1].
11401
11402         PR tree-optimization/69999
11403         * gimple-ssa-split-paths.c (split_paths): When duplicating a block
11404         with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
11405         loop cleanups.
11406
11407 2016-02-29  Richard Biener  <rguenther@suse.de>
11408
11409         PR tree-optimization/69994
11410         * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
11411         (get_unary_op): Look through nop conversions.
11412         (ops_equal_values_p): New function, look for equality diregarding
11413         nop conversions.
11414         (eliminate_plus_minus_pair): Use ops_equal_values_p
11415         (repropagate_negates): Do not use get_unary_op here.
11416
11417 2016-02-29  Martin Liska  <mliska@suse.cz>
11418
11419         * system.h: Poison ENABLE_CHECKING macro.
11420
11421 2016-02-29  Martin Liska  <mliska@suse.cz>
11422
11423         * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
11424         is presented in dump flags.
11425         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
11426         (hsa_regalloc): Likewise.
11427
11428 2016-02-19  Richard Biener  <rguenther@suse.de>
11429
11430         PR tree-optimization/69980
11431         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
11432         permutation of those we need to keep.
11433
11434 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
11435
11436         PR target/69706
11437         * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
11438         (NWORDS_UP): ...this
11439         (init_cumulative_args): Minor tweaks.
11440         (sparc_promote_function_mode): Likewise.
11441         (scan_record_type): Delete.
11442         (traverse_record_type): New function template.
11443         (classify_data_t): New structure type.
11444         (classify_registers): New inline function.
11445         (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
11446         exhausted.  Instantiate traverse_record_type on classify_registers and
11447         deal with the case of a structure passed in slot #15 with no FP field
11448         in the first word.
11449         (assign_data_t): New structure type.
11450         (compute_int_layout): New static function.
11451         (compute_fp_layout): Likewise.
11452         (count_registers): New inline function.
11453         (assign_int_registers): New static function.
11454         (assign_fp_registers): Likewise.
11455         (assign_registers): New inline function.
11456         (function_arg_record_value_1): Delete.
11457         (function_arg_record_value_2): Likewise.
11458         (function_arg_record_value_3): Likewise.
11459         (function_arg_record_value): Adjust to above changes.  Instantiate
11460         traverse_record_type on count_registers to first count the number of
11461         registers to be used and then on assign_registers to assign them.
11462         (function_arg_union_value): Adjust to above renaming.
11463         (sparc_function_arg_1); Minor tweaks.  Remove commented out code.
11464         (sparc_arg_partial_bytes): Adjust to above renaming.  Deal with the
11465         case of a structure passed in slot #15
11466         (sparc_function_arg_advance): Likewise.
11467         (function_arg_padding): Minor tweak.
11468
11469 2016-02-29  Richard Biener  <rguenther@suse.de>
11470
11471         PR tree-optimization/69720
11472         * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
11473         the adjustment_def path for possibly vectorized defs.
11474         (vect_create_epilog_for_reduction): Handle vectorized initial
11475         defs properly.
11476
11477 2016-02-28  Eric Botcazou  <ebotcazou@adacore.com>
11478
11479         * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
11480
11481 2016-02-27  Jeff Law  <law@redhat.com>
11482
11483         Revert
11484         2016-02-26  Richard Biener  <rguenther@suse.de>
11485                     Jeff Law  <law@redhat.com>
11486
11487         PR tree-optimization/69740
11488         * cfghooks.c (remove_edge): Request loop fixups if we delete
11489         an edge that might turn an irreducible loop into a natural
11490         loop.
11491
11492 2016-02-27  Jakub Jelinek  <jakub@redhat.com>
11493
11494         PR rtl-optimization/69896
11495         * tree-vect-generic.c (get_compute_type): Avoid single element
11496         vector types.
11497
11498 2016-02-26  Evandro Menezes  <e.menezes@samsung.com>
11499
11500         Rename the AArch64 tuning option and related functions to enable the
11501         Newton series for the reciprocal square root to reflect its
11502         approximative characteristic.
11503
11504         * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
11505         function to "aarch64_emit_approx_rsqrt".
11506         * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
11507         AARCH64_EXTRA_TUNE_APPROX_RSQRT.
11508         * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
11509         (xgene1_tunings): Likewise.
11510         (use_rsqrt_p): Likewise.
11511         (aarch64_emit_swrsqrt): Use new function name.
11512         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
11513         * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
11514         text explaining this option.
11515         * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
11516
11517 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
11518
11519         PR target/69969
11520         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
11521         complain about -mallow-movmisalign without -mvsx if
11522         TARGET_ALLOW_MOVMISALIGN was not set explicitly.
11523
11524 2016-02-26  Joel Sherrill  <joel@rtems.org>
11525
11526         * config.gcc: Add x86_64-*-rtems*.
11527         * config/i386/rtems-64.h: New file.
11528
11529 2016-02-26  Joel Sherrill  <joel@rtems.org>
11530
11531         * config.gcc: Add aarch64-*-rtems*.
11532         * config/aarch64/rtems.h: New file.
11533
11534 2016-02-26  Segher Boessenkool  <segher@kernel.crashing.org>
11535
11536         PR target/69946
11537         * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
11538         shift amount using %h.  Add comment.
11539
11540 2016-02-26  Richard Biener  <rguenther@suse.de>
11541             Jeff Law  <law@redhat.com>
11542
11543         PR tree-optimization/69740
11544         * cfghooks.c (remove_edge): Request loop fixups if we delete
11545         an edge that might turn an irreducible loop into a natural
11546         loop.
11547
11548 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11549
11550         PR middle-end/69920
11551         * tree-sra.c (sra_modify_assign): Do not remove loads of
11552         uninitialized aggregates to SSA_NAMEs.
11553
11554 2016-02-26  Richard Henderson  <rth@redhat.com>
11555
11556         PR target/69709
11557         * config/s390/s390.md (risbg and risbgn splitters): Allocate new
11558         pseudo in case the target rtx matches the source of the left
11559         shift.
11560
11561 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11562
11563         PR hsa/69568
11564         * hsa.h (hsa_type_packed_p): Declare.
11565         * hsa.c (hsa_type_packed_p): New function.
11566         * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
11567         loads.
11568         (gen_hsa_insns_for_store): Use hsa_type_packed_p.
11569         * hsa-brig.c (emit_basic_insn): Likewise.
11570
11571 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11572
11573         pr hsa/69674
11574         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
11575         pointers.
11576         (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
11577
11578 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11579
11580         * hsa.h (is_a_helper): New overload for hsa_op_immed for
11581         hsa_op_with_type operands.
11582         (hsa_unsigned_type_for_type): Declare.
11583         * hsa.c (hsa_unsigned_type_for_type): New function.
11584         * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
11585         (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
11586         the finalizer.  Do not emit extra move.
11587
11588 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11589
11590         * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
11591         atomic operations in private segment.
11592
11593 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11594
11595         * omp-low.c (grid_find_ungridifiable_statement): Store problematic
11596         statements to wi->info.  Also disallow omp simd constructs.
11597         (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
11598         for not gridifying.  Dump special string for omp_for.
11599
11600 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11601
11602         PR target/69245
11603         * config/aarch64/aarch64.c (aarch64_set_current_function):
11604         Save/restore target globals when switching to
11605         target_option_default_node.
11606
11607 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11608
11609         PR target/69613
11610         * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
11611         Return 0 if !SHIFT_COUNT_TRUNCATED.
11612
11613 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
11614             Eric Botcazou  <ebotcazou@adacore.com>
11615
11616         PR rtl-optimization/69891
11617         * dse.c (scan_insn): If we can't figure out memset arguments
11618         or they are non-constant, call clear_rhs_from_active_local_stores.
11619
11620 2016-02-26  Martin Liska  <mliska@suse.cz>
11621
11622         * doc/extend.texi: Mention clog10, clog10f an clog10l
11623         in Builtins section.
11624
11625 2016-02-26  Martin Liska  <mliska@suse.cz>
11626
11627         * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
11628         CHECKING_P.
11629         (resolve_args_picking_1): Likewise.
11630         * dwarf2out.h (struct GTY): Likewise.
11631
11632 2016-02-26  Martin Liska  <mliska@suse.cz>
11633
11634         * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
11635         with flag_checking.
11636         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
11637
11638 2016-02-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
11639             Martin Liska  <mliska@suse.cz>
11640
11641         * doc/install.texi: Mention --enable-valgrind-annotations.
11642
11643 2016-02-26  Richard Biener  <rguenther@suse.de>
11644
11645         PR tree-optimization/69551
11646         * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
11647         looking through aliases adjust DECL_PT_UID to refer to the
11648         ultimate alias target.
11649
11650 2016-02-25  Martin Liska  <mliska@suse.cz>
11651
11652         PR middle-end/69919
11653         * alloc-pool.c (after_memory_report): New variable.
11654         * alloc-pool.h (base_pool_allocator ::release): Do not use
11655         the infrastructure if after_memory_report.
11656         * toplev.c (toplev::main): Mark after memory report.
11657
11658 2016-02-25  Richard Biener  <rguenther@suse.de>
11659
11660         PR tree-optimization/48795
11661         * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
11662
11663 2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>
11664
11665         PR driver/68463
11666         * config/gnu-user.h (CRTOFFLOADBEGIN): Define.  Add crtoffloadbegin.o if
11667         offloading is enabled and -fopenacc or -fopenmp is specified.
11668         (CRTOFFLOADEND): Likewise.
11669         (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
11670         (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
11671         * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
11672         (offload_objects_file_name): New static var.
11673         (tool_cleanup): Remove offload_objects_file_name file.
11674         (find_offloadbeginend): Replace with ...
11675         (find_crtoffloadtable): ... this.
11676         (run_gcc): Remove offload_argc and offload_argv.
11677         Get offload_objects_file_name from -foffload-objects=... option.
11678         Read names of object files with offload from this file, pass them to
11679         compile_images_for_offload_targets.  Don't call find_offloadbeginend and
11680         don't pass offloadbegin and offloadend to the linker.  Don't pass
11681         offload non-LTO files to the linker, because now they're not claimed.
11682
11683 2016-02-25  Jan Hubicka  <hubicka@ucw.cz>
11684
11685         PR ipa/69630
11686         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
11687         on builtin_unreachable.
11688
11689 2016-02-25  Jakub Jelinek  <jakub@redhat.com>
11690
11691         PR rtl-optimization/69896
11692         * regcprop.c: Include cfgrtl.h.
11693         (copyprop_hardreg_forward_1): If noop_p insn uses narrower
11694         than remembered mode, either delete it (if noop_move_p), or
11695         treat like copy_p but not noop_p instruction.
11696
11697 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
11698
11699         PR debug/69705
11700         * dwarf2out.c (gen_variable_die): Work around buggy LTO
11701         - allow NULL decl for Fortran DW_TAG_common_block variables.
11702
11703 2016-02-24  Jason Merrill  <jason@redhat.com>
11704
11705         * common.opt (flifetime-dse): Add -flifetime-dse=1.
11706
11707 2016-02-24  Richard Biener  <rguenther@suse.de>
11708             Jakub Jelinek  <jakub@redhat.com>
11709
11710         PR middle-end/69760
11711         * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
11712         conditionally executed ops to well-defined overflow behavior.
11713
11714 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
11715
11716         PR middle-end/69915
11717         * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
11718         elements.
11719
11720 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11721
11722         PR rtl-optimization/69886
11723         * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
11724         argument.  Use it when checking validity of set instructions.
11725         (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
11726         (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
11727         callsite.
11728         * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
11729         * store-motion.c (find_moveable_store): Update
11730         can_assign_to_reg_without_clobbers_p callsite.
11731
11732 2016-02-24  Richard Biener  <rguenther@suse.de>
11733
11734         PR middle-end/68963
11735         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
11736         bogus check.
11737         (record_nonwrapping_iv): Do not fall back to the low/high bound
11738         for non-constant IV bases if the stmt is not always executed.
11739
11740 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11741
11742         * config/arm/arm-cores.def (cortex-a32): New entry.
11743         * config/arm/arm-tables.opt: Regenerate.
11744         * config/arm/arm-tune.md: Regenerate.
11745         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
11746         * config/arm/t-aprofile: Handle mcpu=cortex-a32.
11747         * doc/invoke.texi (ARM Options): Document cortex-a32 as value
11748         for -mcpu and -mtune.
11749
11750 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11751
11752         PR target/69875
11753         * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
11754         * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
11755         * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
11756         (atomic_loaddi_1): Delete.
11757         (atomic_loaddi): Rewrite expander using the above changes.
11758
11759 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
11760
11761         PR c/69918
11762         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
11763         2 to 3.
11764
11765 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
11766             Richard Biener  <rguenth@suse.de>
11767
11768         PR middle-end/69909
11769         * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
11770         set_mem_attributes if tem is SSA_NAME which got expanded
11771         as a MEM.
11772
11773 2016-02-24  Richard Biener  <rguenther@suse.de>
11774
11775         PR tree-optimization/69907
11776         * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
11777         end of permutations for BB vectorization.
11778
11779 2016-02-24  Christian Bruel  <christian.bruel@st.com>
11780
11781         * config/arm/arm-c.c (arm_option_override): Initialize
11782         target_option_current_node.
11783         * config/arm/arm.c (arm_pragma_target_parse): Replace
11784         build_target_option_node call by target_option_current_node.
11785         Set target_option_current_node.
11786         Fix comments.
11787
11788 2016-02-23  David Edelsohn  <dje.gcc@gmail.com>
11789
11790         PR target/69810
11791         * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
11792         define_insn_and_split to define_insn.
11793         (zero_extendqi<mode>2_dot2): Same.
11794         (extendqi<mode>2_dot): Same.
11795         (extendqi<mode>2_dot2): Same.
11796
11797 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
11798
11799         * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
11800         and add bypass for AES{D,E} and AESMC pairs.
11801         * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
11802         and AESMC pairs.
11803
11804 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
11805
11806         * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
11807         series for reciprocal square root in Exynos M1.
11808
11809 2016-02-23  Martin Sebor  <msebor@redhat.com>
11810
11811         PR c/69759
11812         * doc/extend.texi (Other Builtins): Document __builtin_alloca and
11813         __builtin_alloca_with_align.
11814
11815 2016-02-23  Richard Henderson  <rth@redhat.com>
11816
11817         * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
11818         (ix86_register_pragmas): Remove __seg_tls.
11819         * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
11820         * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
11821         (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
11822         (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
11823         (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
11824         * doc/extend.texi (__seg_tls): Remove item.
11825
11826 2016-02-23  Richard Biener  <rguenther@suse.de>
11827
11828         * alloc-pool.h (struct allocation_object): Make id member
11829         conditional on CHECKING_P again.
11830         (get_instance): Adjust.
11831         (base_pool_allocator): Likewise.
11832
11833 2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>
11834
11835         * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
11836         (parallelize_loops): In OpenACC kernels mode, set n_threads to
11837         zero.
11838         (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
11839         flag_openacc.
11840         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
11841
11842 2016-02-23  Richard Biener  <rguenther@suse.de>
11843
11844         * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
11845         * bitmap.h (struct bitmap_usage): Likewise.
11846         (bitmap_move): Declare.
11847         * bitmap.c (register_overhead): Take size_t argument.
11848         (bitmap_move): New function.
11849         * df-problems.c (df_rd_transfer_function): Use bitmap_move
11850         to properly account overhead.
11851         * tree.c (free_node): Use tree_size.
11852
11853 2016-02-23  Jakub Jelinek  <jakub@redhat.com>
11854
11855         PR c++/69902
11856         * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
11857         when inverting comparison.
11858
11859         PR c/69900
11860         * common.opt (Wunreachable-code): Add Warning flag.
11861
11862 2016-02-23  Mark Wielaard  <mjw@redhat.com>
11863             Jakub Jelinek  <jakub@redhat.com>
11864
11865         PR c/69911
11866         * cgraphunit.c (check_global_declaration): Check main_input_filename
11867         and DECL_SOURCE_FILE are not NULL.
11868
11869 2016-02-23  Martin Jambor  <mjambor@suse.cz>
11870
11871         PR tree-optimization/69666
11872         * tree-sra.c (sra_modify_assign): Do not attempt to create
11873         default_def replacements for unscalarizable regions.
11874
11875 2016-02-20  Mark Wielaard  <mjw@redhat.com>
11876
11877         PR c/28901
11878         * cgraphunit.c (check_global_declaration): Check level of
11879         warn_unused_const_variable and main_input_filename.
11880         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
11881         (-Wunused-variable): For C implies -Wunused-const-variable=1.
11882         (-Wunused-const-variable): Explain levels 1 and 2.
11883
11884 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
11885
11886         PR target/69888
11887         * config/i386/i386.c (decide_alg): Ensure we don't recurse with
11888         identical arguments.  Formatting and spelling fixes.
11889
11890         PR target/69885
11891         * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
11892         be specified.
11893
11894         PR target/69894
11895         PR target/69895
11896         * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
11897         and m68k-devices.def.
11898         * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
11899         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
11900
11901 2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>
11902
11903         * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
11904         and HImode registers.
11905
11906 2016-02-22  Richard Biener  <rguenther@suse.de>
11907
11908         PR tree-optimization/69882
11909         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
11910         preserve permutations present because of gaps.
11911         (vect_supported_load_permutation_p): Always continue checking
11912         permutations after vect_attempt_slp_rearrange_stmts.
11913
11914 2016-02-22  Bin Cheng  <bin.cheng@arm.com>
11915
11916         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
11917         min_profitable_estimate, rather than min_profitable_iters.
11918
11919 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
11920
11921         PR target/69885
11922         * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
11923         SImode for last match_operand.
11924
11925 2016-02-22  Martin Liska  <mliska@suse.cz>
11926
11927         * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
11928         return bitsize - 1 as the return value.
11929
11930 2016-02-22  Oleg Endo  <olegendo@gcc.gnu.org>
11931
11932         PR target/69806
11933         PR target/54089
11934         * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
11935         Handle negative shift counts.
11936         * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
11937         force_reg on the shift constant.
11938         (lshrsi3): Likewise.  Expand into lshrsi3_n* instead of lshrsi3_d.
11939         (lshrsi3_d): Handle negative shift counts.
11940
11941 2016-02-22  Richard Biener  <rguenther@suse.de>
11942             Tom de Vries  <tom@codesourcery.com>
11943
11944         * graph.c: Include dumpfile.h.
11945         (print_graph_cfg): Split into three overloads.
11946         * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
11947
11948 2016-02-22  Tom de Vries  <tom@codesourcery.com>
11949
11950         * gdbhooks.py (class DumpFn): Add and instantiate, adding command
11951         dump-fn.
11952
11953 2016-02-22  Richard Biener  <rguenther@suse.de>
11954
11955         PR ipa/37448
11956         * ipa-inline-transform.c (inline_call): When not updating
11957         overall summaries adjust self size by the growth estimate.
11958         * ipa-inline.c (inline_to_all_callers_1): Add to the callers
11959         hash-set, do not update overall summaries here.  Renamed from ...
11960         (inline_to_all_callers): ... this which is now wrapping the
11961         above and performing delayed overall summary update.
11962         (early_inline_small_functions): Delay updating of the overall
11963         summary.
11964
11965 2016-02-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
11966
11967         * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
11968         variable.
11969
11970 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
11971
11972         PR driver/69805
11973         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
11974         :%* in %:gt() argument.
11975         (greater_than_spec_func): Adjust for expecting only numbers,
11976         if there are more than two numbers, compare the last two.
11977
11978 2016-02-19  Jonathan Wakely  <jwakely@redhat.com>
11979
11980         * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
11981         -Wnarrowing with -std.
11982
11983 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
11984
11985         PR c++/69851
11986         * expr.c (store_field): Don't use bit-field path if exp is
11987         COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
11988         different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
11989         and the assignment can be performed by bitwise copy.  Formatting
11990         fix.
11991
11992         PR middle-end/69838
11993         * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
11994         call copy_reg_eh_region_note_forward on before and/or after sequences
11995         and remove note from insn if it no longer can throw.
11996
11997         PR target/69820
11998         * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
11999         if TARGET_AVX512BW.
12000
12001 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12002
12003         * config/s390/vector.md: Add missing commutative operand markers
12004         to the patterns which qualify for one.
12005         * config/s390/vx-builtins.md: Likewise.
12006
12007 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12008
12009         * config/s390/vector.md (VI, VI_QHS): Add single element vector
12010         types to mode iterators.
12011         (vec_double): ... and mode attribute.
12012         * config/s390/vx-builtins.md (non_vec_int): Likewise.
12013
12014 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12015
12016         * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
12017         Change the predicate of op2 from nonimmediate to general and let
12018         reload fix it if necessary.
12019
12020 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12021
12022         * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
12023
12024 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12025
12026         * config/s390/s390.c (s390_expand_vcond): Use the compare operand
12027         mode.
12028
12029 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12030
12031         * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
12032         * config/s390/s390.c (s390_expand_vec_movstr): New function.
12033         * config/s390/s390.md ("movstr<P:mode>"): Call
12034         s390_expand_vec_movstr.
12035
12036 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12037
12038         * config/s390/s390.md: Add missing output modifier for operand 1
12039         to print it as address properly.
12040
12041 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12042
12043         * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
12044         * config/s390/2964.md: New file.
12045         * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
12046         of insn grouping attributes depending on the CPU level.
12047         (s390_get_unit_mask): New function.
12048         (s390_sched_score): Remove the OOO from the scheduling macros.
12049         Add loop to calculate a score for the instruction mix.
12050         (s390_sched_reorder): Likewise plus improve debug output.
12051         (s390_sched_variable_issue): Rename macros as above.  Calculate
12052         the unit distances after actually scheduling an insn.  Improve
12053         debug output.
12054         (s390_sched_init): Clear last_scheduled_unit_distance array.
12055         * config/s390/s390.md: Include 2964.md.
12056
12057 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
12058
12059         PR target/69671
12060         * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
12061         *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
12062         *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
12063         *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
12064         *avx512f_<code>v8div16qi2_mask_1): New insns.
12065
12066 2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
12067
12068         PR target/68404
12069         * config/rs6000/predicates.md (fusion_gpr_addis): Revert
12070         2016-02-09 change.
12071
12072         * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
12073         earlyclobber from target.  Use wF constraint for fused memory
12074         address.
12075         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
12076
12077 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
12078             Martin Liska  <mliska@suse.cz>
12079
12080         PR sanitizer/69863
12081         * cfgexpand.c (asan_sanitize_stack_p): New function.
12082         (partition_stack_vars): Use the function.
12083         (expand_stack_vars): Likewise.
12084         (defer_stack_allocation): Likewise.
12085         (expand_used_vars): Likewise.
12086
12087 2016-02-18  Richard Biener  <rguenther@suse.de>
12088
12089         PR middle-end/69553
12090         * fold-const.c (operand_equal_p): Properly compare offsets for
12091         IMAGPART_EXPR and ARRAY_REF.
12092
12093 2016-02-18  Nick Clifton  <nickc@redhat.com>
12094
12095         PR target/62254
12096         PR target/69610
12097         * config/arm/arm.c (arm_option_override_internal): Disable
12098         interworking if the target does not support thumb instructions.
12099         (arm_reload_in_hi): Handle the case where a register to register
12100         move needs reloading because there is no simple pattern to handle
12101         it.
12102         (arm_reload_out_hi): Likewise.
12103
12104 2016-02-18  Richard Biener  <rguenther@suse.de>
12105
12106         PR middle-end/69854
12107         * match.pd: Don't use fold_binary or fold_unary for folding
12108         constants.
12109
12110 2016-02-17  Jakub Jelinek  <jakub@redhat.com>
12111
12112         PR c++/69850
12113         * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
12114         on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
12115         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
12116         warn on gimple_no_warning_p statements.
12117
12118 2016-02-17  Jonathan Wakely  <jwakely@redhat.com>
12119
12120         * doc/extend.texi (C++ Attributes): Correct description of
12121         warn_unused type attribute.
12122
12123 2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12124
12125         * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
12126         correct instruction.
12127
12128 2016-02-17  Richard Biener  <rguenther@suse.de>
12129
12130         PR rtl-optimization/69609
12131         * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
12132         (find_traces_1_round): When ending a trace update cached priority
12133         of successors.
12134         (bb_to_key): Use cached priority when available.
12135         (copy_bb): Initialize cached priority.
12136         (reorder_basic_blocks_software_trace_cache): Likewise.
12137
12138 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12139
12140         PR target/69161
12141         * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
12142         New predicate.
12143         (aarch64_comparison_operator): Break overly long line into two.
12144         (aarch64_comparison_operation): Likewise.
12145         * config/aarch64/aarch64.md (cstorecc4): Use
12146         aarch64_comparison_operator_mode instead of
12147         aarch64_comparison_operator.
12148         (cstore<mode>4): Likewise.
12149         (aarch64_cstore<mode>): Likewise.
12150         (*cstoresi_insn_uxtw): Likewise.
12151         (cstore<mode>_neg): Likewise.
12152         (*cstoresi_neg_uxtw): Likewise.
12153
12154 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12155
12156         PR target/69161
12157         * config/arm/predicates.md (arm_comparison_operator_mode):
12158         New predicate.
12159         * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
12160         instead of arm_comparison_operator.
12161         (*mov_negscc): Likewise.
12162         (*mov_notscc): Likewise.
12163         * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
12164         (*thumb2_mov_negscc): Likewise.
12165         (*thumb2_mov_negscc_strict_it): Likewise.
12166         (*thumb2_mov_notscc): Likewise.
12167         (*thumb2_mov_notscc_strict_it): Likewise.
12168
12169 2016-02-17  Wilco Dijkstra  <wdijkstr@arm.com>
12170
12171         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
12172         Add missing return.
12173
12174 2016-02-17  Eric Botcazou  <ebotcazou@adacore.com>
12175
12176         * config/visium/visium.c (machine_libfunc_index): New enum.
12177         (machine_libfuncs): New structure.
12178         (visium_libfuncs): New static variable.
12179         (TARGET_INIT_LIBFUNCS): Define to...
12180         (visium_init_libfuncs): ...this.  New function.
12181         (expand_block_move_4): Use the appropriate libfunc.
12182         (expand_block_move_2): Likewise.
12183         (expand_block_move_1): Likewise.
12184         (expand_block_set_4): Likewise.
12185         (expand_block_set_2): Likewise.
12186         (expand_block_set_1): Likewise.
12187         (visium_trampoline_init): Likewise.
12188
12189 2016-02-17  Nick Clifton  <nickc@redhat.com>
12190
12191         * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
12192         TI's devices.csv file as of March 2016.
12193
12194 2016-02-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
12195
12196         PR Target/48344
12197         * opts-global.c (handle_common_deferred_options): Introduce and
12198         initialize two global variables to remember command-line options
12199         specifying a stack-limiting register.
12200         * opts.h: Add extern declarations of the two new global variables.
12201         * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
12202         variable based on the values of the two new global variables.
12203
12204 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
12205
12206         PR c/69835
12207         * common.opt (Wnonnull-compare): New warning.
12208         * doc/invoke.texi (-Wnonnull): Remove text about comparison
12209         of arguments against NULL.
12210         (-Wnonnull-compare): Document.
12211         * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
12212         * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
12213         * passes.def (pass_warn_nonnull_compare): Add.
12214         * gimple-ssa-nonnull-compare.c: New file.
12215
12216 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
12217
12218         * config/aarch64/aarch64.c (cortexa57_tunings): Remove
12219         AARCH64_EXTRA_TUNE_RECIP_SQRT.
12220
12221 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
12222
12223         * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
12224         reciprocal sqrt for -mlow-precision-recip-sqrt.
12225
12226 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
12227             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12228
12229         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
12230         always use lane loads to construct non-constant vectors.
12231
12232 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
12233
12234         * config/aarch64/aarch64.md
12235         (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
12236         constraints for operand 3.
12237         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
12238
12239 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
12240             Richard Biener  <rguenther@suse.de>
12241
12242         PR tree-optimization/69820
12243         * tree-vect-patterns.c (type_conversion_p): Return false if
12244         *orig_type is unsigned single precision or boolean.
12245         (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
12246         Formatting fix.
12247
12248 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
12249
12250         PR rtl-optimization/69764
12251         PR rtl-optimization/69771
12252         * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
12253         op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
12254
12255 2016-02-16  Richard Biener  <rguenther@suse.de>
12256
12257         PR tree-optimization/69776
12258         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
12259         sets from caller.
12260         (indirect_refs_may_alias_p): Likewise.
12261         (refs_may_alias_p_1): Pass alias sets as from ao_ref.
12262         * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
12263         according to tbaa_p.
12264         * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
12265         (optimize_stmt): For redundant store discovery do not allow tbaa.
12266
12267 2016-02-16  Bernd Schmidt  <bschmidt@redhat.com>
12268
12269         PR tree-optimization/69714
12270         * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
12271         Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
12272
12273 2016-02-16  Claudiu Zissulescu  <claziss@synopsys.com>
12274
12275         * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
12276         * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
12277         (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
12278         * config/arc/arc.c (arc_init): Check FPU options.
12279         (get_arc_condition_code): Handle new CC_FPU* modes.
12280         (arc_select_cc_mode): Likewise.
12281         (arc_conditional_register_usage): Allow 64 bit datum into even-odd
12282         register pair only. Allow access for ARCv2 accumulator.
12283         (gen_compare_reg): Whenever we have FPU support use FPU compare
12284         instructions.
12285         (arc_reorg): Don't generate brcc insns when FPU compare
12286         instructions are involved.
12287         * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
12288         (TARGET_OPTFPE): Add condition when ARC EM can use optimized
12289         floating point emulation.
12290         (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
12291         (REVERSE_CONDITION): Add new CC_FPU* modes.
12292         (TARGET_FP_SP_BASE): Define.
12293         (TARGET_FP_DP_BASE): Likewise.
12294         (TARGET_FP_SP_FUSED): Likewise.
12295         (TARGET_FP_DP_FUSED): Likewise.
12296         (TARGET_FP_SP_CONV): Likewise.
12297         (TARGET_FP_DP_CONV): Likewise.
12298         (TARGET_FP_SP_SQRT): Likewise.
12299         (TARGET_FP_DP_SQRT): Likewise.
12300         (TARGET_FP_DP_AX): Likewise.
12301         * config/arc/arc.md (ARCV2_ACC): New constant.
12302         (type): New fpu type attribute.
12303         (SDF): Conditional iterator.
12304         (cstore<mode>, cbranch<mode>): Change expand condition.
12305         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
12306         handles FPU/FPX cases as well.
12307         * config/arc/arc.opt (mfpu): New option.
12308         * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
12309         Renamed.
12310         (adddf3, muldf3, subdf3): Removed.
12311         * config/arc/predicates.md (proper_comparison_operator): Recognize
12312         CC_FPU* modes.
12313         * config/arc/fpu.md: New file.
12314         * doc/invoke.texi (ARC Options): Document mfpu option.
12315
12316 2016-02-16  Richard Biener  <rguenther@suse.de>
12317
12318         PR rtl-optimization/69291
12319         * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
12320         noce_operand_ok check.
12321
12322 2016-02-16  Tom de Vries  <tom@codesourcery.com>
12323
12324         PR lto/67709
12325         * omp-low.c (simd_clone_create): Remove call to
12326         symtab->call_cgraph_insertion_hooks.
12327
12328 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
12329
12330         PR tree-optimization/69802
12331         * tree-ssa-reassoc.c (update_range_test): If op is
12332         SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
12333         op == 1 test of precision 1 integral op, otherwise handle
12334         that case as op itself.  Fix up formatting.
12335         (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
12336         up formatting.
12337
12338 2016-02-16  Richard Biener  <rguenther@suse.de>
12339
12340         PR tree-optimization/69586
12341         * tree-vrp.c (register_edge_assert_for_2): Handle all integral
12342         types for conversion sources.
12343
12344 2016-02-16  Richard Biener  <rguenther@suse.de>
12345
12346         PR middle-end/69801
12347         * fold-const.c (operand_equal_p): For COND_EXPR zero operand
12348         mask OEP_ADDRESS_OF.
12349
12350 2016-02-16  Alan Modra  <amodra@gmail.com>
12351
12352         PR target/68973
12353         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
12354         (p8_mtvsrd_df, p8_mtvsrd_sf): New.
12355         (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
12356         (p8_mtvsrwz): New.
12357         (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
12358         (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
12359         (p8_fmrgow_<mode>): Likewise.
12360         (reload_vsx_from_gpr<mode>): Make clobber IF.  Adjust for above
12361         changes.
12362         (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
12363         (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
12364         to use movdi_internal64.  Remove op0_di.
12365         * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
12366
12367 2016-02-15  Evandro Menezes  <e.menezes@samsung.com>
12368
12369         Add support for the FCCMP insn types
12370
12371         * config/aarch64/aarch64.md (fccmp): Change insn type.
12372         (fccmpe): Likewise.
12373         * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
12374         * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
12375         * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
12376         * config/arm/xgene1.md (xgene1_fcmp): Likewise.
12377         * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
12378         * config/arm/types.md (fccmps): Add new insn type.
12379         (fccmpd): Likewise.
12380
12381 2016-02-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
12382
12383         * alias.c (get_alias_set): Fix a typo in comment.
12384
12385 2016-02-15  Richard Biener  <rguenther@suse.de>
12386
12387         PR tree-optimization/69595
12388         * match.pd: Complete range test simplification to true.
12389
12390 2016-02-15  Bernd Schmidt  <bschmidt@redhat.com>
12391
12392         PR rtl-optimization/69648
12393         * lra-constraints.c (update_ebb_live_info): Don't remove sets of
12394         pic_offset_table_rtx.
12395
12396         PR rtl-optimization/69752
12397         * ira.c (update_equiv_regs): When looking for more than a single SET,
12398         also take other side effects into account.
12399
12400 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
12401
12402         * config/s390/s390.c (s390_function_profiler): Add a new sequence
12403         for z900+ CPUs in 31-bit mode.
12404
12405 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
12406
12407         * common/config/s390/s390-common.c (s390_supports_split_stack):
12408         New function.
12409         (TARGET_SUPPORTS_SPLIT_STACK): New macro.
12410         * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
12411         * config/s390/s390.c (struct machine_function): New field
12412         split_stack_varargs_pointer.
12413         (s390_register_info): Mark r12 as clobbered if it'll be used as temp
12414         in s390_emit_prologue.
12415         (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
12416         vararg pointer.
12417         (morestack_ref): New global.
12418         (SPLIT_STACK_AVAILABLE): New macro.
12419         (s390_expand_split_stack_prologue): New function.
12420         (s390_live_on_entry): New function.
12421         (s390_va_start): Use split-stack vararg pointer if appropriate.
12422         (s390_asm_file_end): Emit the split-stack note sections.
12423         (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
12424         * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
12425         (UNSPECV_SPLIT_STACK_CALL): New unspec.
12426         (UNSPECV_SPLIT_STACK_DATA): New unspec.
12427         (split_stack_prologue): New expand.
12428         (split_stack_space_check): New expand.
12429         (split_stack_data): New insn.
12430         (split_stack_call): New expand.
12431         (split_stack_call_*): New insn.
12432         (split_stack_cond_call): New expand.
12433         (split_stack_cond_call_*): New insn.
12434
12435 2016-02-15  Richard Biener  <rguenther@suse.de>
12436
12437         PR tree-optimization/69783
12438         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
12439         Add trivially correct cases.
12440
12441 2016-02-15  Tom de Vries  <tom@codesourcery.com>
12442
12443         PR lto/69655
12444         * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
12445         do_force_output.
12446         * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
12447
12448 2016-02-15  Richard Biener  <rguenther@suse.de>
12449
12450         PR tree-optimization/69776
12451         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
12452         * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
12453         indicate whether we can use TBAA to disambiguate against stores.
12454         Use alias-set zero if not.
12455         (visit_reference_op_store): Do not use TBAA when looking up
12456         redundant stores.
12457         * tree-ssa-pre.c (compute_avail): Use TBAA here.
12458         (eliminate_dom_walker::before_dom_children): But not when looking
12459         up redundant stores.
12460
12461 2016-02-14  John David Anglin  <danglin@gcc.gnu.org>
12462
12463         * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
12464
12465 2016-02-14  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
12466
12467         *  config/i386/znver1.md
12468         (znver1_pop, znver1_pop_mem,
12469         znver1_load_imov_double_store,
12470         znver1_load_imov_direct_store,
12471         znver1_load_imov_direct_load,
12472         znver1_load_imov_double_load): Add new.
12473         (znver1_insn, znver1_insn_load): Add icmov type.
12474         (znver1_sseavx_fma,
12475         znver1_sseavx_fma_load,
12476         znver1_avx256_fma,
12477         znver1_avx256_fma_load): Fix pipe usage.
12478
12479 2016-02-14  Alan Modra  <amodra@gmail.com>
12480
12481         PR target/68973
12482         * reloads.c (find_reloads_address_1): For pre/post-inc/dec
12483         with an invalid hard reg, reload just the reg not the entire
12484         pre/post-inc/dec address expression.
12485
12486 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
12487
12488         PR target/67260
12489         * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
12490         fixed R1_REG scratch reg.
12491         (sibcall_value_pcrel_fdpic): Likewise.
12492
12493 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
12494
12495         PR target/67636
12496         PR target/64345
12497         * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
12498
12499 2016-02-12  Walter Lee  <walt@tilera.com>
12500
12501         * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
12502         * config/tilegx/t-tilegx: Likewise.
12503
12504 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
12505
12506         PR other/69554
12507         * diagnostic-show-locus.c (struct line_span): New struct.
12508         (layout::get_first_line): Delete.
12509         (layout::get_last_line): Delete.
12510         (layout::get_num_line_spans): New member function.
12511         (layout::get_line_span): Likewise.
12512         (layout::print_heading_for_line_span_index_p): Likewise.
12513         (layout::get_expanded_location): Likewise.
12514         (layout::calculate_line_spans): Likewise.
12515         (layout::m_first_line): Delete.
12516         (layout::m_last_line): Delete.
12517         (layout::m_line_spans): New field.
12518         (layout::layout): Update comment.  Replace m_first_line and
12519         m_last_line with m_line_spans, replacing their initialization
12520         with a call to calculate_line_spans.
12521         (diagnostic_show_locus): When printing source lines and
12522         annotations, rather than looping over a single span
12523         of lines, instead loop over each line_span within
12524         the layout, with an inner loop over the lines within them.
12525         Call the context's start_span callback when changing line spans.
12526         * diagnostic.c (diagnostic_initialize): Initialize start_span.
12527         (diagnostic_build_prefix): Break out the building of the location
12528         part of the string into...
12529         (diagnostic_get_location_text): ...this new function, rewriting
12530         it from nested ternary expressions to a sequence of "if"
12531         statements.
12532         (default_diagnostic_start_span_fn): New function.
12533         * diagnostic.h (diagnostic_start_span_fn): New typedef.
12534         (diagnostic_context::start_span): New field.
12535         (default_diagnostic_start_span_fn): New prototype.
12536
12537 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
12538
12539         PR driver/69779
12540         * gcc.c (driver::finalize): Fix cleanup of "specs".
12541
12542 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
12543
12544         PR driver/69265
12545         PR driver/69453
12546         * gcc.c (driver::driver): Initialize m_option_suggestions.
12547         (driver::~driver): Clean up m_option_suggestions.
12548         (suggest_option): Convert to...
12549         (driver::suggest_option): ...this, and split out into
12550         driver::build_option_suggestions and find_closest_string.
12551         (driver::build_option_suggestions): New function, from
12552         first half of suggest_option.  Special-case
12553         OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
12554         the sanitizer_opts array.  For options of enum types, add the
12555         various enum values to the candidate strings.
12556         (driver::handle_unrecognized_options): Remove "const".
12557         * gcc.h (driver::handle_unrecognized_options): Likewise.
12558         (driver::build_option_suggestions): New decl.
12559         (driver::suggest_option): New decl.
12560         (driver::m_option_suggestions): New field.
12561         * opts-common.c (add_misspelling_candidates): New function.
12562         * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
12563         and make non-static.
12564         * opts.h (sanitizer_opts): New array decl.
12565         (add_misspelling_candidates): New function decl.
12566         * spellcheck.c (find_closest_string): New function.
12567         * spellcheck.h (find_closest_string): New function decl.
12568
12569 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
12570
12571         PR rtl-optimization/69764
12572         PR rtl-optimization/69771
12573         * optabs.c (expand_binop_directly): For shift_optab_p, force
12574         convert_modes with VOIDmode if xop1 has VOIDmode.
12575
12576 2016-02-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
12577
12578         PR target/69729
12579         * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
12580         to correctly determine instrumentation thunks.
12581
12582 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
12583
12584         PR ipa/69241
12585         * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
12586         type by reference, force lhs on the call.
12587
12588         PR ipa/68672
12589         * ipa-split.c (split_function): Don't compute/use main_part_return_p.
12590         Compute retval and retbnd early in all cases if split_part_return_p
12591         and return_bb is not EXIT.  Remove all clobber stmts and reset
12592         all debug stmts that refer to SSA_NAMEs defined in split part,
12593         except if it is retval, in that case replace the old retval with the
12594         lhs of the call to the split part.
12595
12596 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
12597
12598         revert:
12599         2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
12600
12601         PR middle-end/66726
12602         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
12603         whose result is used in PHI.
12604         (maybe_optimize_range_tests): Likewise.
12605         (final_range_test_p): Likweise.
12606
12607 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
12608
12609         PR middle-end/66726
12610         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
12611         whose result is used in PHI.
12612         (maybe_optimize_range_tests): Likewise.
12613         (final_range_test_p): Likweise.
12614
12615 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
12616
12617         * cgraph.c: Spelling fixes - behaviour -> behavior and
12618         neighbour -> neighbor.
12619         * target.def: Likewise.
12620         * sel-sched.c: Likewise.
12621         * config/mips/mips.c: Likewise.
12622         * config/arc/arc.md: Likewise.
12623         * config/arm/cortex-a57.md: Likewise.
12624         * config/arm/arm.c: Likewise.
12625         * config/arm/neon.md: Likewise.
12626         * config/arm/arm-c.c: Likewise.
12627         * config/vms/vms-c.c: Likewise.
12628         * config/s390/s390.c: Likewise.
12629         * config/i386/znver1.md: Likewise.
12630         * config/i386/i386.c: Likewise.
12631         * config/ia64/hpux-unix2003.h: Likewise.
12632         * config/msp430/msp430.md: Likewise.
12633         * config/rx/rx.c: Likewise.
12634         * config/rx/rx.md: Likewise.
12635         * config/aarch64/aarch64-simd.md: Likewise.
12636         * config/aarch64/aarch64.c: Likewise.
12637         * config/nvptx/nvptx.c: Likewise.
12638         * config/bfin/bfin.c: Likewise.
12639         * config/cris/cris.opt: Likewise.
12640         * config/rs6000/rs6000.c: Likewise.
12641         * target.h: Likewise.
12642         * spellcheck.c: Likewise.
12643         * ira-build.c: Likewise.
12644         * tree-inline.c: Likewise.
12645         * builtins.c: Likewise.
12646         * lra-constraints.c: Likewise.
12647         * explow.c: Likewise.
12648         * hwint.h: Likewise.
12649         * targhooks.c: Likewise.
12650         * tree-vect-data-refs.c: Likewise.
12651         * expr.c: Likewise.
12652         * doc/tm.texi: Likewise.
12653         * doc/extend.texi: Likewise.
12654         * doc/install.texi: Likewise.
12655         * doc/md.texi: Likewise.
12656         * tree-ssa-tail-merge.c: Likewise.
12657         * sched-int.h: Likewise.
12658         * match.pd: Likewise.
12659         * sched-ebb.c: Likewise.
12660         * target.def (omit_struct_return_reg): Likewise.
12661         * gimple-ssa-isolate-paths.c: Likewise.
12662         (find_implicit_erroneous_behaviour): Renamed to...
12663         (find_implicit_erroneous_behavior): ... this.
12664         (find_explicit_erroneous_behaviour): Renamed to...
12665         (find_explicit_erroneous_behavior): ... this.
12666         (gimple_ssa_isolate_erroneous_paths): Adjust caller.
12667
12668 2016-02-11  Segher Boessenkool  <segher@kernel.crashing.org>
12669
12670         PR rtl-optimization/64682
12671         PR rtl-optimization/69567
12672         PR rtl-optimization/69737
12673         * combine.c (distribute_notes) <REG_DEAD>: If the register is set
12674         in I2 as well, just lose it.
12675
12676 2016-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12677
12678         * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
12679         New variable.
12680         (aarch64_last_printed_tune_string): Likewise.
12681         (aarch64_declare_function_name): Only output .arch assembler
12682         directive if it will be different from the previously output
12683         directive.  Same for .tune comment but only if -dA is set.
12684         (aarch64_start_file): New function.
12685         (TARGET_ASM_FILE_START): Define.
12686
12687 2016-02-11  David Malcolm  <dmalcolm@redhat.com>
12688
12689         PR plugins/69758
12690         * Makefile.in (PLUGIN_HEADERS): Add params.list.
12691
12692 2016-02-11  Jakub Jelinek  <jakub@redhat.com>
12693
12694         PR target/65313
12695         * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
12696         -Wmaybe-uninitialized warning.
12697
12698 2016-02-11  Oleg Endo  <olegendo@gcc.gnu.org>
12699
12700         PR target/69713
12701         * config/sh/sh.md (casesi_worker_0): Add T_REG use.
12702
12703 2016-02-11  Richard Biener  <rguenther@suse.de>
12704
12705         PR rtl-optimization/69291
12706         * ifcvt.c (noce_try_store_flag_constants): Do not allow
12707         subexpressions affected by changing the result.
12708
12709 2016-02-10  Vladimir Makarov  <vmakarov@redhat.com>
12710
12711         PR target/69148
12712         * lra-constraints.c (curr_insn_transform): Find in/out operands
12713         for secondary memory moves.  Update dups.
12714
12715 2016-02-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
12716
12717         PR tree-optimization/69652
12718         * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
12719         to nested loop, did source re-formatting, skip debug statements,
12720         add check on statement with volatile operand, remove dead scalar
12721         statements.
12722
12723 2016-02-10  Jakub Jelinek  <jakub@redhat.com>
12724             Patrick Palka  <ppalka@gcc.gnu.org>
12725
12726         PR ipa/69241
12727         PR c++/69649
12728         * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
12729         calls if the return type is TREE_ADDRESSABLE.
12730         * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
12731         * ipa-split.c (split_function): Fix doubled "we" in comment.
12732         Use void return type for the split part even if
12733         !split_point->split_part_set_retval.
12734
12735 2016-02-10  Bin Cheng  <bin.cheng@arm.com>
12736
12737         PR tree-optimization/68021
12738         * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
12739         when computing the value of biv cand by itself.
12740
12741 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
12742
12743         * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
12744         (cortexa57_tunings): Likewise.
12745         (cortexa72_tunings): Likewise.
12746         (arch_macro_fusion_pair_p): Add support for AES fusion.
12747         * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
12748         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
12749         Allow virtual registers before reload so early scheduling works.
12750         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
12751         correct latency and pipeline.
12752         (cortex_a57_crypto_complex): Likewise.
12753         (cortex_a57_crypto_xor): Likewise.
12754         (define_bypass): Add AES bypass.
12755
12756 2016-02-10  Richard Biener  <rguenther@suse.de>
12757
12758         PR tree-optimization/69726
12759         * passes.def: Add DCE pass before late uninit.
12760         * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
12761         really fixup if-conversions job.
12762
12763 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
12764
12765         * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
12766         (arm_cortex_a57_tune): Likewise.
12767         (aarch_macro_fusion_pair_p): Add support for AES fusion.
12768         * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
12769
12770 2016-02-10  Eric Botcazou  <ebotcazou@adacore.com>
12771
12772         * timevar.def (TV_PHASE_DBGINFO): Delete.
12773         (TV_PHASE_CHECK_DBGINFO): Likewise.
12774         * varpool.c (varpool_node::assemble_decl): Do not change timevar.
12775
12776 2016-02-10  Richard Biener  <rguenther@suse.de>
12777
12778         PR tree-optimization/69719
12779         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
12780         Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
12781
12782 2016-02-09  Andrew Pinski  <apinski@cavium.com>
12783
12784         PR tree-opt/69282
12785         * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
12786         get_vcond_mask_icode returns false.
12787
12788 2016-02-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
12789
12790         PR target/68404
12791         * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
12792         an ADDIS that adds a pointer to a large constant that sets the
12793         upper16 bits with a load operation.
12794
12795 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
12796
12797         PR target/68532
12798         * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
12799         order.
12800         * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
12801         endian.
12802         (vzipq_s16): Likewise.
12803         (vzipq_s32): Likewise.
12804         (vzipq_f32): Likewise.
12805         (vzipq_u8): Likewise.
12806         (vzipq_u16): Likewise.
12807         (vzipq_u32): Likewise.
12808         (vzipq_p8): Likewise.
12809         (vzipq_p16): Likewise.
12810
12811 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
12812
12813         PR target/68532
12814         * config/arm/arm.c (neon_endian_lane_map): New function.
12815         (neon_vector_pair_endian_lane_map): New function.
12816         (arm_evpc_neon_vuzp): Allow for big endian lane order.
12817         * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
12818         endian.
12819         (vuzpq_s16): Likewise.
12820         (vuzpq_s32): Likewise.
12821         (vuzpq_f32): Likewise.
12822         (vuzpq_u8): Likewise.
12823         (vuzpq_u16): Likewise.
12824         (vuzpq_u32): Likewise.
12825         (vuzpq_p8): Likewise.
12826         (vuzpq_p16): Likewise.
12827
12828 2016-02-11  Alexandre Oliva  <aoliva@redhat.com>
12829
12830         PR target/69634
12831         * regstat.c (regstat_bb_compute_calls_crossed): Disregard
12832         debug insns.
12833
12834 2016-02-09  Uros Bizjak  <ubizjak@gmail.com>
12835
12836         * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
12837         truncate const_int operand 1 to QImode.
12838
12839 2016-02-09  Eric Botcazou  <ebotcazou@adacore.com>
12840
12841         * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
12842         corresponding to an abnormal edge.
12843
12844 2016-02-09  Tom de Vries  <tom@codesourcery.com>
12845
12846         PR tree-optimization/69599
12847         * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
12848         function.
12849         (find_func_aliases_for_builtin_call, find_func_clobbers)
12850         (ipa_pta_execute):  Handle case that foo and foo._0 are not in same lto
12851         partition.
12852
12853 2016-02-09  Richard Biener  <rguenther@suse.de>
12854
12855         PR tree-optimization/69715
12856         * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
12857         LHS on calls as non-rewritable.
12858
12859 2016-02-09  Tom de Vries  <tom@codesourcery.com>
12860
12861         PR lto/69707
12862         * lto-wrapper.c (append_diag_options): New function.
12863         (compile_offload_image): Call append_diag_options.
12864
12865 2016-02-08  Sandra Loosemore  <sandra@codesourcery.com>
12866
12867         PR other/69722
12868         * doc/extend.texi (Flag Output Operands): Correct sectioning.
12869         Minor copy-edit to fix verb tenses.
12870
12871 2016-02-08  Jakub Jelinek  <jakub@redhat.com>
12872
12873         PR tree-optimization/69209
12874         * ipa-split.c (split_function): If split part is not
12875         returning retval, retval has gimple type but is not
12876         gimple value, force it into a SSA_NAME first.
12877
12878 2016-02-08  Nicklas Bo Jensen  <nbjensen@gmail.com>
12879
12880         * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
12881         outdated section.
12882
12883 2016-02-08  Jason Merrill  <jason@redhat.com>
12884
12885         PR c++/69631
12886         * convert.c (convert_to_integer_1): Check dofold on truncation
12887         distribution.
12888         (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
12889         (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
12890         Rename from *_nofold.
12891         * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
12892         (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
12893
12894 2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
12895
12896         PR target/60410
12897         * tree.c (build_common_tree_nodes): Remove short_double argument.
12898         All callers changed.
12899         * tree.h (build_common_tree_nodes): Adjust declaration.
12900         * doc/invoke.texi (-fshort-double): Remove documentation.
12901         * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
12902         MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
12903         * lto-wrapper.c (merge_and_complain, append_compiler_options)
12904         (append_linker_options): Don't handle OPT_fshort_double.
12905
12906         PR rtl-optimization/68730
12907         * lra-remat.c (insn_to_cand_activation): New static variable.
12908         (lra_remat): Allocate and free it.
12909         (create_cand): New arg activation. Initialize a field in
12910         insn_to_cand_activation if it is nonnull.
12911         (create_cands): Pass the activation insn to create_cand when making
12912         a candidate involving an output reload.  Reorganize code a little.
12913         (do_remat): Keep track of active status of candidates in a separate
12914         bitmap.
12915
12916 2016-02-08  Richard Biener  <rguenther@suse.de>
12917
12918         PR tree-optimization/69719
12919         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
12920         Properly use absolute of the difference of the two offsets to
12921         compare or adjust the segment length.
12922
12923 2016-02-08  Richard Biener  <rguenther@suse.de>
12924             Jeff Law  <law@redhat.com>
12925
12926         PR target/68273
12927         * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
12928         types for anonymous SSA names.
12929
12930 2016-02-08   Richard Biener  <rguenther@suse.de>
12931
12932         PR rtl-optimization/69274
12933         * ira.c (ira_setup_alts): Do not change recog_data.operand order.
12934
12935 2016-02-08  Jeff Law  <law@redhat.com>
12936
12937         PR tree-optimization/65917
12938         * tree-ssa-dom.c (record_temporary_equivalences): Record both
12939         equivalences from if (x == y) style conditionals.
12940         (loop_depth_of_name): Remove.
12941         (record_equality): Remove loop depth check.
12942         * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
12943         (const_and_copies::record_const_or_copy_raw): New member function.
12944         * tree-ssa-scopedtables.c
12945         (const_and_copies::record_const_or_copy_raw): New, factored out of
12946         (const_and_copies::record_const_or_copy): Call new member function.
12947
12948 2016-02-05  Jeff Law  <law@redhat.com>
12949
12950         PR tree-optimization/68541
12951         * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
12952         (count_stmts_in_block): New function.
12953         (poor_ifcvt_candidate_code): Likewise.
12954         (is_feasible_trace): Add some heuristics to determine when path
12955         splitting is profitable.
12956         (find_block_to_duplicate_for_splitting_paths): Make sure the graph
12957         is a diamond with a single exit.
12958
12959 2016-02-05  Martin Sebor  <msebor@redhat.com>
12960
12961         PR c++/69662
12962         * doc/invoke.texi: Update -Wplacement-new to take an optional
12963         argument.
12964
12965 2016-02-06  Richard Henderson  <rth@redhat.com>
12966
12967         PR c/69643
12968         * tree.c (tree_nop_conversion_p): Do not strip casts into or
12969         out of non-standard address spaces.
12970
12971 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
12972
12973         PR rtl-optimization/69691
12974         * lra-eliminations.c (move_plus_up): Don't add the addend twice.
12975
12976 2016-02-05  Pat Haugen  <pthaugen@us.ibm.com>
12977
12978         * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
12979         * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
12980         (*ieee128_mfvsrd_64bit): Likewise.
12981         (*ieee128_mfvsrd_32bit): Likewise.
12982
12983 2016-02-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
12984
12985         PR target/69369
12986         Revert r232560:
12987         2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
12988
12989         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
12990         instrumented_version.
12991
12992 2016-01-05  Jeremy Bennett  <jeremy.bennett@embecosm.com>
12993
12994         * doc/invoke.texi (Optimize Options): In table of --param options
12995         rename second occurrence of tracer-min-branch-ratio to
12996         tracer-min-branch-probability, rename
12997         tracer-min-branch-ratio-feedback to
12998         tracer-min-branch-probability-feedback and clarify description,
12999         rename sched-spec-state-edge-prob-cutoff to
13000         sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
13001         to selsched-insns-to-rename, rename lto-minpartition to
13002         lto-min-partition, delete reorder-blocks-duplicate and
13003         reorder-blocks-duplicate-feedback.
13004
13005 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13006
13007         * config/s390/s390.c (s390_register_info_set_ranges): Remove
13008         superfluous loops.
13009
13010 2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
13011
13012         * doc/extend.texi: S/390: Correct some typos.
13013
13014 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13015
13016         * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
13017
13018 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13019
13020         PR target/69625
13021         * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
13022         (s390_register_info_gprtofpr): Use new macros above.
13023         (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
13024         its name.
13025         (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
13026         its name.  Adjust restore and save gpr ranges.
13027         (s390_register_info_set_ranges): New function.
13028         (s390_register_info): Use new macros above.  Call
13029         s390_register_info_set_ranges.
13030         (s390_optimize_register_info): Likewise.
13031         (s390_hard_regno_rename_ok): Use new macros.
13032         (s390_hard_regno_scratch_ok): Likewise.
13033         (s390_emit_epilogue): Likewise.
13034         (s390_can_use_return_insn): Likewise.
13035         (s390_optimize_prologue): Likewise.
13036         * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
13037
13038 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
13039
13040         PR bootstrap/69677
13041         * config/i386/i386.c (convert_scalars_to_vector): Readd stack
13042         alignment fixes.
13043         (ix86_option_override_internal): Disable TARGET_STV even for
13044         -m{incoming,preferred}-stack-boundary=3.
13045
13046 2016-02-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
13047
13048         * config.gcc: Mark deprecated rtems targets as obsolete.
13049
13050 2016-02-04  Segher Boessenkool  <segher@kernel.crashing.org>
13051
13052         PR rtl-optimization/64682
13053         PR rtl-optimization/69567
13054         * combine.c (distribute_notes) <REG_DEAD>: Place the death note
13055         before I2 only if the register is both used and set in I2.
13056
13057 2016-02-04  DJ Delorie  <dj@redhat.com>
13058
13059         * config/msp430/msp430.c (msp430_start_function): Add function type.
13060
13061 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
13062
13063         PR fortran/69368
13064         * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
13065
13066 2016-02-04  Uros Bizjak  <ubizjak@gmail.com>
13067
13068         PR rtl-optimization/69577
13069         Revert:
13070         2015-10-29  Richard Henderson  <rth@redhat.com>
13071
13072         PR target/68124
13073         PR rtl-opt/67609
13074         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
13075         sse check to the exact conditions of PR 67609.
13076
13077 2016-02-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
13078
13079         PR target/69667
13080         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
13081         instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
13082         not allowed into the traditional Altivec registers.
13083         (movtd_64bit_nodm): Likewise.
13084         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
13085
13086 2016-02-04  David Malcolm  <dmalcolm@redhat.com>
13087
13088         * config/aarch64/cortex-a57-fma-steering.c
13089         (aarch64_register_fma_steering): Remove "static" from arguments
13090         to register_pass.
13091
13092 2016-02-04  Wilco Dijkstra  <wdijkstr@arm.com>
13093
13094         PR target/69619
13095         * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
13096         twice when complex.
13097
13098 2016-02-04  Mike Frysinger  <vapier@gentoo.org>
13099
13100         * doc/invoke.texi: Delete -mno-fma4.
13101
13102 2016-02-04  Richard Sandiford  <richard.sandiford@arm.com>
13103
13104         PR rtl-optimization/69577
13105         * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
13106         (find_subregs_of_mode): Update accordingly.  Iterate over partial
13107         definitions.
13108
13109 2016-02-04  Alan Lawrence  <alan.lawrence@arm.com>
13110
13111         * config/arm/arm-protos.h (neon_reinterpret): Remove.
13112         * config/arm/arm.c (neon_reinterpret): Remove.
13113         * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
13114         vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
13115         vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
13116         vreinterpretti): Remove.
13117         * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
13118         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
13119         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
13120         neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
13121         neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
13122         neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
13123         * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
13124         vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
13125         vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
13126         vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
13127         vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
13128         vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
13129         vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
13130         vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
13131         vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
13132         vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
13133         vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
13134         vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
13135         vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
13136         vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
13137         vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
13138         vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
13139         vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
13140         vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
13141         vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
13142         vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
13143         vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
13144         vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
13145         vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
13146         vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
13147         vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
13148         vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
13149         vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
13150         vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
13151         vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
13152         vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
13153         vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
13154         vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
13155         vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
13156         vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
13157         vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
13158         vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
13159         vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
13160         vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
13161         vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
13162         vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
13163         vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
13164         vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
13165         vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
13166         vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
13167         vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
13168         vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
13169         vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
13170         vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
13171         vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
13172         vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
13173         vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
13174         vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
13175         vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
13176         vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
13177         vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
13178         vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
13179         vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
13180         vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
13181         vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
13182         vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
13183         vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
13184         vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
13185         vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
13186         vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
13187         vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
13188         vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
13189         vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
13190         vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
13191         vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
13192         vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
13193         vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
13194         vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
13195         vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
13196         vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
13197         vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
13198         vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
13199         vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
13200         vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
13201         vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
13202         vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
13203         vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
13204         vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
13205         vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
13206         vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
13207         vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
13208         vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
13209         vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
13210         vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
13211         vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
13212         vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
13213         vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
13214         vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
13215         vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
13216         vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
13217         vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
13218         vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
13219         vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
13220
13221 2016-02-04  Martin Liska  <mliska@suse.cz>
13222
13223         PR sanitizer/69276
13224         * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
13225         that are gimple_store_p.
13226         (maybe_instrument_call): Likewise.
13227
13228 2016-02-04  Bin Cheng  <bin.cheng@arm.com>
13229
13230         * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
13231         register scaling out of memory reference and comment why.
13232
13233 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13234
13235         PR target/65932
13236         PR target/67714
13237         * cse.c (cse_insn): Pass NULL to fold_rtx when initially
13238         folding the source of a SET.
13239
13240 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13241
13242         PR target/65932
13243         PR target/67714
13244         * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
13245         the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
13246
13247 2016-02-04  Jim Wilson  <jim.wilson@linaro.org>
13248
13249         PR target/65932
13250         PR target/67714
13251         * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
13252         HImode.
13253
13254 2016-02-04  Christian Bruel  <christian.bruel@st.com>
13255
13256         * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
13257         * config/arm/arm.c (arm_set_current_function): Likewise.
13258
13259 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
13260             Ilya Enkovich  <enkovich.gnu@gmail.com>
13261             H.J. Lu  <hongjiu.lu@intel.com>
13262
13263         PR target/69454
13264         * config/i386/i386.c (convert_scalars_to_vector): Remove
13265         stack alignment fixes.
13266         (ix86_option_override_internal): Disable TARGET_STV if stack
13267         might not be aligned enough.
13268         (ix86_minimum_alignment): Assert that TARGET_STV is false.
13269
13270 2016-02-04  Victoria Stepanyan  <victoria.stepanyan@amd.com>
13271
13272         * config/i386/x86-tune.def: Disable default prefetching
13273         for -march=znver1.
13274
13275 2016-02-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
13276             Vladimir Makarov  <vmakarov@redhat.com>
13277
13278         PR target/69461
13279         * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
13280         in validating fused toc addresses.
13281
13282 2016-02-03  Jakub Jelinek  <jakub@redhat.com>
13283
13284         PR c/69627
13285         * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
13286         range->m_caret fields if range->m_show_caret_p is false.
13287
13288         PR target/69644
13289         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
13290         Force oldval into register if it does not satisfy reg_or_short_operand
13291         predicate.  Fix up formatting.
13292
13293 2016-02-03  Vladimir Makarov  <vmakarov@redhat.com>
13294             Alexandre Oliva  <aoliva@redhat.com>
13295
13296         PR target/69461
13297         * lra-constraints.c (simplify_operand_subreg): Check additionally
13298         address validity after potential reloading.
13299         (process_address_1): Check insns validity.  In case of failure do
13300         nothing.
13301
13302 2016-02-03  Kirill Yukhin  <kirill.yukhin@intel.com>
13303
13304         PR target/69118
13305         * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
13306         Fix target.
13307
13308 2016-02-02  Jakub Jelinek  <jakub@redhat.com>
13309
13310         * wide-int.cc (canonize_uhwi): New function.
13311         (wi::divmod_internal): Use it.
13312
13313 2016-02-02  James Norris  <jnorris@codesourcery.com
13314
13315         * gimplify.c (omp_notice_variable): Add usage check.
13316
13317 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
13318
13319         * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
13320         like LE, GE, LT, GT when emitting relational operator.
13321
13322 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
13323
13324         * ira-costs.c (find_costs_and_classes): Add extra argument.
13325         * target.def (ira_change_pseudo_allocno_class): Add parameter.
13326         * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
13327         * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
13328         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
13329         Add best_class parameter, and return it if not ALL_REGS.
13330         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
13331         Add parameter.
13332         * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
13333         Update target hook.
13334
13335 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
13336
13337         * config/aarch64/aarch64.c
13338         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
13339         (aarch64_ira_change_pseudo_allocno_class): New function.
13340
13341 2016-02-02  Uros Bizjak  <ubizjak@gmail.com>
13342
13343         PR target/67032
13344         * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
13345
13346 2016-02-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
13347
13348         * config/avr/avr.c (avr_option_override): Set
13349         PARAM_ALLOW_STORE_DATA_RACES to 1.
13350
13351 2016-02-02  Richard Biener  <rguenther@suse.de>
13352
13353         PR tree-optimization/69595
13354         * match.pd: Add range test simplifications to true/false.
13355
13356 2016-02-02  Thomas Schwinge  <thomas@codesourcery.com>
13357
13358         * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
13359         * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
13360         instead.
13361
13362 2016-02-02  Richard Biener  <rguenther@suse.de>
13363
13364         PR tree-optimization/69606
13365         * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
13366         info on the result before moving a stmt.
13367
13368 2016-02-02  Yuri Rumyantsev  <ysrumyan@gmail.com>
13369
13370         PR middle-end/68542
13371         * config/i386/i386.c (ix86_expand_branch): Add support for conditional
13372         branch with vector comparison.
13373         * config/i386/sse.md (VI48_AVX): New mode iterator.
13374         (define_expand "cbranch<mode>4): Add support for conditional branch
13375         with vector comparison.
13376         * tree-vect-loop.c (optimize_mask_stores): New function.
13377         * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
13378         has_mask_store field of vect_info.
13379         * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
13380         vectorized loops having masked stores after vec_info destroy.
13381         * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
13382         correspondent macros.
13383         (optimize_mask_stores): Add prototype.
13384
13385 2016-02-02  Alan Modra  <amodra@gmail.com>
13386
13387         PR target/69548
13388         * config/rs6000/predicates.md (quad_int_reg_operand): Don't
13389         allow subregs.
13390
13391 2016-02-02  Alan Modra  <amodra@gmail.com>
13392
13393         PR target/68662
13394         * config/rs6000/rs6000.c (need_toc_init): New var, set it
13395         whenever toc_label_name used.
13396         (rs6000_file_start): Don't set up toc section here,
13397         (rs6000_output_function_epilogue): do so here instead,
13398         (rs6000_xcoff_file_start): and here.
13399         * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
13400         (load_toc_aix_di): Likewise.
13401
13402 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
13403
13404         PR rtl-optimization/69592
13405         * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
13406         (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
13407         (num_sign_bit_copies_binary_arith_p): New inline function.
13408         (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
13409
13410 2016-02-01  Jeff Law  <law@redhat.com>
13411
13412         PR tree-optimization/69580
13413         * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
13414         * tree-ssa-threadbackward.c
13415         (fsm_find_control_statement_thread_paths): Do not try to walk
13416         through large PHI nodes.
13417
13418 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
13419
13420         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
13421         when count is incremented above limit, don't analyze further
13422         insns afterwards.
13423
13424         * omp-low.c (oacc_parse_default_dims): Avoid
13425         -Wsign-compare warning, make sure value fits into int
13426         rather than just unsigned int.
13427
13428 2016-02-01  Bin Cheng  <bin.cheng@arm.com>
13429
13430         PR tree-optimization/67921
13431         * fold-const.c (split_tree): New parameters.  Convert pointer
13432         type variable part to proper type before negating.
13433         (fold_binary_loc): Pass new arguments to split_tree.
13434
13435 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
13436
13437         * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
13438         (nvptx_goacc_validate_dims): Extend to handle global defaults.
13439         * target.def (OACC_VALIDATE_DIMS): Extend documentation.
13440         * doc/tm.texti: Rebuilt.
13441         * doc/invoke.texi (fopenacc-dim): Document.
13442         * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
13443         (append_compiler_options): Likewise.
13444         * omp-low.c (oacc_default_dims, oacc_min_dims): New.
13445         (oacc_parse_default_dims): New.
13446         (oacc_validate_dims): Add USED arg.  Select non-unity default when
13447         possible.
13448         (oacc_loop_fixed_partitions): Return mask of used partitions.
13449         (oacc_loop_auto_partitions): Emit dump info.
13450         (oacc_loop_partition): Return mask of used partitions.
13451         (execute_oacc_device_lower): Parse default dimension arg.  Adjust
13452         loop partitioning and validation calls.
13453
13454 2016-02-01  Richard Biener  <rguenther@suse.de>
13455
13456         PR middle-end/69556
13457         * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
13458
13459 2016-02-01  Richard Biener  <rguenther@suse.de>
13460
13461         PR tree-optimization/69574
13462         * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
13463         of asserting return chrec_dont_know.
13464
13465 2016-02-01  Martin Liska  <mliska@suse.cz>
13466
13467         * mem-stats-traits.h: Add copyright header.
13468         * mem-stats.h: Likewise.
13469
13470 2016-02-01  Richard Biener  <rguenther@suse.de>
13471
13472         PR tree-optimization/69579
13473         * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
13474         Do not propagate through abnormal PHI results.
13475
13476 2016-02-01  Eric Botcazou  <ebotcazou@adacore.com>
13477
13478         * postreload.c (reload_cse_simplify): Remove dead code.
13479
13480 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
13481
13482         PR rtl-optimization/69570
13483         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
13484         if there is more than one set, not if there is a single set.
13485
13486 2016-02-01  Richard Henderson  <rth@redhat.com>
13487
13488         PR rtl-opt/69535
13489         * combine.c (make_compound_operation): When looking through a
13490         subreg, make sure to re-extend to the width of the outer mode.
13491
13492 2016-01-30  Jakub Jelinek  <jakub@redhat.com>
13493
13494         PR tree-optimization/69546
13495         * wide-int.cc (wi::divmod_internal): For unsigned division
13496         where both operands fit into uhwi, if o1 is 1 and o0 has
13497         msb set, if divident_prec is larger than bits per hwi,
13498         clear another quotient word and return 2 instead of 1.
13499         Similarly for remainder with msb in HWI set, if dividend_prec
13500         is larger than bits per hwi.
13501
13502 2016-01-29  Martin Jambor  <mjambor@suse.cz>
13503
13504         * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
13505         Use short lowercase names.
13506         (get_memory_order): Mask with MEMMODEL_BASE_MASK.  Support
13507         MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
13508         acq_rel one.  Protect warning agains segfaults if
13509         get_memory_order_name returns NULL.
13510         (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
13511         with release semantics.  Do not warn if get_memory_order already did.
13512         (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
13513         semantics.  Fix check for relaxed or acquire semantics.  Do not warn
13514         if get_memory_order already did.
13515
13516 2016-01-29  Sebastian Pop  <s.pop@samsung.com>
13517
13518         * doc/install.texi: Document that isl-0.16 is supported.
13519
13520 2016-01-29  Vladimir Makarov  <vmakarov@redhat.com>
13521
13522         PR target/69299
13523         * config/i386/constraints.md (Bm): Describe as special memory
13524         constraint.
13525         * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
13526         * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
13527         * genpreds.c (struct constraint_data): Add is_special_memory.
13528         (have_special_memory_constraints, special_memory_start): New
13529         static vars.
13530         (special_memory_end): Ditto.
13531         (add_constraint): Add new arg is_special_memory.  Add code to
13532         process its true value.  Update have_special_memory_constraints.
13533         (process_define_constraint): Pass the new arg.
13534         (process_define_register_constraint): Ditto.
13535         (choose_enum_order): Process special memory.
13536         (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
13537         function insn_extra_special_memory_constraint.
13538         (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
13539         * gensupport.c (process_rtx): Process
13540         DEFINE_SPECIAL_MEMORY_CONSTRAINT.
13541         * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
13542         * ira-lives.c (single_reg_class): Use
13543         insn_extra_special_memory_constraint.
13544         * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
13545         * lra-constraints.c (process_alt_operands): Ditto.
13546         (curr_insn_transform): Use insn_extra_special_memory_constraint.
13547         * recog.c (asm_operand_ok, preprocess_constraints): Process
13548         CT_SPECIAL_MEMORY.
13549         * reload.c (find_reloads): Ditto.
13550         * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
13551         * stmt.c (parse_input_constraint): Use
13552         insn_extra_special_memory_constraint.
13553
13554 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
13555
13556         PR target/69530
13557         * lra-splill.c (lra_final_code_change): Revert r229087 by
13558         removing all sub-registers.
13559
13560 2016-01-29  Steve Ellcey  <sellcey@imgtec.com>
13561
13562         PR target/65604
13563         * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
13564
13565 2016-01-29  Jakub Jelinek  <jakub@redhat.com>
13566
13567         PR target/69551
13568         * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
13569         SSE1, copy target into the temporary reg first before recursing
13570         on it.
13571
13572 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
13573
13574         * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
13575         with vm.
13576
13577 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
13578
13579         * ginclude/stdarg.h: Test __cplusplus instead of
13580         __GXX_EXPERIMENTAL_CXX0X__.
13581
13582 2016-01-29  Richard Biener  <rguenther@suse.de>
13583
13584         PR tree-optimization/69547
13585         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
13586         Do not mark clobbers necessary.
13587         (mark_all_reaching_defs_necessary_1): Likewise.
13588
13589 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
13590
13591         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
13592         declaration name with %qs and print it in both error messages.
13593         Also fix indentation.
13594
13595 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
13596
13597         PR other/69006
13598         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
13599         trailing blank line from error message.
13600
13601 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
13602
13603         PR c++/69462
13604         * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
13605         for C++-11.
13606
13607 2016-01-29  Richard Biener  <rguenther@suse.de>
13608
13609         PR middle-end/69537
13610         * match.pd: Allow all integral types when simplifying a
13611         widening or sign-changing conversion.
13612
13613 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
13614
13615         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
13616         back to setting codegen_error to fail codegen.
13617
13618 2016-01-28  Uros Bizjak  <ubizjak@gmail.com>
13619
13620         PR target/69459
13621         * config/i386/constraints.md (C): Only accept constant zero operand.
13622         (BC): New constraint.
13623         * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
13624         instead of C constraint.
13625         * doc/md.texi (Machine Constraints): Update description
13626         of C constraint.
13627
13628 2016-01-28  Steve Ellcey  <sellcey@imgtec.com>
13629
13630         PR target/68400
13631         * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
13632
13633 2016-01-28  Jakub Jelinek  <jakub@redhat.com>
13634
13635         PR middle-end/69542
13636         * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
13637         non-debug insns.
13638
13639 2016-01-28  Pat Haugen  <pthaugen@us.ibm.com>
13640
13641         * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
13642         branches if using guessed profile.
13643
13644 2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>
13645
13646         * graphite-optimize-isl.c (optimize_isl): Fix dump.
13647
13648 2016-01-28  Richard Henderson  <rth@redhat.com>
13649
13650         PR target/69305
13651         * config/aarch64/aarch64-modes.def (CC_Cmode): New
13652         * config/aarch64/aarch64-protos.h: Update.
13653         * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
13654         (aarch64_select_cc_mode): Add check for use of CC_Cmode.
13655         (aarch64_get_condition_code_1): Handle CC_Cmode.
13656         * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
13657         (*add<mode>3_compareC_cconly_imm): New.
13658         (*add<mode>3_compareC_cconly): New.
13659         (*add<mode>3_compareC_imm): New.
13660         (add<mode>3_compareC): New.
13661         (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
13662         to be first.  Use aarch64_carry_operation.
13663         (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
13664         (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
13665         (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
13666         (subti3): Use subdi3_compare1.
13667         (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
13668         (sub<mode>3_compare1): New.
13669         (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
13670         (*sub<mode>3_carryin): Use aarch64_borrow_operation.
13671         (*subsi3_carryin_uxtw): Likewise.
13672         (*ngc<mode>, *ngcsi_uxtw): Likewise.
13673         (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
13674         * config/aarch64/iterators.md (DWI): New.
13675         * config/aarch64/predicates.md (aarch64_carry_operation): New.
13676         (aarch64_borrow_operation): New.
13677
13678 2016-01-28  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
13679
13680         * graphite-optimize-isl.c (optimize_isl): Print a different debug
13681         message when isl does not return a valid schedule.
13682
13683 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
13684
13685         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
13686         Remove comments from class declarations: they are already in the code
13687         close by the defs.
13688
13689 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
13690
13691         * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
13692         codegen_error_p.
13693         (ternary_op_to_tree): Same.
13694         (unary_op_to_tree): Same.
13695         (nary_op_to_tree): Same.
13696         (gcc_expression_from_isl_expr_op): Same.
13697         (gcc_expression_from_isl_expression): Same.
13698         (graphite_create_new_loop): Same.
13699         (graphite_create_new_loop_guard): Same.
13700         (build_iv_mapping): Same.
13701         (graphite_create_new_guard): Same.
13702         (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
13703         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
13704
13705 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
13706
13707         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
13708         instead of setting codegen_error to fail codegen.
13709
13710 2016-01-28  Jason Merrill  <jason@redhat.com>
13711
13712         * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
13713
13714 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
13715
13716         * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
13717         Remove CONST_INT_P check in CCMP cost calculation.
13718
13719 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
13720
13721         * config/aarch64/aarch64.c (generic_vector_cost):
13722         Set vec_permute_cost.
13723         (cortexa57_vector_cost): Likewise.
13724         (exynosm1_vector_cost): Likewise.
13725         (xgene1_vector_cost): Likewise.
13726         (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
13727         * config/aarch64/aarch64-protos.h (cpu_vector_cost):
13728         Add vec_permute_cost entry.
13729
13730 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
13731
13732         * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
13733         immediate as %1.
13734         (add<mode>3_compare0): Likewise.
13735         (addsi3_compare0_uxtw): Likewise.
13736         (add<mode>3nr_compare0): Likewise.
13737         (compare_neg<mode>): Likewise.
13738         (<optab><mode>3): Likewise.
13739
13740 2016-01-28  Ilya Enkovich  <enkovich.gnu@gmail.com>
13741
13742         * tree-vect-stmts.c (vectorizable_comparison): Add
13743         NULL check for vectype.
13744
13745 2016-01-28  Richard Biener  <rguenther@suse.de>
13746
13747         PR tree-optimization/69466
13748         * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
13749         Account for PHIs we couldn't duplicate.
13750
13751 2016-01-28  Martin Liska  <mliska@suse.cz>
13752
13753         PR pch/68758
13754         * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
13755         instead of ENABLE_VALGRIND_CHECKING.
13756
13757 2016-01-27  Richard Henderson  <rth@redhat.com>
13758
13759         PR rtl-opt/69447
13760         * lra-remat.c (subreg_regs): New.
13761         (dump_candidates_and_remat_bb_data): Dump it.
13762         (operand_to_remat): Reject if operand in subreg_regs.
13763         (set_bb_regs): Collect subreg_regs.
13764         (lra_remat): Init and free subreg_regs.  Compute
13765         calculate_local_reg_remat_bb_data before create_cands.
13766
13767 2016-01-27  H.J. Lu  <hongjiu.lu@intel.com>
13768
13769         PR target/68986
13770         * config/i386/i386.c (ix86_update_stack_boundary): Don't
13771         change stack_alignment_needed for __tls_get_addr call.
13772
13773 2016-01-27  Segher Boessenkool  <segher@kernel.crashing.org>
13774
13775         * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
13776
13777 2016-01-27  Jeff Law  <law@redhat.com>
13778
13779         PR tree-optimization/68398
13780         PR tree-optimization/69196
13781         * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
13782         (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
13783         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
13784         Only count PHIs in the last block in the path.  The others will
13785         const/copy propagate away.  Add heuristic to allow more irreducible
13786         subloops to be created when it is likely profitable to do so.
13787
13788         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
13789         Fix typo in comment.  Use gsi_after_labels and remove the GIMPLE_LABEL
13790         check from within the loop.  Use gsi_next_nondebug rather than gsi_next.
13791
13792 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
13793
13794         PR lto/69254
13795         * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
13796         END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
13797         * asan.c (DEF_BUILTIN_STUB): Temporarily define.
13798         * tree-streamer-in.c: Include asan.h.
13799         (streamer_get_builtin_tree): For builtins in sanitizer
13800         range call initialize_sanitizer_builtins and retry.
13801
13802 2016-01-27  Ian Lance Taylor  <iant@google.com>
13803
13804         * common.opt (fkeep-gc-roots-live): New undocumented option.
13805         * tree-ssa-loop-ivopts.c (add_candidate_1): If
13806         -fkeep-gc-roots-live, skip pointers.
13807         (add_iv_candidate_for_biv): Handle add_candidate_1 returning
13808         NULL.
13809
13810 2016-01-27  Uros Bizjak  <ubizjak@gmail.com>
13811
13812         PR target/69512
13813         * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
13814         (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
13815
13816 2016-01-27  Thomas Klausner  <wiz@NetBSD.org>
13817
13818         PR target/68380
13819         * configure.ac: NetBSD provides SSP in its C library.
13820         * configure: Updated.
13821
13822 2016-01-27  Richard Biener  <rguenther@suse.de>
13823
13824         PR tree-optimization/69166
13825         * tree-vect-loop.c (vect_is_simple_reduction): Always check
13826         reduction code for commutativity / associativity.
13827
13828 2016-01-27  Martin Jambor  <mjambor@suse.cz>
13829
13830         PR tree-optimization/69355
13831         * tree-sra.c (analyze_access_subtree): Correct hole detection when
13832         total_scalarization fails.
13833
13834 2016-01-27  David Edelsohn  <dje.gcc@gmail.com>
13835
13836         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
13837         power9.
13838
13839 2016-01-27  Christian Bruel  <christian.bruel@st.com>
13840
13841         PR target/69245
13842         * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
13843         Move arm_reset_previous_fndecl and set_target_option_current_node in
13844         the conditional part.  Call save_restore_target_globals.
13845         * config/arm/arm.c (arm_set_current_function):
13846         Refactor to better support #pragma target and attribute mix.
13847         Call save_restore_target_globals.
13848         * config/arm/arm-protos.h (save_restore_target_globals): New function.
13849
13850 2016-01-27  Martin Liska  <mliska@suse.cz>
13851
13852         * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
13853         reference for an HSA kernel and its host function.
13854
13855 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
13856
13857         PR tree-optimization/69399
13858         * wide-int.h (wi::lrshift): For larger precisions, only
13859         use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
13860
13861 2016-01-27  Claudiu Zissulescu  <claziss@synopsys.com>
13862
13863         * config/arc/predicates.md (proper_comparison_operator): Reject
13864         constant-constant comparison.
13865
13866 2016-01-26  Tom de Vries  <tom@codesourcery.com>
13867
13868         PR tree-optimization/69110
13869         * tree-data-ref.c (initialize_data_dependence_relation): Handle
13870         DR_NUM_DIMENSIONS == 0.
13871
13872 2016-01-26  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
13873             Sebastian Pop  <s.pop@samsung.com>
13874
13875         * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
13876         isl_ast_op_cond and isl_ast_op_select.
13877         (gcc_expression_from_isl_expr_op): Same.
13878
13879 2016-01-26  Jason Merrill  <jason@redhat.com>
13880
13881         PR c++/68782
13882         * tree.c (recompute_constructor_flags): Split out from
13883         build_constructor.
13884         (verify_constructor_flags): New.
13885         * tree.h: Declare them.
13886
13887 2016-01-26  Iain Buclaw  <ibuclaw@gdcproject.org>
13888
13889         PR rtl-optimization/69217
13890         * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
13891         are no TYPE_FIELDS set for the record type.
13892
13893 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
13894
13895         PR target/68662
13896         * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
13897         toc_label_name unconditionally.
13898         (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
13899         SYMBOL_REF string.  Use toc_label_name instead of constructing
13900         LCTOC1.
13901         (rs6000_elf_declare_function_name): Use toc_label_name instead of
13902         constructing LCTOC1.
13903
13904 2016-01-26  Martin Sebor  <msebor@redhat.com>
13905
13906         PR other/69477
13907         * doc/extend.texi (Common Type Attributes): Move text that talks about
13908         attribute packed from attribute aligned to the section discussing
13909         the former attribute for clarity.
13910
13911 2016-01-26  Richard Henderson  <rth@redhat.com>
13912
13913         PR middle-end/60908
13914         * trans-mem.c (tm_region_init): Mark entry block as visited.
13915
13916 2016-01-26  David Malcolm  <dmalcolm@redhat.com>
13917
13918         PR other/69006
13919         * diagnostic-show-locus.c (layout::print_source_line): Replace
13920         call to pp_newline with call to layout::print_newline.
13921         (layout::print_annotation_line): Likewise.
13922         (layout::move_to_column): Likewise.
13923         (layout::print_any_fixits): After printing any fixits, print a
13924         trailing newline, if necessary.
13925         (layout::print_newline): New method, resetting any colorization
13926         before a newline.
13927         (diagnostic_show_locus): Move the pp_newline to before the
13928         early bailout.  Remove dummy block enclosing the layout instance.
13929         * diagnostic.c (default_diagnostic_finalizer): Replace invocation
13930         of pp_newline_and_flush with pp_flush.
13931         (diagnostic_append_note): Delete use of pp_newline.
13932         (diagnostic_append_note_at_rich_loc): Delete.
13933         * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
13934         * pretty-print.h (output_buffer_append_r): Reset buff->line_length
13935         when newline characters are added to the buffer.
13936
13937 2016-01-26  Michael Matz  <matz@suse.de>
13938
13939         * configure.ac (ac_cv_std_swap_in_utility): New test.
13940         * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
13941         * configure: Regenerate.
13942         * config.in: Regenerate.
13943
13944 2016-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
13945
13946         * config/arc/arc.md (cstoresi4): Force operand into register.
13947         (arcset<code>): Fix predicate.
13948         (arcsetltu): Likewise.
13949         (arcsetgeu): Likewise.
13950         (arcsethi): Likewise.
13951         (arcsetls): Likewise.
13952
13953 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
13954
13955         PR tree-optimization/69483
13956         * gimple-fold.c (canonicalize_constructor_val): Return NULL
13957         if base has error_mark_node type.
13958
13959 2016-01-26  Christophe Lyon  <christophe.lyon@linaro.org>
13960
13961         PR target/68620
13962         * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
13963         * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
13964         New helper macros.
13965         (vget_lane_f16): Handle big-endian.
13966         (vgetq_lane_f16): Likewise.
13967         (vset_lane_f16): Likewise.
13968         (vsetq_lane_f16): Likewise.
13969         * config/arm/iterators.md (VQXMOV): Add V8HF.
13970         (VDQ): Add V4HF and V8HF.
13971         (V_reg): Handle V4HF and V8HF.
13972         (Is_float_mode): Likewise.
13973         * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
13974         neon_vdup_nv8hf): New patterns.
13975         (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
13976         Use VD_LANE iterator.
13977         (neon_vld1_dup<mode>): Use VQ2 iterator.
13978
13979 2016-01-26  Nathan Sidwell  <nathan@acm.org>
13980
13981         * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
13982         (set_oacc_fn_attrib): Add IS_KERNEL arg.
13983         * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
13984         (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
13985         (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
13986         (oacc_validate_dims): Add LEVEL arg, don't return level.
13987         (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
13988         oacc_validate_dims.
13989         (execute_oacc_device_lower): Adjust, add more dump output.
13990         * tree-ssa-loop.c (gate_oacc_kernels): Use
13991         oacc_fn_attrib_kernels_p.
13992         * tree-parloops.c (create_parallel_loop): Adjust
13993         set_oacc_fn_attrib call.
13994
13995 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
13996
13997         PR lto/69254
13998         * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
13999         (append_compiler_options): Handle -fcilkplus.
14000         (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
14001
14002 2016-01-26  Nick Clifton  <nickc@redhat.com>
14003
14004         PR target/66655
14005         * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
14006         been marked as DECL_ONE_ONLY but we do not the means to make it
14007         so, then do not allow it to bind locally.
14008
14009 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
14010
14011         PR lto/69254
14012         * opts.h (parse_sanitizer_options): New prototype.
14013         * opts.c (sanitizer_opts): New array.
14014         (parse_sanitizer_options): New function.
14015         (common_handle_option): Use parse_sanitizer_options.
14016
14017 2016-01-26  H.J. Lu  <hongjiu.lu@intel.com>
14018
14019         PR target/68986
14020         * config/i386/i386.c (ix86_compute_frame_layout): Move stack
14021         alignment adjustment to ...
14022         (ix86_update_stack_boundary): Here.  Don't over-align stack for
14023         __tls_get_addr.
14024         (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
14025         if __tls_get_addr is called.
14026
14027 2016-01-26  Christian Bruel  <christian.bruel@st.com>
14028
14029         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
14030
14031 2016-01-26  Eric Botcazou  <ebotcazou@adacore.com>
14032
14033         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
14034
14035 2016-01-26  Richard Biener  <rguenther@suse.de>
14036
14037         PR middle-end/69467
14038         * match.pd: Guard X * CST CMP 0 pattern with single_use.
14039
14040 2016-01-26  Richard Biener  <rguenther@suse.de>
14041
14042         PR tree-optimization/69452
14043         * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
14044         (move_computations_dom_walker::before_dom_children): Rename
14045         to ...
14046         (move_computations_worker): This.
14047         (move_computations): Perform an RPO rather than a DOM walk.
14048
14049 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
14050
14051         PR target/69442
14052         * combine.c (combine_instructions): For REG_EQUAL note with
14053         SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
14054         to the underlying register.
14055         * doc/rtl.texi (REG_EQUAL): Document the behavior of
14056         REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
14057
14058 2016-01-26  Roger Ferrer Ibáñez  <rofirrim@gmail.com>
14059
14060         PR target/67896
14061         * config/aarch64/aarch64-builtins.c
14062         (aarch64_init_simd_builtin_types): Do not set structural
14063         equality to __Poly{8,16,64,128}_t types.
14064
14065 2016-01-26  Richard Sandiford  <richard.sandiford@arm.com>
14066
14067         PR tree-optimization/69400
14068         * wide-int.cc (wi_pack): Take the precision as argument and
14069         perform canonicalization here rather than in the callers.
14070         Use the main loop to handle all full-width HWIs.  Add a
14071         zero HWI if in_len isn't a full result.
14072         (wi::divmod_internal): Update accordingly.
14073         (wi::mul_internal): Likewise.  Simplify.
14074
14075 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
14076             Sebastian Pop  <s.pop@samsung.com>
14077
14078         * graphite-poly.c (apply_poly_transforms): Simplify.
14079         (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
14080         (print_isl_map): Same.
14081         (print_isl_union_map): Same.
14082         (print_isl_schedule): New.
14083         (debug_isl_schedule): New.
14084         * graphite-dependences.c (scop_get_reads): Do not call
14085         isl_union_map_add_map that is undocumented isl functionality.
14086         (scop_get_must_writes): Same.
14087         (scop_get_may_writes): Same.
14088         (scop_get_original_schedule): Remove.
14089         (scop_get_dependences): Do not call isl_union_map_compute_flow that
14090         is deprecated in isl 0.15.  Instead, use isl_union_access_* interface.
14091         (compute_deps): Remove.
14092         * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
14093         (debug_schedule_ast): New.
14094         (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
14095         set_separate_option.
14096         (graphite_regenerate_ast_isl): Add dump.
14097         (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
14098         from scop->transformed_schedule.
14099         (graphite_regenerate_ast_isl): Add more dump.
14100         * graphite-optimize-isl.c (optimize_isl): Set
14101         scop->transformed_schedule.  Check whether schedules are equal.
14102         (apply_poly_transforms): Move here.
14103         * graphite-poly.c (apply_poly_transforms): ... from here.
14104         (free_poly_bb): Static.
14105         (free_scop): Static.
14106         (pbb_number_of_iterations_at_time): Remove.
14107         (print_isl_ast): New.
14108         (debug_isl_ast): New.
14109         (debug_scop_pbb): New.
14110         * graphite-scop-detection.c (print_edge): Move.
14111         (print_sese): Move.
14112         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
14113         (build_scop_scattering): Remove.
14114         (create_pw_aff_from_tree): Assert instead of bailing out.
14115         (add_condition_to_pbb): Remove unused code, do not fail.
14116         (add_conditions_to_domain): Same.
14117         (add_conditions_to_constraints): Remove.
14118         (build_scop_context): New.
14119         (add_iter_domain_dimension): New.
14120         (build_iteration_domains): Initialize pbb->iterators.
14121         Call add_conditions_to_domain.
14122         (nested_in): New.
14123         (loop_at): New.
14124         (index_outermost_in_loop): New.
14125         (index_pbb_in_loop): New.
14126         (outermost_pbb_in): New.
14127         (add_in_sequence): New.
14128         (add_outer_projection): New.
14129         (outer_projection_mupa): New.
14130         (add_loop_schedule): New.
14131         (build_schedule_pbb): New.
14132         (build_schedule_loop): New.
14133         (embed_in_surrounding_loops): New.
14134         (build_schedule_loop_nest): New.
14135         (build_original_schedule): New.
14136         (build_poly_scop): Call build_original_schedule.
14137         * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
14138         (free_poly_dr): Remove.
14139         (struct poly_bb): Add iterators.  Remove schedule, transformed, saved.
14140         (free_poly_bb): Remove.
14141         (debug_loop_vec): Remove.
14142         (print_isl_ast): Declare.
14143         (debug_isl_ast): Declare.
14144         (scop_do_interchange): Remove.
14145         (scop_do_strip_mine): Remove.
14146         (scop_do_block): Remove.
14147         (flatten_all_loops): Remove.
14148         (optimize_isl): Remove.
14149         (pbb_number_of_iterations_at_time): Remove.
14150         (debug_scop_pbb): Declare.
14151         (print_schedule_ast): Declare.
14152         (debug_schedule_ast): Declare.
14153         (struct scop): Remove schedule.  Add original_schedule,
14154         transformed_schedule.
14155         (free_gimple_poly_bb): Remove.
14156         (print_generated_program): Remove.
14157         (debug_generated_program): Remove.
14158         (unify_scattering_dimensions): Remove.
14159         * sese.c (print_edge): ... here.
14160         (print_sese): ... here.
14161         (debug_edge): ... here.
14162         (debug_sese): ... here.
14163         * sese.h (print_edge): Declare.
14164         (print_sese): Declare.
14165         (dump_edge): Declare.
14166         (dump_sese): Declare.
14167
14168 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
14169             Sebastian Pop  <s.pop@samsung.com>
14170
14171         * Makefile.in: Set ISLVER in site.exp.
14172
14173 2016-01-25  Jakub Jelinek  <jakub@redhat.com>
14174
14175         * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
14176         DECL_VALUE_EXPR of new_var even for the non-array case.  Look
14177         through DECL_VALUE_EXPR for expansion.
14178
14179 2016-01-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14180
14181         * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
14182         the frame info after reload completed.
14183
14184 2016-01-25  Jeff Law  <law@redhat.com>
14185
14186         PR tree-optimization/69196
14187         PR tree-optimization/68398
14188         * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
14189         tree-ssa-threadupdate.c.
14190         (determine_bb_domination_status): Prototype
14191         * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
14192         (determine_bb_domination_status): No longer static.
14193         (valid_jump_thread_path): Remove code to detect characteristics
14194         of the jump thread path not associated with correctness.
14195         * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
14196         Correct test for thread path length.  Count PHIs for real operands as
14197         statements that need to be copied.  Do not count ASSERT_EXPRs.
14198         Look at all the blocks in the thread path.  Compute and selectively
14199         filter thread paths based on threading through the latch, threading
14200         a multiway branch or crossing a multiway branch.
14201
14202 2016-01-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14203
14204         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled):  Add
14205         decl with __attribute__ ((unused)) annotation.
14206
14207 2016-01-25  Ilya Enkovich  <enkovich.gnu@gmail.com>
14208
14209         PR target/69421
14210         * tree-vect-stmts.c (vectorizable_condition): Check vectype
14211         of operands is compatible with a statement vectype.
14212
14213 2016-01-25  Eric Botcazou  <ebotcazou@adacore.com>
14214
14215         * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
14216         improve wording for mixed storage order support.
14217
14218 2016-01-25  Bilyan Borisov  <bilyan.borisov@arm.com>
14219
14220         * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
14221         (vcvt_u64_f64): Likewise.
14222         (vcvta_s64_f64): Likewise.
14223         (vcvta_u64_f64): Likewise.
14224         (vcvtm_s64_f64): Likewise.
14225         (vcvtm_u64_f64): Likewise.
14226         (vcvtn_s64_f64): Likewise.
14227         (vcvtn_u64_f64): Likewise.
14228         (vcvtp_s64_f64): Likewise.
14229         (vcvtp_u64_f64): Likewise.
14230
14231 2016-01-25  Claudiu Zissulescu  <claziss@synopsys.com>
14232
14233         * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
14234         (arc_init): Check validity mll64 option.
14235         (arc_save_restore): Use double load/store instruction.
14236         (arc_expand_movmem): Likewise.
14237         (arc_split_move): Don't split if we have double load/store
14238         instructions. Returns a boolean.
14239         (arc_process_double_reg_moves): Change function to return boolean
14240         instead of a sequence of instructions.
14241         (arc_dwarf_register_span): New function.
14242         * config/arc/arc-protos.h (arc_split_move): Change prototype.
14243         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
14244         * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
14245         (*movdf_insn): Likewise.
14246         * config/arc/arc.opt (mll64): New option.
14247         * config/arc/predicates.md (even_register_operand): New predicate.
14248         * doc/invoke.texi (ARC Options): Add mll64 documentation.
14249
14250 2016-01-25  Richard Biener  <rguenther@suse.de>
14251
14252         PR lto/69393
14253         * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
14254         * tree-streamer-out.c (pack_ts_base_value_fields): Stream
14255         DECL_NAMELESS.
14256         * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
14257
14258 2016-01-25  Richard Biener  <rguenther@suse.de>
14259
14260         PR tree-optimization/69376
14261         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
14262         flag.
14263         (VN_INFO_ANTI_RANGE_P): New inline.
14264         (VN_INFO_RANGE_TYPE): Likewise.
14265         * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
14266         SSA_NAME_ANTI_RANGE_P.
14267         (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
14268         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
14269         Properly query VN_INFO_RANGE_TYPE.
14270
14271 2016-01-25  Nick Clifton  <nickc@redhat.com>
14272
14273         PR target/66655
14274         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
14275
14276 2016-01-23  Tom de Vries  <tom@codesourcery.com>
14277
14278         PR tree-optimization/69426
14279         * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
14280         removed clobber.
14281
14282 2016-01-23  Jakub Jelinek  <jakub@redhat.com>
14283
14284         * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
14285         "the the" with "the" in the comments.
14286         * ipa-devirt.c (build_type_inheritance_graph,
14287         update_type_inheritance_graph): Likewise.
14288         * tree.c (build_function_type_list_1): Likewise.
14289         * cfgloopmanip.c (scale_loop_profile): Likewise.
14290         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
14291         * gimple-ssa-split-paths.c
14292         (find_block_to_duplicate_for_splitting_paths): Likewise.
14293         * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
14294         * expr.c (convert_move): Likewise.
14295         * var-tracking.c (vt_stack_adjustments): Likewise.
14296         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
14297         * tree-vrp.c (test_for_singularity): Likewise.
14298
14299         * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
14300         directly instead of building a temporary tree.
14301
14302         PR bootstrap/69434
14303         * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
14304         remove <algorithm> include.
14305
14306 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
14307
14308         PR target/69432
14309         * config/i386/i386.c: Include dojump.h.
14310         (expand_small_movmem_or_setmem,
14311         expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
14312         fixes.
14313         (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
14314         if dynamic_check != -1.
14315
14316 2016-01-21  Jeff Law  <law@redhat.com>
14317
14318         PR middle-end/69347
14319         * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
14320         record_temporary_equivalences.  Rewritten to avoid unnecessary calls
14321         into dominated_by_p.
14322         (cprop_into_successor_phis): Avoid unnecessary tests.
14323
14324 2016-01-22  Richard Henderson  <rth@redhat.com>
14325
14326         PR target/69416
14327         * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
14328         (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
14329
14330 2016-01-22  Michael Matz  <matz@suse.de>
14331
14332         * system.h (string, algorithm): Include only conditionally.
14333         (new): Include always under C++.
14334         * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
14335         * final.c (toplevel): Ditto.
14336         * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
14337         * genconditions.c (write_header): Make gencondmd.c define
14338         INCLUDE_STRING.
14339         * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
14340
14341         * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
14342         * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
14343
14344 2016-01-22  Christian Bruel  <christian.bruel@st.com>
14345
14346         PR target/68674
14347         * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
14348
14349 2016-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14350
14351         PR target/69403
14352         * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
14353         define_insn_and_split.  Ensure operands[1] and operands[0] do not
14354         get assigned the same register.
14355
14356 2016-01-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
14357
14358         * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
14359
14360 2016-01-22  Christian Bruel  <christian.bruel@st.com>
14361
14362         * config/arm/arm-c.c (arm_pragma_target_parse):
14363         Remove warn_builtin_macro_redefined overwrite.
14364
14365 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
14366
14367         * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
14368         flag_non_call_exceptions compatibility.
14369
14370 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
14371
14372         PR debug/66668
14373         * dwarf2out.c (add_child_die_after): New function.
14374         (dwarf_qual_info_t): New type.
14375         (dwarf_qual_info): New variable.
14376         (qualified_die_p): New function.
14377         (modified_type_die): For -fdebug-types-section, ensure
14378         canonical order of qualifiers.  Put qualified DIEs adjacent
14379         to the corresponding non-qualified type DIE and search there
14380         for existing qualified DIEs.
14381
14382 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
14383
14384         * doc/extend.texi (scalar_storage_order type attribute): Document
14385         restriction on type punning and aliasing, and remove future tense.
14386
14387 2016-01-21  Roman Zhuykov  <zhroma@ispras.ru>
14388
14389         PR target/69252
14390         * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
14391         first stage.
14392
14393 2016-01-21  Jeff Law  <law@redhat.com>
14394
14395         PR middle-end/69347
14396         * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
14397         useless call to record_temporary_equivalences.
14398         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
14399         allocate 10 slots in the bb_path vector and let it grow as needed.
14400         (fsm_find_control_statement_thread_paths): Similarly for the next_path
14401         vector.
14402
14403 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
14404
14405         * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
14406         Detangle.
14407         * configure: Regenerate.
14408
14409 2016-01-21  Pat Haugen  <pthaugen@us.ibm.com>
14410
14411         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
14412         * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
14413
14414 2016-01-21  Bernd Schmidt  <bschmidt@redhat.com>
14415
14416         PR middle-end/66178
14417         * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
14418         drop EXPAND_INITIALIZER.
14419         * rtl.h (contains_symbolic_reference_p): Declare.
14420         * rtlanal.c (contains_symbolic_reference_p): New function.
14421         * simplify-rtx.c (simplify_binary_operation_1): Don't turn
14422         a subtraction into a NOT if symbolic constants are involved.
14423
14424 2016-01-21  Anton Blanchard  <anton@samba.org>
14425             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14426
14427         PR target/63354
14428         * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
14429         #define.
14430         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
14431         function.
14432
14433 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
14434
14435         * config/microblaze/microblaze.c
14436         (get_branch_target): New.
14437         (insert_wic_for_ilb_runout): New.
14438         (insert_wic): New.
14439         (microblaze_machine_dependent_reorg): New.
14440         (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
14441         * config/microblaze/microblaze.md
14442         (UNSPEC_IPREFETCH): Define.
14443         (iprefetch): New pattern
14444         * config/microblaze/microblaze.opt
14445         (mxl-prefetch): New flag.
14446
14447 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
14448
14449         * config/microblaze/microblaze.h
14450         (FIXED_REGISTERS): Update in macro.
14451         (CALL_USED_REGISTERS): Update in macro.
14452
14453 2016-01-21  Yuri Rumyantsev  <ysrumyan@gmail.com>
14454
14455         PR rtl-optimization/68920
14456         * ifcvt.c (cond_move_process_if_block): Limit number of conditional
14457         moves.
14458
14459 2016-01-21  Vladimir Makarov  <vmakarov@redhat.com>
14460
14461         PR rtl-optimization/68990
14462         * lra-coalesce.c (lra_coalesce): Invalidate value for the result
14463         pseudo instead of inheritance ones.
14464
14465 2016-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14466             Nick Clifton  <nickc@redhat.com>
14467
14468         PR target/69129
14469         PR target/69012
14470         * config/mips/mips.c (mips_compute_frame_info): Initialise
14471         args_size and hard_frame_pointer_offset fields of the frame
14472         structure before calling mips_global_pointer.
14473
14474 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
14475
14476         * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
14477         label reference.
14478         * configure: Regenerate.
14479
14480 2016-01-21  Richard Biener  <rguenther@suse.de>
14481
14482         * graphite-optimize-isl.c (get_schedule_map): Fix typo.
14483
14484 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
14485
14486         * config/s390/s390.c (s390_asm_declare_function_size): Add code
14487         to actually emit the .size directive.
14488
14489 2016-01-21   Stefan Sørensen  <stefan.sorensen@spectralink.com>
14490              Jakub Jelinek  <jakub@redhat.com>
14491
14492         PR target/69187
14493         PR target/65624
14494         * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
14495         args array size by one to avoid buffer overflow.
14496
14497 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
14498
14499         * config/s390/s390.md (pool_section_start): Use switch_to_section
14500         to select proper read-only data section instead of hardcoding
14501         .rodata.
14502         (pool_section_end): Use switch_to_section to match the above.
14503
14504 2016-01-21  Richard Biener  <rguenther@suse.de>
14505
14506         PR tree-optimization/69378
14507         * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
14508         (set_ssa_val_to): Use it for dominance checks taking into
14509         account not executable edges.
14510
14511 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
14512
14513         PR c++/69355
14514         * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
14515         for bitsize instead of GET_MODE_PRECISION (mode).
14516
14517 2016-01-20  Martin Sebor  <msebor@redhat.com>
14518
14519         PR c/52291
14520         * extend.texi (__sync Builtins): Clarify the semantics of
14521         __sync_fetch_and_OP built-ins on pointers.
14522         (__atomic Builtins): Same.
14523
14524 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14525             Sebastian Pop  <s.pop@samsung.com>
14526
14527         * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
14528         (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
14529         (is_valid_rename): Same.
14530         (translate_isl_ast_to_gimple::get_rename): Same.
14531         (translate_isl_ast_to_gimple::rename_all_uses): Same.
14532         (translate_isl_ast_to_gimple::rename_uses): Same.
14533         (get_new_name): Check for close_phi nodes.
14534         (copy_loop_phi_args): Use phi_node_kind.
14535         (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
14536         (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
14537
14538 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14539             Sebastian Pop  <s.pop@samsung.com>
14540
14541         Revert commit r229783.
14542         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
14543         Remove use of parameter_rename_map.
14544         (copy_def): Remove.
14545         (copy_internal_parameters): Remove.
14546         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
14547         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
14548         (free_sese_info): Do not free parameter_rename_map.
14549         (set_rename): Do not use parameter_rename_map.
14550         (rename_uses): Update call to set_rename.
14551         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
14552         * sese.h (parameter_rename_map_t): Remove.
14553         (struct sese_info_t): Remove field parameter_rename_map.
14554
14555 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14556             Sebastian Pop  <s.pop@samsung.com>
14557
14558         * graphite-isl-ast-to-gimple.c: Fix comment.
14559         * graphite-scop-detection.c (defined_in_loop_p): New.
14560         (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
14561         names defined in loop.
14562
14563 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14564             Sebastian Pop  <s.pop@samsung.com>
14565
14566         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
14567         Discard unstructured if-then-else regions.
14568
14569 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14570             Sebastian Pop  <s.pop@samsung.com>
14571
14572         * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
14573         (cleanup_loop_iter_dom): Remove.
14574         (build_loop_iteration_domains): Remove.
14575         (build_scop_context): Remove.
14576         (build_scop_iteration_domain): Remove.
14577         (add_loop_constraints): New.
14578         (build_iteration_domains): New.
14579         (build_poly_scop): Call build_iteration_domains.
14580
14581 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14582             Sebastian Pop  <s.pop@samsung.com>
14583
14584         * graphite-scop-detection.c
14585         (scop_detection::harmful_loop_in_region): Free dom and loops.
14586         (scop_detection::loop_body_is_valid_scop): Free bbs.
14587
14588 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14589             Sebastian Pop  <s.pop@samsung.com>
14590
14591         * graphite-scop-detection.c (record_loop_in_sese): New.
14592         (gather_bbs::before_dom_children): Call record_loop_in_sese.
14593         (build_scops): Remove call to build_sese_loop_nests.
14594         * sese.c (sese_record_loop): Remove.
14595         (build_sese_loop_nests): Remove.
14596         (new_sese_info): Remove region->loops.
14597         (free_sese_info): Same.
14598         * sese.h (sese_contains_loop): Same.
14599         (build_sese_loop_nests): Remove.
14600         (sese_contains_loop): Remove.
14601
14602 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14603             Sebastian Pop  <s.pop@samsung.com>
14604
14605         * graphite-scop-detection.c (loop_is_valid_scop): Renamed
14606         loop_is_valid_in_scop.
14607         (scop_detection::harmful_stmt_in_region): Renamed
14608         harmful_loop_in_region.
14609         Call loop_is_valid_in_scop.
14610
14611 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14612             Sebastian Pop  <s.pop@samsung.com>
14613
14614         * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
14615         isl_ast_node_mark.
14616
14617 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14618             Sebastian Pop  <s.pop@samsung.com>
14619
14620         * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
14621         * graphite.h (struct poly_bb): Remove field is_reduction.
14622         (PBB_IS_REDUCTION): Remove.
14623
14624 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14625             Sebastian Pop  <s.pop@samsung.com>
14626
14627         * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
14628         (add_pdr_constraints): Same.
14629         (scop_get_reads): Same.
14630         (scop_get_must_writes): Same.
14631         (scop_get_may_writes): Same.
14632         (scop_get_original_schedule): Same.
14633         (extend_schedule): Same.
14634         (apply_schedule_on_deps): Same.
14635         (carries_deps): Same.
14636         (compute_deps): Same.
14637         (scop_get_dependences): Same.
14638         * graphite-isl-ast-to-gimple.c
14639         (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
14640         * graphite-optimize-isl.c (get_schedule_for_band): Same.
14641         (get_schedule_for_band_list): Same.
14642         (get_schedule_map): Same.
14643         (apply_schedule_map_to_scop): Same.
14644         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
14645         (build_loop_iteration_domains): Same.
14646         (add_condition_to_pbb): Same.
14647         (add_param_constraints): Same.
14648         (pdr_add_memory_accesses): Same.
14649         (pdr_add_data_dimensions): Same.
14650
14651 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
14652
14653         * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
14654         requirements.
14655
14656 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
14657
14658         * common.opt (feliminate-dwarf2-dups): Replace references to
14659         "DWARF 2" with just "DWARF".
14660         * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
14661         * doc/extend.texi: Likewise.
14662         * doc/cpp.texi: Likewise.
14663         * doc/invoke.texi: Likewise.
14664         (Option Summary): Add -gdwarf to list of Debugging Options.
14665         (Debugging Options): Document -gdwarf.
14666         * doc/contrib.texi: Spell "DWARF" like that.
14667
14668 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
14669
14670         * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
14671         warning.  Fix up formatting.
14672
14673         PR middle-end/67653
14674         * gimplify.c (gimplify_asm_expr): Warn if it is too late to
14675         attempt to mark memory input operand addressable and
14676         call prepare_gimple_addressable in that case.  Don't adjust
14677         input_location for diagnostics, use error_at instead.
14678
14679 2016-01-20  Peter Bergner  <bergner@vnet.ibm.com>
14680
14681         * config/rs6000/ppc-auxv.h: New file.
14682         * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
14683         (cpu_is): Likewise.
14684         (cpu_supports): Likewise.
14685         * config/rs6000/rs6000.c: include "ppc-auxv.h".
14686         (cpu_is_info): New variable.
14687         (cpu_supports_info): Likewise.
14688         (tcb_verification_symbol): Likewise.
14689         (cpu_builtin_p): Likewise.
14690         (cpu_expand_builtin): New function.
14691         (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
14692         (rs6000_init_builtins): Likewise.
14693         (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
14694         * config/rs6000/rs6000.h (TLS_REGNUM): New define.
14695         * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
14696         * configure: Regenerate.
14697         * config.in: Likewise.
14698         * doc/extend.texi (PowerPC Built-in Functions): Document
14699         __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
14700
14701 2016-01-20  David Edelsohn  <dje.gcc@gmail.com>
14702
14703         PR target/68609
14704         * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
14705         domain check.
14706         * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
14707         for V4SFmode.
14708
14709 2016-01-20  Richard Henderson  <rth@redhat.com>
14710
14711         PR bootstrap/69343
14712         PR bootstrap/69339
14713         PR tree-opt/68964
14714         Revert:
14715         * tree.c (tm_define_builtin): New.
14716         (find_tm_vector_type): New.
14717         (build_tm_vector_builtins): New.
14718         (build_common_builtin_nodes): Call it.
14719
14720 2016-01-20  Christophe Lyon  <christophe.lyon@linaro.org>
14721
14722         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
14723         (arm_fp_ok): Likewise.
14724         (arm_fp): Likewise.
14725         (arm_crypto): Likewise.
14726
14727 2016-01-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
14728             Richard Biener  <rguenther@suse.de>
14729
14730         PR tree-optimization/69328
14731         * tree-vect-stmts.c (vect_is_simple_cond): Check compared
14732         vectors have same number of elements.
14733         (vectorizable_condition): Fix masked version recognition.
14734
14735 2016-01-20  Richard Biener  <rguenther@suse.de>
14736
14737         PR tree-optimization/69345
14738         * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
14739         (VN_INFO_PTR_INFO): Likewise.
14740         * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
14741         info when it is equal between non-dominating SSA names.
14742         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
14743         Make sure to look at original SSA infos.
14744
14745 2016-01-20  Jeff Law  <law@redhat.com>
14746
14747         PR target/25114
14748         * config/m68k/predicates.md (pow2_m1_operand): New predicate
14749         extracted from ...
14750         (reg_or_pow2_m1_operand): Call pow2_m1_operand.
14751         (pc_or_label_operand): New predicate.
14752         * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
14753         tests for small integers that are 2^n - 1.
14754
14755 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
14756
14757         * doc/invoke.texi (Options Summary): Add '.' after @xref.
14758
14759 2016-01-19  Jeff Law  <law@redhat.com>
14760
14761         PR middle-end/69347
14762         * tree-ssa-threadbackwards.c
14763         (fsm_find_control_statement_thread_paths): Do not try to lookup
14764         FSM paths for SSA_NAMEs appearing in abnormal PHIs.
14765
14766 2016-01-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
14767
14768         * doc/lto.texi: Remove text that says only Gold has linker plugin
14769         support.
14770
14771 2016-01-19  Eric Botcazou  <ebotcazou@adacore.com>
14772
14773         * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
14774         (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
14775         the DIE accordingly.
14776         (modified_type_die): Add REVERSE parameter and pass it recursively,
14777         as well as to base_type_die.  Adjust presence check accordingly.
14778         (base_type_for_mode): Adjust call to modified_type_die.
14779         (add_type_attribute): Add REVERSE parameter and pass it to
14780         modified_type_die.
14781         (generic_parameter_die): Adjust call to add_type_attribute.
14782         (add_scalar_info): Likewise.
14783         (add_subscript_info): Likewise.
14784         (gen_array_type_die): Likewise.
14785         (gen_descr_array_type_die): Likewise.
14786         (gen_entry_point_die): Likewise.
14787         (gen_enumeration_type_die): Likewise.
14788         (gen_formal_parameter_die): Likewise.
14789         (gen_subprogram_die): Likewise.
14790         (gen_variable_die ): Likewise.
14791         (gen_const_die): Likewise.
14792         (gen_field_die): Likewise.
14793         (gen_pointer_type_die): Likewise.
14794         (gen_reference_type_die): Likewise.
14795         (gen_ptr_to_mbr_type_die): Likewise.
14796         (gen_inheritance_die): Likewise.
14797         (gen_subroutine_type_die): Likewise.
14798         (gen_typedef_die): Likewise.
14799         (force_type_die): Adjust call to modified_type_die.
14800
14801 2016-01-19  Sandra Loosemore  <sandra@codesourcery.com>
14802
14803         * doc/standards.texi: Copy-editing for grammar, markup, and sentence
14804         flow throughout the file.  Fix broken link to Objective-C 2.0
14805         documentation.
14806         * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
14807         errors.
14808
14809 2016-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
14810
14811         * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
14812
14813 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
14814
14815         PR ipa/66223
14816         * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
14817         (maybe_record_node): Record cxa_pure_virtual as the only possible
14818         target if there are not ohter candidates.
14819         (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
14820
14821 2016-01-19  Richard Biener  <rguenther@suse.de>
14822
14823         * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
14824         (get_memory_order): Likewise.
14825
14826 2016-01-19  Kirill Yukhin  <kirill.yukhin@intel.com>
14827
14828         * tree-vect-stmts.c (vectorizable_store): Check
14829         rhs vectype.
14830
14831 2016-01-19  David Malcolm  <dmalcolm@redhat.com>
14832
14833         PR jit/68446
14834         * gcc.c (driver::decode_argv): Add call to
14835         init_opts_obstack before init_options_struct.
14836         * opts.c (init_opts_obstack): Remove idempotency.
14837         (init_options_struct): Replace call to init_opts_obstack
14838         with a gcc_assert to verify that it has already been called.
14839         * toplev.c (toplev::main): Add call to init_opts_obstack before
14840         calls to init_options_struct.
14841         (toplev::finalize): Move cleanup of opts_obstack next to
14842         cleanup of save_decoded_options, clearing the latter, and
14843         save_decoded_options_count.
14844
14845 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14846
14847         PR target/69135
14848         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
14849         attribute to unconditional.  Remove %? from output template.
14850
14851 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
14852             Jiong Wang  <jiong.wang@arm.com>
14853
14854         * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
14855         generated from different expand order.
14856
14857 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
14858
14859         * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
14860         Add support for CCMP costing.
14861
14862 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
14863
14864         * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
14865         * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
14866         (fccmpe<mode>): Likewise.
14867         (fcmp): Rename to fcmp and globalize pattern.
14868         (fcmpe): Likewise.
14869         * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
14870         (aarch64_gen_ccmp_next): Add FP support.
14871
14872 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
14873
14874         * target.def (gen_ccmp_first): Update documentation.
14875         (gen_ccmp_next): Likewise.
14876         * doc/tm.texi (gen_ccmp_first): Update documentation.
14877         (gen_ccmp_next): Likewise.
14878         * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
14879         expand_ccmp_expr_1.  Improve comments.
14880         * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
14881         (ccmp_ior<mode>): Remove pattern.
14882         (cmp<mode>): Remove expand.
14883         (cmp): Globalize pattern.
14884         (cstorecc4): Use cc_register.
14885         (mov<mode>cc): Remove ccmp_cc_register check.
14886         * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
14887         Simplify after removal of CC_DNE/* modes.
14888         (aarch64_ccmp_mode_to_code): Remove.
14889         (aarch64_print_operand): Remove 'K' case.  Merge 'm' and 'M' cases.
14890         In 'k' case use integer as condition.
14891         (aarch64_nzcv_codes): Remove inverted cases.
14892         (aarch64_code_to_ccmode): Remove.
14893         (aarch64_gen_ccmp_first): Use cmp pattern directly.  Return the correct
14894         comparison with CC register to be used in folowing CCMP/branch/CSEL.
14895         (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
14896         pattern.  Return the comparison with CC register.  Invert conditions
14897         when bitcode is OR.
14898         * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
14899         * config/aarch64/predicates.md (ccmp_cc_register): Remove.
14900
14901 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
14902
14903         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
14904         instrumented_version.
14905
14906 2016-01-19  Richard Biener  <rguenther@suse.de>
14907
14908         PR tree-optimization/69336
14909         * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
14910         handled components with get_ref_base_and_extent.
14911         (equal_mem_array_ref_p): Adjust.
14912
14913 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
14914
14915         PR debug/65779
14916         * shrink-wrap.c: Include valtrack.h.
14917         (move_insn_for_shrink_wrap): Add DEBUG argument.  If
14918         MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
14919         in between insn and where it will be moved to.  Call
14920         dead_debug_insert_temp.
14921         (prepare_shrink_wrap): Adjust caller.  Call dead_debug_local_init
14922         first and dead_debug_local_finish at the end.
14923         For uses and defs bitmap, handle all regs in between REGNO and
14924         END_REGNO, not just the first one.
14925
14926 2016-01-19  Richard Biener  <rguenther@suse.de>
14927
14928         PR tree-optimization/69352
14929         * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
14930         (equal_mem_array_ref_p): Constrain size and max size properly.
14931         Compare the reverse flag.
14932
14933 2016-01-19  Bernd Schmidt  <bschmidt@redhat.com>
14934
14935         * ira.c (ira): Update regstat data if we deleted insns.
14936
14937 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
14938
14939         PR rtl-optimization/68955
14940         PR rtl-optimization/64557
14941         * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
14942         here.  Fix up formatting.
14943         * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
14944
14945 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
14946
14947         PR lto/69133
14948         * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
14949         assume that the node has body.
14950         * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
14951         check.
14952
14953 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
14954
14955         * lto-streamer-out.c (lto_output): Do not stream instrumentation
14956         thunks.
14957
14958 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
14959
14960         * symtab.c (symtab_node::asm_name): Do not call printable name directly.
14961         (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
14962
14963 2016-01-19  Martin Jambor  <mjambor@suse.cz>
14964             Martin Liska  <mliska@suse.cz>
14965             Michael Matz  <matz@suse.de>
14966
14967         * Makefile.in (OBJS): Add new source files.
14968         (GTFILES): Add hsa.c.
14969         * common.opt (disable_hsa): New variable.
14970         (-Whsa): New warning.
14971         * config.in (ENABLE_HSA): New.
14972         * configure.ac: Treat hsa differently from other accelerators.
14973         (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
14974         $enable_offloading.
14975         (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
14976         * doc/install.texi (Configuration): Document --with-hsa-runtime,
14977         --with-hsa-runtime-include, --with-hsa-runtime-lib and
14978         --with-hsa-kmt-lib.
14979         * doc/invoke.texi (-Whsa): Document.
14980         (hsa-gen-debug-stores): Likewise.
14981         * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
14982         to invoke offload compiler for hsa acclerator.
14983         * opts.c (common_handle_option): Determine whether HSA offloading
14984         should be performed.
14985         * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
14986         * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
14987         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
14988         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
14989         * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
14990         * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
14991         GF_OMP_FOR_KIND_GRID_LOOP.
14992         (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
14993         (pp_gimple_stmt_1): Likewise.
14994         * gimple-walk.c (walk_gimple_stmt): Likewise.
14995         * gimple.c (gimple_build_omp_grid_body): New function.
14996         (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
14997         * gimple.def (GIMPLE_OMP_GRID_BODY): New.
14998         * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
14999         GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
15000         GF_OMP_TEAMS_GRID_PHONY.
15001         (gimple_statement_omp_single_layout): Updated comments.
15002         (gimple_build_omp_grid_body): New function.
15003         (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
15004         (gimple_omp_for_grid_phony): New function.
15005         (gimple_omp_for_set_grid_phony): Likewise.
15006         (gimple_omp_parallel_grid_phony): Likewise.
15007         (gimple_omp_parallel_set_grid_phony): Likewise.
15008         (gimple_omp_teams_grid_phony): Likewise.
15009         (gimple_omp_teams_set_grid_phony): Likewise.
15010         (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
15011         * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
15012         (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
15013         (BUILT_IN_GOMP_TARGET): Updated type.
15014         * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
15015         (adjust_for_condition): New function.
15016         (get_omp_for_step_from_incr): Likewise.
15017         (extract_omp_for_data): Moved parts to adjust_for_condition and
15018         get_omp_for_step_from_incr.
15019         (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
15020         (fixup_child_record_type): Bail out if receiver_decl is NULL.
15021         (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
15022         (scan_omp_parallel): Do not create child functions for phony
15023         constructs.
15024         (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
15025         (scan_omp_1_op): Checking assert we are not remapping to
15026         ERROR_MARK.  Also also handle GIMPLE_OMP_GRID_BODY.
15027         (parallel_needs_hsa_kernel_p): New function.
15028         (expand_parallel_call): Register apprpriate parallel child
15029         functions as HSA kernels.
15030         (grid_launch_attributes_trees): New type.
15031         (grid_attr_trees): New variable.
15032         (grid_create_kernel_launch_attr_types): New function.
15033         (grid_insert_store_range_dim): Likewise.
15034         (grid_get_kernel_launch_attributes): Likewise.
15035         (get_target_argument_identifier_1): Likewise.
15036         (get_target_argument_identifier): Likewise.
15037         (get_target_argument_value): Likewise.
15038         (push_target_argument_according_to_value): Likewise.
15039         (get_target_arguments): Likewise.
15040         (expand_omp_target): Call get_target_arguments instead of looking
15041         up for teams and thread limit.
15042         (grid_expand_omp_for_loop): New function.
15043         (grid_arg_decl_map): New type.
15044         (grid_remap_kernel_arg_accesses): New function.
15045         (grid_expand_target_kernel_body): New function.
15046         (expand_omp): Call it.
15047         (lower_omp_for): Do not emit phony constructs.
15048         (lower_omp_taskreg): Do not emit phony constructs but create for them
15049         a temporary variable receiver_decl.
15050         (lower_omp_taskreg): Do not emit phony constructs.
15051         (lower_omp_teams): Likewise.
15052         (lower_omp_grid_body): New function.
15053         (lower_omp_1): Call it.
15054         (grid_reg_assignment_to_local_var_p): New function.
15055         (grid_seq_only_contains_local_assignments): Likewise.
15056         (grid_find_single_omp_among_assignments_1): Likewise.
15057         (grid_find_single_omp_among_assignments): Likewise.
15058         (grid_find_ungridifiable_statement): Likewise.
15059         (grid_target_follows_gridifiable_pattern): Likewise.
15060         (grid_remap_prebody_decls): Likewise.
15061         (grid_copy_leading_local_assignments): Likewise.
15062         (grid_process_kernel_body_copy): Likewise.
15063         (grid_attempt_target_gridification): Likewise.
15064         (grid_gridify_all_targets_stmt): Likewise.
15065         (grid_gridify_all_targets): Likewise.
15066         (execute_lower_omp): Call grid_gridify_all_targets.
15067         (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
15068         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
15069         (tree_omp_clause): Added union field dimension.
15070         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
15071         * tree.c (omp_clause_num_ops): Added number of arguments of
15072         OMP_CLAUSE__GRIDDIM_.
15073         (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
15074         (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
15075         * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
15076         (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
15077         (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
15078         (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
15079         * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
15080         * tree-pass.h (make_pass_gen_hsail): Declare.
15081         (make_pass_ipa_hsa): Likewise.
15082         * ipa-hsa.c: New file.
15083         * lto-section-in.c (lto_section_name): Add hsa section name.
15084         * lto-streamer.h (lto_section_type): Add hsa section.
15085         * timevar.def (TV_IPA_HSA): New.
15086         * hsa-brig-format.h: New file.
15087         * hsa-brig.c: New file.
15088         * hsa-dump.c: Likewise.
15089         * hsa-gen.c: Likewise.
15090         * hsa.c: Likewise.
15091         * hsa.h: Likewise.
15092         * toplev.c (compile_file): Call hsa_output_brig.
15093         * hsa-regalloc.c: New file.
15094
15095 2016-01-18  Jeff Law  <law@redhat.com>
15096
15097         PR tree-optimization/69320
15098         * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
15099         ranged object, do nothing if the RHS constant is not [0..1].
15100         (optimize_stmt): Comparing a boolean ranged object against a
15101         constant outside [0..1] results in a compile-time constant.
15102
15103         * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
15104         test.
15105
15106 2016-01-18  Sandra Loosemore  <sandra@codesourcery.com>
15107
15108         * doc/invoke.texi (Invoking GCC): Add new section to menu.
15109         (Option Summary): Update to reflect new section and moved options.
15110         (C++ Dialect Options): Move -fstats to new section.
15111         (Debugging Options): Move all dump, statistics, and other GCC
15112         developer options to new section.  Rewrite section introduction
15113         and re-order remaining options to put the more basic ones first.
15114         (Optimization Options): Move -fira-verbose and -flto-report* to
15115         new section.
15116         (Developer Options): New section incorporating moved options.
15117         * doc/cppopts.texi (-dM): Update cross-reference.
15118
15119 2016-01-18  Richard Henderson  <rth@redhat.com>
15120
15121         PR target/69176
15122         * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
15123         operands to pseudo only if CSE is expected.  Split long immediate
15124         operands only after reload, and for the stack pointer.
15125         (*add<GPI>3_pluslong): Remove.
15126         (*addsi3_aarch64, *adddi3_aarch64): Merge into...
15127         (*add<GPI>3_aarch64): ... here.  Add r/rk/Upl alternative.
15128         (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
15129         (*add<GPI>3 peepholes): New.
15130         (*add<GPI>3 splitters): New.
15131         * config/aarch64/constraints.md (Upl): New.
15132         * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
15133
15134 2016-01-18  Richard Biener  <rguenther@suse.de>
15135
15136         PR tree-optimization/69297
15137         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
15138         stmt at most once.
15139         (vect_bb_vectorization_profitable_p): Clear visited flag again.
15140
15141 2016-01-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
15142
15143         PR middle-end/68542
15144         * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
15145         of mixind vector and scalar types.
15146         (fold_relational_const): Add handling of vector
15147         comparison with boolean result.
15148         * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
15149         comparison of vector operands with boolean result for EQ/NE only.
15150         (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
15151         (verify_gimple_cond): Likewise.
15152         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
15153         valid type of VAL.
15154
15155 2016-01-18  Joseph Myers  <joseph@codesourcery.com>
15156
15157         * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
15158         !TARGET_OCTEON.
15159
15160 2016-01-18  Richard Biener  <rguenther@suse.de>
15161
15162         PR middle-end/69308
15163         * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
15164
15165 2016-01-18  Tom de Vries  <tom@codesourcery.com>
15166
15167         * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
15168
15169 2016-01-18  Tom de Vries  <tom@codesourcery.com>
15170
15171         * omp-low.c (set_oacc_fn_attrib): Make extern.
15172         * omp-low.h (set_oacc_fn_attrib): Declare.
15173         * tree-parloops.c (struct reduction_info): Add reduc_addr field.
15174         (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
15175         (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
15176         Add and handle function parameter oacc_kernels_p.
15177         (find_reduc_addr, get_omp_data_i_param): New function.
15178         (ref_conflicts_with_region, oacc_entry_exit_ok_1)
15179         (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
15180         (parallelize_loops): Add and handle function parameter oacc_kernels_p.
15181         Calculate dominance info.  Skip loops that are not in a kernels region
15182         in oacc_kernels_p mode.  Skip inner loops of parallelized loops.
15183         (pass_parallelize_loops::execute): Call parallelize_loops with
15184         oacc_kernels_p argument.
15185         (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
15186         New member function.
15187         (pass_parallelize_loops::bool oacc_kernels_p): New member var.
15188         * passes.def: Add argument to pass_parallelize_loops instantation.
15189
15190 2016-01-18  Tom de Vries  <tom@codesourcery.com>
15191
15192         * tree-parloops.c (pass_parallelize_loops::execute): Allow
15193         pass_parallelize_loops to be run outside the loop pipeline.
15194
15195 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
15196
15197         * tree-scalar-evolution.c (follow_copies_to_constant): New.
15198         (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
15199
15200 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
15201
15202         PR target/63679
15203         * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
15204         using get_ref_base_and_extent.
15205         (equal_mem_array_ref_p): New.
15206         (hashable_expr_equal_p): Add call to previous.
15207
15208 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
15209
15210         PR target/63679
15211         * tree-sra.c (disqualified_constants, constant_decl_p): New.
15212         (sra_initialize): Allocate disqualified_constants.
15213         (sra_deinitialize): Free disqualified_constants.
15214         (disqualify_candidate): Update disqualified_constants when appropriate.
15215         (create_access): Scan for constant-pool entries as we go along.
15216         (scalarizable_type_p): Add check against type_contains_placeholder_p.
15217         (maybe_add_sra_candidate): Allow constant-pool entries.
15218         (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
15219         (initialize_constant_pool_replacements): New.
15220         (sra_modify_assign): Avoid mangling assignments created by previous,
15221         and don't generate writes into constant pool.
15222         (sra_modify_function_body): Call initialize_constant_pool_replacements.
15223
15224 2016-01-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
15225
15226         * config/i386/i386.c (scalar_to_vector_candidate_p): Support
15227         andnot instruction.
15228         (scalar_chain::convert_op): Likewise.
15229         * config/i386/i386.md (*andndi3_doubleword): New.
15230
15231 2016-01-18  Richard Biener  <rguenther@suse.de>
15232
15233         PR tree-optimization/69170
15234         * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
15235         building a vector from scalar results of a pattern stmt.
15236
15237 2016-01-18  Jakub Jelinek  <jakub@redhat.com>
15238
15239         * haifa-sched.c (autopref_multipass_init): Work around
15240         -Wmaybe-uninitialized warning.
15241
15242 2016-01-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
15243
15244         * config/arm/arm.c (thumb1_reorg): Check that the comparison is
15245         against the constant 0.
15246
15247 2016-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15248
15249         PR tree-optimization/68799
15250         * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
15251         look up phi candidates in the statement-candidate map.
15252         (phi_add_costs): Likewise.
15253         (record_phi_increments): Likewise.
15254         (phi_incr_cost): Likewise.
15255         (ncd_with_phi): Likewise.
15256         (all_phi_incrs_profitable): Likewise.
15257
15258 2016-01-17  Jakub Jelinek  <jakub@redhat.com>
15259
15260         * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
15261         -Wmaybe-uninitialized warning.
15262
15263 2016-01-16  Sandra Loosemore  <sandra@codesourcery.com>
15264
15265         * doc/invoke.texi (Invoking GCC): Add new section to menu.
15266         (Option Summary): Update to reflect new section and moved options.
15267         (C++ Dialect Options): Move -fvtable-verify and related options.
15268         (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
15269         and profiling-related options.
15270         (Optimization Options): Move profile generation options and
15271         -fstack-protector and related options.
15272         (Instrumentation Options): New section incorporating moved options.
15273         (Code Generation Options): Move -finstrument-functions and
15274         related options, -fstack-check, -fstack-limit*, and -fbounds-check.
15275
15276 2016-01-16  Tom de Vries  <tom@codesourcery.com>
15277
15278         * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
15279
15280 2016-01-16  Tom de Vries  <tom@codesourcery.com>
15281
15282         * omp-low.c (expand_omp_atomic_fetch_op):  Release defs of update stmt.
15283
15284 2016-01-16  Richard Sandiford  <richard.sandiford@arm.com>
15285
15286         * hash-table.h (hash_table::empty): Turn into an inline wrapper
15287         that checks whether the table is already empty.  Rename the
15288         original implementation to...
15289         (hash_table::empty_slot): ...this new private function.
15290
15291 2016-01-15  David Malcolm  <dmalcolm@redhat.com>
15292
15293         PR diagnostic/68899
15294         * diagnostic-show-locus.c (layout::print_source_line): Move x
15295         offset of line until after call to
15296         get_line_width_without_trailing_whitespace.
15297
15298 2016-01-15  Jeff Law  <law@redhat.com>
15299
15300         PR tree-optimization/69270
15301         * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
15302         tree-ssa-dom.c.  Improve test for [0..1] ranve from VRP.
15303         * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
15304         * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
15305         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
15306         ssa_name_has_boolean_range and constant_boolean_node.
15307
15308 2016-01-15  Vladimir Makarov  <vmakarov@redhat.com>
15309
15310         PR rtl-optimization/69030
15311         * lra-spills.c (remove_pseudos): Check nrefs and make the function
15312         returning bool.
15313         (spill_pseudos): Delete debug insn for dead pseudo.
15314         (lra_spill): Initiate spill_hard_reg and slots memory separately.
15315
15316 2016-01-15  Jiong Wang  <jiong.wang@arm.com>
15317
15318         * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
15319         New.
15320         (TYPES_UNOPUS): Likewise.
15321         * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
15322         builtin type, from UNOP to UNOPUS.
15323         (lbtruncuv4sf): Likewise.
15324         (lbtruncuv2df): Likewise.
15325         (lrounduv2sf): Likewise.
15326         (lrounduv4sf): Likewise.
15327         (lrounduv2df): Likewise.
15328         (lroundusf): Likewise.
15329         (lroundusf): Likewise.
15330         (lceiluv2sf): Likewise.
15331         (lceiluv4sf): Likewise.
15332         (lceiluv2df): Likewise.
15333         (lceilusf): Likewise.
15334         (lceiludf): Likewise.
15335         (lflooruv2sf): Likewise.
15336         (lflooruv4sf): Likewise.
15337         (lflooruv2df): Likewise.
15338         (lfloorusf): Likewise.
15339         (lfloorudf): Likewise.
15340         (lfrintnuv2sf): Likewise.
15341         (lfrintnuv4sf): Likewise.
15342         (lfrintnuv2df): Likewise.
15343         (lfrintnusf): Likewise.
15344         (lfrintnudf): Likewise.
15345         * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
15346         conversion.
15347         (vcvtq_u32_f32): Likewise.
15348         (vcvtq_u64_f64): Likewise.
15349         (vcvta_u32_f32): Likewise.
15350         (vcvtaq_u32_f32): Likewise.
15351         (vcvtaq_u64_f64): Likewise.
15352         (vcvtm_u32_f32): Likewise.
15353         (vcvtmq_u32_f32): Likewise.
15354         (vcvtmq_u64_f64): Likewise.
15355         (vcvtn_u32_f32): Likwise.
15356         (vcvtnq_u32_f32): Likewise.
15357         (vcvtnq_u64_f64): Likewise.
15358         (vcvtp_u32_f32): Likewise.
15359         (vcvtpq_u32_f32): Likewise.
15360         (vcvtpq_u64_f64): Likewise.
15361         (vcvtmd_u64_f64): Likewise.
15362         (vcvtms_u32_f32): Likewise.
15363         (vcvtad_u64_f64): Likewise.
15364         (vcvtas_u32_f32): Likewise.
15365         (vcvtnd_u64_f64): Likewise.
15366         (vcvtns_u32_f32): Likewise.
15367         (vcvtpd_u64_f64): Likewise.
15368         (vcvtps_u32_f32): Likewise.
15369
15370 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15371
15372         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
15373         CSEL of zero_extended registers.
15374
15375 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15376
15377         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
15378         Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
15379
15380 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15381
15382         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
15383         false when argument string is not found in the attributes table
15384         at all.
15385
15386 2016-01-15  David Edelsohn  <dje.gcc@gmail.com>
15387
15388         PR target/68609
15389         * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
15390         (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
15391         * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
15392         precision estimate.
15393
15394 2016-01-15  Richard Biener  <rguenther@suse.de>
15395
15396         PR tree-optimization/66856
15397         * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
15398         * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
15399         (vect_create_new_slp_node): Increment stmt reference count.
15400         (vect_get_and_check_slp_defs): Make sure stmts are nor already in
15401         an SLP tree before swapping operands.
15402         (vect_build_slp_tree): Likewise.
15403         (destroy_bb_vec_info): Free stmt info after SLP instances.
15404         * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
15405         * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
15406         (STMT_VINFO_NUM_SLP_USES): New macro.
15407
15408 2016-01-15  Richard Biener  <rguenther@suse.de>
15409
15410         PR debug/69137
15411         * dwarf2out.c (add_linkage_name_raw): New function split out from ...
15412         (add_linkage_name): ... here.
15413         (gen_typedef_die): Use add_linkage_name_raw instead of
15414         add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
15415         if necessary.
15416
15417 2016-01-15  Cesar Philippidis  <cesar@codesourcery.com>
15418
15419         * gimplify.c (oacc_default_clause): Decode reference and pointer
15420         types for both kernels and parallel regions.
15421
15422 2016-01-15  Richard Sandiford  <richard.sandiford@arm.com>
15423
15424         PR middle-end/69246
15425         * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
15426
15427 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
15428
15429         * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
15430         (convert_scalars_to_vector): Likewise.
15431
15432 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
15433
15434         * doc/extend.texi (Type Traits): Fix grammar.
15435
15436 2016-01-15  Martin Jambor  <mjambor@suse.cz>
15437
15438         * tree-inline.c (remap_decl): Use existing dclarations if
15439         remapping a type and prevent_decl_creation_for_types.
15440         (replace_locals_stmt): Do an initial remapping of non-VLA typed
15441         decls first.  Do real remapping with
15442         prevent_decl_creation_for_types set.
15443         * tree-inline.h (copy_body_data): New field
15444         prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
15445         padding.
15446
15447 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
15448
15449         * config/s390/s390.opt (mmvcle): More verbose help text.
15450
15451 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
15452
15453         * config/s390/s390.opt: Add period to -mzvector option text.
15454
15455 2016-01-15  Richard Biener  <rguenther@suse.de>
15456
15457         PR tree-optimization/68961
15458         * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
15459         of invariants in stores again.
15460
15461 2016-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
15462
15463         * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
15464
15465 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
15466
15467         * config/i386/i386.c (ix86_expand_branch): Don't split
15468         DI mode xor instruction to SI mode.
15469
15470 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
15471
15472         PR ipa/68148
15473         * ipa-icf.c (sem_function::merge): Virtual functions may become
15474         reachable even if they address is not taken and there are no
15475         idrect calls.
15476
15477 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
15478
15479         * lto-streamer-out.c (subtract_estimated_size): New function.
15480         (get_symbol_initial_value): Use it.
15481
15482 2016-01-15  Christian Bruel  <christian.bruel@st.com>
15483
15484         PR target/65837
15485         * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
15486         (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
15487         (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
15488         use add_builtin_function_ext_scope instead of add_builtin_function.
15489         (neon_set_p, neon_crypto_set_p): Remove.
15490         (arm_init_builtins): Always call arm_init_neon_builtins and
15491         arm_init_crypto_builtins.
15492         (arm_expand_builtin): Check that builtins are allowed for the arch.
15493         * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
15494         * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
15495         arm_init_neon_builtins call.
15496
15497 2016-01-15  Richard Biener  <rguenther@suse.de>
15498
15499         PR tree-optimization/69117
15500         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
15501         * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
15502         of the leader conservatively.
15503         (free_scc_vn): Restore original SSA name infos.
15504
15505 2016-01-14  Jeff Law  <law@redhat.com>
15506
15507         PR tree-optimization/69270
15508         * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
15509         single bit of precision, verify it's also unsigned.
15510         (record_edge_info): Use constant_boolean_node rather than fold_convert
15511         to convert boolean_true/boolean_false to the right type.
15512
15513 2016-01-14  Richard Henderson  <rth@redhat.com>
15514
15515         PR rtl-opt/69014
15516         * loop-doloop.c (record_reg_sets): New.
15517         (doloop_optimize): Reject the transform if the sequence
15518         clobbers registers live at the end of the loop block.
15519         (doloop_optimize_loops): Enable df_live if needed.
15520
15521 2016-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
15522
15523         * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
15524         * config/rs6000/rs6000.c: Likewise.
15525         * config/rs6000/rs6000.h: Likewise.
15526         * config/rs6000/rs6000.md: Likewise.
15527         * doc/extend.texi: Likewsie.
15528
15529 2016-01-14  Jeff Law  <law@redhat.com>
15530
15531         * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
15532         typo.
15533
15534 2016-01-14  Richard Henderson  <rth@redhat.com>
15535
15536         PR c/69272
15537         PR tree-opt/68964
15538         * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
15539         * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
15540         instead of builtin_decl_declared_p to test for declaration.
15541
15542 2016-01-14  Nicklas Bo Jensen  <nbjensen@gmail.com>
15543
15544         * doc/loop.texi (Loop Analysis and Representation): Document
15545         loop_depth function.
15546
15547 2016-01-14  Tom de Vries  <tom@codesourcery.com>
15548
15549         PR tree-optimization/68773
15550         * omp-low.c (expand_omp_target): Don't set force_output.
15551         * varpool.c (varpool_node::get_create): Same.
15552         * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
15553         offload_funcs with force_output.
15554
15555 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
15556
15557         PR debug/69244
15558         * lra-eliminations.c (move_plus_up): Don't change anything if either
15559         the outer or inner subreg mode is not MODE_INT.
15560         * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
15561         integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
15562
15563 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
15564
15565         * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
15566         reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
15567         reduc_uplus_@var{m}): Remove.
15568         * expr.c (expand_expr_real_2): Remove expansion path for
15569         reduc_[us](min|max|plus) optabs.
15570         * optabs-tree.c (scalar_reduc_to_vector): Remove.
15571         * optabs-tree.h (scalar_reduc_to_vector): Remove.
15572         * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
15573         reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
15574         * tree-vect-loop.c (vectorizable_reduction): Remove test for
15575         reduc_[us](min|max|plus) optabs.
15576
15577 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
15578
15579         * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
15580         (reduc_plus_scal_v2sf): New.
15581         (reduc_smax_v2sf): Rename to...
15582         (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
15583         (reduc_smin_v2sf): Rename to...
15584         (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
15585
15586 2016-01-14  Jan Hubicka  <hubicka@ucw.cz>
15587
15588         * alias.c (compare_base_symbol_refs): New function.
15589         (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
15590         it.
15591
15592 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
15593
15594         PR middle-end/68146
15595         PR tree-optimization/69155
15596         * tree-complex.c: Include cfganal.h.
15597         (phis_to_revisit): New variable.
15598         (extract_component): Add phiarg_p argument.  Assert that returned
15599         SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
15600         (update_phi_components): Partly rewrite to use loop over real/imag
15601         components instead of code duplication.  If extract_component returns
15602         SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
15603         create_tmp_reg into the PHI node instead, and mention the phi triplet
15604         in phis_to_revisit.
15605         (tree_lower_complex): Walk bbs in rpo order.  Adjust phis recorded
15606         in phis_to_revisit at the end.
15607
15608 2016-01-14  Richard Biener  <rguenther@suse.de>
15609
15610         PR tree-optimization/68060
15611         * tree-vect-loop.c (vect_is_simple_reduction): Check the
15612         outer loop reduction is only used in the inner loop before
15613         detecting a double reduction.
15614
15615 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
15616
15617         PR target/68269
15618         * combine.c (expand_field_assignment): Punt if compute_mode is
15619         unsupported scalar mode.
15620
15621 2016-01-14  Richard Biener  <rguenther@suse.de>
15622
15623         PR tree-optimization/66856
15624         * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
15625         SLP node only if it built successfully.
15626         (vect_analyze_slp_instance): Adjust.
15627
15628 2016-01-14  Jeff Law  <law@redhat.com>
15629
15630         PR tree-optimization/69270
15631         * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
15632         (record_edge_info): Use it.  Convert boolean_{true,false}_node
15633         to the type of op0.
15634
15635 2016-01-13  Jan Hubicka  <hubicka@ucw.cz>
15636
15637         PR ipa/66487
15638         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
15639         use block_ultimate_origin
15640         (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
15641
15642 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
15643
15644         * doc/invoke.texi (Submodel Options): Rename section to
15645         "Machine-Dependent Options" to better reflect its content.
15646         Rewrite introductory text to remove archaic CPU names.
15647         Update references.
15648
15649 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
15650
15651         * doc/invoke.texi (Code Gen Options): Move section up in file,
15652         before target-specific options.  Update menu and option summary
15653         to reflect the new section ordering.
15654
15655 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
15656
15657         * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
15658         (C++ Dialect Options): Add cross-reference to -std option.
15659         * doc/standards.texi (C++ Language): Document C++14 support.
15660
15661 2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
15662
15663         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
15664         for pack/unpack functions for __ibm128.
15665         (PACK_IF): Likewise.
15666         (UNPACK_IF): Likewise.
15667
15668         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
15669         support for __ibm128 pack/unpack functions.
15670         (rs6000_invalid_builtin): Likewise.
15671         (rs6000_init_builtins): Likewise.
15672         (rs6000_opt_masks): Likewise.
15673
15674         * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
15675         (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
15676         functions
15677         (RS6000_BTM_COMMON): Likewise.
15678
15679         * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
15680         (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
15681         disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
15682         128-bit floating point.  Add support for the double values to be
15683         in Altivec registers for TF/IF packing and unpacking, but restrict
15684         TD packing sub-fields to be FPR registers.  Don't allow overlapped
15685         register support for packing.  Allow pack inputs to be memory
15686         locations.  Don't build generator functions for unpack<mode>_dm
15687         and unpack<mode>_nodm.
15688         (unpack<mode>_dm): Likewise.
15689         (unpack<mode>_nodm): Likewise.
15690         (pack<mode>): Likewise.
15691
15692         * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
15693         built-in functions to pack/unpack explicit __ibm128 values.
15694         (__builtin_unpack_ibm128): Likewise.
15695
15696         * doc/extend.texi (PowerPC Built-in Functions): Document
15697         __builtin_pack_ibm128 and __builtin_unpack_ibm128.
15698
15699 2016-01-13  Bernd Schmidt  <bschmidt@redhat.com>
15700
15701         PR c/66208
15702         * c-common.c (check_function_nonnull): Remove unnecessary declaration.
15703         Add new arg loc and pass it down as context.
15704         (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
15705         to the location to use for the warning.
15706         (check_function_arguments): New arg loc.  All callers changed.  Pass
15707         it to check_function_nonnull.
15708         * c-common.h (check_function_arguments): Adjust declaration.
15709
15710 2016-01-13  Jakub Jelinek  <jakub@redhat.com>
15711
15712         PR tree-optimization/69156
15713         * gimple.c (validate_type): Removed.
15714         (gimple_builtin_call_types_compatible_p): Use
15715         useless_type_conversion_p instead of validate_type.
15716         * value-prof.c (gimple_stringop_fixed_value): Fold
15717         icall_size to correct type.
15718
15719 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
15720
15721         * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
15722         effects.
15723
15724 2016-01-13  Richard Henderson  <rth@redhat.com>
15725
15726         PR tree-opt/68964
15727         * target.def (builtin_tm_load, builtin_tm_store): Remove.
15728         * config/i386/i386.c (ix86_builtin_tm_load): Remove.
15729         (ix86_builtin_tm_store): Remove.
15730         (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
15731         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
15732         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
15733         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
15734         * doc/tm.texi: Rebuild.
15735
15736         * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
15737         (BUILT_IN_TM_MEMCPY_RTWN): New.
15738         * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
15739         fallback from vector to integer helpers.
15740         (build_tm_load): Handle vector types directly, instead of
15741         via target hook.
15742         (build_tm_store): Likewise.
15743         (expand_assign_tm): Prepare for register types not handled by
15744         the above.  Copy them to memory and use memcpy.
15745         * tree.c (tm_define_builtin): New.
15746         (find_tm_vector_type): New.
15747         (build_tm_vector_builtins): New.
15748         (build_common_builtin_nodes): Call it.
15749
15750 2016-01-13  Uros Bizjak  <ubizjak@gmail.com>
15751
15752         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
15753         TARGET_SSE_MATH without TARGET_SSE2.  Rewrite.
15754
15755 2016-01-13  Tom de Vries  <tom@codesourcery.com>
15756
15757         PR tree-optimization/69169
15758         * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
15759         handled_struct_type param.
15760         (create_variable_info_for, intra_create_variable_infos): Call
15761         create_variable_info_for_1 with extra arg.
15762
15763 2016-01-13  Yvan Roux  <yvan.roux@linaro.org>
15764
15765         * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
15766         and "armv8.1-a+crc" entries.
15767
15768 2016-01-13  Alexander Fomin  <alexander.fomin@intel.com>
15769
15770         PR target/69228
15771         * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
15772         Change first operand predicate from register_or_constm1_operand
15773         to register_operand.
15774         (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
15775         (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
15776         (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
15777         (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
15778         (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
15779         (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
15780         (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
15781         * config/i386/i386.c (ix86_expand_builtin): Remove first operand
15782         comparison with constm1_rtx from vec_prefetch_gen part.
15783
15784 2016-01-13  Richard Biener  <rguenther@suse.de>
15785
15786         PR tree-optimization/69013
15787         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
15788         Exchange assert for a test.
15789
15790 2016-01-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15791
15792         PR target/69247
15793         * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
15794
15795 2016-01-13  Richard Biener  <rguenther@suse.de>
15796
15797         PR tree-optimization/69242
15798         * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
15799         assert with a check.
15800
15801 2016-01-13  Richard Biener  <rguenther@suse.de>
15802
15803         PR tree-optimization/69186
15804         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
15805         Properly guard vect_update_misalignment_for_peel call.
15806
15807 2016-01-12  Jeff Law  <law@redhat.com>
15808
15809         PR tree-optimization/pr67755
15810         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
15811         "need_profile_correction".
15812         (thread_block_1): Initialize new field to false by default.  If we
15813         have multiple thread paths through a common joiner to different
15814         final targets, then set new field to true.
15815         (compute_path_counts): Only do count adjustment when it's really
15816         needed.
15817
15818 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
15819
15820         * doc/invoke.texi (Spec Files): Move section down in file, past
15821         all command-line option descriptions.
15822
15823 2016-01-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15824
15825         PR middle-end/54809
15826         * doc/gty.texi: Remove documentation of mark_hook.
15827         * gengtype.c (struct write_types_data): Remove code to support
15828         mark_hook attribute.
15829         (walk_type): Likewise.
15830         (write_func_for_structure): Likewise.
15831
15832 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
15833
15834         * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
15835         Directory Options, and -specs= to Overall Options.
15836         (Overall Options): Adjust similarly.  Reorder to group related
15837         options together.  Make -specs= cross-reference the spec file details.
15838         (Directory Options): Adjust similarly.
15839
15840 2016-01-12  Jeff Law  <law@redhat.com>
15841
15842         * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
15843
15844 2016-01-12  Olivier Hainque  <hainque@adacore.com>
15845
15846         * gcc.c (spec_undefvar_allowed): New global.
15847         (process_command): Set to true when running for --version or --help,
15848         alone or together.
15849         (getenv_spec_function): When the variable is not defined, use the
15850         variable name as the variable value if we're allowed not to issue
15851         a fatal error.
15852
15853 2016-01-12  Bin Cheng  <bin.cheng@arm.com>
15854
15855         PR tree-optimization/68911
15856         * tree-vrp.c (adjust_range_with_scev): Check overflow in range
15857         information computed for expression "init + nit * step".
15858
15859 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
15860
15861         * doc/invoke.texi (Invoking GCC): Copy-edit.  Incorporate information
15862         about name of GCC executable.  Remove deleted node from menu.
15863         (Directory Options) <-B>: Remove cross-reference to deleted node.
15864         (Target Options): Delete section.
15865
15866 2016-01-12  Christian Bruel  <christian.bruel@st.com>
15867
15868         PR target/69180
15869         * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
15870         for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
15871
15872 2016-01-12  Jakub Jelinek  <jakub@redhat.com>
15873
15874         PR target/69198
15875         * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
15876         aligned_mem is properly set for AVX512-VL floating point masked
15877         stores.
15878
15879         PR target/69175
15880         * ifcvt.c (cond_exec_process_if_block): When removing the last
15881         insn from then_bb, remove also any possible barriers that follow it.
15882
15883 2016-01-12  H.J. Lu  <hongjiu.lu@intel.com>
15884
15885         PR target/68456
15886         PR target/69226
15887         * config/i386/iamcu.h (SIZE_TYPE): New macro.
15888         (PTRDIFF_TYPE): Likewise.
15889         (WCHAR_TYPE): Likewise.
15890         (WCHAR_TYPE_SIZE): Likewise.
15891         (STDINT_LONG32): Likewise.
15892
15893 2016-01-12  Richard Biener  <rguenther@suse.de>
15894
15895         PR tree-optimization/69053
15896         * tree-vect-loop.c (get_initial_def_for_reduction): Properly
15897         convert initial value for cond reductions.
15898
15899 2016-01-12  Richard Biener  <rguenther@suse.de>
15900
15901         PR tree-optimization/69007
15902         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
15903         widen_sum after dot_prod and sad.
15904
15905 2016-01-12  Richard Biener  <rguenther@suse.de>
15906
15907         PR tree-optimization/69168
15908         * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
15909         pattern stmt SLP type.
15910         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
15911         end up unused so cope with that case.
15912
15913 2016-01-12  Richard Biener  <rguenther@suse.de>
15914
15915         PR tree-optimization/69157
15916         * tree-vect-stmts.c (vectorizable_mask_load_store): Check
15917         stmts def type only during analyze phase.
15918         (vectorizable_call): Likewise.
15919         (vectorizable_simd_clone_call): Likewise.
15920         (vectorizable_conversion): Likewise.
15921         (vectorizable_assignment): Likewise.
15922         (vectorizable_shift): Likewise.
15923         (vectorizable_operation): Likewise.
15924         (vectorizable_store): Likewise.
15925         (vectorizable_load): Likewise.
15926
15927 2016-01-12  Richard Biener  <rguenther@suse.de>
15928
15929         PR tree-optimization/69174
15930         * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
15931         space.
15932         (vectorizable_load): Properly compute the number of loads needed
15933         for permuted strided SLP loads and do not spuriously assign
15934         to SLP_TREE_VEC_STMTS.
15935
15936 2016-01-12  Andris Pavenis  <andris.pavenis@iki.fi>
15937
15938         * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
15939         (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
15940         (MD_EXEC_PREFIX): Remove.
15941         (MD_STARTFILE_PREFIX) Removee.
15942         (FILE_NAME_ABSOLUTE_P): Remove.
15943         (CPP_SPEC): Do not read macros from sys/version.h.
15944         (LINK_COMMAND_SPEC): Remove.
15945         (LOCAL_INCLUDE_DIR): Remove.
15946         (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
15947         (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
15948         (POST_LINK_SPEC): Define to invoke stubify after linker
15949         (LIBSTDCXX): Remove define
15950         (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
15951         (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
15952         (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
15953         (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
15954         (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
15955         (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
15956         (i386_djgpp_asm_named_section): Add propotype of new procedure
15957
15958         * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
15959         (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
15960         (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
15961         in config/i386/djgpp.h).
15962         (STANDARD_STARTFILE_PREFIX_2): Define identical to
15963         STANDARD_STARTFILE_PREFIX_1.
15964         (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
15965         (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
15966         installation errors.
15967         (MAX_OFILE_ALIGNMENT): Define to 128.
15968         (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
15969
15970         * config/i386/djgpp.c: New file. Add implementation of
15971         i386_djgpp_asm_named_section.
15972
15973         * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
15974
15975         * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
15976         Add rule for building djgpp.o.
15977
15978 2016-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15979
15980         * config/rs6000/rs6000.c (v2df_reduction_p): New function.
15981         (rtx_is_swappable_p): Reductions are swappable.
15982         (insn_is_swappable_p): V2DF reductions are swappable.
15983
15984 2016-01-11  John David Anglin  <danglin@gcc.gnu.org>
15985
15986         * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
15987         reloads for other unsupported memory operands.
15988
15989 2016-01-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
15990             Jim Wilson  <jim.wilson@linaro.org>
15991
15992         PR target/69194
15993         * config/arm/arm-builtins.c (arm_expand_neon_args): Call
15994         copy_to_mode_reg instead of force_reg.
15995
15996 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
15997
15998         PR target/69225
15999         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
16000         TARGET_80387 is true.
16001
16002 2016-01-11  Jakub Jelinek  <jakub@redhat.com>
16003
16004         PR target/69071
16005         * lra-eliminations.c (move_plus_up): Only move plus up
16006         if subreg of the constant can be simplified into constant
16007         and use the simplified subreg of the constant instead of
16008         the original constant.
16009
16010         * fold-const.c (fold_convertible_p): Don't return true
16011         for conversion of VECTOR_TYPE to same sized integral type.
16012         (fold_convert_loc): Fix up formatting.  Fold conversion of
16013         VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
16014         instead of NOP_EXPR.
16015
16016         PR tree-optimization/69214
16017         * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
16018         innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
16019         Formatting fix.
16020
16021         PR tree-optimization/69207
16022         * tree-vect-slp.c (vect_get_constant_vectors): For
16023         VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
16024         fold_convertible_p to vector_type's element type, and always
16025         use VCE for non-VECTOR_BOOLEAN_TYPE_P.
16026
16027 2016-01-11  Richard Biener  <rguenther@suse.de>
16028
16029         PR tree-optimization/69173
16030         * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
16031         fixup the cycle if all stmts are in a pattern.
16032
16033 2016-01-11  Uros Bizjak  <ubizjak@gmail.com>
16034
16035         PR middle-end/68999
16036         * alias.c (base_alias_check): Move check for addresses with
16037         alignment ANDs before the call for compare_base_decls.
16038         (memrefs_conflict_p): Return -1 for different decls
16039         that went through alignment adjustments.
16040
16041 2016-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16042
16043         PR rtl-optimization/68796
16044         * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
16045         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
16046         and QImode comparisons against zero with CC_NZmode.
16047         * config/aarch64/iterators.md (short_mask): New mode_attr.
16048
16049 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
16050
16051         * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
16052         (<avx512>_store<mode>_mask): Likewise.
16053
16054 2016-01-11  Bernd Schmidt  <bschmidt@redhat.com>
16055             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16056
16057         PR rtl-optimization/68841
16058         * ifcvt.c (struct noce_if_info): Add orig_x field.
16059         (bbs_ok_for_cmove_arith): Add to_rename parameter.
16060         Don't record conflicts on to_rename if it's present.
16061         Allow memory destinations in sets.
16062         (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
16063         blocks, passing orig_x to the checks.
16064         (noce_process_if_block): Set if_info->orig_x appropriately.
16065
16066 2016-01-11  Tom de Vries  <tom@codesourcery.com>
16067
16068         PR tree-optimization/69069
16069         * tree-parloops.c (create_parallel_loop): Add missing phi args.
16070
16071 2016-01-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
16072
16073         PR rtl-optimization/68920
16074         * config/i386/i386.c (ix86_option_override_internal): Restrict number
16075         of conditional moves for  RTL if-conversion to 1 for
16076         TARGET_ONE_IF_CONV_INSN.
16077         * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
16078         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
16079         * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
16080         parameter to restirct number of conditional moves for
16081         RTL if-conversion.
16082         * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
16083         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
16084         conditionl moves.
16085
16086 2016-01-11  Alexandre Oliva  <aoliva@redhat.com>
16087
16088         PR bootstrap/69123
16089         * var-tracking.c (drop_overlapping_mem_locs): Operate on all
16090         onepart vars.  Fix typo in comment.  Fix reversed condition in
16091         unshare test.
16092         (dataflow_set_remove_mem_locs): Operate on all onepart vars.
16093
16094         PR bootstrap/69123
16095         * var-tracking.c (dump_onepart_variable_differences): New.
16096         (dataflow_set_different): If a detailed dump is requested,
16097         delay early returns and dump differences between onepart
16098         variables present before and after, and added variables.
16099
16100 2016-01-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
16101
16102         PR target/69010
16103         * expr.c (expand_expr_real_1): For boolean vector constants
16104         with a scalar mode use const_scalar_mask_from_tree.
16105         (const_scalar_mask_from_tree): New.
16106         * optabs.c (expand_vec_cond_mask_expr): Use mask mode
16107         assigned to a mask type to handle constants.
16108
16109 2016-01-11  Martin Jambor  <mjambor@suse.cz>
16110
16111         PR ipa/69044
16112         * ipa-cp.c (estimate_local_effects): Do not clone for removal of
16113         useless parameters if we cannot change function signature.
16114
16115 2016-01-11  Martin Jambor  <mjambor@suse.cz>
16116
16117         PR ipa/66616
16118         * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
16119         flag.
16120
16121 2016-01-11  Tom de Vries  <tom@codesourcery.com>
16122
16123         PR tree-optimization/69109
16124         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
16125         latch with phi.
16126
16127 2016-01-11  Tom de Vries  <tom@codesourcery.com>
16128
16129         PR tree-optimization/69108
16130         * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
16131         res is not used in a phi.
16132
16133 2016-01-11  Yury Gribov  <y.gribov@samsung.com>
16134
16135         PR 67425
16136         * common.opt (frandom-seed): Fix parameter name.
16137         * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
16138
16139 2016-01-11  Tom de Vries  <tom@codesourcery.com>
16140
16141         PR tree-optimization/69058
16142         * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
16143         not supported.
16144
16145 2016-01-11  Andrew Burgess  <andrew.burgess@embecosm.com>
16146
16147         * config/arc/arc.opt (mdiv-rem): Add period to the end.
16148         (mcode-density): Likewise.
16149
16150 2016-01-10  Tom de Vries  <tom@codesourcery.com>
16151
16152         PR tree-optimization/69062
16153         * tree-parloops.c (loop_has_phi_with_address_arg): New function.
16154         (parallelize_loops): Don't paralelize loop that has phi with address
16155         arg.
16156
16157 2016-01-10  Tom de Vries  <tom@codesourcery.com>
16158
16159         PR tree-optimization/69039
16160         * tree-parloops.c (try_create_reduction_list): Only allow single exit
16161         phi for reduction.
16162
16163 2016-01-09  John David Anglin  <danglin@gcc.gnu.org>
16164
16165         PR middle-end/68743
16166         * match.pd: Require target has function_c99_misc before doing
16167         truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
16168
16169 2016-01-09  Gerald Pfeifer  <gerald@pfeifer.com>
16170
16171         * configure.ac (isl_options_set_schedule_serialize_sccs): Also
16172         use GMPINC.
16173         * configure: Regenerate.
16174
16175 2016-01-09  Jakub Jelinek  <jakub@redhat.com>
16176
16177         PR middle-end/50865
16178         PR tree-optimization/69097
16179         * fold-const.h (expr_not_equal_to): New prototype.
16180         * fold-const.c: Include stringpool.h and tree-ssanames.h.
16181         (expr_not_equal_to): New function.
16182         * match.pd (X % -Y is the same as X % Y): Don't optimize
16183         unless X is known not to be equal to minimum or Y is known
16184         not to be equal to -1.
16185         * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
16186         fold TRUNC_MOD_EXPR if the second argument is not a power of two.
16187         (simplify_stmt_using_ranges): Adjust caller.
16188         (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
16189         substitute_and_fold.
16190
16191 2016-01-09  Jan Hubicka  <hubicka@ucw.cz>
16192
16193         * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
16194         w/o DECL_NAME.
16195
16196 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
16197
16198         PR tree-optimization/69167
16199         * gimple-fold.c (replace_stmt_with_simplification): Also punt if
16200         new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
16201         ops[0] comparison.
16202         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
16203
16204 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
16205             Richard Biener  <rguenther@suse.de>
16206
16207         PR tree-optimization/68707
16208         * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
16209         instances that can be handled via vect_load_lanes.
16210
16211 2016-01-08  Uros Bizjak  <ubizjak@gmail.com>
16212
16213         * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
16214         if we can't determine address equivalence.
16215         * alias.c (compare_base_decl): Update for changed return value of
16216         symtab_node::equal_address_to.
16217
16218 2016-01-08  Jason Merrill  <jason@redhat.com>
16219
16220         PR c++/68983
16221         PR c++/67557
16222         * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
16223         * expr.c (store_field): Not here.
16224         * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
16225         call with TREE_ADDRESSABLE type.
16226         * tree-cfg.c (verify_gimple_call): Adjust.
16227
16228 2016-01-08  Olivier Hainque  <hainque@adacore.com>
16229
16230         * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
16231         libc_internal.
16232
16233 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
16234
16235         * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
16236         (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
16237         (reduc_smin_v2sf): Rename to...
16238         (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
16239         (reduc_splus_v2sf): Rename to...
16240         (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
16241
16242 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
16243
16244         PR tree-optimization/69162
16245         * gimplify.c (gimplify_va_arg_expr): Encode original type of
16246         valist argument in another argument.
16247         (gimplify_modify_expr): Adjust for the above change.  Cleanup.
16248         * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
16249         to determine the va_list type, build a MEM_REF instead of
16250         build_fold_indirect_ref.
16251
16252         PR tree-optimization/69172
16253         * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
16254         gimple_build.
16255
16256 2016-01-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16257
16258         PR tree-optimization/67781
16259         * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
16260         and cmpnop in two steps: first the ones not accessed in original
16261         gimple expression in a endian independent way and then the ones not
16262         accessed in the final result in an endian-specific way.
16263
16264 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
16265
16266         PR tree-optimization/69083
16267         * tree-vect-slp.c (vect_get_constant_vectors): For
16268         VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
16269         element type.  If op is fold_convertible_p to vector_type's element
16270         type, use NOP_EXPR instead of VCE.
16271
16272 2016-01-08  Segher Boessenkool  <segher@kernel.crashing.org>
16273
16274         PR rtl-optimization/67778
16275         PR rtl-optimization/68634
16276         PR rtl-optimization/68909
16277         * shrink-wrap.c (try_shrink_wrapping): Add comment.  Don't pop
16278         block from the stack until done with it.  Remove a superfluous
16279         bitmap set.  Remove a superfluous bitmap test.
16280
16281 2016-01-07  Martin Sebor  <msebor@redhat.com>
16282
16283         PR c/68966
16284         * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
16285         constraint on the type of arguments.
16286
16287 2016-01-07  Andreas Tobler  <andreast@gcc.gnu.org>
16288
16289         * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
16290         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
16291         unaligned_access on the gcc_options set.
16292         * config/arm/arm.c (arm_option_override_internal): Use
16293         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
16294
16295 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
16296
16297         PR target/69140
16298         * config/i386/i386.c (ix86_frame_pointer_required): Enable
16299         frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
16300
16301 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
16302
16303         Revert
16304         2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
16305
16306         PR target/69140
16307         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
16308         depending on frame_pointer_needed before remaining integer and SSE
16309         registers are saved.
16310
16311 2016-01-07  Sandra Loosemore  <sandra@codesourcery.com>
16312
16313         PR 1078
16314         * doc/extend.texi (Nvidia PDX Function Attributes): New section.
16315
16316 2016-01-07  H.J. Lu  <hongjiu.lu@intel.com>
16317
16318         PR target/69171
16319         * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
16320         Use the "xBm" constraint.
16321         (float<sseintvecmodelower><mode>2<mask_name><round_name):
16322         Likewise.
16323         (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
16324         (sse_cvtsi2ssq<round_name>): Likewise.
16325         (sse_cvtss2si<round_name>): Likewise.
16326         (sse_cvtss2siq<round_name>): Likewise.
16327         (sse2_cvtsi2sdq<round_name>): Likewise.
16328         (sse2_cvtsd2si<round_name>): Likewise.
16329         (sse2_cvtsd2siq<round_name>): Likewise.
16330         * config/i386/subst.md (round_nimm_scalar_predicate): New
16331         predicate.
16332
16333 2015-12-15  Bernd Schmidt  <bschmidt@redhat.com>
16334
16335         PR middle-end/67639
16336         * varasm.c (make_decl_rtl): Mark invalid register vars as
16337         DECL_EXTERNAL.
16338
16339         PR rtl-optimization/66206
16340         * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
16341         All callers changed.
16342
16343 2016-01-07  Jakub Jelinek  <jakub@redhat.com>
16344
16345         PR tree-optimization/69141
16346         * tree-ssa-pre.c: Include langhooks.h.
16347         (eliminate_dom_walker::before_dom_children): Use
16348         lang_hooks.decl_printable_name instead of
16349         cgraph_node::get ()->name ().
16350
16351         PR middle-end/68960
16352         * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
16353         it and DECL_ALIGN too.
16354
16355 2016-01-06  Robert Suchanek  <robert.suchanek@imgtec.com>
16356
16357         * config/mips/mips-ftypes.def: Sort to lexicographical order.
16358
16359 2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
16360
16361         PR target/69140
16362         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
16363         depending on frame_pointer_needed before remaining integer and SSE
16364         registers are saved.
16365
16366 2015-01-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16367
16368         * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
16369         mode iterator with VSX_M2.
16370         (*p9_vecstore_<mode>): Likewise.
16371         (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
16372         (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
16373         (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
16374         (define_split for VSX_LE128 stores): Likewise.
16375         (define_peephole2 for TImode LE swaps): Likewise.
16376         (define_split for VSX_LE128 post-reload stores): Likewise.
16377
16378 2016-01-06  Marek Polacek  <polacek@redhat.com>
16379
16380         PR sanitizer/69099
16381         * convert.c (convert_to_integer_1): Adjust call to
16382         ubsan_instrument_float_cast.  Use NULL_TREE instead of NULL.
16383         * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter.  Use
16384         EXPR instead of ARG.
16385         * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
16386
16387 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
16388
16389         PR 1078
16390         * doc/extend.texi (RL78 Variable Attributes): New section.
16391
16392 2016-01-05  Marek Polacek  <polacek@redhat.com>
16393
16394         PR c/69104
16395         * builtins.c (get_memmodel): Use expansion point location rather than
16396         the input location.  Call warning_at rather than warning.
16397         (expand_builtin_atomic_compare_exchange): Likewise.
16398         (expand_builtin_atomic_load): Likewise.
16399         (expand_builtin_atomic_store): Likewise.
16400         (expand_builtin_atomic_clear): Likewise.
16401
16402 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
16403
16404         PR target/68991
16405         * config/i386/i386.c (ix86_expand_vector_logical_operator):
16406         Replace nonimmediate_operand with vector_operand.
16407         * config/i386/predicates.md (vector_operand): New predicate.
16408         (general_vector_operand): Replace nonimmediate_operand with
16409         vector_operand.
16410         * config/i386/sse.md: Replace nonimmediate_operand with
16411         vector_operand and m constraint with Bm constraint on SSE
16412         patterns with 16-byte memory operand.
16413         * config/i386/subst.md (round_nimm_predicate): Replace
16414         nonimmediate_operand with vector_operand.
16415         (round_saeonly_nimm_predicate): Likewise.
16416         (round_saeonly_nimm_scalar_predicate): New.
16417
16418 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
16419
16420         PR target/68991
16421         * config/i386/constraints.md (Bm): New constraint.
16422         * config/i386/predicates.md (vector_memory_operand): New
16423         predicate.
16424         * config/i386/sse.md: Replace xm with xBm in plusminus and
16425         any_logic patterns.
16426
16427 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
16428
16429         PR 1078
16430         * doc/extend.texi (V850 Function Attributes): New section.
16431         (V850 Variable Attributes): New section.
16432
16433 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
16434
16435         PR 1078
16436         * doc/extend.texi (MicroBlaze Function Attributes): Document
16437         interrupt_handler and fast_interrupt attributes.
16438
16439 2016-01-05  Sergei Trofimovich  <siarheit@google.com>
16440
16441         PR other/60465
16442         * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
16443         for local symbolic operands.
16444         * config/ia64/predicates.md (local_symbolic_operand64): New
16445         predicate.
16446
16447 2016-01-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16448
16449         PR rtl-optimization/68651
16450         * combine.c (combine_simplify_rtx): Canonicalize x + x into
16451         x << 1.
16452
16453 2016-01-05  Nathan Sidwell  <nathan@acm.org>
16454
16455         * alias.c (compare_base_decls): Use symtab_node::get.
16456
16457 2016-01-05  Nick Clifton  <nickc@redhat.com>
16458
16459         PR target/68770
16460         * ira-costs.c (copy_cost): Initialise the t_icode field of the
16461         secondary_reload_info structure.
16462
16463         PR target/66655
16464         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
16465         decls if weak support is available.
16466
16467 2016-01-04  Martin Sebor  <msebor@redhat.com>
16468
16469         * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
16470
16471 2016-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
16472
16473         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
16474         OPTION_MASK_P9_DFORM.
16475
16476         * config/rs6000/constraints.md (wo constraint): New constraint for
16477         ISA 3.0 (power9).
16478
16479         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
16480         for wo constraint.
16481         (rs6000_init_hard_regno_mode_ok): Likewise.
16482
16483         * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
16484         wo constraint.
16485
16486         * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
16487         expanders not to have constraints.  Add support for ISA 3.0 xxperm
16488         instruction.  Add support for fusing xxlor with xxperm.
16489         (altivec_vperm_<mode>_internal): Likewise.
16490         (altivec_vperm_v8hiv16qi): Likewise.
16491         (altivec_vperm_<mode>v16q): Likewise.
16492         (altivec_vperm_<mode>_uns): Likewise.
16493         (vperm_v8hiv4si): Likewise.
16494         (vperm_v16qiv8hi): Likewise.
16495
16496         * doc/md.texi (RS/6000 constraints): Document wo constraint.
16497
16498 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
16499
16500         Update copyright years.
16501
16502         * gcc.c (process_command): Update copyright notice dates.
16503         * gcov-dump.c (print_version): Ditto.
16504         * gcov.c (print_version): Ditto.
16505         * gcov-tool.c (print_version): Ditto.
16506         * gengtype.c (create_file): Ditto.
16507         * doc/cpp.texi: Bump @copying's copyright year.
16508         * doc/cppinternals.texi: Ditto.
16509         * doc/gcc.texi: Ditto.
16510         * doc/gccint.texi: Ditto.
16511         * doc/gcov.texi: Ditto.
16512         * doc/install.texi: Ditto.
16513         * doc/invoke.texi: Ditto.
16514
16515 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
16516
16517         * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
16518         modes larger than TImode as TImode if NEON is not enabled.
16519
16520 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
16521
16522         PR target/69100
16523         * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
16524         mode for %f0-%f31 only if TARGET_FPU.
16525
16526 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
16527
16528         PR target/69072
16529         * config/sparc/sparc.c (scan_record_type): Take into account subfields
16530         to compute the PACKED_P predicate.
16531         (function_arg_record_value): Minor tweaks.
16532
16533 2016-01-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16534
16535         * doc/install.texi (--with-multilib-list): Describe the meaning of the
16536         option for arm*-*-* targets.
16537
16538 2016-01-03  Sandra Loosemore  <sandra@codesourcery.com>
16539
16540         * doc/extend.texi (Common Function Attributes): Move docs for
16541         MSP430-specific attributes to....
16542         (MSP430 Function Attributes): ...here.  Delete the redundant
16543         entries and copy-edit the remaining text.
16544         (MSP430 Variable Attributes): Use uniform format for index
16545         entries and add a cross-reference to the corresponding function
16546         attribute docs.
16547
16548 2016-01-03  Vladimír Čunát  <vcunat@gmail.com>
16549
16550         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
16551         -finite-math typo.
16552         (x86 Options): Likewise.
16553
16554 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
16555
16556         PR 1078
16557
16558         * extend.texi (Common Function Attributes) <no_stack_limit>: New.
16559         * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
16560         to corresponding attribute.
16561
16562 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
16563
16564         * doc/extend.texi (Common Function Attributes) <noplt>: Move
16565         to correct alphabetization of table.  Copy-edit and correct
16566         markup.
16567         <stack_protect>: Likewise.
16568         <target_clones>: Likewise.
16569         <simd>: Likewise.
16570         * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
16571         Correct punctuation.
16572         (Code Gen Options) <-fno-plt>: Copy-edit.
16573
16574 2016-01-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
16575
16576         PR target/68917
16577         * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
16578         SI values.  Explicitly convert SI to DI and vice-versa.
16579
16580 2016-01-01  Jakub Jelinek  <jakub@redhat.com>
16581
16582         PR tree-optimization/69070
16583         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
16584         REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
16585
16586         PR sanitizer/69055
16587         * ubsan.c (ubsan_instrument_float_cast): Call
16588         initialize_sanitizer_builtins.
16589
16590         PR target/69015
16591         * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
16592 \f
16593 Copyright (C) 2016 Free Software Foundation, Inc.
16594
16595 Copying and distribution of this file, with or without modification,
16596 are permitted in any medium without royalty provided the copyright
16597 notice and this notice are preserved.