cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using PRIu64 instead...
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
2
3         * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using
4         PRIu64 instead of lu.
5
6 2016-06-24  Eric Botcazou  <ebotcazou@adacore.com>
7
8         PR debug/71642
9         * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
10         copy the type name.
11
12 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
13
14         PR tree-optimization/71647
15         * omp-low.c (lower_rec_input_clauses): Convert
16         omp_clause_aligned_alignment (c) to size_type_node for the
17         last argument of __builtin_assume_aligned.
18
19 2016-06-24  Martin Liska  <mliska@suse.cz>
20
21         * cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
22         * cfgloop.h: Change 'struct loop' to 'const struct loop' for a
23         few functions.
24         * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
25         argument to true if the expected number of iterations is
26         loop-based.
27
28 2016-06-24  Uros Bizjak  <ubizjak@gmail.com>
29
30         * configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to
31         assemble for 32bit target.
32         (HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble
33         and $ld_ix86_gld_32_opt to link for 32bit target.
34         (HAVE_AS_IX86_TLSLDMPLT): Ditto.
35         * configure: Regenerate.
36
37 2016-06-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
38
39         * config/arm/arm.c (int_log2): Delete definition and prototype.
40         (shift_op): Use exact_log2 instead of int_log2.
41         (vfp3_const_double_for_fract_bits): Likewise.
42
43 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
44
45         * internal-fn.c (expand_arith_set_overflow): New function.
46         (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
47         Use it.
48         (expand_arith_overflow_result_store): Likewise.  Handle precision
49         smaller than mode precision.
50         * tree-vrp.c (extract_range_basic): For imag part, handle
51         properly signed 1-bit precision result.
52         * doc/extend.texi (__builtin_add_overflow): Document that last
53         argument can't be pointer to enumerated or boolean type.
54         (__builtin_add_overflow_p): Document that last argument can't
55         have enumerated or boolean type.
56
57 2016-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
58             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
59
60         * config/rs6000/predicates.md (splat_input_operand): Rework.
61         Don't allow constants, since the insns that use this predicate
62         don't support constants.  Constants are handled by other insns
63         that are created via combine.  During and after register
64         allocation, only allow indexed or indirect addresses, and not
65         general addresses.  Only allow modes supported by the hardware.
66         * config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage
67         comment.  Move check for using VSPLTIS<x> to a common location,
68         instead of doing it in two different places.
69
70 2016-06-23  Jocelyn Mayer  <l_indien@magic.fr>
71
72         * config/i386/driver-i386.c (host_detect_local_cpu): Set
73         PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
74         <case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for
75         signature_CENTAUR_ebx.
76
77 2016-06-23  H.J. Lu  <hongjiu.lu@intel.com>
78
79         PR target/66232
80         PR target/67400
81         * configure.ac (as_ix86_tls_ldm_opt): Renamed to ...
82         (as_ix86_gas_32_opt): This.
83         (ld_ix86_tls_ldm_opt): Renamed to ...
84         (ld_ix86_gld_32_opt): This.
85         (R_386_TLS_LDM reloc): Updated.
86         (R_386_GOT32X reloc): New assembler/linker check.
87         (HAVE_AS_IX86_GOT32X): New.  Defined to 1 if 32-bit assembler and
88         linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT".  Otherise,
89         defined to 0.
90         * config.in: Regenerated.
91         * configure: Likewise.
92         * config/i386/i386.c (ix86_force_load_from_GOT_p): Return
93         true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode.
94         (ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt
95         if ix86_force_load_from_GOT_p returns true.
96         (ix86_print_operand_address_as): Also support UNSPEC_GOT if
97         ix86_force_load_from_GOT_p returns true.
98         (ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load
99         the external function address via the GOT slot.
100         (ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and
101         HAVE_AS_IX86_GOT32X before returning false.
102         (ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in
103         32-bit mode if ix86_nopic_noplt_attribute_p returns true.
104
105 2016-06-23  Eric Botcazou  <ebotcazou@adacore.com>
106
107         * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant.
108
109 2016-06-23  Andi Kleen  <ak@linux.intel.com>
110
111         * Makefile.in: Regenerate.
112         * doc/install.texi: Document autoprofiledbootstrap.
113
114 2016-06-23  Andi Kleen  <ak@linux.intel.com>
115
116         * config/i386/gcc-auto-profile: New file.
117
118 2016-06-23  Martin Liska  <mliska@suse.cz>
119
120         PR middle-end/71619
121         * predict.c (predict_loops): Revert the hunk that was removed
122         in r237103.
123
124 2016-06-23  Jakub Sejdak  <jakub.sejdak@phoesys.com>
125
126         * config.gcc: Add support for arm*-*-phoenix* targets.
127         * config/arm/t-phoenix: New.
128         * config/phoenix.h: New.
129
130 2016-06-23  Uros Bizjak  <ubizjak@gmail.com>
131             H.J. Lu  <hongjiu.lu@intel.com>
132
133         PR target/67400
134         * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
135         * config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
136         (ix86_legitimate_constant_p): Do not allow UNSPEC_GOTPCREL if
137         ix86_force_load_from_GOT_p returns true.
138         (ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL if
139         ix86_force_load_from_GOT_p returns true.
140         (ix86_print_operand_address_as): Support UNSPEC_GOTPCREL if
141         ix86_force_load_from_GOT_p returns true.
142         (ix86_expand_move): Load the external function address via the
143         GOT slot if ix86_force_load_from_GOT_p returns true.
144         * config/i386/predicates.md (x86_64_immediate_operand): Return
145         false for SYMBOL_REFs where ix86_force_load_from_GOT_p returns true.
146         (x86_64_zext_immediate_operand): Ditto.
147
148 2016-06-22  Uros Bizjak  <ubizjak@gmail.com>
149
150         * config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
151
152 2016-06-22  David Malcolm  <dmalcolm@redhat.com>
153
154         PR c/70339
155         * diagnostic-core.h (pedwarn_at_rich_loc): New prototype.
156         * diagnostic.c (pedwarn_at_rich_loc): New function.
157         * spellcheck.h (best_match::best_match): Add a
158         "best_distance_so_far" optional parameter.
159         (best_match::set_best_so_far): New method.
160         (best_match::get_best_distance): New accessor.
161         (best_match::get_best_candidate_length): New accessor.
162
163 2016-06-22  Nick Clifton  <nickc@redhat.com>
164
165         * dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in
166         place of GET_MODE_CLASS() == MODE_INT, so that partial integer
167         modes are accepted as well.
168         (ucompare_loc_descriptor): Likewise.
169         (minmax_loc_descriptor): Likewise.
170         (clz_loc_descriptor): Likewise.
171         (popcount_loc_descriptor): Likewise.
172         (bswap_loc_descriptor): Likewise.
173         (rotate_loc_descriptor): Likewise.
174         (mem_loc_descriptor): Likewise.
175         (loc_descriptor): Likewise.
176
177 2016-06-22  David Malcolm  <dmalcolm@redhat.com>
178
179         * common.opt (fdiagnostics-parseable-fixits): New option.
180         * diagnostic.c: Include "selftest.h".
181         (print_escaped_string): New function.
182         (print_parseable_fixits): New function.
183         (diagnostic_report_diagnostic): Call print_parseable_fixits.
184         (selftest::assert_print_escaped_string): New function.
185         (ASSERT_PRINT_ESCAPED_STRING_STREQ): New macro.
186         (selftest::test_print_escaped_string): New function.
187         (selftest::test_print_parseable_fixits_none): New function.
188         (selftest::test_print_parseable_fixits_insert): New function.
189         (selftest::test_print_parseable_fixits_remove): New function.
190         (selftest::test_print_parseable_fixits_replace): New function.
191         (selftest::diagnostic_c_tests): New function.
192         * diagnostic.h (struct diagnostic_context): Add field
193         "parseable_fixits_p".
194         * doc/invoke.texi (Diagnostic Message Formatting Options): Add
195         -fdiagnostics-parseable-fixits.
196         (-fdiagnostics-parseable-fixits): New option.
197         * opts.c (common_handle_option): Handle
198         -fdiagnostics-parseable-fixits.
199         * selftest-run-tests.c (selftest::run_tests): Call
200         selftest::diagnostic_c_tests.
201         * selftest.h (selftest::diagnostic_c_tests): New prototype.
202
203 2016-06-22  Ilya Enkovich  <ilya.enkovich@intel.com>
204
205         PR tree-optimization/71488
206         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Support
207         comparison of boolean vectors.
208         * tree-vect-stmts.c (vectorizable_comparison): Vectorize comparison
209         of boolean vectors using bitwise operations.
210
211 2016-06-22  Andreas Schwab  <schwab@suse.de>
212
213         * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
214         Remove declaration.
215
216 2016-06-22  Eric Botcazou  <ebotcazou@adacore.com>
217
218         * function.c (assign_parm_setup_reg): Prevent sharing in another case.
219
220 2016-06-22  Bernd Edlinger  <bernd.edlinger@hotmail.de>
221
222         * config/i386/i386.c (print_reg): Emit an error message on attempt to
223         print FLAGS_REG.
224
225 2016-06-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
226
227         * config/arm/arm.c (arm_cortex_a73_tune): New struct.
228         * config/arm/arm-cores.def (cortex-a73): New entry.
229         (cortex-a73.cortex-a35): Likewise.
230         (cortex-a73.cortex-a53): Likewise.
231         * config/arm/arm-tables.opt: Regenerate.
232         * config/arm/arm-tune.md: Likewise.
233         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle mcpu=cortex-a73,
234         mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
235         * config/arm/t-aprofile: Handle mcpu=cortex-a73,
236         mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
237         * doc/invoke.texi (ARM Options): Document cortex-a73,
238         cortex-a73.cortex-a35 and cortex-a73.cortex-a53.
239
240 2016-06-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
241
242         * config/aarch64/aarch64.c (cortexa73_tunings): New struct.
243         * config/aarch64/aarch64-cores.def (cortex-a73): New entry.
244         (cortex-a73.cortex-a35): Likewise.
245         (cortex-a73.cortex-a53): Likewise.
246         * config/aarch64/aarch64-tune.md: Regenerate.
247         * doc/invoke.texi (AArch64 Options): Document cortex-a73,
248         cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to
249         -mcpu and -mtune.
250
251 2016-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
252
253         * configure.ac (gcc_cv_as_compress_debug): Remove
254         --compress-debug-sections as extra as switch.
255         Handle gas --compress-debug-sections=type.
256         (gcc_cv_ld_compess_debug): Remove bogus ld_date check.
257         Handle gld --compress-debug-sections=type.
258         * configure: Regenerate.
259
260 2016-06-21  Andrew Burgess  <andrew.burgess@embecosm.com>
261
262         * bb-reorder.c (pass_partition_blocks::gate): Update comment.
263
264 2016-06-21  John David Anglin  <danglin@gcc.gnu.org>
265
266         * gcov-tool.c (profile_rewrite): Use int64_t instead of long long.
267         (do_rewrite): likewise.
268
269 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
270
271         * common/config/mep/mep-common.c: Remove.
272         * config.gcc: Remove mep-* support.
273         * config/mep/constraints.md: Remove.
274         * config/mep/default.h: Remove.
275         * config/mep/intrinsics.h: Remove.
276         * config/mep/intrinsics.md: Remove.
277         * config/mep/ivc2-template.h: Remove.
278         * config/mep/mep-c5.cpu: Remove.
279         * config/mep/mep-core.cpu: Remove.
280         * config/mep/mep-default.cpu: Remove.
281         * config/mep/mep-ext-cop.cpu: Remove.
282         * config/mep/mep-intrin.h: Remove.
283         * config/mep/mep-ivc2.cpu: Remove.
284         * config/mep/mep-pragma.c: Remove.
285         * config/mep/mep-protos.h: Remove.
286         * config/mep/mep.c: Remove.
287         * config/mep/mep.cpu: Remove.
288         * config/mep/mep.h: Remove.
289         * config/mep/mep.md: Remove.
290         * config/mep/mep.opt: Remove.
291         * config/mep/predicates.md: Remove.
292         * config/mep/t-mep: Remove.
293         * doc/install.texi: Remove mep-* documentation.
294         * doc/md.texi: Likewise.
295
296 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
297
298         * config.gcc: Remove support for avr-rtems.
299         * config/avr/gen-avr-mmcu-specs.c: Likewise.
300         * config/avr/rtems.h: Remove.
301         * config/avr/t-rtems: Remove.
302
303 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
304
305         * config.gcc: Remove m32r-rtems support.
306         * config/m32r/rtems.h: Remove.
307
308 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
309
310         * config.gcc: Remove h8300-rtems support.
311         * config/h8300/rtems.h: Remove.
312         * config/h8300/t-rtems: Remove.
313
314 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
315
316         * config.gcc: Remove support for knetbsd.
317         * configure.ac: Likewise.
318         * config/i386/knetbsd-gnu.h: Remove.  * config/i386/knetbsd-gnu64.h: Remove.
319         * config/knetbsd-gnu.h: Remove.
320         * configure: Regenerate.
321
322 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
323
324         * config.gcc: Remove support for openbsd 2 and 3.
325         * config/openbsd-oldgas.h: Remove.
326
327 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
328
329         * config.gcc: Remove interix support.
330         * config/i386/i386-interix.h: Remove.
331         * config/i386/interix.opt: Remove.
332         * config/i386/t-interix: Remove.
333         * configure: Regenerate.
334         * configure.ac: Remove interix support.
335         * doc/install.texi: Remove interix documentation.
336
337 2016-06-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
338
339         * config/rs6000/rs6000.h: Add conditional preprocessing directives
340         to disable Power9-specific compiler features if HAVE_AS_POWER9 is
341         not defined.
342
343 2016-06-21  Eric Botcazou  <ebotcazou@adacore.com>
344
345         * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if
346         they are both PLACEHOLDER_EXPRs.
347
348 2016-06-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
349
350         * stor-layout.c (layout_type): Move setting complex MODE to
351         layout_type, instead of setting it ahead of time by the caller.
352         * tree.c (build_complex_type): Likewise.
353
354 2016-06-21  Martin Liska  <mliska@suse.cz>
355
356         * predict.c (force_edge_cold): Replace imposisble with
357         impossible.
358
359 2016-06-21  Ilya Verbin  <ilya.verbin@intel.com>
360
361         * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
362         * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
363
364 2016-06-21  Ilya Verbin  <ilya.verbin@intel.com>
365
366         * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
367
368 2016-06-21  H.J. Lu  <hongjiu.lu@intel.com>
369             Ilya Enkovich  <ilya.enkovich@intel.com>
370
371         PR target/71549
372         * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
373         New member function to convert V1TImode register to SUBREG
374         TImode in debug insn.
375         (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses
376         after changing register mode to V1TImode.
377
378 2016-06-21  Virendra Pathak  <virendra.pathak@broadcom.com>
379
380         * config/aarch64/aarch64-cores.def (vulcan): New core.
381         * config/aarch64/aarch64-tune.md: Regenerate.
382         * doc/invoke.texi: Document vulcan as an available option.
383
384 2016-06-21  Eric Botcazou  <ebotcazou@adacore.com>
385
386         * cse.c (canon_asm_operands): New function extracted from...
387         (canonicalize_insn): ...here.  Call it to canonicalize an ASM_OPERANDS
388         either standalone or member of a PARALLEL.
389
390 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
391
392         PR target/30417
393         * config/avr/gen-avr-mmcu-specs.c (print_mcu):
394         [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
395         [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
396
397 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
398
399         PR target/71103
400         * config/avr/avr.md (movqi): Only handle loading subreg:qi of
401         constant addresses if can_create_pseudo_p.
402
403 2016-06-21  Jakub Jelinek  <jakub@redhat.com>
404
405         PR tree-optimization/71588
406         * tree-ssa-strlen.c (valid_builtin_call): New function.
407         (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
408         it.
409
410 2016-06-20  Jakub Jelinek  <jakub@redhat.com>
411
412         PR middle-end/71581
413         * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
414         see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
415         for conversion of scalar user var to complex type and use the
416         underlying SSA_NAME_VAR in that case.  If EXPR is still NULL,
417         punt.
418
419         PR rtl-optimization/71591
420         * toplev.c (toplev::run_self_tests): If no_backend, complain and
421         don't run any tests.
422
423 2016-06-20  Hans-Peter Nilsson  <hp@axis.com>
424
425         PR target/71571
426         * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
427         delay-slot "nop" for PIC with CRIS v32.  Also add missing leading
428         space for PIC with non-v32 and the common non-PIC "jump".
429
430 2016-06-20  Jakub Jelinek  <jakub@redhat.com>
431
432         PR target/71559
433         * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
434         returned values and add UN*/LTGT/*ORDERED cases with values matching
435         D operand modifier on vcmp for AVX.
436
437 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
438
439         * config/aarch64/aarch64.opt
440         (mpc-relative-literal-loads): Rename internal option name.
441         * config/aarch64/aarch64.c
442         (aarch64_nopcrelative_literal_loads): Rename to
443         aarch64_pcrelative_literal_loads.
444         (aarch64_expand_mov_immediate): Likewise.
445         (aarch64_secondary_reload): Likewise.
446         (aarch64_can_use_per_function_literal_pools_p): Likewise.
447         (aarch64_override_options_after_change_1): Rename and simplify logic.
448         (aarch64_classify_symbol): Merge large model checks into switch,
449         remove pc-relative load check.
450
451 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
452
453         * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
454         costs relative to the cost of a register move.
455
456 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
457
458         * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
459         (vcvt_n_f64_u64): Likewise.
460         (vcvt_n_s64_f64): Likewise.
461         (vcvt_n_u64_f64): Likewise.
462         (vcvt_f64_s64): Likewise.
463         (vrecpe_f64): Likewise.
464         (vcvt_f64_u64): Likewise.
465         (vrecps_f64): Likewise.
466
467 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
468
469         * config/aarch64/aarch64.md
470         (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
471         iterators.
472         (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise.  Correct
473         attributes.
474         * config/aarch64/aarch64-builtins.c
475         (aarch64_types_binop_uss_qualifiers): Delete.
476         (TYPES_BINOP_USS): Likewise.
477         (aarch64_types_binop_sus_qualifiers): Likewise.
478         (TYPES_BINOP_SUS): Likewise.
479         (aarch64_types_fcvt_from_unsigned_qualifiers): New.
480         (TYPES_FCVTIMM_SUS): Likewise.
481         * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
482         rather than BINOP.
483         (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
484         (fcvtzs): Use SHIFTIMM rather than BINOP.
485         (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.
486
487 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
488
489         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
490         costs relative to the cost of a register move.
491
492 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
493
494         * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
495         Allow scalar/single vector modes to be tieable.
496
497 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
498
499         * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
500
501 2016-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
502
503         * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
504         "alignement".
505         * tree.h (TYPE_ALIGN): Likewise.
506
507 2016-06-20  Georg-Johann Lay  <avr@gjlay.de>
508
509         PR target/71103
510         * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
511
512 2016-06-20  Georg-Johann Lay  <avr@gjlay.de>
513
514         * config/avr/avr.c (avr_print_operand): Fix "format not a string
515         literal" build warnings.
516         (avr_print_operand_address): Dito.
517
518 2016-06-19  David Edelsohn  <dje.gcc@gmail.com>
519
520         PR target/71375
521         * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
522         * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
523
524 2016-06-18  John David Anglin  <danglin@gcc.gnu.org>
525
526         * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
527
528 2016-06-18  Eric Botcazou  <ebotcazou@adacore.com>
529
530         PR bootstrap/71435
531         * reload1.c (reload): Pass 0 to finish_spills when called because
532         update_eliminables_and_spill returns true and remove did_spill.
533         (finish_spills): Adjust comment and document GLOBAL parameter.
534
535 2016-06-17  DJ Delorie  <dj@redhat.com>
536
537         PR target/71338
538         * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
539         * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
540         (umulqihi3_virt): Likewise.
541         * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
542         (umulqihi3_real): Likewise.
543
544 2016-06-17  Martin Liska  <mliska@suse.cz>
545
546         * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
547
548 2016-06-17  Martin Liska  <mliska@suse.cz>
549
550         * predict.def: PRED_LOOP_EXIT from 92 to 85.
551
552 2016-06-17  James Greenhalgh  <james.greenhalgh@arm.com>
553
554         * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
555         __FAST_MATH__.
556         (vaddq_f32): Likewise.
557         (vmul_f32): Likewise.
558         (vmulq_f32): Likewise.
559         (vsub_f32): Likewise.
560         (vsubq_f32): Likewise.
561
562 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
563
564         PR tree-optimization/71347
565         * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
566         cost for all uses in group.
567
568 2016-06-17 Bin Cheng  <bin.cheng@arm.com>
569
570         * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
571         insert gimple seq if it's not empty.
572
573 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
574
575         * tree-vectorizer.h (struct dr_with_seg_len): Remove class
576         member OFFSET.
577         * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
578         rather than OFFSET.
579         (comp_dr_with_seg_len_pair): Ditto.
580         (vect_prune_runtime_alias_test_list): Ditto.  Also Canonicalize
581         struct dr_with_seg_len_pair against DR_OFFSET.
582         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle
583         DR_OFFSET directly.
584
585 2016-06-17  Szabolcs Nagy  <szabolcs.nagy@arm.com>
586
587         * config/aarch64/geniterators.sh: Handle parenthesised conditions.
588
589 2016-06-16  John David Anglin  <danglin@gcc.gnu.org>
590
591         * config/pa/pa.c (pa_output_pic_pcrel_sequence): New.
592         (pa_output_lbranch): Use pa_output_pic_pcrel_sequence.
593         (pa_output_millicode_call): Likewise.
594         (pa_output_call): Likewise.
595         (pa_output_indirect_call): Likewise.
596         (pa_asm_output_mi_thunk): Likewise.
597
598 2016-06-16  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
599
600         * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
601
602 2016-06-16  Martin Liska  <mliska@suse.cz>
603
604         * predict.c (combine_predictions_for_insn): When we find a first
605         match predictor, we should consider just predictors with
606         PRED_FLAG_FIRST_MATCH.  Print either first match (if any) or
607         DS theory predictor.
608         (combine_predictions_for_bb): Likewise.
609
610 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
611
612         * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
613         with base of reference to struct.
614
615 2016-06-16  Uros Bizjak  <ubizjak@gmail.com>
616
617         * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
618
619 2016-06-16  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
620
621         PR target/71151
622         * config/avr/avr.c (avr_asm_init_sections): Remove setup of
623         progmem_swtable_section.
624         (progmem_swtable_section): Remove.
625         (avr_asm_function_rodata_section): Remove.
626         (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
627         * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1.
628
629 2016-06-16  Jocelyn Mayer  <l_indien@magic.fr>
630
631         * config/i386/driver-i386.c (host_detect_local_cpu): Set
632         PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.
633         <case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for
634         signature_CENTAUR_ebx.
635         * config/i386/i386.c (ix86_option_override_internal): Add
636         definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4,
637         nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4.
638         * doc/invoke.texi (x86 Options): Document new VIA -march entries.
639
640 2016-06-16  Martin Liska  <mliska@suse.cz>
641
642         * predict.def: Add fortran loop preheader predictor.
643         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
644         fold IFN_BUILTIN_EXPECT with a known constant argument.
645
646 2016-06-16  Martin Liska  <mliska@suse.cz>
647
648         * predict.def: Add 'Fortran' to display text of all
649         PRED_FORTRAN_* predictors.
650
651 2016-06-16  Uros Bizjak  <ubizjak@gmail.com>
652
653         PR target/71242
654         * config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New.
655         [IA64_BUILTIN_NANSQ]: Ditto.
656         (ia64_fold_builtin): New function.
657         (TARGET_FOLD_BUILTIN): New define.
658         (ia64_init_builtins) Declare const_string_type node.
659         Add __builtin_nanq and __builtin_nansq builtin functions.
660         (ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ.
661
662 2016-06-16  Nick Clifton  <nickc@redhat.com>
663
664         * config/msp430/msp430-opts.h (msp430_hwmult_types): Add
665         MSP430_HWMULT_ prefix to enum values.
666         (msp430_regions): Add MSP430_REGION_ prefix to enum values.
667         * config/msp430/msp430.c: Update use of enum values.
668         * config/msp430/msp430.md: Likewise.
669         * config/msp430/msp430.opt: Likewise.
670
671 2016-06-16  Jan Hubicka  <hubicka@ucw.cz>
672
673         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
674         of comparsions in the last iteration.
675
676 2016-06-16  Claudiu Zissulescu  <claziss@synopsys.com>
677             Joern Rennecke  <joern.rennecke@embecosm.com>
678
679         * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
680         addresses.
681         (arc_needs_pcl_p): Add GOTOFFPC.
682         (arc_legitimate_pic_addr_p): Likewise.
683         (arc_output_pic_addr_const): Likewise.
684         (arc_legitimize_pic_address): Generate a pc-relative address using
685         GOTOFFPC.
686         (arc_output_libcall): Use @pcl syntax.
687         (arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC.
688         * config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC.
689         (*movsi_insn): Use @pcl syntax.
690         (doloop_begin_i): Likewise.
691
692 2016-06-16  Martin Liska  <mliska@suse.cz>
693
694         * predict.def: Define a new predictor.
695
696 2016-06-16  Claudiu Zissulescu  <claziss@synopsys.com>
697
698         * config/arc/arc.opt (mtp-regno): Update text.
699
700 2016-06-16  Renlin Li  <renlin.li@arm.com>
701
702         * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
703
704 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
705
706         PR target/71554
707         * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
708         (setcc + and peephole2): Likewise.
709
710         PR rtl-optimization/71532
711         * cse.c (cse_insn): For const/pure calls, invalidate argument passing
712         memory slots.
713
714 2016-06-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
715
716         * config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading
717         DImode constants with XXSPLTIB in vector registers.
718         (vsx_extract_<mode>, V2DImode/V2DFmode): Combine both
719         vsx_extract_<mode>_internal{1,2} into a single insn that handles
720         direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes
721         extraction of the element at the top of the register as a scalar
722         value.
723         (vsx_extract_<mode>_internal1): Likewise.
724         (vsx_extract_<mode>_internal2): Likewise.
725         * config/rs6000/constraints.md (wi constraint): Remove a comment
726         about DImode not being allowed in Altivec registers.
727         (wB constraint): New constraint for constants that can be
728         generated in Altivec registers with VSPLTISW/VUPKHSW.
729         * config/rs6000/predicates.md (xxspltib_constant_split): Update
730         comments.
731         (xxspltib_constant_nosplit): Likewise.
732         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add
733         support for -mupper-regs-di to enable DImode to go into Altivec
734         registers.
735         (POWERPC_MASKS): Likewise.
736         (power7 cpu): Likewise.
737         * config/rs6000/rs6000.opt (-mupper-regs-di): Likewise.
738         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
739         for DImode being allowed in Altivec registers.  Update wi/wj
740         constraints.  Set scalar_in_vmx_p flag.
741         (rs6000_option_override_internal): Add checks for -mupper-regs-di.
742         (xxspltib_constant_p): Allow CONST_INT's with VOIDmode.  Don't
743         return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB.
744         (rs6000_opt_masks): Add -mupper-regs-di.
745         * config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use
746         direct move to use wi and not wj.
747         (lfiwzx): Likewise.
748         (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
749         alternative.
750         (floatunssi<mode>2_lfiwzx_mem): Likewise.
751         (fix_trunc<mode>di2_fctidz): Change second alternative to allow
752         any VSX register, instead of just Altivec registers, to allow
753         either operand to be an Altivec register or both.
754         (fixuns_trunc<mode>di2_fctiduz): Likewise.
755         (movdi_internal32): Add support for -mupper-regs-di.  Add support
756         to load constants via XXSPLTIB or VSPLTISW.  Add spacing to allow
757         the alternatives and attributes to be lined up to be easier to
758         read.
759         (movdi_internal64): Likewise.
760         (64-bit DImode splitters): Change predicates to only split loading
761         up GPR registers.  Add splits for using XXSPLTIB or VSPLTISW to
762         load constants in ISA 3.0 or ISA 2.07 respectively.
763         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
764         -mupper-regs-di.  Update -mupper-regs-df and -mupper-regs-sf to
765         mention -mcpu=power9 sets these options.
766         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the
767         wB constraint.
768
769 2016-06-15  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
770
771         PR target/67353
772         * config/avr/avr.c (avr_set_current_function): Warn misspelled
773         interrupt/ signal handler if -Wmisspelled-isr flag is enabled.
774         * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled
775         by default to warn misspelled interrupt/ signal handler.
776         * doc/invoke.texi (AVR Options): Document it. Update description
777         for -nodevicelib option.
778
779 2016-06-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
780
781         * config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean
782         up parentheses.  Use GET_MODE_UNIT_BITSIZE.
783         (aarch64_<sur>shll2_n<mode>): Likewise.
784
785 2016-06-15  Ilya Enkovich  <ilya.enkovich@intel.com>
786
787         PR middle-end/71529
788         * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
789         DECL_CONTEXT for copied arguments.
790
791 2016-06-15  Alan Hayward  <alan.hayward@arm.com>
792
793         PR tree-optimization/71483
794         * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
795         for slp
796
797 2016-06-15  Martin Liska  <mliska@suse.cz>
798
799         * predict.c (tree_predict_by_opcode): Call predict_edge_def
800         instead of predict_edge w/o a probability.
801
802 2016-06-15  Alan Hayward  <alan.hayward@arm.com>
803
804         PR tree-optimization/71439
805         * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
806         live PHIs.
807
808 2016-06-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
809
810         * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
811         register subregs in SET_SRC.
812
813 2016-06-15  Richard Biener  <rguenther@suse.de>
814
815         * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
816         store restrictions.
817
818 2016-06-15  Richard Biener  <rguenther@suse.de>
819
820         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
821         not consider dependences between accesses that belong to the
822         same group.
823         (vect_analyze_data_ref_dependences): Do not analyze read-read
824         or self-dependences.
825
826 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
827
828         * spellcheck-tree.c: Include spellcheck-tree.h rather than
829         spellcheck.h.
830         (find_closest_identifier): Reimplement in terms of
831         best_match<tree,tree>.
832         * spellcheck-tree.h: New file.
833         * spellcheck.c (struct edit_distance_traits<const char *>): New
834         struct.
835         (find_closest_string): Reimplement in terms of
836         best_match<const char *, const char *>.
837         * spellcheck.h (levenshtein_distance): Move prototype of tree-based
838         overload to spellcheck-tree.h.
839         (find_closest_identifier): Likewise.
840         (struct edit_distance_traits<T>): New template.
841         (class best_match): New class.
842
843 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
844
845         * selftest-run-tests.c (selftest::run_tests): Call
846         selftest::spellcheck_tree_c_tests.
847         * selftest.h (selftest::spellcheck_tree_c_tests): New decl.
848         * spellcheck-tree.c: Include selftest.h and stringpool.h.
849         (selftest::test_find_closest_identifier): New function.
850         (selftest::spellcheck_tree_c_tests): New function.
851         * spellcheck.c (selftest::test_find_closest_string): Verify that
852         the order of the vec does not affect the results for this case.
853         (selftest::test_data): New array.
854         (selftest::test_metric_conditions): New function.
855         (selftest::spellcheck_c_tests): Add a test of case-comparison.
856         Call selftest::test_metric_conditions.
857
858 2016-06-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
859
860         * config/rs6000/rs6000-builtin.def (commentary): Typo.
861         (BU_P9_MISC_1): Likewise.
862         (BU_P9_64BIT_MISC_0): Likewise.
863         (BU_P9_MISC_0): Likewise.
864
865 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
866
867         * gcc-rich-location.c
868         (gcc_rich_location::add_fixit_misspelled_id): New method.
869         * gcc-rich-location.h
870         (gcc_rich_location::add_fixit_misspelled_id): Add decl.
871
872 2016-06-14  Andreas Tobler  <andreast@gcc.gnu.org>
873
874         * config/arm/freebsd.h: Only enable unaligned access for armv6 on
875         FreeBSD 11 and above.
876
877 2016-06-14  Uros Bizjak  <ubizjak@gmail.com>
878
879         * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
880
881 2016-06-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
882
883         * expmed.h: Close parenthesis in "at your option" in copyright
884         boilerplate.
885         * lower-subreg.h: Likewise.
886
887 2016-06-14  Richard Biener  <rguenther@suse.de>
888
889         PR middle-end/71526
890         * genmatch.c (expr::gen_transform): Use in_type for comparisons
891         if available.
892
893 2015-06-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
894
895         * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
896         New function.
897         (aarch64_rtx_costs): Use it.  Rewrite CONST_INT_P (op1) case to handle
898         mask+shift version.
899         * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
900         New prototype.
901         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
902         matching condition with aarch64_mask_and_shift_for_ubfiz_p.
903
904 2016-06-14  Richard Biener  <rguenther@suse.de>
905
906         PR tree-optimization/71522
907         * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
908         copying into float copying.
909
910 2016-06-14  Jakub Jelinek  <jakub@redhat.com>
911
912         PR tree-optimization/71520
913         * tree-ssa-tail-merge.c (find_duplicate): Handle labels.
914         (replace_block_by): Move user labels from bb1 to bb2.
915
916 2016-06-14  Richard Biener  <rguenther@suse.de>
917
918         PR middle-end/71310
919         PR bootstrap/71510
920         * expr.h (get_bit_range): Declare.
921         * expr.c (get_bit_range): Export.
922         * fold-const.c (optimize_bit_field_compare): Use get_bit_range and
923         word_mode again to constrain the bitfield access.
924
925 2016-06-14  Richard Biener  <rguenther@suse.de>
926
927         PR tree-optimization/71521
928         * tree-vrp.c (extract_range_from_binary_expr_1): Guard
929         division int_const_binop against zero divisor.
930
931 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
932
933         * config/i386/i386.md (signbittf2): New expander.
934         * config/i386/sse.md (ptesttf2): New insn pattern.
935
936 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
937
938         PR bootstrap/71481
939         * input.c (selftest::test_reading_source_line): Avoid reading from
940         __FILE__ by creating a tempfile with known content and reading
941         from that instead.
942
943 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
944
945         * pretty-print.c (assert_pp_format_colored): Skip the test if
946         GCC_COLORS is set.
947         (test_pp_format): Remove comment about GCC_COLORS.
948
949 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
950
951         * input.c (test_reading_source_line): Use SELFTEST_LOCATION.
952         * pretty-print.c (assert_pp_format_va): Add location param and use
953         it with ASSERT_STREQ_AT.
954         (assert_pp_format): Add location param and pass it to
955         assert_pp_format_va.
956         (assert_pp_format_colored): Likewise.
957         (ASSERT_PP_FORMAT_1): New.
958         (ASSERT_PP_FORMAT_2): New.
959         (ASSERT_PP_FORMAT_3): New.
960         (test_pp_format): Provide SELFTEST_LOCATION throughout, either
961         explicitly, or implicitly via the above macros.
962         * selftest.c (selftest::pass): Use a selftest::location rather
963         than file and line.
964         (selftest::fail): Likewise.  Print the function name.
965         (selftest::fail_formatted): Likewise.
966         (selftest::assert_streq): Use a selftest::location rather than
967         file and line.
968         * selftest.h (selftest::location): New struct.
969         (SELFTEST_LOCATION): New macro.
970         (selftest::pass): Accept a const location & rather than file
971         and line.
972         (selftest::fail): Likewise.
973         (selftest::fail_formatted): Likewise.
974         (selftest::assert_streq): Likewise.
975         (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
976         (ASSERT_FALSE): Likewise.
977         (ASSERT_EQ): Likewise.
978         (ASSERT_NE): Likewise.
979         (ASSERT_STREQ): Likewise.
980         (ASSERT_PRED1): Likewise.
981         (ASSERT_STREQ_AT): New macro.
982
983 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
984
985         * selftest.c (selftest::fail_formatted): New function.
986         (selftest::assert_streq): New function.
987         * selftest.h (selftests::fail_formatted): New decl.
988         (selftest::assert_streq): New decl.
989         (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq.
990
991 2016-06-13  Jeff Law  <law@redhat.com>
992
993         PR tree-optimization/71403
994         * tree-ssa-threadbackward.c
995         (convert_and_register_jump_thread_path): No longer accept reference
996         to path.  Do not pop items off the path anymore.
997         (fsm_find_control_statement_thread_paths): Do not allow threading
998         to a deeper loop nest.  Pop the last item off the path here rather
999         than in convert_and_register_jump_thread_path.
1000
1001 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
1002             Wilco Dijkstra  <Wilco.Dijkstra@arm.com>
1003
1004         [AArch64] Emit division using the Newton series
1005
1006         * config/aarch64/aarch64-protos.h
1007         (cpu_approx_modes): Add new member "division".
1008         (aarch64_emit_approx_div): Declare new function.
1009         * config/aarch64/aarch64.c
1010         (generic_approx_modes): New member "division".
1011         (exynosm1_approx_modes): Likewise.
1012         (xgene1_approx_modes): Likewise.
1013         (aarch64_emit_approx_div): Define new function.
1014         * config/aarch64/aarch64.md ("div<mode>3"): New expansion.
1015         * config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise.
1016         * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option.
1017         * doc/invoke.texi (-mlow-precision-div): Describe new option.
1018
1019 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
1020             Wilco Dijkstra  <wilco.dijkstra@arm.com>
1021
1022         [AArch64] Emit square root using the Newton series
1023
1024         * config/aarch64/aarch64-protos.h
1025         (aarch64_emit_approx_rsqrt): Replace with new function
1026         "aarch64_emit_approx_sqrt".
1027         (cpu_approx_modes): New member "sqrt".
1028         * config/aarch64/aarch64.c
1029         (generic_approx_modes): New member "sqrt".
1030         (exynosm1_approx_modes): Likewise.
1031         (xgene1_approx_modes): Likewise.
1032         (aarch64_emit_approx_rsqrt): Replace with new function
1033         "aarch64_emit_approx_sqrt".
1034         (aarch64_override_options_after_change_1): Handle new option.
1035         * config/aarch64/aarch64-simd.md
1036         (rsqrt<mode>2): Use new function instead.
1037         (sqrt<mode>2): New expansion and insn definitions.
1038         * config/aarch64/aarch64.md: Likewise.
1039         * config/aarch64/aarch64.opt
1040         (mlow-precision-sqrt): Add new option description.
1041         * doc/invoke.texi (mlow-precision-sqrt): Likewise.
1042
1043 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
1044
1045         [AArch64] Add more choices for the reciprocal square root approximation
1046
1047         Allow a target to prefer such operation depending on the operation mode.
1048
1049         * config/aarch64/aarch64-protos.h
1050         (AARCH64_APPROX_MODE): New macro.
1051         (AARCH64_APPROX_{NONE,ALL}): Likewise.
1052         (cpu_approx_modes): New structure.
1053         (tune_params): New member "approx_modes".
1054         * config/aarch64/aarch64-tuning-flags.def
1055         (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
1056         * config/aarch64/aarch64.c
1057         (generic_approx_modes): New core "cpu_approx_modes" structure.
1058         (exynosm1_approx_modes): Likewise.
1059         (xgene1_approx_modes): Likewise.
1060         (generic_tunings): New member "approx_modes".
1061         (cortexa35_tunings): Likewise.
1062         (cortexa53_tunings): Likewise.
1063         (cortexa57_tunings): Likewise.
1064         (cortexa72_tunings): Likewise.
1065         (exynosm1_tunings): Likewise.
1066         (thunderx_tunings): Likewise.
1067         (xgene1_tunings): Likewise.
1068         (use_rsqrt_p): New argument for the mode and use new member from
1069         "tune_params".
1070         (aarch64_builtin_reciprocal): Devise mode from builtin.
1071         (aarch64_optab_supported_p): New argument for the mode.
1072         * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.
1073
1074 2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
1075
1076         * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
1077         RS6000_BTM_MODULO flag into the set of flags that are considered
1078         to be part of the common configuration.
1079
1080 2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
1081
1082         * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
1083         difference unsigned.
1084         (vec_absdb): New macro for vector absolute difference unsigned
1085         byte.
1086         (vec_absdh): New macro for vector absolute difference unsigned
1087         half-word.
1088         (vec_absdw): New macro for vector absolute difference unsigned word.
1089         * config/rs6000/altivec.md (UNSPEC_VADU): New value.
1090         (vadu<mode>3): New insn.
1091         (*p9_vadu<mode>3): New insn.
1092         * config/rs6000/rs6000-builtin.def (vadub): New built-in
1093         definition.
1094         (vaduh): New built-in definition.
1095         (vaduw): New built-in definition.
1096         (vadu): New overloaded built-in definition.
1097         (vadub): New overloaded built-in definition.
1098         (vaduh): New overloaded built-in definition.
1099         (vaduw): New overloaded built-in definition.
1100         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1101         overloaded vector absolute difference unsigned functions.
1102         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
1103         the ISA 3.0 vector absolute difference unsigned built-in functions.
1104
1105 2016-06-13  Eric Botcazou  <ebotcazou@adacore.com>
1106
1107         * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
1108         update shared_lookup_references only once after changing operands.
1109
1110 2016-06-13  Thomas Schwinge  <thomas@codesourcery.com>
1111
1112         PR middle-end/71373
1113         * tree-nested.c (convert_nonlocal_omp_clauses)
1114         (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
1115
1116         * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
1117         * tree.def (CASE_LABEL_EXPR): Likewise.
1118
1119 2016-06-13  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1120
1121         PR bootstrap/71481
1122         * input.c (test_builtins): Fix an assertion.
1123
1124 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
1125
1126         * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
1127         (paritysi2): Ditto.
1128         (isinfxf2): Ditto.
1129         (isinf<mode>2): Ditto.
1130
1131 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
1132
1133         * ggc-tests.c (test_finalization): Only test need_finalization_p
1134         for GCC_VERSION >= 4003.
1135
1136 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1137
1138         * config/s390/vecintrin.h: Fix file description in comment.
1139
1140 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1141
1142         * config/s390/s390-builtin-types.def: Change builtin type naming
1143         scheme to match builtin-types.def.
1144
1145 2016-06-13  Marc Glisse  <marc.glisse@inria.fr>
1146
1147         * fold-const.c (optimize_minmax_comparison): Remove.
1148         (fold_comparison): Remove call to the above.
1149         * match.pd (MIN (X, Y) == X, MIN (X, 5) == 0, MIN (X, C1) < C2):
1150         New transformations.
1151
1152 2016-06-13  Alan Hayward  <alan.hayward@arm.com>
1153
1154         PR tree-optimization/71416
1155         * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
1156         multiple entries
1157
1158 2016-06-13  Martin Liska  <mliska@suse.cz>
1159
1160         * predict.c (enum predictor_reason): Prefix enum with REASON_.
1161         (combine_predictions_for_insn): Likewise.
1162         (prune_predictions_for_bb): Likewise.
1163         (combine_predictions_for_bb): Likewise.
1164
1165 2016-06-13  Richard Biener  <rguenther@suse.de>
1166
1167         PR tree-optimization/71505
1168         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
1169         assert match comment.
1170
1171 2016-06-13  Marek Polacek  <polacek@redhat.com>
1172
1173         PR middle-end/71476
1174         * gimplify.c (maybe_warn_switch_unreachable): Factored out of
1175         gimplify_switch_expr.
1176         (warn_switch_unreachable_r): New function.
1177
1178 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1179
1180         PR target/71379
1181         * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
1182         one.
1183
1184 2016-06-13  Richard Biener  <rguenther@suse.de>
1185
1186         PR middle-end/64516
1187         * fold-const.c (fold_unary_loc): Preserve alignment when
1188         folding a VIEW_CONVERT_EXPR into a MEM_REF.
1189
1190 2016-06-13  Martin Liska  <mliska@suse.cz>
1191
1192         PR sanitizer/71458
1193         * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
1194         w/ -fsanitize=bounds.
1195
1196 2016-06-12  Uros Bizjak  <ubizjak@gmail.com>
1197
1198         * config/i386/i386.c (ix86_init_builtins): Calculate
1199         FLOAT128_FTYPE_CONST_STRING function type only once.
1200         * doc/extend.texi (x86 Built-in Functions): Update text, __float128
1201         built-in functions are available for x86-32 and x86-64 targets.
1202
1203 2016-06-12  Uros Bizjak  <ubizjak@gmail.com>
1204
1205         PR target/71241
1206         * config/i386/i386.i386-builtin-types.def (CONST_STRING):
1207         New primitive type.
1208         (FLOAT128_FTYPE_CONST_STRING): New function type.
1209         * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_NANQ]: New.
1210         [IX86_BUILTIN_NANSQ]: Ditto.
1211         (ix86_fold_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
1212         (ix86_init_builtin_types): Declare const_string_type_node.
1213         (ix86_init_builtins): Add __builtin_nanq and __builtin_nansq
1214         builtin functions.
1215         (ix86_expand_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
1216         * doc/extend.texi (x86 Built-in Functions): Document
1217         __builtin_nanq and __builtin_nansq.
1218
1219 2016-06-11  Jiong Wang  <jiong.wang@arm.com>
1220
1221         PR target/71061
1222         * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration.
1223         * config/arm/arm.c (arm_attr_length_pop_multi): New function to return
1224         length for pop patterns.
1225         (arm_attr_length_push_multi): Update comments.
1226         * config/arm/arm.md (*load_multiple_with_writeback): Set "length"
1227         attribute.
1228         (*pop_multiple_with_writeback_and_return): Likewise.
1229         (*pop_multiple_with_return): Likewise.
1230
1231 2016-06-11  Segher Boessenkool  <segher@kernel.crashing.org>
1232
1233         PR middle-end/71310
1234         * fold-const.c (optimize_bit_field_compare): Don't try to use
1235         word_mode unconditionally for reading the bit field, look at
1236         DECL_BIT_FIELD_REPRESENTATIVE instead.
1237
1238 2016-06-11  Kugan Vivekanandarajah  <kuganv@linaro.org>
1239
1240         PR middle-end/71478
1241         * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
1242         vector integer type.
1243
1244 2016-06-10  Jakub Jelinek  <jakub@redhat.com>
1245
1246         PR middle-end/71494
1247         * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
1248         without LABEL_DECL, set *handled_ops_p to false instead of true.
1249
1250 2016-06-10  Martin Sebor  <msebor@redhat.com>
1251
1252         PR c/71392
1253         * builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro.
1254         (ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same.
1255         * builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use
1256         them.
1257         (BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same.
1258         (BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same.
1259         (BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same.
1260         (BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same.
1261         (BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
1262         (BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
1263         (BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
1264         (BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same.
1265
1266 2016-06-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1267
1268         * config/arm/arm.h (pool_vector_label,
1269         return_used_this_function): Remove.
1270
1271 2016-06-10  Jeff Law  <law@redhat.com>
1272
1273         PR tree-optimization/71335
1274         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Filter out
1275         zero length paths here.
1276         (convert_and_register_jump_thread_path): Remove hacks related to
1277         duplicated blocks in the jump thread path.
1278         (fsm_find_control_statement_thread_paths): Avoid putting the same
1279         block on the thread path twice, but ensure the thread path is
1280         unchanged from the caller's point of view.
1281
1282 2016-06-10  Jan Hubicka  <hubicka@ucw.cz>
1283
1284         * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
1285         * predict.def (PRED_LOOP_BRANCH): Remove.
1286
1287 2016-06-10  David Malcolm  <dmalcolm@redhat.com>
1288
1289         * Makefile.in (OBJS): Add ggc-tests.o.
1290         (GTFILES): Add ggc-tests.c.
1291         * ggc-tests.c: New file.
1292         * selftest-run-tests.c (selftest::run_tests): Call
1293         selftest::ggc_tests_c_tests.
1294         * selftest.h (selftest::ggc_tests_c_tests): New prototype.
1295
1296 2016-06-10  Alexander Monakov  <amonakov@ispras.ru>
1297
1298         * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
1299
1300 2016-06-10  Maxim Ostapenko  <m.ostapenko@samsung.com>
1301
1302         PR sanitizer/71480
1303         * varasm.c (place_block_symbol): Adjust alignment for asan protected
1304         STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
1305
1306 2016-06-10  Jan Hubicka  <hubicka@ucw.cz>
1307
1308         * profile.c: Include cfgloop.h.
1309         (branch_prob): Compute estimated number of iterations.
1310         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
1311         recompute estimate number of iterations from profile.
1312
1313 2016-06-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1314
1315         PR inline-asm/68843
1316         * reg-stack.c (check_asm_stack_operands): Explicit input arguments
1317         must be grouped on top of stack.  Don't force early clobber
1318         on ordinary reg outputs.
1319
1320 2016-06-10  Richard Biener  <rguenther@suse.de>
1321
1322         * targhooks.c (default_builtin_vectorization_cost): Adjust
1323         vec_construct cost.
1324
1325 2016-06-10  Richard Biener  <rguenther@suse.de>
1326
1327         * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
1328         to fold the RHS to a constant if possible.
1329
1330 2016-06-10  Thomas Schwinge  <thomas@codesourcery.com>
1331
1332         PR middle-end/71373
1333         * tree-nested.c (convert_nonlocal_omp_clauses)
1334         (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
1335         OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
1336         OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
1337
1338         * gimplify.c (gimplify_adjust_omp_clauses): Discard
1339         OMP_CLAUSE_TILE.
1340         * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
1341
1342         * omp-low.c (scan_sharing_clauses): Don't expect
1343         OMP_CLAUSE__CACHE_.
1344
1345 2016-06-10  Alan Hayward  <alan.hayward@arm.com>
1346
1347         PR tree-optimization/71407
1348         PR tree-optimization/71416
1349         * tree-vect-loop.c (vectorizable_live_operation): Use vectype for
1350         BIT_FIELD_REF type.
1351
1352 2016-06-10  Richard Biener  <rguenther@suse.de>
1353
1354         PR middle-end/71477
1355         * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
1356
1357 2016-06-09  Eric Botcazou  <ebotcazou@adacore.com>
1358
1359         * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
1360
1361 2016-06-09  Vladimir Makarov  <vmakarov@redhat.com>
1362             Jiong Wang  <jiong.wang@arm.com>
1363
1364         PR rtl-optimization/70751
1365         * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
1366         spilled into memory.
1367
1368 2016-06-09  Jonathan Yong  <10walls@gmail.com>
1369
1370         Revert:
1371         2015-09-21  Jonathan Yong  <10walls@gmail.com>
1372
1373         * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
1374         sysroot/usr/lib/32api for additional win32 libraries,
1375         fixes failing Cygwin bootstrapping.
1376
1377 2016-06-09  Marcin Baczyński  <marbacz@gmail.com>
1378
1379         * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
1380         Delete.
1381
1382 2016-06-09  David Malcolm  <dmalcolm@redhat.com>
1383
1384         PR bootstrap/71471
1385         * pretty-print.c (pp_indent): Specify that %p is printed in a
1386         host-dependent manner.
1387         (test_pp_format): Remove the test for %p.
1388
1389 2016-06-09  Maciej W. Rozycki  <macro@imgtec.com>
1390
1391         * config/mips/mips.c (mips_output_jump): Fix formatting.
1392
1393 2016-06-09  Richard Biener  <rguenther@suse.de>
1394
1395         PR tree-optimization/71462
1396         * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
1397         removed blocks.
1398
1399 2016-06-09  Martin Liska  <mliska@suse.cz>
1400
1401         * predict.c (dump_prediction): Add new argument.
1402         (enum predictor_reason): New enum.
1403         (struct predictor_hash): New struct.
1404         (predictor_hash::hash): New function.
1405         (predictor_hash::equal): Likewise.
1406         (not_removed_prediction_p): New function.
1407         (prune_predictions_for_bb): Likewise.
1408         (combine_predictions_for_bb): Prune predictions.
1409
1410 2016-06-09  Martin Liska  <mliska@suse.cz>
1411
1412         * predict.c (filter_predictions): New function.
1413         (remove_predictions_associated_with_edge): Use the filter
1414         function.
1415         (equal_edge_p): New function.
1416
1417 2016-06-09  Stefan Bruens  <stefan.bruens@rwth-aachen.de>
1418
1419         * doc/invoke.texi (ARM Options): Use lexicographical ordering.
1420         Correct usage of @samp vs @option, add @samp where appropriate.
1421         Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
1422         Add armv6s-m and document it, as it is no official ARM name.
1423
1424 2016-06-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1425
1426         * ifcvt.c (struct noce_if_info): Add transform_name field.
1427         (noce_try_move): Set if_info->transform_name to the function name.
1428         (noce_try_ifelse_collapse): Likewise.
1429         (noce_try_store_flag): Likewise.
1430         (noce_try_inverse_constants): Likewise.
1431         (noce_try_store_flag_constants): Likewise.
1432         (noce_try_addcc): Likewise.
1433         (noce_try_store_flag_mask): Likewise.
1434         (noce_try_cmove): Likewise.
1435         (noce_try_cmove_arith): Likewise.
1436         (noce_try_minmax): Likewise.
1437         (noce_try_abs): Likewise.
1438         (noce_try_sign_mask): Likewise.
1439         (noce_try_bitop): Likewise.
1440         (noce_convert_multiple_sets): Likewise.
1441         (noce_process_if_block): Print if_info->transform_name to
1442         dump_file if transformation succeeded.
1443
1444 2016-06-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1445
1446         * config/arm/cortex-a57.md (cortex_a57_alu):
1447         Handle csel type.
1448
1449 2016-06-08  Martin Sebor  <msebor@redhat.com>
1450             Jakub Jelinek  <jakub@redhat.com>
1451
1452         PR c++/70507
1453         PR c/68120
1454         * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
1455         BUILT_IN_MUL_OVERFLOW_P): New builtins.
1456         * builtins.c: Include gimple-fold.h.
1457         (fold_builtin_arith_overflow): Handle
1458         BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
1459         (fold_builtin_3): Likewise.
1460         * doc/extend.texi (Integer Overflow Builtins): Document
1461         __builtin_{add,sub,mul}_overflow_p.
1462
1463 2016-06-08  Jose E. Marchesi  <jose.marchesi@oracle.com>
1464
1465         * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
1466         SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
1467
1468 2016-06-08  Alan Lawrence  <alan.lawrence@arm.com>
1469
1470         * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
1471         Rewrite, looking one level down for records and arrays.
1472
1473 2016-06-08  David Malcolm  <dmalcolm@redhat.com>
1474
1475         * pretty-print.c: Include "selftest.h".
1476         (pp_format): Fix comment.
1477         (identifier_to_locale): Likewise.
1478         (selftest::test_basic_printing): New function.
1479         (selftest::assert_pp_format): New function.
1480         (selftest::test_pp_format): New function.
1481         (selftest::pretty_print_c_tests): New function.
1482         * selftest-run-tests.c (selftest::run_tests): Call
1483         selftest::pretty_print_c_tests.
1484         * selftest.h (pretty_print_c_tests): New declaration.
1485
1486 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
1487
1488         * invoke.texi (max-loop-headers-insns): Document.
1489         * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
1490         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
1491         (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
1492
1493 2016-06-08  Richard Biener  <rguenther@suse.de>
1494
1495         * tree-vect-stmts.c (vectorizable_load): Remove restrictions
1496         on strided SLP loads and fall back to scalar loads in case
1497         we can't chunk them.
1498
1499 2016-06-08  Richard Biener  <rguenther@suse.de>
1500
1501         PR tree-optimization/71452
1502         * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
1503         type used for the SSA rewrite has enough precision to cover
1504         the dynamic type of the location.
1505
1506 2016-06-08  Jakub Jelinek  <jakub@redhat.com>
1507             Richard Biener  <rguenther@suse.de>
1508
1509         PR c++/71448
1510         * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
1511         the same as DECL_P (base0) for indirect_base0.  Use equality_code
1512         in one further place.
1513
1514 2016-06-08  Richard Sandiford  <richard.sandiford@arm.com>
1515
1516         * expmed.c (store_bit_field_1): Do not restrict a multiword op0
1517         to one word if the field is known to overlap other words.
1518         (extract_bit_field_1): Likewise.
1519         (store_split_bit_field): Remove compensating code.
1520         (extract_split_bit_field): Likewise.
1521
1522 2016-06-08  Bernd Schmidt  <bschmidt@redhat.com>
1523
1524         PR debug/71432
1525         PR ada/71413
1526         * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
1527
1528 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1529
1530         * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
1531         VDQF.
1532         * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
1533         (arch64_addpv4sf): Delete.
1534         (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
1535         "gen_aarch64_addpv4sf".
1536         * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly.  Use
1537         builtin.
1538         (vpadds_f32): Likewise.
1539         (vpaddq_f32): Likewise.
1540         (vpaddq_f64): Likewise.
1541
1542 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1543
1544         * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
1545         VALLF.
1546         * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
1547         to VALLF.  Rename to "fabd<mode>3".
1548         "*fabd_scalar<mode>3): Delete.
1549         * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
1550         Use builtin.
1551         (vabdd_f64): Likewise.
1552         (vabd_f32): Likewise.
1553         (vabd_f64): Likewise.
1554         (vabdq_f32): Likewise.
1555         (vabdq_f64): Likewise.
1556
1557 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1558
1559         * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
1560         VALLF.
1561         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
1562         "aarch64_rsqrts<mode>".
1563         * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
1564         * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly.  Use
1565         builtin.
1566         (vrsqrtsd_f64): Likewise.
1567         (vrsqrts_f32): Likewise.
1568         (vrsqrts_f64): Likewise.
1569         (vrsqrtsq_f32): Likewise.
1570         (vrsqrtsq_f64): Likewise.
1571
1572 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1573
1574         * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
1575         VALLF.
1576         * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
1577         "aarch64_rsqrte<mode>".
1578         * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
1579         * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly.  Use
1580         builtin.
1581         (vrsqrted_f64): Likewise.
1582         (vrsqrte_f32): Likewise.
1583         (vrsqrte_f64): Likewise.
1584         (vrsqrteq_f32): Likewise.
1585         (vrsqrteq_f64): Likewise.
1586
1587 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1588
1589         * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
1590         (ucvtf): Likewise.
1591         (fcvtzs): Likewise.
1592         (fcvtzu): Likewise.
1593         * config/aarch64/aarch64-simd.md
1594         (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
1595         (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
1596         * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
1597         Use builtin.
1598         (vcvt_n_f32_u32): Likewise.
1599         (vcvt_n_s32_f32): Likewise.
1600         (vcvt_n_u32_f32): Likewise.
1601         (vcvtq_n_f32_s32): Likewise.
1602         (vcvtq_n_f32_u32): Likewise.
1603         (vcvtq_n_f64_s64): Likewise.
1604         (vcvtq_n_f64_u64): Likewise.
1605         (vcvtq_n_s32_f32): Likewise.
1606         (vcvtq_n_s64_f64): Likewise.
1607         (vcvtq_n_u32_f32): Likewise.
1608         (vcvtq_n_u64_f64): Likewise.
1609         * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
1610         (VSDQ_SDI): Likewise.
1611         (fcvt_target): Support V4DI, V4SI and V2SI.
1612         (FCVT_TARGET): Likewise.
1613
1614 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1615
1616         * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
1617         (TYPES_BINOP_SUS): Likewise.
1618         (aarch64_simd_builtin_data): Update include file name.
1619         (aarch64_builtins): Likewise.
1620         * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
1621         for conversion between scalar float-point and fixed-point.
1622         (ucvtf): Likewise.
1623         (fcvtzs): Likewise.
1624         (fcvtzu): Likewise.
1625         * config/aarch64/aarch64.md
1626         (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
1627         pattern for conversion between scalar float to fixed-pointer.
1628         (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
1629         (UNSPEC_FCVTZS): New UNSPEC enumeration.
1630         (UNSPEC_FCVTZU): Likewise.
1631         (UNSPEC_SCVTF): Likewise.
1632         (UNSPEC_UCVTF): Likewise.
1633         * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
1634         Use builtin.
1635         (vcvtd_n_f64_u64): Likewise.
1636         (vcvtd_n_s64_f64): Likewise.
1637         (vcvtd_n_u64_f64): Likewise.
1638         (vcvtd_n_f32_s32): Likewise.
1639         (vcvts_n_f32_u32): Likewise.
1640         (vcvtd_n_s32_f32): Likewise.
1641         (vcvts_n_u32_f32): Likewise.
1642         * config/aarch64/iterators.md (fcvt_target): Support integer to float
1643         mapping.
1644         (FCVT_TARGET): Likewise.
1645         (FCVT_FIXED2F): New iterator.
1646         (FCVT_F2FIXED): Likewise.
1647         (fcvt_fixed_insn): New define_int_attr.
1648
1649 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
1650
1651         * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
1652         some statements was removed.
1653
1654 2016-06-08  Alan Hayward  <alan.hayward@arm.com>
1655
1656         * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
1657         * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
1658         (vect_can_advance_ivs_p): likewise.
1659         (vect_update_ivs_after_vectorizer): likewise.
1660         * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
1661         (vect_analyze_scalar_cycles_1): likewise.
1662         (vect_analyze_loop_operations): likewise.
1663         (report_vect_op): likewise.
1664         (vect_is_slp_reduction): likewise.
1665         (vect_is_simple_reduction): likewise.
1666         (get_initial_def_for_induction): likewise.
1667         (vect_transform_loop): likewise.
1668         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
1669         (vect_recog_sad_pattern): likewise.
1670         (vect_recog_widen_sum_pattern): likewise.
1671         (vect_recog_widening_pattern): likewise.
1672         (vect_recog_divmod_pattern): likewise.
1673         * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
1674         (vect_analyze_slp_instance): likewise.
1675         (vect_transform_slp_perm_load): likewise.
1676         (vect_schedule_slp_instance): likewise.
1677
1678 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
1679
1680         * predict.c (predict_iv_comparison): Mention that heuristics is broken.
1681         (return_prediction): PRED_CONST_RETURN predict return as not taken.
1682         * predict.def (PRED_CONTINUE): Change hitrate 50->67
1683         (PRED_LOOP_BRANCH): Document predictor as broken.
1684         (PRED_LOOP_EXIT): Change hitrate 91->92.
1685         (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
1686         (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
1687         (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
1688         (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
1689         (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
1690         (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
1691         (PRED_CALL): Chane hitrate 71->67.
1692         (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
1693         (PRED_GOTO): Document as unused right now.
1694         (PRED_CONST_RETURN): Change hitrate 67->69
1695         (PRED_NEGATIVE_RETURN): Change hitrate 96->98
1696         (PRED_NULL_RETURN): Change hitrate 91->90.
1697         (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
1698         (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
1699         (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
1700
1701 2016-06-07  Bill Seurer  <seurer@linux.vnet.ibm.com>
1702
1703         * config/rs6000/altivec.h: Add __builtin_vec_mul.
1704         * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
1705         special case Altivec builtin.
1706         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
1707         VSX_BUILTIN_VEC_MUL (replaced with special case code).
1708         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
1709         code for ALTIVEC_BUILTIN_VEC_MUL.
1710         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
1711         for __builtin_vec_mul.
1712
1713 2016-06-07  Peter Bergner  <bergner@vnet.ibm.com>
1714
1715         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
1716         -mno-htm.
1717
1718 2016-06-07  David Malcolm  <dmalcolm@redhat.com>
1719
1720         * spellcheck.c (selftest::test_find_closest_string): New function.
1721         (spellcheck_c_tests): Call the above.
1722
1723 2016-06-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1724
1725         * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
1726
1727 2016-06-07  Jakub Jelinek  <jakub@redhat.com>
1728
1729         * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
1730         Yv=Yv,C alternatives.
1731
1732 2016-06-07  Richard Biener  <rguenther@suse.de>
1733
1734         PR c/61564
1735         * common.opt (ffast-math): Make Optimization.
1736
1737 2016-06-07  Simon Dardis  <simon.dardis@imgtec.com>
1738             Prachi Godbole  <prachi.godbole@imgtec.com>
1739
1740         * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
1741         `fabs' and `fneg' type attributes.
1742         (p5600_fpu_fabs): Add `fmove' to the comment.
1743
1744 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
1745
1746         * gimple.c: Include builtins.h
1747         (gimple_inexpensive_call_p): New function.
1748         * gimple.h (gimple_inexpensive_call_p): Declare.
1749         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
1750         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
1751         fix formatting.
1752
1753 2016-06-07  Paolo Carlini  <paolo.carlini@oracle.com>
1754
1755         * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
1756         (inform, inform_at_rich_loc, inform_n, warning, warning_at,
1757         warning_at_rich_loc, warning_n, pedwarn, permerror,
1758         permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
1759         sorry, fatal_error, internal_error, internal_error_no_backtrace):
1760         Use the above.
1761
1762 2016-06-07  Richard Biener  <rguenther@suse.de>
1763
1764         PR tree-optimization/71428
1765         * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
1766         BIT_FIELD_REF op vs. load.
1767
1768 2016-06-07  Richard Biener  <rguenther@suse.de>
1769
1770         PR middle-end/71423
1771         * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
1772         for signed ops.
1773
1774 2016-06-06  John David Anglin  <danglin@gcc.gnu.org>
1775
1776         * config/pa/pa.md (call): Generate indirect long calls to non-local
1777         functions on TARGET_64BIT.
1778         (call_value): Likewise.
1779
1780 2016-06-06  John David Anglin  <danglin@gcc.gnu.org>
1781
1782         * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
1783         pattern and subsequent splitters.
1784         (call_val_reg_64bit_post_reload): Likewise.
1785
1786 2016-06-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
1787
1788         PR middle-end/71408
1789         * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
1790         propagate_op_to_single_use.
1791
1792 2016-06-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
1793
1794         PR middle-end/71281
1795         * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
1796
1797 2016-06-07  Uros Bizjak  <ubizjak@gmail.com>
1798
1799         * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
1800         (enum x86_dirflag_state): New enum.
1801         (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
1802         (machine_function): Remove needs_cld.
1803         (ix86_current_function_needs_cld): Remove.
1804         * config/i386/i386.c (ix86_set_func_type): Set
1805         ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
1806         (ix86_expand_prologue): Do not emit CLD here.
1807         (ix86_dirflag_mode_needed): New function.
1808         (ix86_dirflag_mode_entry): Ditto.
1809         (ix86_mode_needed): Handle X86_DIRFLAG entity.
1810         (ix86_mode_after): Ditto.
1811         (ix86_mode_entry): Ditto.
1812         (ix86_mode_exit): Ditto.
1813         (ix86_emit_mode_set): Ditto.
1814         * config/i386/i386.md (strmov_singleop): Set
1815         ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
1816         Do not set ix86_current_function_needs_cld.
1817         (rep_mov): Ditto.
1818         (strset_singleop): Ditto.
1819         (rep_stos): Ditto.
1820         (cmpstrnqi_nz_1): Ditto.
1821         (cmpstrnqi_1): Ditto.
1822         (strlenqi_1): Ditto.
1823
1824 2016-06-06  Jakub Jelinek  <jakub@redhat.com>
1825
1826         PR tree-optimization/71259
1827         * tree-vect-slp.c (vect_get_constant_vectors): For
1828         VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
1829         one for constant op, and use COND_EXPR for non-constant.
1830
1831 2016-06-06  David Malcolm  <dmalcolm@redhat.com>
1832
1833         * Makefile.in (OBJS): Add function-tests.o,
1834         hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
1835         selftest-run-tests.o.
1836         (OBJS-libcommon): Add selftest.o.
1837         (OBJS-libcommon-target): Add selftest.o.
1838         (all.internal): Add "selftest".
1839         (all.cross): Likewise.
1840         (selftest): New phony target.
1841         (s-selftest): New target.
1842         (selftest-gdb): New phony target.
1843         (COLLECT2_OBJS): Add selftest.o.
1844         * bitmap.c: Include "selftest.h".
1845         (selftest::test_gc_alloc): New function.
1846         (selftest::test_set_range): New function.
1847         (selftest::test_clear_bit_in_middle): New function.
1848         (selftest::test_copying): New function.
1849         (selftest::test_bitmap_single_bit_set_p): New function.
1850         (selftest::bitmap_c_tests): New function.
1851         * common.opt (fself-test): New.
1852         * diagnostic-show-locus.c: Include "selftest.h".
1853         (make_range): New function.
1854         (test_range_contains_point_for_single_point): New function.
1855         (test_range_contains_point_for_single_line): New function.
1856         (test_range_contains_point_for_multiple_lines): New function.
1857         (assert_eq): New function.
1858         (test_get_line_width_without_trailing_whitespace): New function.
1859         (selftest::diagnostic_show_locus_c_tests): New function.
1860         * et-forest.c: Include "selftest.h".
1861         (selftest::test_single_node): New function.
1862         (selftest::test_simple_tree): New function.
1863         (selftest::test_disconnected_nodes): New function.
1864         (selftest::et_forest_c_tests): New function.
1865         * fold-const.c: Include "selftest.h".
1866         (selftest::assert_binop_folds_to_const): New function.
1867         (selftest::assert_binop_folds_to_nonlvalue): New function.
1868         (selftest::test_arithmetic_folding): New function.
1869         (selftest::fold_const_c_tests): New function.
1870         * function-tests.c: New file.
1871         * gimple.c: Include "selftest.h".
1872         Include "gimple-pretty-print.h".
1873         (selftest::verify_gimple_pp): New function.
1874         (selftest::test_assign_single): New function.
1875         (selftest::test_assign_binop): New function.
1876         (selftest::test_nop_stmt): New function.
1877         (selftest::test_return_stmt): New function.
1878         (selftest::test_return_without_value): New function.
1879         (selftest::gimple_c_tests): New function.
1880         * hash-map-tests.c: New file.
1881         * hash-set-tests.c: New file.
1882         * input.c: Include "selftest.h".
1883         (selftest::assert_loceq): New function.
1884         (selftest::test_accessing_ordinary_linemaps): New function.
1885         (selftest::test_unknown_location): New function.
1886         (selftest::test_builtins): New function.
1887         (selftest::test_reading_source_line): New function.
1888         (selftest::input_c_tests): New function.
1889         * rtl-tests.c: New file.
1890         * selftest-run-tests.c: New file.
1891         * selftest.c: New file.
1892         * selftest.h: New file.
1893         * spellcheck.c: Include "selftest.h".
1894         (selftest::levenshtein_distance_unit_test_oneway): New function,
1895         adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
1896         (selftest::levenshtein_distance_unit_test): Likewise.
1897         (selftest::spellcheck_c_tests): Likewise.
1898         * toplev.c: Include selftest.h.
1899         (toplev::run_self_tests): New.
1900         (toplev::main): Handle -fself-test.
1901         * toplev.h (toplev::run_self_tests): New.
1902         * tree.c: Include "selftest.h".
1903         (selftest::test_integer_constants): New function.
1904         (selftest::test_identifiers): New function.
1905         (selftest::test_labels): New function.
1906         (selftest::tree_c_tests): New function.
1907         * tree-cfg.c: Include "selftest.h".
1908         (selftest::push_fndecl): New function.
1909         (selftest::test_linear_chain): New function.
1910         (selftest::test_diamond): New function.
1911         (selftest::test_fully_connected): New function.
1912         (selftest::tree_cfg_c_tests): New function.
1913         * vec.c: Include "selftest.h".
1914         (selftest::safe_push_range): New function.
1915         (selftest::test_quick_push): New function.
1916         (selftest::test_safe_push): New function.
1917         (selftest::test_truncate): New function.
1918         (selftest::test_safe_grow_cleared): New function.
1919         (selftest::test_pop): New function.
1920         (selftest::test_safe_insert): New function.
1921         (selftest::test_ordered_remove): New function.
1922         (selftest::test_unordered_remove): New function.
1923         (selftest::test_block_remove): New function.
1924         (selftest::reverse_cmp): New function.
1925         (selftest::test_qsort): New function.
1926         (selftest::vec_c_tests): New function.c.
1927         * wide-int.cc: Include selftest.h and wide-int-print.h.
1928         (selftest::from_int <wide_int>): New function.
1929         (selftest::from_int <offset_int>): New function.
1930         (selftest::from_int <widest_int>): New function.
1931         (selftest::assert_deceq): New function.
1932         (selftest::assert_hexeq): New function.
1933         (selftest::test_printing <VALUE_TYPE>): New function template.
1934         (selftest::test_ops <VALUE_TYPE>): New function template.
1935         (selftest::test_comparisons <VALUE_TYPE>): New function template.
1936         (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
1937         template.
1938         (selftest::wide_int_cc_tests): New function.
1939
1940 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1941
1942         PR middle-end/37780
1943         * ifcvt.c (noce_try_ifelse_collapse): New function.
1944         Declare prototype.
1945         (noce_process_if_block): Call noce_try_ifelse_collapse.
1946         * simplify-rtx.c (simplify_cond_clz_ctz): New function.
1947         (simplify_ternary_operation): Use the above to simplify
1948         conditional CLZ/CTZ expressions.
1949
1950 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1951
1952         PR middle-end/37780
1953         * config/aarch64/aarch64.md (ctz<mode>2): Convert to
1954         define_insn_and_split.
1955
1956 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1957
1958         PR middle-end/37780
1959         * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
1960
1961 2016-06-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1962
1963         PR c/24414
1964         * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
1965         Implicitly clobber memory for basic asm with non-empty assembler
1966         string.  Use targetm.md_asm_adjust also here.
1967         * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
1968         * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
1969         * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
1970         non-empty assembler string.
1971         * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
1972         * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
1973         (decode_asm_operands): Handle basic asm in PARALLEL block.
1974         (extract_insn): Handle basic asm in PARALLEL block.
1975         * doc/extend.texi: Mention new behavior of basic asm.
1976         * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
1977         * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
1978         branch_needs_nop_p): Use asm_noperands.
1979
1980 2016-06-06  Jose E. Marchesi  <jose.marchesi@oracle.com>
1981
1982         * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
1983         Include the M7 SPARC DFA scheduler.
1984         New attribute v3pipe.
1985         Annotate insns with v3pipe where appropriate.
1986         Define cpu_feature vis4.
1987         Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
1988         Add (V8QI "8") to vbits.
1989         Add insns {add,sub}v8qi3
1990         Add insns ss{add,sub}v8qi3
1991         Add insns us{add,sub}{v8qi,v4hi}3
1992         Add insns {min,max}{v8qi,v4hi,v2si}3
1993         Add insns {minu,maxu}{v8qi,v4hi,v2si}3
1994         Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
1995         * config/sparc/niagara4.md: Add a comment explaining the
1996         discrepancy between the documented latenty numbers and the
1997         implemented ones.
1998         * config/sparc/niagara7.md: New file.
1999         * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
2000         supports SPARC5 and VIS 4.0 instructions.
2001         * configure: Regenerate.
2002         * config.in: Likewise.
2003         * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
2004         * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
2005         TARGET_CPU_niagara7.
2006         (ASM_CPU64_DEFAULT_SPEC): Likewise.
2007         (CPP_CPU_SPEC): Handle niagara7.
2008         (ASM_CPU_SPEC): Likewise.
2009         * config/sparc/sparc-opts.h (processor_type): Add
2010         PROCESSOR_NIAGARA7.
2011         (mvis4): New option.
2012         * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
2013         (AS_NIAGARA7_FLAG): Define.
2014         (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
2015         (CPP_CPU64_DEFAULT_SPEC): Likewise.
2016         (CPP_CPU_SPEC): Handle niagara7.
2017         (ASM_CPU_SPEC): Likewise.
2018         * config/sparc/sparc.c (niagara7_costs): Define.
2019         (sparc_option_override): Handle niagara7 and adjust cache-related
2020         parameters with better values for niagara cpus.  Also support VIS4.
2021         (sparc32_initialize_trampoline): Likewise.
2022         (sparc_use_sched_lookahead): Likewise.
2023         (sparc_issue_rate): Likewise.
2024         (sparc_register_move_cost): Likewise.
2025         (dump_target_flag_bits): Support VIS4.
2026         (sparc_vis_init_builtins): Likewise.
2027         (sparc_builtins): Likewise.
2028         * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
2029         VIS4 4.0.
2030         * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
2031         UltraSparc M7.
2032         * config/sparc/sparc.opt (sparc_processor_type): New value
2033         niagara7.
2034         * config/sparc/visintrin.h (__attribute__): Prototypes for the
2035         VIS4 builtins.
2036         * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
2037         -mvis4.
2038         * doc/extend.texi (SPARC VIS Built-in Functions): Document the
2039         VIS4 builtins.
2040
2041 2016-06-06  Jonathan Wakely  <jwakely@redhat.com>
2042
2043         * doc/sourcebuild.texi (Directives): Remove extra closing braces.
2044
2045 2016-06-06  Richard Biener  <rguenther@suse.de>
2046
2047         PR tree-optimization/71398
2048         * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
2049         remove edges.
2050
2051 2016-06-05  James Bowman  <james.bowman@ftdichip.com>
2052
2053         * config/ft32/ft32.c (ft32_setup_incoming_varargs,
2054         ft32_expand_prolog, ft32_expand_epilogue):
2055         Handle pretend_args.
2056         * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
2057         * config/ft32/ft32.md: Add pretend_returner.
2058
2059 2016-06-06  Uros Bizjak  <ubizjak@gmail.com>
2060
2061         PR target/71389
2062         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
2063         Copy op1 RTX to avoid invalid sharing.
2064         (ix86_expand_vector_move_misalign): Ditto.
2065
2066 2016-06-05  John David Anglin  <danglin@gcc.gnu.org>
2067
2068         * expr.c (move_by_pieces_d::generate): Mark mode parameter with
2069         ATTRIBUTE_UNUSED.
2070
2071 2016-06-05  Jan Hubicka  <hubicka@ucw.cz>
2072
2073         * predict.c (predicted_by_loop_heuristics_p): New function.
2074         (predict_iv_comparison): Use it.
2075         (predict_loops): Walk from innermost loops; do not predict edges
2076         leaving multiple loops multiple times; implement
2077         PRED_LOOP_ITERATIONS_MAX heuristics.
2078         * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
2079
2080 2016-06-05  Jan Hubicka  <hubicka@ucw.cz>
2081
2082         * cfg.c (check_bb_profile): Do not report mismatched profiles when
2083         only edges out of BB are EH edges.
2084
2085 2016-06-04  Martin Sebor  <msebor@redhat.com>
2086             Marcin Baczyński  <marbacz@gmail.com>
2087
2088         PR c/48116
2089         * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
2090         a void expression in a void function.
2091
2092 2016-06-03  Jan Hubicka  <hubicka@ucw.cz>
2093
2094         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
2095         aux; dump reasons of decisions.
2096         (should_duplicate_loop_header_p): Likewise.
2097         (do_while_loop_p): Likewise.
2098         (ch_base::copy_headers): Dump asi num insns duplicated.
2099
2100 2016-06-04  Jakub Jelinek  <jakub@redhat.com>
2101
2102         PR tree-optimization/71405
2103         * tree-ssa.c (execute_update_addresses_taken): For clobber with
2104         incompatible type, build a new clobber with the right type instead
2105         of building a VIEW_CONVERT_EXPR around it.
2106
2107 2016-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
2108
2109         PR tree-optimization/52171
2110         * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
2111         by_pieces_ninsns instead of move_by_pieces_ninsns.
2112
2113 2016-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
2114
2115         * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
2116         for reg+reg addressing mode.
2117
2118 2016-06-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2119
2120         * rs6000-c.c (c/c-tree.h): Add #include.
2121         (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
2122         in C++ when found in the base position of vec_ld or vec_st.
2123
2124 2016-06-03  Jan Hubicka  <hubicka@ucw.cz>
2125
2126         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
2127         use of profile unless profile status is PROFILE_READ.
2128         * profile.c (compute_branch_probabilities): Set profile status
2129         only after reporting predictor hitrates.
2130
2131 2016-06-03  Joseph Myers  <joseph@codesourcery.com>
2132
2133         PR target/71276
2134         PR target/71277
2135         * common.opt (ffp-int-builtin-inexact): New option.
2136         * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
2137         * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
2138         (ceil@var{m}2): Document dependence on this option.
2139         * ipa-inline-transform.c (inline_call): Handle
2140         flag_fp_int_builtin_inexact.
2141         * ipa-inline.c (can_inline_edge_p): Likewise.
2142         * config/i386/i386.md (rintxf2): Do not test
2143         flag_unsafe_math_optimizations.
2144         (rint<mode>2_frndint): New define_insn.
2145         (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
2146         or !flag_trapping_math for SSE.  Just use gen_rint<mode>2_frndint
2147         for 387 instead of extending and truncating.
2148         (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
2149         !flag_trapping_math instead of flag_unsafe_math_optimizations.
2150         Change to frndint<mode>2_<rounding>.
2151         (frndintxf2_<rounding>_i387): Likewise.  Change to
2152         frndint<mode>2_<rounding>_i387.
2153         (<rounding_insn>xf2): Likewise.
2154         (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
2155         !flag_trapping_math instead of flag_unsafe_math_optimizations for
2156         x87.  Test TARGET_ROUND || !flag_trapping_math ||
2157         flag_fp_int_builtin_inexact instead of !flag_trapping_math for
2158         SSE.  Use ROUND_NO_EXC in constant operand of
2159         gen_sse4_1_round<mode>2.  Just use gen_frndint<mode>2_<rounding>
2160         for 387 instead of extending and truncating.
2161
2162 2016-06-03  H.J. Lu  <hongjiu.lu@intel.com>
2163             Julia Koval  <julia.koval@intel.com>
2164
2165         PR target/66960
2166         PR target/67630
2167         PR target/67634
2168         PR target/67841
2169         PR target/68037
2170         PR target/68618
2171         PR target/68661
2172         PR target/69575
2173         PR target/69596
2174         PR target/69734
2175         * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
2176         * config/i386/i386.c (ix86_conditional_register_usage): Preserve
2177         all registers, except for function return registers if there are
2178         no caller-saved registers.
2179         (ix86_set_func_type): New function.
2180         (ix86_set_current_function): Call ix86_set_func_type to set
2181         no_caller_saved_registers and func_type.  Call reinit_regs if
2182         caller-saved registers are changed.  Don't allow MPX, SSE, MMX
2183         nor x87 instructions in interrupt handler nor function with
2184         no_caller_saved_registers attribute.
2185         (ix86_function_ok_for_sibcall): Return false if there are no
2186         caller-saved registers.
2187         (type_natural_mode): Don't warn ABI change for MMX in interrupt
2188         handler.
2189         (ix86_function_arg_advance): Skip for callee in interrupt handler.
2190         (ix86_function_arg): Return special arguments in interrupt handler.
2191         (ix86_promote_function_mode): Promote pointer to word_mode only
2192         for normal functions.
2193         (ix86_can_use_return_insn_p): Don't use `ret' instruction in
2194         interrupt handler.
2195         (ix86_epilogue_uses): New function.
2196         (ix86_hard_regno_scratch_ok): Likewise.
2197         (ix86_save_reg): Preserve all registers in interrupt handler
2198         after reload.  Preserve all registers, except for function return
2199         registers, if there are no caller-saved registers after reload.
2200         (find_drap_reg): Always use callee-saved register if there are
2201         no caller-saved registers.
2202         (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
2203         for interrupt handler.
2204         (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
2205         Emit cld instruction if stringops are used in interrupt handler
2206         or interrupt handler isn't a leaf function.
2207         (ix86_expand_epilogue): Generate interrupt return for interrupt
2208         handler and pop the 'ERROR_CODE' off the stack before interrupt
2209         return in exception handler.
2210         (ix86_expand_call): Disallow calling interrupt handler directly.
2211         If there are no caller-saved registers, mark all registers that
2212         are clobbered by the call which returns as clobbered.
2213         (ix86_handle_no_caller_saved_registers_attribute): New function.
2214         (ix86_handle_interrupt_attribute): Likewise.
2215         (ix86_attribute_table): Add interrupt and no_caller_saved_registers
2216         attributes.
2217         (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
2218         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
2219         accumulation in interrupt function if stack may be realigned to
2220         avoid DRAP.
2221         (EPILOGUE_USES): New.
2222         (function_type): New enum.
2223         (machine_function): Add func_type and no_caller_saved_registers.
2224         * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
2225         (interrupt_return): New pattern.
2226         * doc/extend.texi: Document x86 interrupt and
2227         no_caller_saved_registers attributes.
2228
2229 2016-06-03  Bernd Schmidt  <bschmidt@redhat.com>
2230
2231         PR tree-optimization/52171
2232         * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
2233         (expand_builtin_memcmp): New arg RESULT_EQ.  All callers changed.
2234         Look for constant strings.  Move some code to emit_block_cmp_hints
2235         and use it.
2236         * builtins.def (BUILT_IN_MEMCMP_EQ): New.
2237         * defaults.h (COMPARE_MAX_PIECES): New macro.
2238         * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
2239         (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
2240         (clear_by_pieces_1): Don't declare.  Move definition before use.
2241         (can_do_by_pieces): New static function.
2242         (can_move_by_pieces): Use it.  Return bool.
2243         (by_pieces_ninsns): Renamed from move_by_pieces_ninsns.  New arg
2244         OP.  All callers changed.  Handle COMPARE_BY_PIECES.
2245         (class pieces_addr); New.
2246         (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
2247         pieces_addr::adjust, pieces_addr::increment_address,
2248         pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
2249         functions for it.
2250         (class op_by_pieces_d): New.
2251         (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
2252         functions for it.
2253         (class move_by_pieces_d, class compare_by_pieces_d,
2254         class store_by_pieces_d): New subclasses of op_by_pieces_d.
2255         (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
2256         move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
2257         store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
2258         compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
2259         compare_by_pieces_d::finish_mode): New member functions.
2260         (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
2261         functions.
2262         (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
2263         (emit_block_cmp_hints): New function.
2264         (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
2265         use the newly defined classes.
2266         * expr.h (by_pieces_constfn): New typedef.
2267         (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
2268         (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
2269         (move_by_pieces_ninsns): Don't declare.
2270         (can_move_by_pieces): Change return value to bool.
2271         * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
2272         (compare_by_pieces_branch_ratio): New hook.
2273         * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
2274         (by_pieces_ninsns): Declare.
2275         * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
2276         COMPARE_BY_PIECES.
2277         (default_compare_by_pieces_branch_ratio): New function.
2278         * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
2279         * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
2280         * doc/tm.texi: Regenerate.
2281         * tree-ssa-strlen.c: Include "builtins.h".
2282         (handle_builtin_memcmp): New static function.
2283         (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
2284         * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
2285
2286 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
2287
2288         * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
2289         relevant stmts which are simple and invariant.
2290         * tree-vect-loop.c (vectorizable_live_operation): Check relevance
2291         instead of simple and invariant
2292
2293 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
2294
2295         * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
2296         (vectorizable_reduction): Check for new relevant state.
2297         (vectorizable_live_operation): vectorize live stmts using
2298         BIT_FIELD_REF.  Remove special case for gimple assigns stmts.
2299         * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
2300         (vect_stmt_relevant_p): Check for stmts which are only used live.
2301         (process_use): Use of a stmt does not inherit it's live value.
2302         (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
2303         (vect_analyze_stmt): Check for new relevant state.
2304         * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
2305         outside the loop, but not inside it.
2306
2307 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
2308
2309         * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
2310         * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
2311         (vect_get_vec_def_for_operand): Split out code.
2312
2313 2016-06-03  Segher Boessenkool  <segher@kernel.crashing.org>
2314
2315         * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
2316
2317 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
2318
2319         * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
2320
2321 2016-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2322
2323         * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
2324
2325 2016-06-03  Jakub Jelinek  <jakub@redhat.com>
2326
2327         PR middle-end/71387
2328         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
2329         to noreturn e->callee->decl that has void return type and void
2330         arguments, adjust gimple_call_fntype and remove lhs even if it had
2331         previously addressable type.
2332
2333 2016-06-02  Jeff Law  <law@redhat.com>
2334
2335         PR tree-optimization/71328
2336         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
2337         error when checking for a jump back onto the copied path.
2338
2339 2016-06-02  David Malcolm  <dmalcolm@redhat.com>
2340
2341         * config/microblaze/microblaze.c (get_branch_target): Add return
2342         NULL_RTX for the non-CALL_P case.
2343         (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
2344         (insert_wic): Remove unused local "j".
2345
2346 2016-06-02  Martin Liska  <mliska@suse.cz>
2347
2348         * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
2349
2350 2016-06-02  H.J. Lu  <hongjiu.lu@intel.com>
2351             Julia Koval  <julia.koval@intel.com>
2352
2353         * function.c (assign_parm_setup_stack): Force source into a
2354         register if needed.
2355         * target.def (function_incoming_arg): Update documentation to
2356         allow arbitrary address computation based on hard register.
2357         * doc/tm.texi: Regenerated.
2358
2359 2016-06-02  Martin Liska  <mliska@suse.cz>
2360
2361         * predict.c (combine_predictions_for_bb): Fix first match in
2362         cases where a first predictor contains more than one occurence
2363         in list of predictors.  Take the best value in such case.
2364
2365 2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2366
2367         PR rtl-optimization/71295
2368         * rtlanal.c (subreg_get_info): If taking a subreg at the requested
2369         offset would go over the size of the inner mode reject it.
2370
2371 2016-06-02  Jakub Jelinek  <jakub@redhat.com>
2372
2373         * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
2374         x=x,x and v=v,m instead of x=x,m.
2375
2376         * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
2377         alternative.  Change x=x,x alternative to v=Yv,Yv and x=rm,C
2378         alternative to v=rm,C.
2379
2380         * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
2381         alternative.  Change x=xm,C alternative to v=vm,C, x=x,x alternative
2382         to v=Yv,Yv and x=x,m to v=v,m.  Use maybe_evex prefix attribute
2383         instead of vex for the last two above mentioned alternatives.
2384
2385 2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2386
2387         PR target/70830
2388         * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
2389
2390 2016-06-02  Segher Boessenkool  <segher@kernel.crashing.org>
2391
2392         * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
2393
2394 2016-06-01  David Malcolm  <dmalcolm@redhat.com>
2395
2396         * config/rl78/rl78.c (rl78_expand_prologue): Convert local
2397         from int to unsigned.
2398
2399 2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
2400
2401         * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
2402         alternatives, eliminating preferred register class.  Add support
2403         for the MTVSRDD instruction in ISA 3.0.
2404         (vsx_splat_v4si_internal): Use splat_input_operand instead of
2405         reg_or_indexed_operand.
2406         (vsx_splat_v4sf_internal): Likewise.
2407
2408 2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
2409
2410         PR target/71186
2411         * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
2412         for loading up all 0's or all 1's.
2413
2414 2016-06-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2415
2416         * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
2417
2418 2016-06-01  Eduard Sanou  <dhole@openmailbox.org>
2419
2420         * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
2421         extension.
2422         * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
2423         * gcc.c (set_source_date_epoch_envvar): New function, sets
2424         the SOURCE_DATE_EPOCH environment variable to the current time.
2425
2426 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
2427
2428         * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
2429         the factor for live Phi nodes.
2430
2431 2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
2432
2433         * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
2434         * tree-parloops.c (parallelize_loops): likewise.
2435         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
2436         tree_unswitch_outer_loop): likewise.
2437
2438 2016-06-01  Jakub Jelinek  <jakub@redhat.com>
2439
2440         PR middle-end/71371
2441         * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
2442         around creation of the temporary.
2443
2444 2016-06-01  Richard Biener  <rguenther@suse.de>
2445
2446         PR tree-optimization/71366
2447         * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
2448         (unloop_loops): Move removing edges here ...
2449         (try_unroll_loop_completely): ... from here.
2450         (try_peel_loop): ... and here.
2451         (tree_unroll_loops_completely_1): Track parent loops via
2452         bitmap of header BBs.
2453         (tree_unroll_loops_completely): Adjust for that.
2454
2455 2016-06-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2456
2457         * config/rs6000/altivec.h (vec_slv): New macro.
2458         (vec_srv): New macro.
2459         * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
2460         (UNSPEC_VSRV): New value.
2461         (vslv): New insn.
2462         (vsrv): New insn.
2463         * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
2464         (vsrv): New builtin definition.
2465         * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
2466         define argument types for new builtin.
2467         (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
2468         new builtin.
2469         * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
2470         functions.
2471
2472 2016-06-01  Uros Bizjak  <ubizjak@gmail.com>
2473             Jocelyn Mayer  <l_indien@magic.fr>
2474
2475         PR target/67310
2476         * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
2477         detect processor family for signature_CENTAUR_ebx.
2478         <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
2479         signature_CENTAUR_ebx.
2480         <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
2481         <default>: Pass x86-64 for has_longmode.
2482
2483 2016-06-01  Nathan Sidwell  <nathan@acm.org>
2484
2485         * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
2486         undefined weak.
2487
2488 2016-06-01  Richard Biener  <rguenther@suse.de>
2489
2490         PR tree-optimization/71261
2491         * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
2492         of stmts successfully put in the bool pattern.  Remove
2493         single-use restriction.
2494         (adjust_bool_pattern_cast): Add cast at the use site via the
2495         pattern def sequence.
2496         (adjust_bool_pattern): Remove recursion, maintain a hash-map
2497         of patterned defs.  Use the pattern def seqence instead of
2498         multiple independent patterns.
2499         (sort_after_uid): New qsort compare function.
2500         (adjust_bool_stmts): New function to process stmts in the bool
2501         pattern in IL order.
2502         (vect_recog_bool_pattern): Adjust.
2503         * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
2504         (ifcvt_walk_pattern_tree): Likewise.
2505         (stmt_is_root_of_bool_pattern): Likewise.
2506         (ifcvt_repair_bool_pattern): Likewise.
2507         (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
2508
2509 2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
2510
2511         * loop-unroll.c (decide_unroll_constant_iterations,
2512         decide_unroll_runtime_iterations, decide_unroll_stupid): Use
2513         likely upper bounds.
2514         * loop-iv.c (find_simple_exit): Dump likely upper bounds.
2515
2516 2016-06-01  Thomas Schwinge  <thomas@codesourcery.com>
2517
2518         * tree-core.h (enum omp_clause_code): Remove
2519         OMP_CLAUSE_DEVICE_RESIDENT.  Adjust all users.
2520
2521 2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2522
2523         * config/arm/sync.md (arm_store_exclusive<mode>):
2524         Use 'H' output modifier on operands[2] rather than creating a new
2525         entry in out-of-bounds memory of the operands array.
2526         (arm_store_release_exclusivedi): Likewise.
2527
2528 2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2529
2530         * config/arm/arm.c (arm_fusion_enabled_p): New function.
2531         * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
2532         * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
2533         Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.
2534
2535 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
2536
2537         * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
2538         into account live statements for mask producers.
2539
2540 2016-06-01  Richard Biener  <rguenther@suse.de>
2541
2542         PR tree-optimization/71311
2543         * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
2544         restrict to non-INTEGER_CST @0.
2545
2546 2016-06-01  Richard Biener  <rguenther@suse.de>
2547
2548         * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
2549         (relational patterns): Use :c to avoid pattern duplications.
2550
2551 2016-06-01  Richard Biener  <rguenther@suse.de>
2552
2553         * genmatch.c (comparison_code_p): New predicate.
2554         (swap_tree_comparison): New function.
2555         (commutate): Add for_vec parameter to append new for entries.
2556         Support commutating relational operators by swapping it alongside
2557         operands.
2558         (lower_commutative): Adjust.
2559         (dt_simplify::gen): Do not pass artificial operators to gen
2560         functions.
2561         (decision_tree::gen): Do not add artificial operators as parameters.
2562         (parser::parse_expr): Verify operator commutativity when :c is
2563         applied.  Allow :C to override this.
2564         * match.pd: Adjust patterns to use :C instead of :c where required.
2565
2566 2016-06-01  Patrick Palka  <ppalka@gcc.gnu.org>
2567
2568         PR tree-optimization/71077
2569         * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
2570         the combining step, use boolean_false_node and boolean_true_node
2571         as the designated false/true return values.
2572
2573 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
2574
2575         * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
2576         * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
2577         (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
2578         PRED_LOOP_EXIT.
2579
2580 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
2581
2582         * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
2583         of flags impliying the register renaming.
2584         * toplev.c (process_options): Do not imply flag_rename_registers with
2585         loop peeling.
2586
2587 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
2588
2589         * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
2590         default implementation.
2591
2592 2016-05-31  Nathan Sidwell  <nathan@acm.org>
2593
2594         * dwarf2out.c (cur_line_info_table): Add GTY marker.
2595
2596 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
2597
2598         * config/sh/constraints.md (b): Remove constraint.
2599         * config/sh/predicates.md (arith_reg_operand): Remove
2600         TARGET_REGISTER_P.
2601         * config/sh/sh-modes.def (PDI): Remove.
2602         * config/sh/sh.c (sh_target_reg_class,
2603         sh_optimize_target_register_callee_saved): Remove functions.
2604         (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
2605         (sh_expand_epilogue): Update comment.
2606         (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
2607         sh_secondary_reload): Remove TARGET_REGS related code.
2608         * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
2609         TARGET_REGISTER_P): Remove macros.
2610         (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
2611         * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
2612         TR1_REG, TR2_REG): Remove constants.
2613         * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
2614
2615 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
2616
2617         * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
2618         define_expand patterns.
2619         (adddi3_compact): Rename to adddi3.
2620         (subdi3_compact): Rename to subdi3.
2621         (*negdi2): Rename to negdi2.
2622         (*abs<mode>2): Rename to abs<mode>2.
2623
2624 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
2625
2626         * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
2627         (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
2628         (atomic_sub_fetchsi): ... this new pattern.
2629         (mvtc): Add CC_REG clobber.
2630
2631 2016-05-31  Marek Polacek  <polacek@redhat.com>
2632
2633         * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
2634
2635 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2636
2637         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
2638         aarch64_fusion_enabled_p to check for fusion capabilities.
2639
2640 2016-05-31  Richard Biener  <rguenther@suse.de>
2641
2642         PR tree-optimization/71352
2643         * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
2644         minus one and a negate.
2645
2646 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2647
2648         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
2649         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
2650         Delete prototype.
2651         * config/aarch64/iterators.md (insn_count): Add descriptive comment.
2652         * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
2653         Remove use of aarch64_simd_attr_length_move, set length attribute
2654         directly.
2655         (*aarch64_be_movoi): Likewise.
2656         (*aarch64_be_movci): Likewise.
2657         (*aarch64_be_movxi): Likewise.
2658
2659 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
2660
2661         * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
2662         It no longer does that.
2663         * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
2664
2665 2016-05-31  Wladimir J. van der Laan  <laanwj@gmail.com>
2666
2667         * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
2668         attribute __unused__.
2669
2670 2016-05-31  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2671
2672         * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
2673         * config/arm/arm.c (arm_arch_thumb1): Define.
2674         (arm_option_override): Initialize arm_arch_thumb1.
2675         * config/arm/arm.h (arm_arch_thumb1): Declare.
2676         (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
2677         support Thumb-1 ISA.
2678
2679 2016-05-31  Kirill Yukhin  <kirill.yukhin@intel.com>
2680
2681         PR target/71346
2682         * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
2683         `Yv' for scalar operand.
2684
2685 2016-05-31  Tom de Vries  <tom@codesourcery.com>
2686
2687         PR tree-optimization/69068
2688         * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
2689         phis with more than two args.
2690
2691 2016-05-30  Andreas Tobler  <andreast@gcc.gnu.org>
2692
2693         * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
2694         armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
2695         target.
2696
2697 2016-05-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
2698
2699         * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
2700         tune_64.
2701         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
2702         support on SPARC.
2703         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
2704         cpu_32, cpu_64, tune_32 and tune_64.
2705         * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
2706
2707 2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
2708
2709         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
2710
2711 2016-05-30  Andi Kleen  <ak@linux.intel.com>
2712
2713         * auto-profile.c (read_profile): Replace asserts with errors
2714         when file does not exist.
2715         * gcov-io.c (gcov_read_words): Dito.
2716
2717 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
2718
2719         * tree-cfg.c (print_loop): Print likely upper bounds.
2720
2721 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
2722
2723         * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
2724         * opts.c (default_options): Enable peel loops at -O3.
2725         * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
2726         (try_peel_loop): Do not re-peel already peeled loops;
2727         use likely upper bounds; fix profile updating.
2728         (pass_complete_unroll::execute): Initialize peeled_loops.
2729
2730 2016-05-30  Martin Liska  <mliska@suse.cz>
2731
2732         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
2733         computed costs by frequency of BB they belong to.
2734         (get_scaled_computation_cost_at): New function.
2735
2736 2016-05-30  Alexander Monakov  <amonakov@ispras.ru>
2737             Marc Glisse  <marc.glisse@inria.fr>
2738
2739         PR tree-optimization/71289
2740         * match.pd (-1 / B < A, A > -1 / B): New transformations.
2741
2742 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
2743
2744         * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
2745
2746 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
2747
2748         * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
2749         for peeled copies; avoid underflow when updating estimates; correctly
2750         scale loop profile.
2751
2752 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
2753
2754         * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
2755         r236875. Corrected oe3 to oe2 as obvious.
2756
2757 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
2758
2759         PR middle-end/71269
2760         PR middle-end/71252
2761         * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
2762         that inserted stmt will not dominate stmts that defines its operand.
2763         (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
2764         (rewrite_expr_tree_parallel): Likewise.
2765
2766 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
2767
2768         PR middle-end/71252
2769         * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
2770         all fields including stmt_to_insert are swapped.
2771
2772 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
2773
2774         * predict.h (force_edge_cold): Declare.
2775         * predict.c (force_edge_cold): New function.
2776         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
2777         updating.
2778         (canonicalize_loop_induction_variables): Fix formating.
2779
2780 2016-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2781
2782         * config/visium/visium.c (visium_split_double_add): Minor tweaks.
2783         (visium_expand_copysign): Use gen_int_mode directly.
2784         (visium_compute_frame_size): Minor tweaks.
2785
2786 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
2787
2788         * tree-vect-loop.c (vect_analyze_loop_2): Use
2789         likely_max_stmt_executions_int.
2790
2791 2016-05-30  Tom de Vries  <tom@codesourcery.com>
2792
2793         PR tree-optimization/69067
2794         * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
2795
2796 2016-05-29  Uros Bizjak  <ubizjak@gmail.com>
2797
2798         PR target/71245
2799         * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
2800         New peepholes to remove unneeded fild/fistp pairs.
2801         (define_peephole2 atomic_loaddi_fpu): Ditto.
2802
2803 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2804
2805         * predict.c (maybe_hot_frequency_p): Avoid division.
2806
2807 2016-05-28  Gerald Pfeifer  <gerald@pfeifer.com>
2808
2809         * doc/install.texi: Use https for shop.fsf.org.
2810
2811 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2812
2813         * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
2814         likely_max_stmt_executions_int.
2815
2816 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2817
2818         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
2819         likely_max_stmt_executions_int.
2820
2821 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2822
2823         * profile.c (compute_branch_probabilities): Do not report hitrates
2824         here.
2825         (branch_prob): Report hitrates here.
2826         * predict.c (gimple_predict_edge): Do not assert profile status;
2827         fix formatting issues.
2828
2829 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2830
2831         * predict.c (edge_predicted_by_p): New function.
2832         (predict_paths_for_bb): Do not put multiple predictions of the same type
2833         on one edge.
2834
2835 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2836
2837         * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
2838         commit.
2839
2840 2016-05-28  Alan Modra  <amodra@gmail.com>
2841
2842         * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
2843
2844 2016-05-28  Alan Modra  <amodra@gmail.com>
2845
2846         PR rtl-optimization/71275
2847         * ira.c (ira): Free dominance info.
2848
2849 2016-05-27  Gerald Pfeifer  <gerald@pfeifer.com>
2850
2851         * doc/sourcebuild.texi: New address for upstream Go repository.
2852
2853 2016-05-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2854
2855         * config/arm/arm.h (TARGET_ARM_V6M): Remove.
2856         (TARGET_ARM_V7M): Likewise.
2857
2858 2016-05-26  Jeff Law  <law@redhat.com>
2859
2860         * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
2861         (thread_across_edge): Remove calls to find_jump_threads_backwards.
2862         * passes.def: Add jump threading passes before DOM/VRP.
2863         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
2864         argument to a basic block from an edge.  Remove tests which are
2865         handled elsewhere.
2866         (pass_data_thread_jumps, class pass_thread_jumps): New.
2867         (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
2868         (make_pass_thread_jumps): Likewise.
2869         * tree-pass.h (make_pass_thread_jumps): Declare.
2870
2871 2016-05-27  Eric Botcazou  <ebotcazou@adacore.com>
2872
2873         * config/visium/visium-protos.h (split_double_move): Rename into...
2874         (visium_split_double_move): ...this.
2875         (visium_split_double_add): Declare.
2876         * config/visium/visium.c (split_double_move): Rename into...
2877         (visium_split_double_move): ...this.
2878         (visium_split_double_add): New function.
2879         (visium_expand_copysign): Renumber operands for consistency.
2880         * config/visium/visium.md (DImode move splitter): Adjust to renaming.
2881         (DFmode move splitter): Likewise.
2882         (*addi3_insn): Split by means of visium_split_double_add.
2883         (*adddi3_insn_flags): Delete.
2884         (*plus_plus_sltu<subst_arith>): New insn.
2885         (*subdi3_insn): Split by means of visium_split_double_add.
2886         (subdi3_insn_flags): Delete.
2887         (*minus_minus_sltu<subst_arith>): New insn.
2888         (*negdi2_insn): Split by means of visium_split_double_add.
2889         (*negdi2_insn_flags): Delete.
2890
2891 2016-05-27  Ulrich Weigand  <uweigand@de.ibm.com>
2892
2893         * configure.ac: Treat a --with-headers option without argument
2894         the same as the default (i.e. consult sys-include directory).
2895         * configure: Regenerate.
2896
2897 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2898
2899         * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
2900         * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
2901         prototype.
2902         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
2903         Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.
2904
2905 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
2906
2907         PR target/63596
2908         * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
2909         tree-stdarg analysis results.
2910         (aarch64_setup_incoming_varargs): Likewise.
2911
2912 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
2913
2914         * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
2915         va_list_gpr_counter_field and va_list_fpr_counter_field.
2916
2917 2016-05-27  Wilco Dijkstra  <wdijkstr@arm.com>
2918
2919         PR67609
2920         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
2921         * config/aarch64/aarch64.c
2922         (aarch64_cannot_change_mode_class): Remove function.
2923         * config/aarch64/aarch64-protos.h
2924         (aarch64_cannot_change_mode_class): Remove.
2925
2926 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2927
2928         * cfgloop.c (record_niter_bound): Record likely upper bounds.
2929         (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
2930         get_likely_max_loop_iterations_int): New.
2931         * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
2932         any_likely_upper_bound.
2933         (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
2934         Declare.
2935         * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
2936         * loop-unroll.c (unroll_loop_constant_iterations): Update likely
2937         upper bound.
2938         (unroll_loop_constant_iterations): Likewise.
2939         (unroll_loop_runtime_iterations): Likewise.
2940         * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
2941         * lto-streamer-out.c (output_cfg): Likewise.
2942         * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
2943         bounds.
2944         (canonicalize_loop_induction_variables): Dump likely upper bounds.
2945         * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
2946         (likely_max_loop_iterations): New.
2947         (likely_max_loop_iterations_int): New.
2948         (likely_max_stmt_executions): New.
2949         * tree-ssa-loop-niter.h (likely_max_loop_iterations,
2950         likely_max_loop_iterations_int, likely_max_stmt_executions_int,
2951         likely_max_stmt_executions): Declare.
2952
2953 2016-05-27  Marek Polacek  <polacek@redhat.com>
2954
2955         PR middle-end/71308
2956         * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
2957
2958 2016-05-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2959
2960         * config/s390/s390.md (2x risbg splitters): Use
2961         reg_overlap_mentioned_p instead of rtx_equal_p.
2962
2963 2016-05-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
2964
2965         * combine.c (make_compound_operation): Take known zero bits into
2966         account when checking for possible zero_extend.
2967
2968 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2969
2970         * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
2971         Use const_int_operand for operand 2 predicate.  Simplify expand code
2972         as a result.
2973
2974 2016-05-27  Ilya Enkovich  <ilya.enkovich@intel.com>
2975
2976         PR middle-end/71279
2977         * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
2978         into comparison.
2979
2980 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2981
2982         * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
2983         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
2984         that returns CC_SESWPmode and CC_ZESWPmode.
2985         (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
2986         and CC_SESWPmode.
2987         (aarch64_rtx_costs): Likewise.
2988
2989 2016-05-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
2990
2991         * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
2992         for ISA 3.0 min/max support.
2993         (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
2994         conditional move support.
2995         (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
2996         rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
2997         available.
2998         * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
2999         conditional moves where the comparison type is different from move
3000         type.
3001         (fp_minmax): New code iterator for smin/smax.
3002         (minmax): New code attributes for min/max.
3003         (SMINMAX): Likewise.
3004         (smax<mode>3): Combine min, max insns into one insn using the
3005         fp_minmax code iterator.  Add support for ISA 3.0 min/max
3006         instructions that don't need -ffast-math.
3007         (s<minmax><mode>3): Likewise.
3008         (smax<mode>3_vsx): Likewise.
3009         (smin<mode>3): Likewise.
3010         (s<minmax><mode>3_vsx): Likewise.
3011         (smin<mode>3_vsx): Likewise.
3012         (pre-VSX min/max splitters): Likewise.
3013         (s<minmax><mode>3_fpr): Likewise.
3014         (movsfcc): Rewrite floating point conditional moves to combine
3015         SFmode/DFmode into a single insn.
3016         (mov<mode>cc): Likewise.
3017         (movdfcc): Likewise.
3018         (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
3019         SFDF2 iterators to handle all combinations.
3020         (fseldfsf4): Likewise.
3021         (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
3022         (fseldfdf4): Likewise.
3023         (fselsfdf4): Likewise.
3024         (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
3025         comparison instructions that set a 0/-1 mask, and use it for
3026         floating point conditional move via XXSEL.
3027         (fpmask<mode>): Likewise.
3028         (xxsel<mode>): Likewise.
3029         * config/rs6000/predicates.md (min_max_operator): Delete, no
3030         longer used.
3031         (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
3032         instructions that generate a 0/-1 mask for use with XXSEL.
3033         * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
3034         say whether floating point min/max is available, either through
3035         FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
3036         (TARGET_MINMAX_DF): Likewise.
3037
3038 2016-05-27  Alan Modra  <amodra@gmail.com>
3039
3040         PR rtl-optimization/71275
3041         * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
3042         for update_equiv_regs and combine_and_move_insns.
3043
3044 2016-05-26  Uros Bizjak  <ubizjak@gmail.com>
3045
3046         * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
3047         if_then_else or cond RTXes to calculate attribute value.
3048         * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
3049         <attr "length_immediate>: Ditto.
3050         (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
3051         * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
3052         (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
3053         <attr "type">: Ditto.
3054         <attr "prefix_data16">: Ditto.
3055         <attr "prefix_extra">: Ditto.
3056         <attr "length_immediate">: Ditto.
3057         <attr "prefix">: Ditto.
3058         (vec_set<mode>_0) <attr "isa">: Ditto.
3059         <attr "prefix_extra">: Ditto.
3060         <attr "length_immediate">: Ditto.
3061         <attr "prefix">: Ditto.
3062         (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
3063         (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
3064         (sse2_storelpd) <attr "prefix_data16">: Ditto.
3065         (sse2_loadhpd) <attr "prefix_data16">: Ditto.
3066         (sse2_loadlpd) <attr "prefix_data16">: Ditto.
3067         <attr "length_immediate">: Ditto.
3068         <attr "prefix">: Ditto.
3069         (sse2_movsd) <attr "length_immediate">: Ditto.
3070         <attr "prefix">: Ditto.
3071         (vec_concatv2df)  <attr "isa">: Ditto.
3072         <attr "prefix">: Ditto.
3073         (*vec_extractv4si) <attr "prefix_extra">: Ditto.
3074         (*vec_extractv2di_1) <attr "isa">: Ditto.
3075         <attr "type">: Ditto.
3076         <attr "length_immediate">: Ditto.
3077         <attr "prefix_rex">: Ditto.
3078         <attr "prefix_extra">: Ditto.
3079         (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
3080         <attr "prefix_extra">: Ditto.
3081         <attr "length_immediate">: Ditto.
3082         (vec_concatv2di) <attr "isa">: Ditto.
3083         <attr "prefix_extra">: Ditto.
3084         <attr "length_immediate">: Ditto.
3085         <attr "prefix">: Ditto.
3086
3087 2016-05-26  Martin Liska  <mliska@suse.cz>
3088
3089         * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
3090         function.
3091         (operator+): Likewise.
3092         (operator-): Likewise.
3093         (comp_cost::operator+=): Likewise.
3094         (comp_cost::operator-=): Likewise.
3095         (comp_cost::operator/=): Likewise.
3096         (comp_cost::operator*=): Likewise.
3097         (operator<): Likewise.
3098         (operator==): Likewise.
3099         (operator<=): Likewise.
3100         (new_cost): Remove.
3101         (infinite_cost_p): Likewise.
3102         (add_costs): Likewise.
3103         (sub_costs): Likewise.
3104         (compare_costs): Likewise.
3105         (set_group_iv_cost): Use the newly introduced functions.
3106         (get_address_cost): Likewise.
3107         (get_shiftadd_cost): Likewise.
3108         (force_expr_to_var_cost): Likewise.
3109         (split_address_cost): Likewise.
3110         (ptr_difference_cost): Likewise.
3111         (difference_cost): Likewise.
3112         (get_computation_cost_at): Likewise.
3113         (determine_group_iv_cost_generic): Likewise.
3114         (determine_group_iv_cost_address): Likewise.
3115         (determine_group_iv_cost_cond): Likewise.
3116         (autoinc_possible_for_pair): Likewise.
3117         (determine_group_iv_costs): Likewise.
3118         (cheaper_cost_pair): Likewise.
3119         (iv_ca_recount_cost): Likewise.
3120         (iv_ca_set_no_cp): Likewise.
3121         (iv_ca_set_cp): Likewise.
3122         (iv_ca_cost): Likewise.
3123         (iv_ca_new): Likewise.
3124         (iv_ca_dump): Likewise.
3125         (iv_ca_narrow): Likewise.
3126         (iv_ca_prune): Likewise.
3127         (iv_ca_replace): Likewise.
3128         (try_add_cand_for): Likewise.
3129         (try_improve_iv_set): Likewise.
3130         (find_optimal_iv_set): Likewise.
3131
3132 2016-05-26  Richard Sandiford  <richard.sandiford@arm.com>
3133
3134         * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
3135         that internal functions will clobber all caller-saved registers.
3136
3137 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
3138
3139         * config/aarch64/aarch64.c (aarch64_case_values_threshold):
3140         Return a better case_values_threshold when optimizing.
3141
3142 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
3143
3144         * config/aarch64/aarch64-simd.md (aarch64_combinez):
3145         Add ? to integer variant.
3146         (aarch64_combinez_be): Likewise.
3147
3148 2016-05-26  Jakub Jelinek  <jakub@redhat.com>
3149
3150         * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
3151         instead of x constraint.
3152         (vcvtps2ph256<mask_name>): Likewise.
3153
3154         * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
3155         alternative.  Formatting fix.
3156
3157         * config/i386/sse.md
3158         (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
3159         to ...
3160         (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
3161         (*avx_vperm_broadcast_v4sf): Use v constraint instead of x.  Use
3162         maybe_evex prefix instead of vex.
3163         (*avx_vperm_broadcast_<mode>): Use v constraint instead of x.  Handle
3164         EXT_REX_SSE_REG_P (op0) case in the splitter.
3165
3166 2016-05-25  Jeff Law  <law@redhat.com>
3167
3168         PR tree-optimization/71272
3169         * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
3170         Update comments.  Add test for empty path.
3171
3172 2016-05-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
3173
3174         * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
3175         * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
3176         special case builtin.
3177         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
3178         code for ALTIVEC_BUILTIN_VEC_CMPNE.
3179         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
3180         for __builtin_vec_cmpne.
3181
3182 2016-05-25  Eric Botcazou  <ebotcazou@adacore.com>
3183
3184         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
3185         redundant test and bail out if the type of the new operand is not
3186         a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
3187
3188 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
3189
3190         * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
3191         (x_ix86_target_flags_explicit): Remove.
3192         * config/i386/i386.c (ix86_function_specific_save): Do not copy
3193         x_ix86_target_flags_explicit.
3194         (ix86_function_specific_restore): Ditto.
3195
3196 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
3197             H.J. Lu  <hongjiu.lu@intel.com>
3198
3199         PR target/70738
3200         * common/config/i386/i386-common.c
3201         (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
3202         (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
3203         MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
3204         * config/i386/i386.opt (ix86_target_flags): Add new Variable.
3205         (-mgeneral-regs-only): Add new option.
3206         * config/i386/i386.c (ix86_option_override_internal): Don't enable
3207         x87 instructions if only general registers are allowed.
3208         (ix86_target_string): Add ix86_flags argument. Handle additional
3209         flags options through ix86_flags argument.  Update all callers.
3210         * doc/invoke.texi (x86 Options): Document -mgeneral-regs-only.
3211
3212 2016-05-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3213
3214         PR rtl-optimization/66940
3215         * ifcvt.c (noce_get_alt_condition): Check that incrementing or
3216         decrementing desired_val will not overflow before performing these
3217         operations.
3218
3219 2016-05-25  Ilya Verbin  <ilya.verbin@intel.com>
3220
3221         * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
3222         V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
3223         * config/i386/i386.c (enum ix86_builtins): Add
3224         IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
3225         IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
3226         IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
3227         IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
3228         IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
3229         IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
3230         (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
3231         __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
3232         __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
3233         __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
3234         __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
3235         __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
3236         Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
3237         __builtin_ia32_cvtps2dq512_mask.
3238         (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
3239         V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
3240         (ix86_builtin_vectorized_function): Handle builtins mentioned above.
3241         * config/i386/sse.md
3242         (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
3243         Rename to ...
3244         (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
3245         (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
3246         to ...
3247         (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
3248         (avx512f_vec_pack_sfix_v8df): New define_expand.
3249         (avx512f_roundpd512): Rename to ...
3250         (avx512f_round<castmode>512): ... this.  Change iterator.
3251         (avx512f_roundps512_sfix): New define_expand.
3252         (round<mode>2_sfix): Change iterator.
3253
3254 2016-05-25  Nick Clifton  <nickc@redhat.com>
3255
3256         * config/msp430/msp430.c (msp430_attr): Produce an error if a
3257         static interrupt handler is detected.
3258         * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
3259         default linker script.
3260         * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
3261         the low part of a symbolic pointer.
3262
3263 2016-05-25  Richard Biener  <rguenther@suse.de>
3264
3265         PR tree-optimization/71261
3266         * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
3267         interesting stmt instead of immediate uses when looking
3268         for the use operand to replace.
3269
3270 2016-05-25  Martin Liska  <mliska@suse.cz>
3271
3272         * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
3273
3274 2016-05-25  Richard Biener  <rguenther@suse.de>
3275
3276         PR tree-optimization/71264
3277         * tree-vect-stmts.c (vect_init_vector): Properly deal with
3278         vector type val.
3279
3280 2016-05-25  Martin Liska  <mliska@suse.cz>
3281
3282         PR tree-optimization/71239
3283         * tree.c (array_at_struct_end_p): Do not call operand_equal_p
3284         if DECL_SIZE is NULL.
3285
3286 2016-05-25  Richard Biener  <rguenther@suse.de>
3287
3288         * timevar.def (TV_TREE_LOOP_IFCVT): Add.
3289         * tree-if-conv.c (pass_data_if_conversion): Use it.
3290
3291 2016-05-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3292
3293         * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
3294         * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
3295         * varpool.c (varpool_node::get_availability): Likewise.
3296
3297 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
3298
3299         * config/rs6000/altivec.md (VNEG iterator): New iterator for
3300         VNEGW/VNEGD instructions.
3301         (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
3302         (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
3303         support for ISA 3.0 VNEGW/VNEGD instructions.
3304
3305 2016-05-24  Cesar Philippidis  <cesar@codesourcery.com>
3306
3307         * gimplify.c (omp_notice_variable): Use zero-length arrays for data
3308         pointers inside OACC_DATA regions.
3309         (gimplify_scan_omp_clauses): Prune firstprivate clause associated
3310         with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
3311         (gimplify_adjust_omp_clauses): Fix typo in comment.
3312
3313 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
3314
3315         * config/rs6000/altivec.md (VParity): New mode iterator for vector
3316         parity built-in functions.
3317         (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
3318         zeros.
3319         (p9v_parity<mode>2): Likewise.
3320         * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
3321         parity.
3322         (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
3323         (parity<mode>2): ISA 3.0 expander for vector parity.
3324         * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
3325         power9 built-ins.
3326         (BU_P9_64BIT_MISC_0): Likewise.
3327         (BU_P9_MISC_0): Likewise.
3328         (BU_P9V_AV_1): Likewise.
3329         (BU_P9V_AV_2): Likewise.
3330         (BU_P9V_AV_3): Likewise.
3331         (BU_P9V_AV_P): Likewise.
3332         (BU_P9V_VSX_1): Likewise.
3333         (BU_P9V_OVERLOAD_1): Likewise.
3334         (BU_P9V_OVERLOAD_2): Likewise.
3335         (BU_P9V_OVERLOAD_3): Likewise.
3336         (VCTZB): Add vector count trailing zeros support.
3337         (VCTZH): Likewise.
3338         (VCTZW): Likewise.
3339         (VCTZD): Likewise.
3340         (VPRTYBD): Add vector parity support.
3341         (VPRTYBQ): Likewise.
3342         (VPRTYBW): Likewise.
3343         (VCTZ): Add overloaded vector count trailing zeros support.
3344         (VPRTYB): Add overloaded vector parity support.
3345         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3346         overloaded vector count trailing zeros and parity instructions.
3347         * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
3348         vector parity support.
3349         * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
3350         trailing zeros support.
3351         (vec_cntlz): Likewise.
3352         (vec_vctzb): Likewise.
3353         (vec_vctzd): Likewise.
3354         (vec_vctzh): Likewise.
3355         (vec_vctzw): Likewise.
3356         (vec_vprtyb): Add ISA 3.0 vector parity support.
3357         (vec_vprtybd): Likewise.
3358         (vec_vprtybw): Likewise.
3359         (vec_vprtybq): Likewise.
3360         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
3361         the ISA 3.0 vector count trailing zeros and vector parity built-in
3362         functions.
3363
3364 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
3365
3366         * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
3367         when there is stmt_to_insert.
3368
3369 2016-05-24  Martin Sebor  <msebor@redhat.com>
3370
3371         PR c++/71147
3372         * tree.h (complete_or_array_type_p): New inline function.
3373
3374 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
3375
3376         * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
3377         * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
3378         rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
3379
3380         * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
3381         Limit 1st alternative to noavx isa, split 2nd alternative into one
3382         noavx and one avx alternative, use *x and Bm in the former and
3383         x and m in the latter.
3384
3385         * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
3386         of sse4 for the first alternative, drop %v from the template
3387         and d operand modifier.  Split second alternative into one sse4_noavx
3388         and one avx alternative, use *x instead of *v in the former and v
3389         instead of *v in the latter.
3390         (*sse4_1_extractps): Use noavx isa instead of * for the first
3391         alternative, drop %v from the template.  Split second alternative into
3392         one noavx and one avx alternative, use *x instead of *v in the
3393         former and v instead of *v in the latter.
3394         (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
3395         with noavx and the last one with avx.
3396         (sse4_1_phminposuw): Guard first alternative with noavx isa,
3397         split the second one into one noavx and one avx alternative,
3398         use *x and Bm in the former and x and m in the latter one.
3399         (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
3400         alternatives.
3401
3402         * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
3403         first two alternatives to noavx, use *x instead of *v in the second
3404         one, add avx alternative without *.
3405         (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
3406         sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
3407         sse4_1_<code>v2siv2di2<mask_name>): Likewise.
3408
3409 2016-05-24  Jeff Law  <law@redhat.com>
3410
3411         * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
3412         New function, extracted from...
3413         (fsm_find_control_statement_thread_paths): Here.  Use the new function.
3414         Allow simple copies and constant initializations in the SSA chain.
3415
3416 2016-05-24  Marek Polacek  <polacek@redhat.com>
3417
3418         PR c/71249
3419         * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
3420         scope.
3421
3422 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
3423
3424         PR c++/71257
3425         * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
3426         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
3427         SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.  Add
3428         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
3429         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
3430
3431 2016-05-24  Richard Biener  <rguenther@suse.de>
3432
3433         PR tree-optimization/71240
3434         * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
3435         has integral type.
3436
3437 2016-05-24  Richard Biener  <rguenther@suse.de>
3438
3439         PR tree-optimization/71230
3440         * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
3441
3442 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
3443
3444         * tree-vectorizer.h (vectorizable_comparison): Delete.
3445         * tree-vect-loop.c (vectorizable_reduction): Remove redundant
3446         PURE_SLP_STMT check.
3447         * tree-vect-stmts.c (vectorizable_call): Likewise.
3448         (vectorizable_simd_clone_call): Likewise.
3449         (vectorizable_conversion): Likewise.
3450         (vectorizable_assignment): Likewise.
3451         (vectorizable_shift): Likewise.
3452         (vectorizable_operation): Likewise.
3453         (vectorizable_load): Likewise.
3454         (vectorizable_condition): Likewise.
3455         (vectorizable_store): Likewise.  Assert that we don't have
3456         hybrid SLP.
3457         (vectorizable_comparison): Make static.  Remove redundant
3458         PURE_SLP_STMT check.
3459         (vect_transform_stmt): Assert that we always have an slp_node
3460         if PURE_SLP_STMT.
3461
3462 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3463
3464         * config/arm/neon.md (ashldi3_neon):  Replace comparison of INTVAL of
3465         operands[2] against 1 with comparison against CONST1_RTX.
3466         (<shift>di3_neon): Likewise.
3467         * config/arm/predicates.md (const0_operand): Replace with comparison
3468         against CONST0_RTX.
3469
3470 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3471
3472         * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
3473         operands[2] against 1 with comparison against CONST1_RTX.
3474         (ashrdi3): Likewise.
3475         (lshrdi3): Likewise.
3476         (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
3477         UINTVAL.
3478         (ashrsi3): Likewise.
3479         (lshrsi3): Likewise.
3480         (rotrsi3): Likewise.
3481         (define_split above *compareqi_eq0): Likewise.
3482         (define_split above "prologue"): Likewise.
3483         * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
3484         * config/arm/predicates.md (shift_operator): Likewise.
3485         (shift_nomul_operator): Likewise.
3486         (sat_shift_operator): Likewise.
3487         (thumb1_cmp_operand): Likewise.
3488         (const_neon_scalar_shift_amount_operand): Replace manual range
3489         check with IN_RANGE.
3490         * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
3491         Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
3492
3493 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3494
3495         * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
3496         with HOST_WIDE_INT_1.
3497         (insv): Likewise.
3498         * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
3499         1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
3500         (arm_canonicalize_comparison): Likewise.
3501         (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
3502         HOST_WIDE_INT_1.
3503         (thumb1_size_rtx_costs): Likewise.
3504         (vfp_const_double_index): Replace cast of 1 to unsigned
3505         HOST_WIDE_INT with HOST_WIDE_INT_1U.
3506         (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
3507         HOST_WIDE_INT_1.
3508         (arm_asan_shadow_offset): Replace cast of 1 to unsigned
3509         HOST_WIDE_INT with HOST_WIDE_INT_1U.
3510         * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
3511         HOST_WIDE_INT with HOST_WIDE_INT_1.
3512
3513 2016-05-24  Marek Polacek  <polacek@redhat.com>
3514
3515         * tree-cfg.h (should_remove_lhs_p): New predicate.
3516         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
3517         * gimplify.c (gimplify_modify_expr): Likewise.
3518         * tree-cfg.c (verify_gimple_call): Likewise.
3519         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
3520         * gimple-fold.c: Include "tree-cfg.h".
3521         (gimple_fold_call): Use should_remove_lhs_p.
3522
3523 2016-05-24  Richard Biener  <rguenther@suse.de>
3524
3525         PR tree-optimization/71253
3526         * cfganal.h (control_dependences): Make robust against edge
3527         and BB removal.
3528         (control_dependences::control_dependences): Remove edge_list argument.
3529         (control_dependences::get_edge): Remove.
3530         (control_dependences::get_edge_src): Add.
3531         (control_dependences::get_edge_dest): Likewise.
3532         (control_dependences::m_el): Make a vector of edge src/dest index.
3533         * cfganal.c (control_dependences::find_control_dependence): Adjust.
3534         (control_dependences::control_dependences): Likewise.
3535         (control_dependences::~control_dependence): Likewise.
3536         (control_dependences::get_edge): Remove.
3537         (control_dependences::get_edge_src): Add.
3538         (control_dependences::get_edge_dest): Likewise.
3539         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
3540         get_edge_src.
3541         (perform_tree_ssa_dce): Adjust.
3542         * tree-loop-distribution.c (create_edge_for_control_dependence): Use
3543         get_edge_src.
3544         (pass_loop_distribution::execute): Adjust.  Do loop destroying
3545         conditional on changed.
3546
3547 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3548
3549         PR target/69857
3550         * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
3551         return.  Reindent transformation comment and mention the ARM state
3552         behavior.
3553
3554 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
3555
3556         PR middle-end/71252
3557         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
3558         after build_and_add_sum creates new use stmt.
3559
3560 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
3561
3562         * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
3563         load_lanes/grouped_load classification comes first.  Don't check
3564         whether the vectorization factor is a multiple of the group size
3565         for load_lanes.
3566
3567 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
3568
3569         * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
3570         GROUP_GAP for single-element interleaving.
3571         * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
3572         variable.
3573
3574 2016-05-24  Richard Biener  <rguenther@suse.de>
3575
3576         PR middle-end/70434
3577         PR c/69504
3578         * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
3579         bases which are accessed with non-invariant indices.
3580         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
3581         constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
3582
3583 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
3584
3585         PR middle-end/71170
3586         * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
3587         (add_to_ops_vec): Add stmt_to_insert.
3588         (add_repeat_to_ops_vec): Init stmt_to_insert.
3589         (insert_stmt_before_use): New.
3590         (transform_add_to_multiply): Remove mult_stmt insertion and add it
3591         to ops vector.
3592         (get_ops): Init stmt_to_insert.
3593         (maybe_optimize_range_tests): Likewise.
3594         (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
3595         (rewrite_expr_tree_parallel): Likewise.
3596         (reassociate_bb): Likewise.
3597
3598 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
3599
3600         PR target/71201
3601         * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
3602         ISA 3.0 xxperm fusion alternative.
3603         (altivec_vperm_v8hiv16qi): Likewise.
3604         (altivec_vperm_<mode>_uns_internal): Likewise.
3605         (vperm_v8hiv4si): Likewise.
3606         (vperm_v16qiv8hi): Likewise.
3607
3608 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
3609             Kelvin Nilsen  <kelvin@gcc.gnu.org>
3610
3611         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
3612         vpermr/xxpermr on ISA 3.0.
3613         (altivec_expand_vec_perm_le): Likewise.
3614         * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
3615         (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
3616         ISA 3.0.
3617
3618 2016-05-23  Uros Bizjak  <ubizjak@gmail.com>
3619
3620         * config/i386/i386.h (IS_STACK_MODE): Enable for
3621         TARGET_MIX_SSE_I387.  Rewrite using X87_FLOAT_MODE_P and
3622         SSE_FLOAT_MODE_P macros.
3623         * config/i386/i386.c (ix86_preferred_reload_class): Use
3624         IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
3625         Cleanup regclass processing for CONST_DOUBLE_P.
3626         (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
3627         (ix86_rtx_costs): Remove redundant TARGET_80387 check
3628         with IS_STACK_MODE macro.
3629         * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
3630         with TARGET_SSE2.
3631         (*movdf_internal): Use IS_STACK_MODE macro.
3632         (*movsf_internal): Ditto.
3633
3634 2016-05-23  Marc Glisse  <marc.glisse@inria.fr>
3635
3636         * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
3637         ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
3638
3639 2016-05-23  Jeff Law  <law@redhat.com>
3640
3641         * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
3642         extracted from ...
3643         (fsm_find_control_statement_thread_paths): Call it.
3644
3645 2016-05-23  Martin Jambor  <mjambor@suse.cz>
3646
3647         PR ipa/71234
3648         * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
3649         from_global_constant if t is not NULL.
3650
3651 2016-05-23  Marek Polacek  <polacek@redhat.com>
3652
3653         PR c/49859
3654         * common.opt (Wswitch-unreachable): New option.
3655         * doc/invoke.texi: Document -Wswitch-unreachable.
3656         * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
3657         warning.
3658
3659 2016-05-23  Bin Cheng  <bin.cheng@arm.com>
3660
3661         * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
3662         TMR_INDEX is non-NULL.
3663
3664 2016-05-23  Richard Biener  <rguenther@suse.de>
3665
3666         PR tree-optimization/71230
3667         * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
3668         (try_special_add_to_ops): ... here.  Always test for single-use.
3669
3670 2016-05-23  Martin Jambor  <mjambor@suse.cz>
3671
3672         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
3673         default block if a PHI node in the original one would be resized.
3674
3675 2016-05-23  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
3676
3677         PR tree-optimization/58135
3678         * tree-vect-slp.c: When group size is not multiple
3679         of vector size, allow splitting of store group at
3680         vector boundary.
3681
3682 2016-05-23  Christophe Lyon  <christophe.lyon@linaro.org>
3683
3684         * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
3685
3686 2016-05-22  Jakub Jelinek  <jakub@redhat.com>
3687
3688         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
3689         vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
3690         condition.  For !TARGET_AVX512DQ, emit 32x4 instruction instead
3691         of 64x2.
3692
3693         * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
3694         vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
3695         v constraint instead of x and vinserti32x4 insn.
3696
3697         * config/i386/sse.md (i128vldq): New mode iterator.
3698         (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
3699         avx512dq and avx512vl alternatives.
3700
3701         * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
3702         constraint, use maybe_evex prefix instead of vex.
3703         (vec_dupv4sf): Use v constraint instead of x for output
3704         operand except for noavx alternative, use Yv constraint
3705         instead of x for input.  Use maybe_evex prefix instead of vex.
3706         (*vec_dupv4si): Likewise.
3707         (*vec_dupv2di): Likewise.
3708
3709 2016-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
3710
3711         PR middle-end/40921
3712         * tree-ssa-reassoc.c (try_special_add_to_ops): New.
3713         (linearize_expr_tree): Call try_special_add_to_ops.
3714         (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
3715
3716 2016-05-21  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
3717
3718         * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
3719         to computed stack_usage.
3720
3721 2016-05-21  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
3722
3723         PR target/71103
3724         * config/avr/avr.md (define_expand "mov<mode>"): If the source
3725         operand is subreg (symbol_ref) then move the symbol ref to register.
3726
3727 2016-05-21  Jan Hubicka  <hubicka@ucw.cz>
3728
3729         * tree.c (array_at_struct_end_p): Look through MEM_REF.
3730
3731 2016-05-21  Kugan Vivekanandarajah  <kuganv@linaro.org>
3732
3733         PR middle-end/71179
3734         * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
3735         VECTOR type.
3736
3737 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
3738
3739         * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
3740         ranges by calling get_single_symbol and tidy up.  Look more closely
3741         into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
3742
3743 2016-05-20  Jeff Law  <law@redhat.com>
3744
3745         * bitmap.c (bitmap_find_bit): Remove useless test.
3746
3747 2016-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
3748
3749         * function.c (thread_prologue_and_epilogue_insns): Commit the
3750         insertion of the epilogue.
3751
3752 2016-05-20  Martin Jambor  <mjambor@suse.cz>
3753
3754         PR tree-optimization/70884
3755         * tree-sra.c (initialize_constant_pool_replacements): Do not check
3756         should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
3757         (sort_and_splice_var_accesses): Do not consider multiple scalar reads
3758         of constant pool data as a reason for scalarization.
3759
3760 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
3761
3762         * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
3763         for naked functions.
3764         (thumb1_expand_prologue): Likewise.
3765
3766 2016-05-20  Nathan Sidwell  <nathan@acm.org>
3767
3768         * config/nvptx/nptx.c (nvptx_option_override): Only set
3769         flag_toplevel_reorder, if not explicitly specified.  Set
3770         flag_no_common, unless explicitly specified.
3771
3772 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
3773
3774         * calls.c (can_implement_as_sibling_call_p): Mark param
3775         reg_parm_stack_space with ATTRIBUTE_UNUSED.
3776
3777 2016-05-20  Uros Bizjak  <ubizjak@gmail.com>
3778
3779         * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
3780         Use IS_STACK_MODE when calculating cost of standard 80387 constants.
3781         Fallthru to CONST_VECTOR case to calculate cost of standard SSE
3782         constants.
3783         <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
3784         (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
3785         and CASE_CONST_ANY.
3786
3787 2016-05-20  Cesar Philippidis  <cesar@codesourcery.com>
3788
3789         * config/nvptx/nvptx.md (sincossf3): New pattern.
3790
3791 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
3792
3793         * calls.c (maybe_complain_about_tail_call): New function.
3794         (initialize_argument_information): Call
3795         maybe_complain_about_tail_call when clearing *may_tailcall.
3796         (can_implement_as_sibling_call_p): Call
3797         maybe_complain_about_tail_call when returning false.
3798         (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
3799         ensure try_tail_call is set.  Call maybe_complain_about_tail_call
3800         if tail-call optimization fails.
3801         * cfgexpand.c (expand_call_stmt): Initialize
3802         CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
3803         * gimple-pretty-print.c (dump_gimple_call): Dump
3804         gimple_call_must_tail_p.
3805         * gimple.c (gimple_build_call_from_tree): Call
3806         gimple_call_set_must_tail with the value of
3807         CALL_EXPR_MUST_TAIL_CALL.
3808         * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
3809         (gimple_call_set_must_tail): New function.
3810         (gimple_call_must_tail_p): New function.
3811         * print-tree.c (print_node): Update printing of TREE_STATIC
3812         to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
3813         * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
3814         trailing comment listing applicable flags.
3815         * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
3816
3817 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
3818
3819         * calls.c (expand_call): Move "Rest of purposes for tail call
3820         optimizations to fail" to...
3821         (can_implement_as_sibling_call_p): ...this new function, and
3822         split into multiple "if" statements.
3823
3824 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
3825
3826         * cfgloop.h (expected_loop_iterations_unbounded,
3827         expected_loop_iterations): Unconstify.
3828         * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
3829         profile with known upper bound; return 3 when profile is absent.
3830         (expected_loop_iterations): Update.
3831
3832 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
3833
3834         * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
3835         and get_max_loop_iterations_int.
3836
3837 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
3838
3839         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
3840         realistic upper bounds here.
3841
3842 2016-05-20  Jakub Jelinek  <jakub@redhat.com>
3843
3844         PR c++/71210
3845         * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
3846         calls if the LHS is variable length or has addressable type.
3847         If targets[0]->decl is a noreturn call with void return type and
3848         zero arguments, adjust fntype and remove lhs in that case.
3849
3850 2016-05-20  Marc Glisse  <marc.glisse@inria.fr>
3851
3852         PR tree-optimization/71079
3853         PR tree-optimization/71206
3854         * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
3855
3856 2016-05-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3857
3858         * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
3859         (get_vec_alignment_for_array_decl): Likewise.
3860         (get_vec_alignment_for_record_decl): Likewise.
3861         (increase_alignment::execute): Move code to find alignment to
3862         get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
3863         (type_align_map): New hash_map.
3864
3865 2016-05-20  Richard Guenther  <rguenther@suse.de>
3866
3867         PR tree-optimization/29756
3868         * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
3869         * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
3870         * fold-const.c (operand_equal_p): Likewise.
3871         (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
3872         * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
3873         * tree-inline.c (estimate_operator_cost): Likewise.
3874         * tree-pretty-print.c (dump_generic_node): Likewise.
3875         * tree-ssa-operands.c (get_expr_operands): Likewise.
3876         * cfgexpand.c (expand_debug_expr): Likewise.
3877         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
3878         * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
3879         * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
3880         * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
3881         vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
3882         (execute_update_addresses_taken): Do it.
3883
3884 2016-05-20  Richard Biener  <rguenther@suse.de>
3885
3886         PR tree-optimization/71185
3887         * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
3888         register operations.
3889
3890 2016-05-20  Richard Biener  <rguenther@suse.de>
3891
3892         * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
3893         gimple_seq_add_seq_without_update.
3894         (release_bb_predicate): Assert we have no operands to free.
3895         (if_convertible_loop_p_1): Calculate post dominators later.
3896         Do not free BB predicates here.
3897         (combine_blocks): Do not recompute BB predicates.
3898         (version_loop_for_if_conversion): Save BB predicates around
3899         loop versioning.
3900
3901 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
3902
3903         * function.c (make_epilogue_seq): Remove epilogue_end parameter.
3904         (thread_prologue_and_epilogue_insns): Remove bb_flags.  Restructure
3905         code.  Ignore sibcalls on EDGE_IGNORE edges.
3906         * shrink-wrap.c (handle_simple_exit): New function.  Set EDGE_IGNORE
3907         on edges for sibcalls that run without prologue.  The rest of the
3908         function is combined from...
3909         (fix_fake_fallthrough_edge): ... this, and ...
3910         (try_shrink_wrapping): ... a part of this.  Remove the bb_with
3911         function argument, make it a local variable.
3912
3913 2016-05-19  Sandra Loosemore  <sandra@codesourcery.com>
3914
3915         * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
3916         --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
3917         for 32-bit mode and SEH for 64-bit.
3918         * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
3919         TARGET_64BIT_DEFAULT.
3920
3921 2016-05-19  Ryan Burn  <contact@rnburn.com>
3922
3923         * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
3924         * gengtype.c (open_base_files): Add cilk.h to ifiles.
3925
3926 2016-05-19  Uros Bizjak  <ubizjak@gmail.com>
3927
3928         * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
3929         force pending loads from memory.
3930
3931 2016-05-19  Kelvin Nilsen  <kelvin@gcc.gnu.org>
3932
3933         * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
3934         (UNSPEC_DARN_32): New unspec constant.
3935         (UNSPEC_DARN_RAW): New unspec constant.
3936         (darn_32): New instruction.
3937         (darn_raw): New instruction.
3938         (darn): New instruction.
3939         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
3940         support and documentation for this macro.
3941         (BU_P9_MISC_1): New macro definition.
3942         (BU_P9_64BIT_MISC_0): New macro definition.
3943         (BU_P9_MISC_0): New macro definition.
3944         (darn_32): New builtin definition.
3945         (darn_raw): New builtin definition.
3946         (darn): New builtin definition.
3947         * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
3948         RS6000_BUILTIN_0 directives to surround each occurrence of
3949         #include "rs6000-builtin.def".
3950         (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
3951         RS6000_BTM_64BIT flags to the returned mask, depending on
3952         configuration.
3953         (def_builtin): Correct an error in the assignments made to the
3954         debugging variable attr_string.
3955         (rs6000_expand_builtin): Add support for no-operand built-in
3956         functions.
3957         (builtin_function_type): Remove fatal_error assertion that is no
3958         longer valid.
3959         (rs6000_common_init_builtins): Add support for no-operand built-in
3960         functions.
3961         * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
3962         definition.
3963         (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
3964         definition.
3965         (RS6000_BTM_64BIT): New macro definition.
3966         * doc/extend.texi: Document __builtin_darn (void),
3967         __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
3968         functions.
3969
3970 2016-05-19  Jan Hubicka  <hubicka@ucw.cz>
3971
3972         * tree-vect-loop.c (vect_analyze_loop_2): Use also
3973         max_loop_iterations_int.
3974
3975 2016-05-19  Marek Polacek  <polacek@redhat.com>
3976
3977         PR tree-optimization/71031
3978         * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
3979         condition and adjust the code a bit.
3980
3981 2016-05-19  Martin Liska  <mliska@suse.cz>
3982
3983         * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
3984         auto_vec instead of vec.
3985
3986 2016-05-19  Martin Liska  <mliska@suse.cz>
3987
3988         * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
3989
3990 2016-05-19  Martin Liska  <mliska@suse.cz>
3991
3992         * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
3993
3994 2016-05-19  Martin Liska  <mliska@suse.cz>
3995
3996         * ipa-pure-const.c (set_function_state): Remove an existing
3997         funct_state.
3998         (remove_node_data): Do not free it as it's released
3999         in set_function_state.
4000
4001 2016-05-19  Martin Liska  <mliska@suse.cz>
4002
4003         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
4004         bitmap.
4005
4006 2016-05-19  Martin Liska  <mliska@suse.cz>
4007
4008         * omp-simd-clone.c (simd_clone_adjust): Release vector.
4009
4010 2016-05-19  Martin Liska  <mliska@suse.cz>
4011
4012         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
4013         an auto_vec instead of re-creating it.
4014
4015 2016-05-19  Martin Liska  <mliska@suse.cz>
4016
4017         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
4018         auto_vec instead of vec.
4019
4020 2016-05-19  Martin Liska  <mliska@suse.cz>
4021
4022         * lto-section-in.c (lto_get_section_data): Call
4023         lto_check_version with additional argument.
4024         * lto-streamer.c (lto_check_version): Add new argument.
4025         * lto-streamer.h (lto_check_version): Likewise.
4026
4027 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4028
4029         * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
4030         Don't add cost of inner memory when handling sign-extended loads.
4031
4032 2016-05-19  Ilya Enkovich  <ilya.enkovich@intel.com>
4033
4034         PR rtl-optimization/71148
4035         * cse.c (cse_main): Free dominance info.
4036         (rest_of_handle_cse): Don't free dominance info.
4037         (rest_of_handle_cse2): Likewise.
4038         (rest_of_handle_cse_after_global_opts): Likewise.
4039
4040 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4041
4042         PR target/71056
4043         * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
4044         NULL_TREE early if NEON is not available.  Remove now redundant check
4045         in ARM_CHECK_BUILTIN_MODE.
4046
4047 2016-05-19  Maxim Ostapenko  <m.ostapenko@samsung.com>
4048
4049         PR sanitizer/64354
4050         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
4051         builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
4052         * doc/cpp.texi: Document new macros.
4053
4054 2016-05-19 Bin Cheng  <bin.cheng@arm.com>
4055
4056         PR tree-optimization/69848
4057         * tree-vect-loop.c (vectorizable_reduction): Don't factor
4058         comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
4059
4060 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
4061
4062         * function.c (thread_prologue_and_epilogue_insn): Move the
4063         "goto epilogue_done" one block later.
4064
4065 2016-05-19  Richard Biener  <rguenther@suse.de>
4066
4067         PR tree-optimization/70729
4068         * passes.def: Move LIM pass before PRE.  Remove no longer
4069         required copyprop and move first DCE out of the loop pipeline.
4070
4071 2016-05-18  David Malcolm  <dmalcolm@redhat.com>
4072
4073         PR driver/69265
4074         * Makefile.in (GCC_OBJS): Move spellcheck.o to...
4075         (OBJS-libcommon-target): ...here.
4076         * opts-common.c: Include spellcheck.h.
4077         (cmdline_handle_error): Build a vec of valid options and use it
4078         to suggest provide hints for misspelled arguments.
4079
4080 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
4081
4082         PR c++/71100
4083         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
4084         lhs if it has TREE_ADDRESSABLE type.
4085
4086 2016-05-18  Uros Bizjak  <ubizjak@gmail.com>
4087
4088         PR target/71145
4089         * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
4090         (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
4091
4092 2016-05-18  Martin Jambor  <mjambor@suse.cz>
4093
4094         PR ipa/69708
4095         * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
4096         input for NOP_EXPR pass-through functions.
4097         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
4098         aggregate global constant VAR_DECLs in constant jump functions.
4099
4100 2016-05-18  Martin Jambor  <mjambor@suse.cz>
4101
4102         PR ipa/69708
4103         * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
4104         from TREE_READONLY parameters.
4105
4106 2016-05-18  Martin Jambor  <mjambor@suse.cz>
4107
4108         PR ipa/69708
4109         * cgraph.h (cgraph_indirect_call_info): New field
4110         guaranteed_unmodified.
4111         * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
4112         to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
4113         appropriate.
4114         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
4115         pass the parameter value to ipa_find_agg_cst_for_param.
4116         * ipa-prop.c (ipa_load_from_parm_agg): New parameter
4117         guaranteed_unmodified, store AA results there instead of bailing out
4118         if present.
4119         (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
4120         (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
4121         (find_constructor_constant_at_offset): New function.
4122         (ipa_find_agg_cst_from_init): Likewise.
4123         (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
4124         static initializers of contants, report back through a new paameter
4125         from_global_constant if that was the case.
4126         (try_make_edge_direct_simple_call): Also pass parameter value to
4127         ipa_find_agg_cst_for_param, check guaranteed_unmodified when
4128         appropriate.
4129         (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
4130         (ipa_read_indirect_edge_info): Likewise.
4131         * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
4132         (ipa_load_from_parm_agg): Likewise.
4133
4134 2016-05-18  Jiong Wang  <jiong.wang@arm.com>
4135
4136         PR rtl-optimization/71150
4137         * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
4138         check.
4139
4140 2016-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
4141
4142         PR target/70915
4143         * config/rs6000/constraints.md (wE constraint): New constraint
4144         for a vector constant that can be loaded with XXSPLTIB.
4145         (wM constraint): New constraint for a vector constant of a 1's.
4146         (wS constraint): New constraint for a vector constant that can be
4147         loaded with XXSPLTIB and a vector sign extend instruction.
4148         * config/rs6000/predicates.md (xxspltib_constant_split): New
4149         predicates for wE/wS constraints.
4150         (xxspltib_constant_nosplit): Likewise.
4151         (easy_vector_constant): Add support for constants that can be
4152         loaded via XXSPLTIB.
4153         (all_ones_constant): New predicate for vector constant with all
4154         1's set.
4155         (splat_input_operand): Add support for ISA 3.0 word splat operations.
4156         * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
4157         return if a constant can be loaded with the ISA 3.0 XXSPLTIB
4158         instruction and possibly with a sign extension.
4159         (output_vec_const_move): Add support for XXSPLTIB. If we are
4160         loading up 0/-1 into Altivec registers, prefer using VSPLTISW
4161         instead of XXLXOR/XXLORC.
4162         (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
4163         operations.
4164         (rs6000_legitimize_reload_address): Likewise.
4165         (rs6000_output_move_128bit): Use output_vec_const_move to emit
4166         constants.
4167         * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
4168         combine VSX_M and VSX_M2 into one iterator.
4169         (VSX_M2): Likewise.
4170         (VSINT_84): New iterators for loading constants with XXSPLTIB.
4171         (VSINT_842): Likewise.
4172         (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
4173         (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
4174         XXSPLTIB instruction.
4175         (xxspltib_<mode>_nosplit): Likewise.
4176         (xxspltib_<mode>_split): New insn to load up constants with
4177         XXSPLTIB and a sign extend instruction.
4178         (vsx_mov<mode>): Replace single move that handled all vector types
4179         with separate 32-bit and 64-bit moves.  Combine the movti_<bit>
4180         moves (when -mvsx-timode is in effect) into the main vector
4181         moves.  Eliminate separate moves for <VSr> <VSa>, where the
4182         preferred register class (<VSr>) is listed first, and the
4183         secondary register class (<VSa>) is listed second with a '?' to
4184         discourage use.  Prefer loading 0/-1 in any VSX register for ISA
4185         3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
4186         that if the register was involved in a slow operation, the
4187         clear/set operation does not wait for the slow operation to
4188         finish.  Adjust the length attributes for 32-bit mode.  Use
4189         rs6000_output_move_128bit and drop the use of the string
4190         instructions for 32-bit movti when -mvsx-timode is in effect.  Use
4191         spacing so that the alternatives and attributes don't generate
4192         long lines, and put things in columns, so that it is easier to
4193         match up the operands and attributes with the insn alternatives.
4194         (vsx_mov<mode>_64bit): Likewise.
4195         (vsx_mov<mode>_32bit): Likewise.
4196         (vsx_movti_64bit): Fold movti into normal vector moves.
4197         (vsx_movti_32bit): Likewise.
4198         (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
4199         splat instructions.
4200         (vsx_splat_v4si_internal): Likewise.
4201         (vsx_splat_v4sf_internal): Likewise.
4202         (vector fusion peepholes): Use VSX_M instead of VSX_M2.
4203         (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
4204         extend vector elements.
4205         (vsx_sign_extend_hi_<mode>): Likewise.
4206         (vsx_sign_extend_si_v2di): Likewise.
4207         * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
4208         declaration.
4209         * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
4210         constraints.  Add trailing period to wL documentation.
4211
4212 2016-05-18  Richard Sandiford  <richard.sandiford@arm.com>
4213
4214         PR middle-end/71020
4215         * tree-dfa.h (replace_abnormal_ssa_names): Declare.
4216         * tree-dfa.c (replace_abnormal_ssa_names): New function.
4217         * tree-call-cdce.c: Include tree-dfa.h.
4218         (can_guard_call_p): New function, extracted from...
4219         (can_use_internal_fn): ...here.
4220         (shrink_wrap_one_built_in_call_with_conds): Remove failure path
4221         and return void.
4222         (shrink_wrap_one_built_in_call): Likewise.
4223         (use_internal_fn): Likewise.
4224         (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
4225         and return void.  Call replace_abnormal_ssa_names.
4226         (pass_call_cdce::execute): Check can_guard_call_p during the
4227         initial walk.  Assume shrink_wrap_conditional_dead_built_in_calls
4228         will always change something.
4229
4230 2016-05-18  Martin Jambor  <mjambor@suse.cz>
4231
4232         PR ipa/70646
4233         * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
4234         if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
4235
4236 2016-05-18  Martin Jambor  <mjambor@suse.cz>
4237
4238         PR ipa/70646
4239         * ipa-inline.h (condition): New field size.
4240         * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
4241         for comaprison and store it into the new condition.
4242         (evaluate_conditions_for_known_args): Use condition size to check
4243         access sizes for all but CHANGED conditions.
4244         (unmodified_parm_1): New parameter size_p, store access size into it.
4245         (unmodified_parm): Likewise.
4246         (unmodified_parm_or_parm_agg_item): Likewise.
4247         (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
4248         (set_cond_stmt_execution_predicate): Extract access sizes and store
4249         them to conditions.
4250         (set_switch_stmt_execution_predicate): Likewise.
4251         (will_be_nonconstant_expr_predicate): Likewise.
4252         (will_be_nonconstant_predicate): Likewise.
4253         (inline_read_section): Stream condition size.
4254         (inline_write_summary): Likewise.
4255
4256 2016-05-18  Richard Biener  <rguenther@suse.de>
4257
4258         * tree-ssa-loop-im.c (determine_max_movement): Properly add
4259         condition cost to PHI cost instead of total_cost.
4260
4261 2016-05-18  Martin Liska  <mliska@suse.cz>
4262
4263         PR fortran/70856
4264         * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
4265         merged variables.
4266
4267 2016-05-18  Richard Biener  <rguenther@suse.de>
4268
4269         * lto-streamer.h (LTO_major_version): Bump to 6.
4270
4271 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
4272
4273         * function.c (make_split_prologue_seq, make_prologue_seq,
4274         make_epilogue_seq): New functions, factored out from...
4275         (thread_prologue_and_epilogue_insns): Here.
4276
4277 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
4278
4279         * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
4280         cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
4281         of before.  Add a comment.
4282
4283 2016-05-18 Bin Cheng  <bin.cheng@arm.com>
4284
4285         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
4286         expression pointer, not pointer to the pointer.
4287
4288 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
4289
4290         * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
4291         (avx2_pbroadcast<mode>): Add another alternative with v instead
4292         of x constraints in it, using <pbroadcast_evex_isa> isa.
4293         (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
4294
4295         * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
4296         constraint x instead of v in second alternative, add avx512bw
4297         alternative.
4298
4299         * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
4300         constraint x instead of v in second alternative, add avx512bw
4301         alternative.
4302
4303         * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
4304         constraint x instead of v in second alternative, add avx512bw
4305         alternative.
4306
4307         * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
4308         avx512bw alternative.
4309
4310 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
4311
4312         * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
4313         array to 128 chars.
4314         (define_insn "*andnottf3"): Ditto.
4315         (define_insn "*<code><mode>3"/any_logic): Ditto.
4316         (define_insn "*<code>tf3"/any_logic): Ditto.
4317         (define_insn "sse2_storehpd"): Use Yv constraint for scalar
4318         operand to block AVX-512VL insn variant emit when it is not enabled.
4319
4320 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
4321
4322         * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
4323         constraint fot SF mode.
4324
4325 2016-05-18  Petr Murzin  <petr.murzin@intel.com>
4326             Kirill Yukhin  <kirill.yukhin@intel.com>
4327
4328         * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
4329         modifiers.
4330         (define_insn "rsqrt14<mode>"): Ditto.
4331         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
4332         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
4333         (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
4334         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
4335         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
4336         Ditto.
4337         (define_insn "*avx512f_gatherdi<mode>"): Ditto.
4338         (define_insn "*avx512f_scatterdi<mode>"): Ditto.
4339         * config/i386/i386.c (ix86_print_operand): Expand check for size
4340         override codes for Intel syntax.
4341
4342 2016-05-18  Richard Biener  <rguenther@suse.de>
4343
4344         PR tree-optimization/71168
4345         * tree-loop-distribution.c (distribute_loop): Move *destroy_p
4346         initialization earlier.
4347
4348 2016-05-18  James Greenhalgh  <james.greenhalgh@arm.com>
4349
4350         * config/aarch64/aarch64-simd.md
4351         (aarch64_reduc_plus_internal<mode>): Rename to...
4352         (reduc_plus_scal): ...This, and remove previous implementation.
4353
4354 2016-05-18  Richard Biener  <rguenther@suse.de>
4355
4356         * passes.def: Put late dse and cd_dce in canonical order.
4357
4358 2016-05-17  Jan Hubicka  <hubicka@ucw.cz>
4359
4360         * ipa-inline-transform.c (preserve_function_body_p): Look for
4361         first non-thunk clone.
4362         (save_function_body): Save into first non-thunk.
4363         * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
4364         up call stmt id.
4365         (lto_output_node): Inline thunks don't need body in every
4366         partition.
4367         * lto-streamer-in.c: Do not fixup thunk clones.
4368         * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
4369         thunks.
4370         * tree-inline.c (copy_bb): Be prepared for target node to be new after
4371         folding suceeds.
4372
4373 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
4374
4375         PR middle-end/63586
4376         * tree-ssa-reassoc.c (transform_add_to_multiply): New.
4377         (reassociate_bb): Call transform_add_to_multiply.
4378
4379 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
4380
4381         * config/aarch64/aarch64.c (all_extensions): Removed unused
4382         static variable.
4383
4384 2016-05-17  Nathan Sidwell  <nathan@acm.org>
4385
4386         * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
4387         (TARGET_FUNCTION_ARG_BOUNDARY): Override.
4388
4389 2016-05-17  Mikhail Maltsev  <maltsevm@gmail.com>
4390
4391         PR tree-optimization/54579
4392         PR middle-end/55299
4393         * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
4394
4395 2016-05-17  Marek Polacek  <polacek@redhat.com>
4396
4397         PR ipa/71146
4398         * tree-inline.c (expand_call_inline): Call
4399         maybe_remove_unused_call_args.
4400
4401 2016-05-17  Jim Wilson  <jim.wilson@linaro.org>
4402
4403         * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
4404         * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
4405         * doc/md.texi (fmin@var{m}3): Likewise.
4406
4407 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
4408
4409         * match.pd (X & C): New transformation.
4410
4411 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
4412
4413         * match.pd (~X & Y): New transformation.
4414
4415 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
4416
4417         * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
4418         information for new SSA_NAME.
4419         (simplify_conversion_using_ranges): Get range through get_range_info
4420         instead of get_value_range.
4421
4422 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
4423
4424         * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
4425         Remove inline assembly.
4426         (vmvn_s16): Likewise.
4427         (vmvn_s32): Likewise.
4428         (vmvn_u8): Likewise.
4429         (vmvn_u16): Likewise.
4430         (vmvn_u32): Likewise.
4431         (vmvnq_s8): Likewise.
4432         (vmvnq_s16): Likewise.
4433         (vmvnq_s32): Likewise.
4434         (vmvnq_u8): Likewise.
4435         (vmvnq_u16): Likewise.
4436         (vmvnq_u32): Likewise.
4437         (vmvn_p8): Likewise.
4438         (vmvnq_p16): Likewise.
4439
4440 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
4441
4442         * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
4443         Use builtin.
4444         (vmul_n_s16): Likewise.
4445         (vmul_n_s32): Likewise.
4446         (vmul_n_u16): Likewise.
4447         (vmul_n_u32): Likewise.
4448         (vmulq_n_f32): Likewise.
4449         (vmulq_n_f64): Likewise.
4450         (vmulq_n_s16): Likewise.
4451         (vmulq_n_s32): Likewise.
4452         (vmulq_n_u16): Likewise.
4453         (vmulq_n_u32): Likewise.
4454
4455 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
4456
4457         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
4458         to all supported modes.  Rename to "*aarch64_mul3_elt_from_dup".
4459
4460 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
4461
4462         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
4463         to *aarch64_fma4_elt_from_dup<mode>.
4464         (*aarch64_fnma4_elt_to_128df): Rename to
4465         *aarch64_fnma4_elt_from_dup<mode>.
4466         * config/aarch64/arm_neon.h (vfma_n_f64): New.
4467         (vfms_n_f32): Likewise.
4468         (vfms_n_f64): Likewise.
4469         (vfmsq_n_f32): Likewise.
4470         (vfmsq_n_f64): Likewise.
4471
4472 2016-05-17  Gerald Pfeifer  <gerald@pfeifer.com>
4473
4474         * wide-int.h: Change fixed_wide_int_storage from class to struct.
4475
4476 2016-05-17  Richard Biener  <rguenther@suse.de>
4477
4478         PR tree-optimization/71132
4479         * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
4480         Only add control dependences for blocks in the loop.
4481         (build_rdg): Adjust.
4482         (generate_code_for_partition): Return whether loop should
4483         be destroyed and delay that.
4484         (distribute_loop): Likewise.
4485         (pass_loop_distribution::execute): Record loops to be destroyed
4486         and perform delayed destroying of loops.
4487
4488 2016-05-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4489
4490         PR target/70809
4491         * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
4492
4493 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
4494
4495         * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
4496
4497 2016-05-17  Ilya Enkovich  <ilya.enkovich@intel.com>
4498
4499         PR target/71114
4500         * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
4501         insertion point for instructions generated by validize_mem.
4502
4503 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
4504
4505         * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
4506         in brackets.
4507
4508 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
4509
4510         * config/aarch64/aarch64.c
4511         (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
4512         rather than a macro.
4513
4514 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
4515
4516         * doc/invoke.texi (AArch64 Options): Various updates.
4517
4518 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4519
4520         * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
4521         into instrumentation thunks.
4522         * cif-code.def (CIF_CHKP): New.
4523
4524 2016-05-16  Uros Bizjak  <ubizjak@gmail.com>
4525
4526         * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
4527
4528 2016-05-16  Martin Jambor  <mjambor@suse.cz>
4529
4530         * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
4531         (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
4532
4533 2016-05-16  Marek Polacek  <polacek@redhat.com>
4534
4535         * gimple.c (maybe_remove_unused_call_args): Fix typos in the
4536         commentary.
4537
4538 2016-05-16  Martin Jambor  <mjambor@suse.cz>
4539
4540         PR hsa/70857
4541         * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
4542         the outlined kernel function.
4543
4544 2016-05-16  Robert Suchanek  <robert.suchanek@imgtec.com>
4545
4546         * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
4547         (ISA_HAS_DLSA): Ditto.
4548
4549 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
4550
4551         * config/mips/m5100.md (m51_int_load): Update the latency to 2.
4552
4553 2016-05-16  Nathan Sidwell  <nathan@acm.org>
4554
4555         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
4556         (nvptx_name_replacement): Restore.  Add comment.
4557         (write_fn_proto, write_fn_proto_from_insn,
4558         nvptx_output_call_insn): Restore
4559         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
4560
4561 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
4562
4563         * config/aarch64/aarch64.md
4564         (add<mode>3_compareC_cconly_imm): Remove use of %w.
4565         (add<mode>3_compareC_imm): Likewise.
4566         (<optab>si3_uxtw): Split into register and immediate variants.
4567         (andsi3_compare0_uxtw): Likewise.
4568         (and<mode>3_compare0): Likewise.
4569         (and<mode>3nr_compare0): Likewise.
4570         (stack_protect_test_<mode>): Don't use %x for memory operands.
4571
4572 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
4573
4574         * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
4575
4576 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
4577
4578         * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
4579         Split integer shifts into shift_reg and bfm.
4580         (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
4581         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
4582         (ror<mode>3_insn): Likewise.
4583         (<optab>si3_insn_uxtw): Likewise.
4584         (<optab><mode>3_insn): Change to rotate_imm.
4585         (extr<mode>5_insn_alt): Likewise.
4586         (extrsi5_insn_uxtw): Likewise.
4587         (extrsi5_insn_uxtw_alt): Likewise.
4588
4589 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
4590
4591         * doc/tm.texi: Regenerate.
4592         * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
4593         (TARGET_INVALID_RETURN_TYPE): Remove.
4594         * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
4595         TARGET_INVALID_RETURN_TYPE.
4596         * target.def (invalid_parameter_type): Remove.
4597         (invalid_return_type): Remove.
4598
4599 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4600
4601         * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
4602         on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
4603         calls from thunk.
4604         * ipa-inline-transform.c (inline_call): When inlining into thunk produce
4605         gimple body.
4606         (preserve_function_body_p): No need to preserve function body
4607         * cif-codes.def (CIF_THUNK): Remove.
4608         * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
4609
4610 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4611
4612         * tree-inline.c (expand_call_inline): recurse after inlining thunk.
4613
4614 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4615
4616         * tree.c (free_lang_data_in_decl): Also set target/optimization flags
4617         for thunks.
4618
4619 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4620
4621         * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
4622         (inline_small_functions): Do not look for function symbol when
4623         resetting caches.
4624
4625 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4626
4627         * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
4628         of inline thunks
4629
4630 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
4631             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4632             Jiong Wang  <jiong.wang@arm.com>
4633
4634         * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
4635         for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
4636         Define __ARM_FP16_ARGS when appropriate.
4637         * config/arm/arm.c (arm_invalid_parameter_type): Remove
4638         declaration.
4639         (arm_invalid_return_type): Likewise.
4640         (TARGET_INVALID_PARAMETER_TYPE): Remove.
4641         (TARGET_INVALID_RETURN_TYPE): Remove.
4642         (aapcs_vfp_sub_candidate): Allow HFmode.
4643         (aapcs_vfp_allocate): Add comment.  Support HFmode.
4644         (aapcs_vfp_allocate_return_reg): Likewise.
4645         (struct aapcs_cp_arg_layout): Slightly reword comments for
4646         is_return_candidate and allocate_return_reg.
4647         (output_mov_vfp): Update assert.
4648         (arm_hard_regno_mode_ok): Remove comment, update HF-mode
4649         condition.
4650         (arm_invalid_parameter_type): Remove.
4651         (amr_invalid_return_type): Remove.
4652         * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
4653         * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
4654         * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
4655
4656 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
4657
4658         * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
4659         * config/aarch64/arch64-protos.h
4660         (aarch64_legitimize_reload_address): Remove.
4661         * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
4662         Remove.
4663
4664 2016-05-16  Eric Botcazou  <ebotcazou@adacore.com>
4665
4666         * configure.ac: Add ACX_NONCANONICAL_HOST.
4667         * configure: Regenerate.
4668         * Makefile.in: Set host_noncanonical.
4669
4670 2016-05-14  Uros Bizjak  <ubizjak@gmail.com>
4671
4672         PR target/71097
4673         * config/i386/i386.md (*movtf_internal): Before register allocation,
4674         do not allow FP constants for CM_MEDIUM memory model, allow only
4675         standard FP constants for CM_LARGE and CM_LARGE_PIC models.
4676         (*movxf_internal): Ditto.
4677         (*movdf_internal): Ditto.
4678         (*movsf_internal): Ditto.
4679
4680 2016-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
4681
4682         PR rtl-optimization/67483
4683         * combine.c (make_compound_operation): Don't call extract_left_shift
4684         with negative shift amounts.
4685
4686 2016-05-13  Jakub Jelinek  <jakub@redhat.com>
4687
4688         PR bootstrap/71071
4689         * fold-const.c (fold_checksum_tree): Allow modification
4690         of TYPE_ALIAS_SET during folding.
4691
4692         * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
4693         ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
4694         (ix86_split_to_parts): Likewise.  Fix up formatting.
4695
4696 2016-05-13  H.J. Lu  <hongjiu.lu@intel.com>
4697
4698         * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
4699         unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
4700         printf format.
4701
4702 2016-05-13  Nathan Sidwell  <nathan@acm.org>
4703
4704         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
4705         (nvptx_name_replacement): Delete.
4706         (write_fn_proto, write_fn_proto_from_insn,
4707         nvptx_output_call_insn): Remove nvptx_name_replacement call.
4708         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
4709         * langhooks.c (add_builtin_funcction_common): Call
4710         targetm.mangle_decl_assembler_name.
4711
4712         * config/nvptx/nvptx.c (write_fn_proto): Handle
4713         BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
4714
4715 2016-05-13  Martin Liska  <mliska@suse.cz>
4716
4717         * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
4718         and PRIu64 in printf format.
4719
4720 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4721
4722         * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
4723         comment.
4724
4725 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4726
4727         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
4728         Change --param max-completely-peeled-times to
4729         --param max-completely-peel-times in dump file printing.
4730
4731 2016-05-13  Richard Biener  <rguenther@suse.de>
4732
4733         PR tree-optimization/42587
4734         * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
4735         (find_bswap_or_nop_1): Likewise.
4736         (bswap_replace): Likewise.
4737
4738 2016-05-13  Martin Liska  <mliska@suse.cz>
4739
4740         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
4741         Initialize a variable with default value.
4742
4743 2016-05-13  Martin Liska  <mliska@suse.cz>
4744
4745         * doc/invoke.texi: Enhance explanation of error recovery
4746         of sanitizers.
4747
4748 2016-05-13  Martin Liska  <mliska@suse.cz>
4749
4750         * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
4751         (struct cost_pair): Change inv_expr_id (int) to inv_expr
4752         (iv_inv_expr_ent *).
4753         (struct iv_inv_expr_ent): Comment struct fields.
4754         (sort_iv_inv_expr_ent): New function.
4755         (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
4756         (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
4757         a hash_map between iv_inv_expr_ent and number of usages.
4758         (niter_for_exit): Fix coding style.
4759         (tree_ssa_iv_optimize_init): Use renamed variable.
4760         (determine_base_object): Fix coding style.
4761         (alloc_iv): Likewise.
4762         (find_interesting_uses_outside): Likewise.
4763         (add_candidate_1): Likewise.
4764         (add_standard_iv_candidates): Likewise.
4765         (set_group_iv_cost): Replace inv_expr_id with inv_expr.
4766         (prepare_decl_rtl): Fix coding style.
4767         (get_address_cost): Likewise.
4768         (get_shiftadd_cost): Likewise.
4769         (force_expr_to_var_cost): Likewise.
4770         (compare_aff_trees): Likewise.
4771         (get_expr_id): Restructure the function.
4772         (get_loop_invariant_expr_id): Renamed to
4773         get_loop_invariant_expr.
4774         (get_computation_cost_at): Replace usage of inv_expr_id with
4775         inv_expr.
4776         (get_computation_cost): Likewise.
4777         (determine_group_iv_cost_generic): Likewise.
4778         (determine_group_iv_cost_address): Likewise.
4779         (iv_period): Fix coding style.
4780         (iv_elimination_compare_lt): Likewise.
4781         (may_eliminate_iv): Likewise.
4782         (determine_group_iv_cost_cond):  Replace usage of inv_expr_id with
4783         inv_expr.
4784         (determine_group_iv_costs): Dump invariant expressions.
4785         (iv_ca_recount_cost): Use the newly added hash_map.
4786         (iv_ca_set_remove_invariants): Fix coding style.
4787         (iv_ca_set_add_invariants): Fix coding style.
4788         (iv_ca_set_no_cp): Utilize the newly added hash_map for used
4789         invariants.
4790         (iv_ca_set_cp): Likewise.
4791         (iv_ca_new): Initialize the newly added hash_map and remove
4792         initialization of fields.
4793         (iv_ca_free): Delete the hash_map.
4794         (iv_ca_dump): Dump invariant expressions.
4795         (iv_ca_extend): Fix coding style.
4796         (try_add_cand_for): Likewise.
4797         (create_new_ivs): Dump information about # of avg iterations and
4798         # of used invariant expressions.
4799         (rewrite_use_compare): Fix coding style.
4800         (free_loop_data): Set default value for max_inv_expr_id.
4801
4802 2016-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
4803
4804         * cse.c (rest_of_handle_cse): Use cleanup_cfg
4805         returned value cse_cfg_altered computation.
4806         (rest_of_handle_cse2): Likewise.
4807         (rest_of_handle_cse_after_global_opts): Likewise.
4808
4809 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4810
4811         PR target/53440
4812         * config/arm/arm.c (arm32_output_mi_thunk): New.
4813         (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
4814         to split Thumb1 vs TARGET_32BIT functionality.
4815         (arm_thumb1_mi_thunk): New.
4816
4817 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4818
4819         * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
4820         to true.
4821
4822 2016-05-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4823
4824         PR target/71080
4825         * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
4826
4827 2016-05-13  Eric Botcazou  <ebotcazou@adacore.com>
4828
4829         * builtins.c (expand_builtin_memcmp): Do not emit the call here.
4830         (expand_builtin_trap): Emit a regular call.
4831         (set_builtin_user_assembler_name): Remove obsolete cases.
4832         * dse.c (scan_insn): Adjust.
4833         * except.c: Include calls.h.
4834         (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
4835         emit a regular call to setjmp.
4836         * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
4837         (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
4838         (emit_block_move_via_libcall): Delete.
4839         (block_move_fn): Delete.
4840         (init_block_move_fn): Likewise.
4841         (emit_block_move_libcall_fn): Likewise.
4842         (emit_block_op_via_libcall): New function.
4843         (set_storage_via_libcall): Tidy up and use memset builtin.
4844         (block_clear_fn): Delete.
4845         (init_block_clear_fn): Likewise.
4846         (clear_storage_libcall_fn): Likewise.
4847         (expand_assignment): Call emit_block_move_via_libcall.
4848         Do not include gt-expr.h.
4849         * expr.h (emit_block_op_via_libcall): Declare.
4850         (emit_block_copy_via_libcall): New inline function.
4851         (emit_block_move_via_libcall): Likewise.
4852         (emit_block_comp_via_libcall): Likewise.
4853         (block_clear_fn): Delete.
4854         (init_block_move_fn): Likewise.
4855         (init_block_clear_fn): Likewise.
4856         (emit_block_move_via_libcall): Likewise.
4857         (set_storage_via_libcall): Add default parameter value.
4858         * libfuncs.h (enum libfunc_index): Remove obsolete values.
4859         (abort_libfunc): Delete.
4860         (memcpy_libfunc): Likewise.
4861         (memmove_libfunc): Likewise.
4862         (memcmp_libfunc): Likewise.
4863         (memset_libfunc): Likewise.
4864         (setbits_libfunc): Likewise.
4865         (setjmp_libfunc): Likewise.
4866         (longjmp_libfunc): Likewise.
4867         (profile_function_entry_libfunc): Likewise.
4868         (profile_function_exit_libfunc): Likewise.
4869         (gcov_flush_libfunc): Likewise.
4870         * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
4871         and DECL_VISIBILITY on the declaration.
4872         (init_optabs): Do not initialize obsolete libfuncs.
4873         * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
4874         * tree-core.h (ECF_RET1): Define.
4875         (ECF_TM_PURE): Adjust.
4876         (ECF_TM_BUILTIN): Likewise.
4877         * tree.c (set_call_expr_flags): Deal with ECF_RET1.
4878         (build_common_builtin_nodes): Initialize abort builtin.
4879         Add ECF_RET1 on memcpy, memmove and memset builtins.
4880         Pass final flags for alloca and alloca_with_align builtins.
4881         * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
4882         obsolete builtins.
4883         * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
4884         * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
4885         set_storage_via_libcall and call emit_block_copy_via_libcall.
4886
4887 2016-05-12  Uros Bizjak  <ubizjak@gmail.com>
4888
4889         * config/i386/i386.md (*call_got_x32): Change operand 0 to
4890         DImode before it is passed to ix86_output_call_operand.
4891         (*call_value_got_x32): Ditto for operand 1.
4892
4893 2016-05-12  Jiong Wang  <jiong.wang@arm.com>
4894
4895         PR rtl-optimization/70904
4896         * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
4897         reload for wide mode.
4898
4899 2016-05-12  Marek Polacek  <polacek@redhat.com>
4900
4901         PR c/70756
4902         * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
4903         * langhooks.c (lhd_incomplete_type_error): Add location parameter.
4904         * langhooks.h (incomplete_type_error): Likewise.
4905         * tree.c (size_in_bytes_loc): Renamed from size_in_bytes.  Add location
4906         parameter, pass it down to incomplete_type_error.
4907         * tree.h (size_in_bytes): New inline overload.
4908         (size_in_bytes_loc): Renamed from size_in_bytes.
4909
4910 2016-05-12  Richard Biener  <rguenther@suse.de>
4911
4912         PR tree-optimization/71059
4913         * tree-ssa-pre.c (phi_translate_1): Fully fold translated
4914         nary before looking up or entering the expression into the VN
4915         hashes.
4916         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
4917         Make sure to re-use NARYs without result as inserted by
4918         phi-translation.
4919
4920 2016-05-12  Richard Biener  <rguenther@suse.de>
4921
4922         PR tree-optimization/71062
4923         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
4924         field.
4925         * tree-ssa-structalias.c (set_uids_in_ptset): Set
4926         vars_contains_restrict if the var is a restrict tag.
4927         * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
4928         do not disambiguate pointers against it.
4929         (dump_points_to_solution): Re-structure and adjust for new
4930         vars_contains_restrict flag.
4931         * gimple-pretty-print.c (pp_points_to_solution): Likewise.
4932
4933 2016-05-12  Martin Liska  <mliska@suse.cz>
4934
4935         * doc/invoke.texi: Explain connection between
4936         -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
4937
4938 2016-05-12  Ilya Enkovich  <ilya.enkovich@intel.com>
4939
4940         PR tree-optimization/71006
4941         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
4942         consider COND_EXPR as a mask producer.
4943
4944 2016-05-12  Marek Polacek  <polacek@redhat.com>
4945
4946         PR driver/71063
4947         * opts.c (common_handle_option): Detect missing argument for --help^.
4948
4949 2016-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4950
4951         PR target/70830
4952         * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
4953         when popping the PC and within an interrupt handler routine.
4954         Add missing tab to output of "ldmfd".
4955         (output_return_instruction): Output LDMFD with SP update rather
4956         than POP when returning from interrupt handler.
4957
4958 2016-05-12  Jakub Jelinek  <jakub@redhat.com>
4959
4960         * config/i386/i386.md (isa): Add x64_avx512dq, enable if
4961         TARGET_64BIT && TARGET_AVX512DQ.
4962         * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
4963         (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
4964         (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
4965         *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
4966         (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
4967         (*vec_extractv4si_zext): Add avx512dq alternative.
4968         (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
4969         use v instead of x constraint in other alternatives where possible.
4970
4971         * config/i386/sse.md (sse2_loadld): Use v instead of x
4972         constraint in alternatives 0,1,4.
4973
4974         * config/i386/sse.md (pinsr_evex_isa): New mode attr.
4975         (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
4976         v constraints instead of x and <pinsr_evex_isa> isa attribute.
4977
4978         PR target/71019
4979         * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
4980         <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
4981         is not emitted unless TARGET_AVX512BW.
4982         (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
4983         Likewise.  For TARGET_AVX512BW, use "=v" constraint instead of "=x"
4984         for the result operand.
4985
4986         * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
4987         constraint instead of x in avx alternatives.  Use maybe_evex instead
4988         of vex prefix.
4989
4990         * config/i386/constraints.md (Yv): New constraint.
4991         * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
4992         TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
4993         * config/i386/i386.md (avx512fvecmode): New mode attr.
4994         (*pushtf): Use v constraint instead of x.
4995         (*movtf_internal): Likewise.  For TARGET_AVX512VL and
4996         xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
4997         (*absneg<mode>2): Use Yv constraint instead of x constraint.
4998         (*absnegtf2_sse): Likewise.
4999         (copysign<mode>3_const, copysign<mode>3_var): Likewise.
5000         * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
5001         avx512f alternatives.
5002         (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
5003
5004 2016-05-12  Richard Biener  <rguenther@suse.de>
5005
5006         PR tree-optimization/71060
5007         * tree-data-ref.c (initialize_data_dependence_relation): Do not
5008         require exact match of DR_BASE_OBJECT but only matching address and
5009         type.
5010
5011 2016-05-12  Richard Biener  <rguenther@suse.de>
5012
5013         PR tree-optimization/70986
5014         * cfganal.c: Include cfgloop.h.
5015         (dfs_find_deadend): Prefer to take edges exiting loops.
5016
5017 2016-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5018
5019         * gcc.target/powerpc/pr70963.c: Require at least power8 at both
5020         compile and run time.
5021
5022 2016-05-11  Mikhail Maltsev  <maltsevm@gmail.com>
5023
5024         PR c/43651
5025         * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
5026
5027 2016-05-11  Uros Bizjak  <ubizjak@gmail.com>
5028
5029         * config/i386/i386.c (legitimize_pic_address): Use
5030         copy_to_suggested_reg instead of gen_movsi.
5031
5032 2016-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
5033
5034         * config/rs6000/predicates.md (quad_memory_operand): Move most of
5035         the code into quad_address_p and call it to share code with
5036         vsx_quad_dform_memory_operand.
5037         (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
5038         d-form support.
5039         * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
5040         bit instead of being a separate word.  Split -mpower9-dform into
5041         two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
5042         * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
5043         for the register class supporting 128-bit quad word memory offsets.
5044         (mode_supports_vsx_dform_quad): Helper function to return if the
5045         register class uses quad word memory offsets.
5046         (rs6000_debug_addr_mask): Add support for quad word memory offsets.
5047         (rs6000_debug_reg_global): Always print if we are using LRA or not.
5048         (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
5049         instructions are enabled, set up the appropriate addr_masks for
5050         128-bit types.
5051         (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
5052         -mpower9-dform-scalar, instead of -mpower9-dform.
5053         (rs6000_option_override_internal): Split -mpower9-dform into two
5054         switches, -mpower9-dform-scalar and -mpower9-dform-vector.  The
5055         -mpower9-dform switch sets or clears both.  If we are not using
5056         the LRA register allocator, do not enable -mpower9-dform-vector by
5057         default.  If we are using LRA, enable -mpower9-dform-vector and
5058         -mvsx-timode if it is appropriate.  Issue a warning if either
5059         -mpower9-dform-vector or -mvsx-timode are explicitly used without
5060         enabling LRA.
5061         (quad_address_offset_p): New helper function to return if the
5062         offset is legal for quad word memory instructions.
5063         (quad_address_p): New function to determin if GPR or vector
5064         register quad word memory addresses are legal.
5065         (mem_operand_gpr): Validate quad word address offsets.
5066         (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
5067         d-form (register + offset) instructions.
5068         (offsettable_ok_by_alignment): Likewise.
5069         (rs6000_legitimate_offset_address_p): Likewise.
5070         (legitimate_lo_sum_address_p): Likewise.
5071         (rs6000_legitimize_address): Likewise.
5072         (rs6000_legitimize_reload_address): Add more debug statements for
5073         -mdebug=addr.
5074         (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
5075         d-form instructions.
5076         (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
5077         d-form instructions.  Distinguish different cases in debug
5078         output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
5079         d-form instructions.
5080         (rs6000_preferred_reload_class): Likewise.
5081         (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
5082         instructions.  If ISA 3.0 is available, generate lxvx/stxvx instead
5083         of the ISA 2.06 indexed memory instructions.
5084         (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
5085         use them to save/restore the saved vector registers instead of
5086         using Altivec instructions.
5087         (rs6000_emit_epilogue): Likewise.
5088         (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
5089         (rs6000_opt_masks): Split -mpower9-dform into
5090         -mpower9-dform-scalar and -mpower9-dform-vector.
5091         (rs6000_print_options_internal): Print -mno-<switch> if <switch>
5092         was not selected.
5093         * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
5094         ISA 3.0 vector indexed memory instructions, and fold the code into
5095         the normal mov<mode> patterns.
5096         (p9_vecstore_<mode>): Likewise.
5097         (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
5098         instructions.
5099         (vsx_movti_64bit): Likewise.
5100         (vsx_movti_32bit): Likewise.
5101         * config/rs6000/constraints.md (wO constraint): New constraint for
5102         ISA 3.0 vector d-form support.
5103         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
5104         -mpower9-dform-scalar instead of -mpower9-dform.  Add note not to
5105         include -mpower9-dform-vector until we switch over to LRA.
5106         (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
5107         switches, -mpower9-dform-scalar and -mpower9-dform-vector.
5108         * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
5109         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
5110         for -mpower9-dform and -mlra.
5111         * doc/md.texi (wO constraint): Document wO constraint.
5112
5113 2016-05-11  Alexander Monakov  <amonakov@ispras.ru>
5114
5115         * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
5116         'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
5117         * genautomata.c (output_internal_insn_code_evaluation): Simplify.
5118         Move handling of non-insn arguments inline into the sole user:
5119         (output_trans_func): ...here.
5120         (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
5121         in emitted function prototype.
5122         (output_internal_insn_latency_func): Ditto.  Simplify.
5123         (output_internal_maximal_insn_latency_func): Ditto.  Delete
5124         always-unused argument.
5125         (output_insn_latency_func): Ditto.
5126         (output_maximal_insn_latency_func): Ditto.
5127
5128 2016-05-11  Richard Biener  <rguenther@suse.de>
5129
5130         PR tree-optimization/71055
5131         * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
5132         sth with precision not equal to access size verify we don't chop
5133         off bits.
5134
5135 2016-05-11  Richard Biener  <rguenther@suse.de>
5136
5137         PR debug/71057
5138         * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
5139         (dwarf2out_finish): Move retry_incomplete_types call ...
5140         (dwarf2out_early_finish): ... here.
5141
5142 2016-05-11  Richard Biener  <rguenther@suse.de>
5143
5144         PR middle-end/71002
5145         * alias.c (reference_alias_ptr_type): Preserve alias-set zero
5146         if the langhook insists on it.
5147         * fold-const.c (make_bit_field_ref): Add arg for the original
5148         reference and preserve its alias-set.
5149         (decode_field_reference): Take exp by reference and adjust it
5150         to the original memory reference.
5151         (optimize_bit_field_compare): Adjust callers.
5152         (fold_truth_andor_1): Likewise.
5153         * gimplify.c (gimplify_expr): Adjust in-SSA form test.
5154
5155 2016-05-11  Ilya Enkovich  <ilya.enkovich@intel.com>
5156
5157         PR middle-end/70807
5158         * cfgrtl.h (delete_insn_and_edges): Now return bool.
5159         * cfgrtl.c (delete_insn_and_edges): Likewise.
5160         * config/i386/i386.c (convert_scalars_to_vector): Remove
5161         redundant code.
5162         * cse.c (cse_insn): Compute cse_cfg_altered.
5163         (delete_trivially_dead_insns): Likewise.
5164         (cse_cc_succs): Likewise.
5165         (rest_of_handle_cse): Free dominance info if required.
5166         (rest_of_handle_cse2): Likewise.
5167         (rest_of_handle_cse_after_global_opts): Likewise.
5168
5169 2016-05-11  Alan Modra  <amodra@gmail.com>
5170
5171         * config/rs6000/rs6000.c (is_complex_IBM_long_double,
5172         abi_v4_pass_in_fpr): New functions.
5173         (rs6000_function_arg_boundary): Exclude complex IBM long double
5174         from 64-bit alignment when ABI_V4.
5175         (rs6000_function_arg, rs6000_function_arg_advance_1,
5176         rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
5177
5178 2016-05-10  Segher Boessenkool  <segher@kernel.crashing.org>
5179
5180         PR rtl-optimization/71028
5181         * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
5182         jump with just a return in the fallthrough block if the branch
5183         block contains just a return as well.
5184
5185 2016-05-10  Marc Glisse  <marc.glisse@inria.fr>
5186
5187         * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
5188         * match.pd ((X & Y) ^ Y): ... this.
5189         ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
5190         | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
5191
5192 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
5193
5194         * read-md.c (require_char_ws): New function.
5195         (read_string): Simplify using require_char_ws.
5196         (handle_constants): Likewise.
5197         (handle_enum): Likewise.
5198         (handle_file): Likewise.
5199         * read-md.h (require_char_ws): New declaration.
5200         * read-rtl.c (read_conditions): Simplify using require_char_ws.
5201         (read_mapping): Likewise.
5202         (read_rtx_code): Likewise.
5203         (read_nested_rtx): Likewise.
5204
5205 2016-05-10  James Norris  <jnorris@codesourcery.com>
5206
5207         * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
5208         if offloading is enabled and -fopenacc or -fopenmp is specified.
5209         (CRTOFFLOADEND): Likewise.
5210         (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
5211         (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
5212
5213 2016-05-10  Uros Bizjak  <ubizjak@gmail.com>
5214
5215         * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
5216         gotoff_operand code paths.  Use copy_to_suggested_regs and
5217         expand_simple_binop where appropriate.  Cleanup.
5218
5219 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
5220
5221         PR target/70799
5222         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
5223         integer constants.
5224         (dimode_scalar_chain::vector_const_cost): New.
5225         (dimode_scalar_chain::compute_convert_gain): Handle constants.
5226         (dimode_scalar_chain::convert_op): Likewise.
5227         (dimode_scalar_chain::convert_insn): Likewise.
5228
5229 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
5230
5231         * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
5232         unary operation, not a binary one.
5233
5234 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
5235
5236         PR middle-end/70877
5237         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
5238         calls with type casted fndecl.
5239
5240 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
5241
5242         PR tree-optimization/70786
5243         * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
5244         * calls.c (initialize_argument_information): Bind bounds
5245         with corresponding args passed by reference.
5246
5247 2016-05-10  Jakub Jelinek  <jakub@redhat.com>
5248
5249         PR target/70927
5250         * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
5251         *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
5252         use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
5253         accordingly.
5254
5255 2016-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5256
5257         PR target/70963
5258         * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
5259         code for a zero scale factor.
5260         (vsx_xvcvdpuxds_scale): Likewise.
5261
5262 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
5263
5264         * diagnostic-show-locus.c (layout::layout): Call show_ruler
5265         if show_ruler_p was set on the context.
5266         (layout::show_ruler): New method.
5267         * diagnostic.h (struct diagnostic_context): Add field
5268         "show_ruler_p".
5269
5270 2016-05-10  Richard Biener  <rguenther@suse.de>
5271
5272         PR tree-optimization/71039
5273         * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
5274         (chk_uses): New function.
5275         (propagate_with_phi): Verify we can safely replicate the lhs of an
5276         aggregate assignment on all incoming edges.
5277
5278 2016-05-10  Oleg Endo  <olegendo@gcc.gnu.org>
5279
5280         * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
5281         Forward declare.
5282         (rx_atomic_sequence): New class.
5283         * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
5284         (is_interrupt_func, is_fast_interrupt_func): Make non-static and
5285         non-inline.
5286         (rx_atomic_sequence::rx_atomic_sequence,
5287         rx_atomic_sequence::~rx_atomic_sequence): New functions.
5288         * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
5289         CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
5290         CTRLREG_INTB): New constants.
5291         (FETCHOP): New code iterator.
5292         (fethcop_name, fetchop_name2): New iterator code attributes.
5293         (QIHI): New mode iterator.
5294         (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
5295         atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
5296         atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
5297
5298 2016-05-10  Martin Liska  <mliska@suse.cz>
5299
5300         * tree-inline.c (remap_dependence_clique): Do not remap
5301         debugging statements.
5302
5303 2016-05-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5304
5305         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
5306         ("*fixuns_truncdfdi2_z13")
5307         ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
5308         ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
5309         ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
5310
5311 2016-05-10  Richard Biener  <rguenther@suse.de>
5312
5313         PR tree-optimization/70497
5314         PR tree-optimization/28367
5315         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
5316         split out from ...
5317         (visit_reference_op_load): ... here.
5318         (vn_reference_lookup_3): Use it to handle subreg-like accesses
5319         with simplified BIT_FIELD_REFs.
5320         * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
5321         * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
5322         correctly.
5323
5324 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
5325
5326         * dwarf2out.c (add_abstract_origin_attribute): Adjust
5327         documentation comment.  For BLOCK nodes, add a
5328         DW_AT_abstract_origin attribute that points to the DIE generated
5329         for the origin BLOCK.
5330         (gen_lexical_block_die): Call add_abstract_origin_attribute for
5331         blocks from inlined functions.
5332
5333 2016-05-10  Alan Modra  <amodra@gmail.com>
5334
5335         PR target/70947
5336         * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
5337         regrename modifying insns saving lr before __morestack call.
5338         * config/rs6000/rs6000.md (split_stack_return): Similarly for
5339         insns restoring lr after __morestack call.
5340
5341 2016-05-09  Jakub Jelinek  <jakub@redhat.com>
5342
5343         * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
5344         lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
5345         expanders.
5346         * config/i386/sse.md (vec_interleave_high<mode>,
5347         vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
5348         <avx512>_vpermt2var<mode>3_maskz): Likewise.
5349
5350 2016-05-04  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
5351
5352         * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
5353         function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
5354         parallel reassociation for power8 and forward.
5355
5356 2016-05-09  Uros Bizjak  <ubizjak@gmail.com>
5357
5358         * config/i386/i386.md (absneg splitters with general regs): Use
5359         general_reg_operand predicate.
5360         (btsq peephole2): Use x86_64_immediate_operand to check if new
5361         value is suitable for immediate operand.  Generate emitted insn
5362         using RTL expressions.
5363         (btcq peephole2): Ditto.
5364         (btrq peephole2): Ditto.  Generate correct immediate operand
5365         for AND masking.
5366
5367 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
5368
5369         * cfgexpand.c (expand_debug_expr): Fix address offset for negative
5370         bitpos.
5371
5372 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
5373
5374         * tree-affine.c (wide_int_constant_multiple_p): Add missing
5375         pointer dereference.
5376
5377 2016-05-09  Richard Biener  <rguenther@suse.de>
5378
5379         PR tree-optimization/70985
5380         * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
5381         op0 isn't a gimple register.
5382
5383 2016-05-09  Prachi Godbole  <prachi.godbole@imgtec.com>
5384
5385         * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
5386         (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
5387         (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
5388         (i6400_fpu_mult): New cpu units.
5389         (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
5390         (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
5391         (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
5392         (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
5393         (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
5394         (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
5395         (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
5396         (i6400_msa_long_float4, i6400_msa_long_float5)
5397         (i6400_msa_long_float8, i6400_msa_fdiv_df)
5398         (i6400_msa_fdiv_sf): New reservations.
5399         * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
5400         (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
5401         (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
5402         (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
5403         (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
5404         (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
5405         (msa_short_cmp, msa_short_float2, msa_short_logic3)
5406         (msa_short_store4, msa_long_load, msa_short_store)
5407         (msa_long_logic, msa_long_float2, msa_long_float4)
5408         (msa_long_float5, msa_long_float8, msa_long_mult)
5409         (msa_long_fdiv, msa_long_div): New reservations.
5410
5411 2016-05-09  Robert Suchanek  <robert.suchanek@imgtec.com>
5412             Sameera Deshpande  <sameera.deshpande@imgtec.com>
5413             Matthew Fortune  <matthew.fortune@imgtec.com>
5414             Graham Stott  <graham.stott@imgtec.com>
5415             Chao-ying Fu  <chao-ying.fu@imgtec.com>
5416
5417         * config.gcc: Add MSA header file for mips*-*-* target.
5418         * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
5419         (Ubv8i, Urv8):  New constraints.
5420         * config/mips/mips-ftypes.def: Add function types for MSA
5421         builtins.
5422         * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
5423         (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
5424         * config/mips/mips-msa.md: New file.
5425         * config/mips/mips-protos.h
5426         (mips_split_128bit_const_insns): New prototype.
5427         (mips_msa_idiv_insns): Likewise.
5428         (mips_split_128bit_move): Likewise.
5429         (mips_split_128bit_move_p): Likewise.
5430         (mips_split_msa_copy_d): Likewise.
5431         (mips_split_msa_insert_d): Likewise.
5432         (mips_split_msa_fill_d): Likewise.
5433         (mips_expand_msa_branch): Likewise.
5434         (mips_const_vector_same_val_p): Likewise.
5435         (mips_const_vector_same_bytes_p): Likewise.
5436         (mips_const_vector_same_int_p): Likewise.
5437         (mips_const_vector_shuffle_set_p): Likewise.
5438         (mips_const_vector_bitimm_set_p): Likewise.
5439         (mips_const_vector_bitimm_clr_p): Likewise.
5440         (mips_msa_vec_parallel_const_half): Likewise.
5441         (mips_msa_output_division): Likewise.
5442         (mips_ldst_scaled_shift): Likewise.
5443         (mips_expand_vec_cond_expr): Likewise.
5444         * config/mips/mips.c (enum mips_builtin_type): Add
5445         MIPS_BUILTIN_MSA_TEST_BRANCH.
5446         (mips_gen_const_int_vector_shuffle): New prototype.
5447         (mips_const_vector_bitimm_set_p): New function.
5448         (mips_const_vector_bitimm_clr_p): Likewise.
5449         (mips_const_vector_same_val_p): Likewise.
5450         (mips_const_vector_same_bytes_p): Likewise.
5451         (mips_const_vector_same_int_p): Likewise.
5452         (mips_const_vector_shuffle_set_p): Likewise.
5453         (mips_symbol_insns): Forbid loading symbols via immediate for
5454         MSA.
5455         (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
5456         stores.
5457         (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
5458         MSA.
5459         (mips_lx_address_p): Add support load indexed address for MSA.
5460         (mips_address_insns): Add calculation of instructions needed for
5461         stores and loads for MSA.
5462         (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR.  Handle
5463         CONST_VECTOR for MSA and let it fall through.
5464         (mips_ldst_scaled_shift): New function.
5465         (mips_subword_at_byte): Likewise.
5466         (mips_msa_idiv_insns): Likewise.
5467         (mips_legitimize_move): Validate MSA moves.
5468         (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases.  Add
5469         calculation of costs for MSA division.
5470         (mips_split_move_p): Check if MSA moves need splitting.
5471         (mips_split_move): Split MSA moves if necessary.
5472         (mips_split_128bit_move_p): New function.
5473         (mips_split_128bit_move): Likewise.
5474         (mips_split_msa_copy_d): Likewise.
5475         (mips_split_msa_insert_d): Likewise.
5476         (mips_split_msa_fill_d): Likewise.
5477         (mips_output_move): Handle MSA moves.
5478         (mips_expand_msa_branch): New function.
5479         (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
5480         Reinstate 'y' modifier.
5481         (mips_file_start): Add MSA .gnu_attribute.
5482         (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
5483         FPRs.
5484         (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
5485         (mips_class_max_nregs): Add register size for MSA supported mode.
5486         (mips_cannot_change_mode_class): Allow conversion between MSA
5487         vector modes and TImode.
5488         (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
5489         instruction.
5490         (mips_secondary_reload_class): Force MSA loads/stores via memory.
5491         (mips_preferred_simd_mode): Add preffered modes for MSA.
5492         (mips_vector_mode_supported_p): Add MSA supported modes.
5493         (mips_autovectorize_vector_sizes): New function.
5494         (mips_msa_output_division): Likewise.
5495         (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
5496         (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
5497         (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
5498         (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
5499         (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
5500         (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
5501         (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
5502         (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
5503         (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
5504         (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
5505         (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
5506         (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
5507         (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
5508         (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
5509         (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
5510         (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
5511         (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
5512         (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
5513         (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
5514         (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
5515         (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
5516         (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
5517         (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
5518         (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
5519         (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
5520         (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
5521         (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
5522         (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
5523         (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
5524         (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
5525         (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
5526         (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
5527         (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
5528         (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
5529         (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
5530         (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
5531         (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
5532         (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
5533         (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
5534         (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
5535         (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
5536         (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
5537         (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
5538         (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
5539         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
5540         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
5541         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
5542         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
5543         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
5544         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
5545         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
5546         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
5547         (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
5548         (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
5549         (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
5550         (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
5551         (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
5552         (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
5553         (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
5554         (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
5555         (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
5556         (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
5557         (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
5558         (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
5559         (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
5560         (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
5561         (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
5562         (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
5563         (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
5564         (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
5565         (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
5566         (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
5567         (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
5568         (CODE_FOR_msa_ldi_d): New code_aliasing macros.
5569         (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
5570         slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
5571         srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
5572         srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
5573         srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
5574         srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
5575         bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
5576         bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
5577         bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
5578         binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
5579         binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
5580         binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
5581         addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
5582         subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
5583         max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
5584         max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
5585         maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
5586         mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
5587         mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
5588         min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
5589         ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
5590         clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
5591         clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
5592         clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
5593         clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
5594         clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
5595         st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
5596         sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
5597         adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
5598         adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
5599         ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
5600         aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
5601         aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
5602         subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
5603         subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
5604         subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
5605         asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
5606         maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
5607         msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
5608         div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
5609         hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
5610         hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
5611         mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
5612         dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
5613         dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
5614         dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
5615         sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
5616         splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
5617         pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
5618         ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
5619         ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
5620         ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
5621         ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
5622         bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
5623         fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
5624         pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
5625         nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
5626         copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
5627         insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
5628         bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
5629         fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
5630         fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
5631         fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
5632         fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
5633         fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
5634         fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
5635         fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
5636         fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
5637         fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
5638         fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
5639         mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
5640         msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
5641         fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
5642         flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
5643         ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
5644         ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
5645         ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
5646         move_v builtins.
5647         (mips_get_builtin_decl_index): New array.
5648         (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
5649         (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
5650         (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
5651         (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
5652         (mips_init_builtins): Initialize mips_get_builtin_decl_index
5653         array.
5654         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
5655         hook.
5656         (mips_expand_builtin_insn): Prepare operands for
5657         CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
5658         CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
5659         CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
5660         CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
5661         CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
5662         CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
5663         CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
5664         CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
5665         CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
5666         CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
5667         CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
5668         CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
5669         CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
5670         CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
5671         CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
5672         CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
5673         CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
5674         CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
5675         CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
5676         CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
5677         CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
5678         CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
5679         CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
5680         CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
5681         CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
5682         CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
5683         CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
5684         CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
5685         CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
5686         CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
5687         CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
5688         CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
5689         CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
5690         CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
5691         CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
5692         CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
5693         CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
5694         CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
5695         CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
5696         CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
5697         CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
5698         (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
5699         (mips_set_compression_mode): Disallow MSA with MIPS16 code.
5700         (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
5701         These are set implicitly and an error is reported if overridden.
5702         (mips_expand_builtin_msa_test_branch): New function.
5703         (mips_expand_msa_shuffle): Likewise.
5704         (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
5705         (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
5706         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
5707         (mips_expand_vec_unpack): Add support for MSA.
5708         (mips_expand_vector_init): Likewise.
5709         (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
5710         instead of const0_rtx.
5711         (mips_msa_vec_parallel_const_half): New function.
5712         (mips_gen_const_int_vector): Likewise.
5713         (mips_gen_const_int_vector_shuffle): Likewise.
5714         (mips_expand_msa_cmp): Likewise.
5715         (mips_expand_vec_cond_expr): Likewise.
5716         * config/mips/mips.h
5717         (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
5718         (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
5719         specified.
5720         (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
5721         (ISA_HAS_MSA): New macro.
5722         (UNITS_PER_MSA_REG): Likewise.
5723         (BITS_PER_MSA_REG): Likewise.
5724         (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
5725         (MSA_REG_FIRST): New macro.
5726         (MSA_REG_LAST): Likewise.
5727         (MSA_REG_NUM): Likewise.
5728         (MSA_REG_P): Likewise.
5729         (MSA_REG_RTX_P): Likewise.
5730         (MSA_SUPPORTED_MODE_P): Likewise.
5731         (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
5732         (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
5733         * config/mips/mips.md: Include mips-msa.md.
5734         (alu_type): Add simd_add.
5735         (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
5736         (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
5737         simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
5738         simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
5739         simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
5740         simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
5741         simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
5742         simd_move, simd_load, simd_store.  Choose "multi" for moves
5743         for "qword_mode".
5744         (qword_mode): New attribute.
5745         (insn_count): Add instruction count for quad moves.
5746         Increase the count for MIPS SIMD division.
5747         (UNITMODE): Add UNITMODEs for vector types.
5748         (addsub): New code iterator.
5749         * config/mips/mips.opt (mmsa): New option.
5750         * config/mips/msa.h: New file.
5751         * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
5752         specified.
5753         * config/mips/mti-linux.h: Likewise.
5754         * config/mips/predicates.md
5755         (const_msa_branch_operand): New constraint.
5756         (const_uimm3_operand): Likewise.
5757         (const_uimm4_operand): Likewise.
5758         (const_uimm5_operand): Likewise.
5759         (const_uimm8_operand): Likewise.
5760         (const_imm5_operand): Likewise.
5761         (aq10b_operand): Likewise.
5762         (aq10h_operand): Likewise.
5763         (aq10w_operand): Likewise.
5764         (aq10d_operand): Likewise.
5765         (const_m1_operand): Likewise.
5766         (reg_or_m1_operand): Likewise.
5767         (const_exp_2_operand): Likewise.
5768         (const_exp_4_operand): Likewise.
5769         (const_exp_8_operand): Likewise.
5770         (const_exp_16_operand): Likewise.
5771         (const_vector_same_val_operand): Likewise.
5772         (const_vector_same_simm5_operand): Likewise.
5773         (const_vector_same_uimm5_operand): Likewise.
5774         (const_vector_same_uimm6_operand): Likewise.
5775         (const_vector_same_uimm8_operand): Likewise.
5776         (par_const_vector_shf_set_operand): Likewise.
5777         (reg_or_vector_same_val_operand): Likewise.
5778         (reg_or_vector_same_simm5_operand): Likewise.
5779         (reg_or_vector_same_uimm6_operand): Likewise.
5780         * doc/extend.texi (MIPS SIMD Architecture Functions): New
5781         section.
5782         * doc/invoke.texi (-mmsa): Document new option.
5783
5784 2016-05-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5785
5786         * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
5787         * configure: Regenerate.
5788         * config.in: Regenerate.
5789         * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
5790         on -fvtable-verify.
5791         * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
5792         (ENDFILE_VTV_SPEC): Define.
5793
5794 2016-05-09  Kaushik Phatak  <kaushik.phatak@kpit.com>
5795
5796         * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
5797         registers in all interrupt handlers if necessary.
5798         (rl78_option_override): Add warning.
5799         (MUST_SAVE_MDUC_REGISTERS): New macro.
5800         (rl78_expand_epilogue): Restore the MDUC registers if necessary.
5801         * config/rl78/rl78.c (check_mduc_usage): New function.
5802         (mduc_regs): New structure to hold MDUC register data.
5803         * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
5804         (mulsi3_g13): Add is_g13_muldiv_insn attribute.
5805         (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
5806         (mulhi3_g13): Add is_g13_muldiv_insn attribute.
5807         * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
5808         * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
5809
5810 2016-05-09  Bin Cheng  <bin.cheng@arm.com>
5811
5812         * tree-if-conv.c (tree-ssa-loop.h): Include header file.
5813         (tree-ssa-loop-niter.h): Ditto.
5814         (idx_within_array_bound, ref_within_array_bound): New functions.
5815         (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
5816         Factor out check on writable base object to ...
5817         (base_object_writable): ... here.
5818
5819 2016-05-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5820
5821         * config/arm/arm.md (probe_stack): Add modes to set source
5822         and destination.
5823
5824 2016-05-09  Bernd Schmidt  <bschmidt@redhat.com>
5825
5826         * regrename.c (base_reg_class_for_rename): New static function.
5827         (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
5828
5829 2016-05-08  Jan Hubicka  <hubicka@ucw.cz>
5830
5831         * cgraph.c (thunk_adjust): Export.
5832         * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
5833         * cgraphunit.c (thunk_adjust): Export.
5834         (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
5835         thunks.
5836         * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
5837         inlinable.
5838         * tree-inline.c (expand_call_inline): Expand thunks inline.
5839
5840 2016-05-08  Uros Bizjak  <ubizjak@gmail.com>
5841
5842         PR target/70998
5843         * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
5844         (*sse2_vd_cvtss2sd): Ditto.
5845         * config/i386/i386.md
5846         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
5847         Generate *sse2_vd_cvtsd2ss pattern.
5848         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
5849         Generate *sse2_vd_cvtss2sd pattern.
5850
5851 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
5852
5853         * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
5854         * config/sh/sh.c (get_sh_arg_class): ... this new function.  Update its
5855         users.
5856
5857 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
5858
5859         * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
5860         * config/sh/sh.c: Define and declare variables on first use throughout
5861         the file.
5862         (current_function_interrupt): Change to bool type.
5863         (frame_insn): Rename to emit_frame_insn and update users.
5864         (push_regs): Use bool for 'interrupt_handler' argument.
5865         (save_schedule_s): Remove.
5866         (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
5867         (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
5868         targetm.asm_out.unaligned_op.di.
5869         (gen_far_branch): Remove redundant forward declaration.
5870         (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
5871         MAX_TEMPS, save_schedule_ssave_schedule): Remove.
5872         (sh_set_return_address, sh_function_ok_for_sibcall,
5873         scavenge_reg): Update comments.
5874         (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
5875         (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
5876         (sh_attr_renesas_p): Remove unnecessary parentheses.
5877         (branch_dest): Simplify.
5878         * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
5879         Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
5880         (CUMULATIVE_ARGS): Change macro to typedef.
5881         (current_function_interrupt): Change to bool type.
5882         (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
5883         Surround with __cplusplus ifdef.
5884         (sh_compare_op0, sh_compare_op1): Remove.
5885         (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
5886
5887 2016-05-07  Jim Wilson  <jim.wilson@linaro.org>
5888
5889         * config/arm/arm.md: (arch): Add neon.
5890         (arch_enabled): Return yes for arch neon when TARGET_NEON.
5891         * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3.  Add
5892         neon_move as type for alt 3.  Add arch attr enabling alt 3 for neon.
5893         Emit vmov.i64 for alt 3.  Renumber alternatives 3 to 8.  Adjust
5894         attributes for alt renumbering.  Mark alt 3 as non-predicable.
5895         (thumb2_movdf_vfp): Likewise.
5896
5897 2016-05-07  Uros Bizjak  <ubizjak@gmail.com>
5898
5899         * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
5900         to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
5901         (*andqi_1): Add preferred_for_speed attribute to disparage
5902         alternative 2 for TARGET_PARTIAL_REG_STALL targets.
5903         (*<code>qi_1): Ditto.
5904         (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
5905         alternative 1 for TARGET_PARTIAL_REG_STALL targets.
5906         (*ashlqi3_1): Ditto.
5907         (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
5908         Add preferred_for_size attribute to disparage alternative 0 and
5909         preferred_for_speed attribute to disparage alternative 1 for
5910         TARGET_PARTIAL_REG_STALL targets.
5911
5912 2016-05-07  Tom de Vries  <tom@codesourcery.com>
5913
5914         PR tree-optimization/70956
5915         * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
5916         def.
5917
5918 2016-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
5919
5920         * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
5921         * config/sh/sh.c (sh_cbranch_distance): Implement it.
5922         * config/sh/sh.md (branch_zero): Remove define_attr.
5923         (define_delay): Disable delay slot if branch distance is one insn.
5924
5925 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
5926
5927         * config/i386/i386.md (LEAMODE): New mode attribute.
5928         (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
5929         (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
5930         and LEAMODE mode attribute.  Use VOIDmode const_0_to_3_operand as
5931         operand 2 predicate.
5932         (*lea<mode>_general_2): Use VOIDmode for const248_operand.
5933         (*lea<mode>_general_3): Ditto.
5934         (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
5935
5936 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
5937
5938         * genmddump.c (main): Convert argv from char ** to const char **.
5939
5940 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
5941
5942         * coretypes.h (OVERRIDE): New macro.
5943         (FINAL): New macro.
5944
5945 2016-05-06  Eric Botcazou  <ebotcazou@adacore.com>
5946
5947         * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
5948         allow coalescing if the types are compatible.
5949
5950 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
5951
5952         * pass_manager.h (pass_manager::register_pass_name): New method.
5953         (pass_manager::get_pass_by_name): New method.
5954         (pass_manager::create_pass_tab): New method.
5955         (pass_manager::m_name_to_pass_map): New field.
5956         * passes.c (name_to_pass_map): Delete global in favor of field
5957         "m_name_to_pass_map" of pass_manager.
5958         (register_pass_name): Rename from a function to...
5959         (pass_manager::register_pass_name): ...this method, updating
5960         for renaming of global "name_to_pass_map" to field
5961         "m_name_to_pass_map".
5962         (create_pass_tab): Rename from a function to...
5963         (pass_manager::create_pass_tab): ...this method, updating
5964         for renaming of global "name_to_pass_map" to field.
5965         (get_pass_by_name): Rename from a function to...
5966         (pass_manager::get_pass_by_name): ...this method.
5967         (enable_disable_pass): Convert use of get_pass_by_name to
5968         a method call, locating the pass_manager singleton.
5969
5970 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
5971
5972         * genattr-common.c (main): Convert argv from char ** to const char **.
5973         * genattr.c (main): Likewise.
5974         * genattrtab.c (main): Likewise.
5975         * genautomata.c (initiate_automaton_gen): Likewise.
5976         (main): Likewise.
5977         * gencodes.c (main): Likewise.
5978         * genconditions.c (main): Likewise.
5979         * genconfig.c (main): Likewise.
5980         * genconstants.c (main): Likewise.
5981         * genemit.c (main): Likewise.
5982         * genenums.c (main): Likewise.
5983         * genextract.c (main): Likewise.
5984         * genflags.c (main): Likewise.
5985         * genmddeps.c (main): Likewise.
5986         * genopinit.c (main): Likewise.
5987         * genoutput.c (main): Likewise.
5988         * genpeep.c (main): Likewise.
5989         * genpreds.c (main): Likewise.
5990         * genrecog.c (main): Likewise.
5991         * gensupport.c (init_rtx_reader_args_cb): Likewise.
5992         (init_rtx_reader_args): Likewise.
5993         * gensupport.h (init_rtx_reader_args_cb): Likewise.
5994         (init_rtx_reader_args): Likewise.
5995         * gentarget-def.c (main): Likewise.
5996         * read-md.c (read_md_files): Likewise.
5997         * read-md.h (read_md_files): Likewise.
5998
5999 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
6000
6001         * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
6002         instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
6003         * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
6004         Remove unused predicate.
6005         (register_and_not_fp_reg_operand): Ditto.
6006
6007 2016-05-06  Martin Liska  <mliska@suse.cz>
6008
6009         * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
6010         instead of vec as the vector is local to the function.
6011
6012 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
6013
6014         * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
6015         avx512bw alternative.
6016
6017         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
6018         before the ashr<mode>3 pattern.
6019
6020         * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
6021         v instead of x in vex or maybe_vex alternatives, use
6022         maybe_evex instead of vex in prefix.
6023
6024         * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
6025         *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
6026         vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
6027         in vex or maybe_vex alternatives, use maybe_evex instead of vex
6028         in prefix.
6029
6030         * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
6031         v instead of x in vex or maybe_vex alternatives, use
6032         maybe_evex instead of vex in prefix.
6033
6034         * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
6035         sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
6036         sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
6037         sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
6038         alternatives, use maybe_evex instead of vex in prefix.
6039
6040         * config/i386/sse.md (vec_interleave_lowv4sf,
6041         *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
6042         v instead of x in vex or maybe_vex alternatives, use
6043         maybe_evex instead of vex in prefix.
6044
6045         * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
6046         v instead of x in vex or maybe_vex alternatives, use
6047         maybe_evex instead of vex in prefix.
6048
6049         * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
6050         v constraint instead of x.
6051
6052 2016-05-06  Nathan Sidwell  <nathan@codesourcery.com>
6053
6054         * gimple.c (gimple_call_same_target_p): Unique functions are eq.
6055         * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
6056         equality first.
6057
6058 2016-05-06  Richard Biener  <rguenther@suse.de>
6059
6060         PR tree-optimization/70948
6061         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
6062         Properly clobber all fields of va_list for __builtin_va_start.
6063
6064 2016-05-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
6065
6066         PR debug/70935
6067         * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
6068         loop latch destination.
6069
6070 2016-05-06  Martin Liska  <mliska@suse.cz>
6071
6072         * tree-ssa-uninit.c: Apply manual changes
6073         to the GNU coding style.
6074         (prune_uninit_phi_opnds): Rename from
6075         prune_uninit_phi_opnds_in_unrealizable_paths.
6076
6077 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
6078
6079         * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
6080         mspace): Remove deprecated options.
6081         * doc/invoke.texi (SH options): Remove -mspace.
6082
6083 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
6084
6085         * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
6086
6087 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
6088
6089         * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
6090         corresponding combine split pattern.
6091
6092 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
6093
6094         PR target/58219
6095         * config/sh/predicates.md (long_displacement_mem_operand): New.
6096         * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
6097         Add movi20, movi20s alternatives.  Adjust length attribute for
6098         alternatives.
6099         (movsi_ie): Allow for any FPU.  Adjust length attribute for
6100         alternatives.
6101         (movsi_i_lowpart): Add movi20, movi20s alternatives.  Adjust length
6102         attribute for alternatives.
6103         (*mov<mode>): Use long_displacement_mem_operand for length attribute.
6104         (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
6105         length attribute for alternatives.
6106
6107 2016-05-06  Richard Biener  <rguenther@suse.de>
6108
6109         PR tree-optimization/70960
6110         * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
6111
6112 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
6113
6114         PR target/52933
6115         * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
6116         * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
6117
6118 2016-05-06  Marek Polacek  <polacek@redhat.com>
6119
6120         PR sanitizer/70875
6121         * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
6122
6123 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
6124
6125         PR target/54089
6126         * config/sh/sh.md (*rotcr): Add another variant.
6127
6128 2016-05-06  Richard Biener  <rguenther@suse.de>
6129
6130         PR middle-end/70931
6131         * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
6132
6133 2016-05-06  Richard Biener  <rguenther@suse.de>
6134
6135         PR middle-end/70941
6136         * fold-const.c (split_tree): Always convert to the original type
6137         before negating.
6138
6139 2016-05-06  Richard Biener  <rguenther@suse.de>
6140
6141         * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
6142         (fwprop_addr): Likewise.
6143
6144 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
6145
6146         PR target/70873
6147         * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
6148         New prototype.
6149         * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
6150         * config/i386/i386.md (push mem splitter): Use find_constant_src in
6151         the splitter condition.
6152         (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
6153         the splitter condition.
6154         (FP float_extend load splitter): Ditto.
6155
6156 2016-05-05  Uros Bizjak  <ubizjak@gmail.com>
6157
6158         * config/i386/i386.md (peehole2 patterns): Change true_regnum
6159         to REGNO in all peephole2 patterns.
6160         (post-reload splitters): Change true_regnum to REGNO in
6161         post-reload splitters.
6162         (zero_extend splitters): Use general_reg_operand and
6163         nonimmediate_gr_operand predicates.
6164
6165 2016-05-05  Jakub Jelinek  <jakub@redhat.com>
6166
6167         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
6168         v constraint instead of x.
6169
6170 2016-05-05  Alan Modra  <amodra@gmail.com>
6171
6172         PR target/68662
6173         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
6174         set OPTION_MASK_RELOCATABLE when flag_pic == 2.  Set
6175         TARGET_NO_FP_IN_TOC for -mrelocatable.
6176         (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
6177         TARGET_RELOCATABLE test.
6178         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
6179         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
6180         * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
6181         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
6182         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
6183         * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
6184         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
6185         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
6186         * config/rs6000/predicates.md (easy_fp_constant): Likewise.
6187         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
6188         Likewise.
6189         (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
6190         (rs6000_stack_info): Likewise.
6191         (rs6000_elf_asm_out_constructor): Likewise.
6192         (rs6000_elf_asm_out_destructor): Likewise.
6193         (rs6000_elf_declare_function_name): Likewise.
6194         * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
6195         * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
6196         Don't define.
6197
6198 2016-05-05  Alan Modra  <amodra@gmail.com>
6199
6200         * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
6201
6202 2016-05-05  Alan Modra  <amodra@gmail.com>
6203
6204         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
6205         out-of-line gpr restore for one or two regs if that would add
6206         a save of lr.
6207
6208 2016-05-04  Uros Bizjak  <ubizjak@gmail.com>
6209
6210         PR target/70873
6211         * config/i386/i386.md
6212         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
6213         Change to post-epilogue_completed late splitter.  Use sse_reg_operand
6214         as operand 0 predicate.
6215         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
6216         Ditto.
6217         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
6218         Ditto.  Emit the pattern using RTX.
6219
6220         (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
6221         Use sse_reg_opreand as operand 0 predicate.  Do not use true_regnum in
6222         the post-reload splitter.  Use lowpart_subreg instead of gen_rtx_REG.
6223         (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
6224         Ditto.
6225         (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
6226         sse_reg_operand as operand 0 predicate.
6227
6228         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
6229         Use sse_reg_opreand as operand 0 predicate.  Use lowpart_subreg
6230         instead of gen_rtx_REG.
6231         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
6232         Ditto.
6233
6234 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
6235
6236         * function.c (emit_use_return_register_into_block): Delete.
6237         (gen_return_pattern): Delete.
6238         (emit_return_into_block): Delete.
6239         (active_insn_between): Delete.
6240         (convert_jumps_to_returns): Delete.
6241         (emit_return_for_exit): Delete.
6242         (thread_prologue_and_epilogue_insns): Delete all code dealing with
6243         simple_return for shrink-wrapped blocks.
6244         * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
6245         end of blocks that need one.
6246         (get_unconverted_simple_return): Delete.
6247         (convert_to_simple_return): Delete.
6248         * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
6249         (convert_to_simple_return): Ditto.
6250
6251 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
6252
6253         * cfgcleanup.c (bb_is_just_return): New function.
6254         (try_optimize_cfg): Simplify jumps to return, branches to return,
6255         and branches around return.
6256
6257 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
6258
6259         * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
6260         branch to a return.
6261
6262 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
6263
6264         PR c++/70906
6265         PR c++/70933
6266         * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
6267         * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
6268         assert flags & OEP_HASH_CHECK, instead of asserting it
6269         never happens.  Handle TARGET_EXPR.
6270         * fold-const.c (operand_equal_p): For hash verification,
6271         or in OEP_HASH_CHECK into flags.
6272
6273 2016-05-04  Eric Botcazou  <ebotcazou@adacore.com>
6274
6275         * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
6276         comment.
6277         (compute_samebase_partition_bases): Fix typo.
6278
6279 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
6280
6281         * config/i386/sse.md (vec_interleave_highv8sf,
6282         vec_interleave_lowv8sf, vec_interleave_highv4df,
6283         vec_interleave_lowv4df): Remove constraints from expanders.
6284
6285         * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
6286
6287 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
6288
6289         * tree-inline.c (expand_call_inline): Fix path dealing with
6290         making lhs of call statement undefined.
6291
6292 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
6293
6294         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
6295         Check availability on NODE, too.
6296         * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
6297         (cgraph_node::call_for_symbol_and_aliases): Likewise.
6298         (varpool_node::call_for_symbol_and_aliase): Likewise.
6299         * ipa-pure-const.c (add_new_function): Analyze all bodies.
6300         (propagate_pure_const): Propagate across interposable functions, too.
6301         (skip_function_for_local_pure_const): Do not skip interposable bodies
6302         with aliases.
6303         (pass_local_pure_const::execute): Update.
6304
6305 2016-05-04  Marek Polacek  <polacek@redhat.com>
6306
6307         * doc/invoke.texi: Document -Wdangling-else.
6308
6309 2016-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
6310
6311         * config.gcc: Error out when conflicting multilib is detected.  Do not
6312         loop over multilibs since no combination is legal.
6313
6314 2016-05-04  Alan Modra  <amodra@gmail.com>
6315
6316         * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
6317         * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
6318         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
6319         Align .toc.
6320
6321 2016-05-04  Matthew Fortune  <matthew.fortune@imgtec.com>
6322
6323         * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
6324         Clean up p5600 comments.
6325
6326 2016-05-04  Richard Biener  <rguenther@suse.de>
6327
6328         * match.pd: Add BIT_FIELD_REF canonicalizations and vector
6329         constructor simplifications.
6330         * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
6331
6332 2016-05-04  Oleg Endo  <olegendo@gcc.gnu.org>
6333
6334         * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
6335         * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
6336         result.set_rtx is null instead of aborting.
6337         * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
6338         Always enable.
6339         (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
6340         * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
6341         *mov<mode>_store_postinc): New patterns.
6342
6343 2016-05-04  Marc Glisse  <marc.glisse@inria.fr>
6344
6345         * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR.  Mark
6346         as commutative.  Check both conversions are NOP.
6347         ((A & B) OP (C & B)): Remove.
6348
6349 2016-05-04  Alan Modra  <amodra@gmail.com>
6350
6351         * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
6352
6353 2016-05-04  Alan Modra  <amodra@gmail.com>
6354
6355         PR target/70866
6356         * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
6357         when cr2,3,4 are all fixed regs.
6358
6359 2016-05-04  Bernd Schmidt  <bschmidt@redhat.com>
6360
6361         PR rtl-optimization/57193
6362         * opts.c (default_options_table): Revert OPT_frename_registers change.
6363         * doc/invoke.texi (-frename-registers, -O2): Likewise.
6364
6365 2016-05-03  Martin Sebor  <msebor@redhat.com>
6366
6367         PR c++/66561
6368         * builtins.c (fold_builtin_FILE): New function.
6369         (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
6370         (fold_builtin_0): Call them.
6371         * gimplify.c (gimplify_call_expr): Remove the handling of
6372         BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
6373
6374         PR c++/66561
6375         * doc/extend.texi (Other Builtins): Update __builtin_FILE,
6376         __builtin_FUNCTION, and __builtin_LINE to reflect they yield
6377         constants.
6378
6379         PR c++/66639
6380         * doc/extend.texi (Function Names as Strings): Update __func__,
6381         __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
6382         constants.
6383
6384 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
6385             Richard Biener  <rguenther@suse.de>
6386
6387         PR tree-optimization/70916
6388         * tree-if-conv.c: Include cfganal.h.
6389         (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
6390         and remove_fake_exit_edges around the optimization pass.
6391
6392 2016-05-03  Jan Hubicka  <hubicka@ucw.cz>
6393
6394         * cgraph.c (symbol_table::create_edge): Set inline_failed.
6395         (cgraph_edge::make_direct): Likewise.
6396         (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
6397         * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
6398         * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
6399         (CIF_THUNK): New code.
6400         * ipa-inline-analysis.c (initialize_inline_failed): Preserve
6401         CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
6402         (compute_inline_parameters): Set inline_failed for thunks.
6403         (inline_analyze_function): Cleanup.
6404         * ipa-inline.c (can_inline_edge_p): Do not deal with
6405         call_stmt_cannot_inline_p.
6406         (can_early_inline_edge_p): Likewise.
6407         (early_inliner): Initialize inline_failed.
6408         * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
6409
6410 2016-05-03  Uros Bizjak  <ubizjak@gmail.com>
6411
6412         * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
6413         from nonimm_ssenomem_operand.
6414         (nonimm_ssenomem_operand): New predicate.
6415         * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
6416         as operand 0 predicate.
6417         (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
6418         Disable unsupported alternatives using "enabled" attribute.
6419         Use register_ssemem_operand as operand 0 predicate.
6420         (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
6421
6422 2016-05-03  Marek Polacek  <polacek@redhat.com>
6423
6424         PR c/70859
6425         * input.c (expansion_point_location): New function.
6426         * input.h (expansion_point_location): Declare.
6427
6428 2016-05-03  Pierre-Marie de Rodat  <derodat@adacore.com>
6429
6430         * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
6431         occurence with frame_offset_ ones.
6432
6433 2016-05-03  Alan Modra  <amodra@gmail.com>
6434
6435         PR rtl-optimization/70890
6436         * ira.c (combine_and_move_insns): When moving def_insn, remove
6437         equivs on use_insn.
6438
6439 2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
6440
6441         * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
6442         ("*r<noxa>sbg_<mode>_srl"): New define_insns.
6443         ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
6444         ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
6445
6446 2016-05-03  Alan Modra  <amodra@gmail.com>
6447
6448         * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
6449         for SAVE_MULTIPLE/STORE_MULTIPLE.
6450
6451 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
6452
6453         * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
6454         *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
6455
6456 2016-05-03  Richard Biener  <rguenther@suse.de>
6457
6458         * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
6459         default true.
6460         (gimplify_arg): Likewise.
6461         * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
6462         re-writing the result to a decl if required.
6463         (internal_get_tmp_var): Add allow_ssa parameter
6464         and override into_ssa with it.
6465         (get_formal_tmp_var): Adjust.
6466         (get_initialized_tmp_var): Add allow_ssa parameter.
6467         (gimplify_arg): Add allow_ssa parameter and avoid generating
6468         SSA names for the result false.
6469         (gimplify_call_expr): If the call may return twice do not
6470         gimplify parameters into SSA.
6471         (prepare_gimple_addressable): Do not allow an SSA name as temporary.
6472         (gimplify_modify_expr): Adjust assert.  For noreturn calls
6473         with a SSA name LHS adjust its def.
6474         (gimplify_save_expr): Do not allow an SSA name as save-expr result.
6475         (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
6476         (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
6477         (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
6478         an SSA name.  Likewise for OMP_CLAUSE_REDUCTION operands.
6479         (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL.  Likewise
6480         for OMP_FOR_COND,  OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
6481         (optimize_target_teams): Do not allow SSA names for clause operands.
6482         (gimplify_expr): Likewise for where we mark the result addressable.
6483         * passes.def (pass_init_datastructures): Remove.
6484         * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
6485         (rewrite_stmt): Likewise.
6486         * tree-inline.c (initialize_cfun): Properly transfer SSA state.
6487         (replace_locals_op): Replace SSA names.
6488         (copy_gimple_seq_and_replace_locals): Init src_cfun.
6489         * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
6490         * cgraph.c (release_function_body): Free CFG annotations only
6491         when we have a CFG.  Simplify.
6492         * gimple-fold.c (gimplify_and_update_call_from_tree): Use
6493         force_gimple_operand instead of get_initialized_tmp_var.
6494         * tree-pass.h (make_pass_init_datastructures): Remove.
6495         * tree-ssa.c (execute_init_datastructures): Remove.
6496         (pass_data_init_datastructures): Likewise.
6497         (class pass_init_datastructures): Likewise.
6498         (make_pass_init_datastructures): Likewise.
6499         * omp-low.c (create_omp_child_function): Init SSA data structures.
6500         (grid_expand_target_grid_body): Likewise.
6501         * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
6502         name before adding it to names_to_release.
6503         (remove_bb): Always release SSA defs.
6504         * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
6505         before dereferencing it.
6506         * cgraphunit.c (init_lowered_empty_function): Always
6507         int SSA data structures.
6508         * tree-ssanames.c (release_defs): Remove assert that we are in
6509         SSA form.
6510         * trans-mem.c (diagnose_tm_1): Handle SSA name function.
6511
6512 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
6513             Uros Bizjak  <ubizjak@gmail.com>
6514
6515         PR rtl-optimization/70467
6516         * config/i386/predicates.md (x86_64_hilo_int_operand,
6517         x86_64_hilo_general_operand): New predicates.
6518         * config/i386/constraints.md (Wd): New constraint.
6519         * config/i386/i386.md (mode attr di): Use Wd instead of e.
6520         (general_hilo_operand): New mode attr.
6521         (add<mode>3, sub<mode>3): Use <general_hilo_operand>
6522         instead of <general_operand>.
6523         (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
6524         x86_64_hilo_general_operand instead of <general_operand>.
6525
6526 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
6527
6528         PR tree-optimization/70916
6529         * tree-if-conv.c (constant_or_ssa_name): Removed.
6530         (fold_build_cond_expr): Use is_gimple_val instead of
6531         constant_or_ssa_name.
6532
6533         PR tree-optimization/70916
6534         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
6535         if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
6536
6537         PR target/49244
6538         * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
6539         (optimize_atomic_bit_test_and): New function.
6540         (pass_fold_builtins::execute): Use it.
6541         * optabs.def (atomic_bit_test_and_set_optab,
6542         atomic_bit_test_and_complement_optab,
6543         atomic_bit_test_and_reset_optab): New optabs.
6544         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
6545         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
6546         * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
6547         * builtins.c (expand_ifn_atomic_bit_test_and): New function.
6548         * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
6549         expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
6550         expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
6551         * doc/md.texi (atomic_bit_test_and_set@var{mode},
6552         atomic_bit_test_and_complement@var{mode},
6553         atomic_bit_test_and_reset@var{mode}): Document.
6554         * config/i386/sync.md (atomic_bit_test_and_set<mode>,
6555         atomic_bit_test_and_complement<mode>,
6556         atomic_bit_test_and_reset<mode>): New expanders.
6557         (atomic_bit_test_and_set<mode>_1,
6558         atomic_bit_test_and_complement<mode>_1,
6559         atomic_bit_test_and_reset<mode>_1): New insns.
6560
6561 2016-05-03  Richard Sandiford  <richard.sandiford@arm.com>
6562
6563         PR rtl-optimization/70687
6564         * combine.c (change_zero_ext): Check for scalar modes.  Use wide_int
6565         instead of unsigned HOST_WIDE_INT.
6566
6567 2016-05-03  Bernd Schmidt  <bschmidt@redhat.com>
6568
6569         PR rtl-optimization/44281
6570         * hard-reg-set.h (struct target_hard_regs): New field
6571         x_fixed_nonglobal_reg_set.
6572         (fixed_nonglobal_reg_set): New macro.
6573         * reginfo.c (init_reg_sets_1): Initialize it.
6574         * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
6575         of fixed_reg_set.
6576         * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
6577
6578 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
6579
6580         PR tree-optimization/56541
6581         * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
6582         * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
6583         * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
6584         (any_complicated_phi): new static variable.
6585         (aggressive_if_conv): delete.
6586         (if_convertible_phi_p): support phis with more than two arguments.
6587         (if_convertible_bb_p): remvoe check on aggressive_if_conv and
6588         critical pred edges.
6589         (ifcvt_split_critical_edges): support phis with more than two
6590         arguments by checking new parameter.  only split critical edges
6591         if needed.
6592         (tree_if_conversion): handle simd pragma marked loop using new
6593         local variable aggressive_if_conv.  check any_complicated_phi.
6594
6595 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
6596
6597         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
6598         before using it.
6599
6600 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
6601
6602         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
6603         cbase.
6604
6605 2016-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
6606
6607         * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
6608         (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
6609         define_insn_and_split.
6610         (mulsi3_i): New define_insn_and_split.
6611         (mulsi3_call): Convert to define_insn.
6612         (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
6613         Remove constraints.
6614
6615 2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
6616
6617         * machmode.h (mode_complex): Add support to give the complex mode
6618         for a given mode.
6619         (GET_MODE_COMPLEX_MODE): Likewise.
6620         * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
6621         stored by build_complex_type and gfc_build_complex_type instead of
6622         trying to figure out the appropriate mode based on the size. Raise
6623         an assertion error, if the type was not set.
6624         * genmodes.c (struct mode_data): Add field for the complex type of
6625         the given type.
6626         (blank_mode): Likewise.
6627         (make_complex_modes): Remember the complex mode created in the
6628         base type.
6629         (emit_mode_complex): Write out the mode_complex array to map a
6630         type mode to the complex version.
6631         (emit_insn_modes_c): Likewise.
6632         * tree.c (build_complex_type): Set the complex type to use before
6633         calling layout_type.
6634         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
6635         support for __float128 complex datatypes.
6636         (rs6000_hard_regno_mode_ok): Likewise.
6637         (rs6000_setup_reg_addr_masks): Likewise.
6638         (rs6000_complex_function_value): Likewise.
6639         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
6640         __float128 and __ibm128 complex.
6641         (FLOAT128_IBM_P): Likewise.
6642         (ALTIVEC_ARG_MAX_RETURN): Likewise.
6643         * doc/extend.texi (Additional Floating Types): Document that
6644         -mfloat128 must be used to enable __float128.  Document complex
6645         __float128 and __ibm128 support.
6646
6647 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
6648
6649         PR target/49244
6650         * gimple.c (gimple_builtin_call_types_compatible_p): Allow
6651         char/short arguments promoted to int because of promote_prototypes.
6652
6653 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
6654
6655         * config/i386/predicates.md (register_ssemem_operand): New predicate.
6656         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
6657         *cmpi<FPCMP:unord><MODEF:mode>_mixed and
6658         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.  Disable unsupported
6659         alternatives using "enabled" attribute.  Use register_ssemem_operand
6660         as operand 1 predicate.
6661         (*cmpi<unord>xf_i387): Split XFmode pattern from
6662         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
6663         (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
6664         *absneg<mode>2_i387.  Disable unsupported alternatives using
6665         "enabled" attribute.
6666         (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
6667
6668 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
6669
6670         * omp-low.c (lower_oacc_head_tail): Assert there is at least one
6671         marker.
6672         (oacc_loop_process): Check mask for loop termination.
6673
6674 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
6675
6676         * cif-code.def (CIF_THUNK): Add.
6677         * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
6678         accidental change.
6679
6680 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
6681
6682         * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
6683         (dump_inline_summary): Dump it.
6684         (fp_expression_p): New predicate.
6685         (estimate_function_body_sizes): Use it.
6686         (inline_merge_summary): Merge fp_expressions.
6687         (inline_read_section): Read fp_expressions.
6688         (inline_write_summary): Write fp_expressions.
6689         * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
6690         codegen boundary if either caller or callee is !fp_expressions.
6691         * ipa-inline.h (inline_summary): Add fp_expressions.
6692         * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
6693         to fp_expressions be sure the fp generation flags are updated.
6694
6695 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
6696
6697         PR rtl-optimization/70467
6698         * cse.c (cse_insn): Handle no-op MEM moves after folding.
6699
6700         PR rtl-optimization/70467
6701         * ipa-pure-const.c (check_call): Handle internal calls even in
6702         ipa mode like in local mode.
6703
6704 2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6705
6706         * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
6707
6708 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
6709
6710         * match.pd (X u< X, X u> X): New transformations.
6711
6712 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
6713
6714         * flag-types.h (enum warn_strict_overflow_code): Move ...
6715         * coretypes.h: ... here.
6716         * fold-const.h (fold_overflow_warning): Declare.
6717         * fold-const.c (fold_overflow_warning): Make non-static.
6718         (fold_comparison): Move the transformation of X +- C1 CMP C2
6719         into X CMP C2 -+ C1 ...
6720         * match.pd: ... here.
6721         * gimple-fold.c (fold_stmt_1): Protect with
6722         fold_defer_overflow_warnings.
6723
6724 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
6725
6726         * omp-low.c (struct oacc_loop): Add 'inner' field.
6727         (new_oacc_loop_raw): Initialize it to zero.
6728         (oacc_loop_fixed_partitions): Initialize it.
6729         (oacc_loop_auto_partitions): Partition outermost loop to outermost
6730         available partitioning.
6731
6732 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
6733
6734         * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
6735         register_operand.
6736         (umulsidi3): Likewise.
6737         (indirect_jump): Fix jump instruction assembly patterns.
6738
6739 2016-05-02  Thomas Schwinge  <thomas@codesourcery.com>
6740
6741         PR target/70860
6742         * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
6743         (nvptx_function_value): Assert non-NULL cfun.
6744
6745 2016-05-02  Eric Botcazou  <ebotcazou@adacore.com>
6746
6747         PR rtl-optimization/70886
6748         * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
6749
6750         * cselib.h (rtx_equal_for_cselib_1): Declare.
6751         (rtx_equal_for_cselib_p: New inline function.
6752         * cselib.c (rtx_equal_for_cselib_p): Delete.
6753         (rtx_equal_for_cselib_1): Make public.
6754
6755 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
6756
6757         * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
6758         (register_mixssei387nonimm_operand): Remove predicate.
6759         * config/i386/i386.md (*fop_<mode>_comm): Merge from
6760         *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387.  Disable unsupported
6761         alternatives using "enabled" attribute.  Also check X87_ENABLE_ARITH
6762         for TARGET_MIX_SSE_I387 alternatives.
6763         (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
6764         Disable unsupported alternatives using "enabled" attribute.  Use
6765         nonimm_ssenomem_operand as operand 1 predicate.  Also check
6766         X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
6767
6768 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
6769
6770         * tree.c (cst_and_fits_in_hwi): Simplify.
6771
6772 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
6773
6774         * tree.h (wi::to_wide): New function.
6775         * expr.c (expand_expr_real_1): Use wi::to_wide.
6776         * fold-const.c (int_const_binop_1): Likewise.
6777         (extract_muldiv_1): Likewise.
6778
6779 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
6780
6781         * wide-int.h: Update offset_int and widest_int documentation.
6782         (WI_SIGNED_SHIFT_RESULT): New macro.
6783         (wi::binary_shift): Define signed_shift_result_type for
6784         shifts on offset_int- and widest_int-like types.
6785         (generic_wide_int): Support <<= and >>= if << and >> are supported.
6786         * tree.h (int_bit_position): Use shift operators instead of wi::
6787          shifts.
6788         * alias.c (adjust_offset_for_component_ref): Likewise.
6789         * expr.c (get_inner_reference): Likewise.
6790         * fold-const.c (fold_comparison): Likewise.
6791         * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
6792         * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
6793         * tree-dfa.c (get_ref_base_and_extent): Likewise.
6794         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
6795         (stmt_kills_ref_p): Likewise.
6796         * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
6797         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
6798         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
6799         (ao_ref_init_from_vn_reference): Likewise.
6800
6801 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
6802
6803         * wide-int.h: Update offset_int and widest_int documentation.
6804         (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
6805         (wi::binary_traits): Allow ordered comparisons between offset_int and
6806         offset_int, between widest_int and widest_int, and between either
6807         of these types and basic C types.
6808         (operator <, <=, >, >=): Define for the same combinations.
6809         * tree.h (tree_int_cst_lt): Use comparison operators instead
6810         of wi:: comparisons.
6811         (tree_int_cst_le): Likewise.
6812         * gimple-fold.c (fold_array_ctor_reference): Likewise.
6813         (fold_nonarray_ctor_reference): Likewise.
6814         * gimple-ssa-strength-reduction.c (record_increment): Likewise.
6815         * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
6816         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
6817         * tree-sra.c (completely_scalarize): Likewise.
6818         * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
6819         * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
6820         * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
6821         (check_for_binary_op_overflow): Likewise.
6822         (search_for_addr_array): Likewise.
6823         * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
6824
6825 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
6826
6827         * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
6828         (arc_save_restore): Likewise.
6829         (arc_dwarf_register_span): Likewise.
6830         (arc_output_pic_addr_const): Initialize suffix variable.
6831
6832 2016-05-02  Martin Liska  <mliska@suse.cz>
6833
6834         * symbol-summary.h (function_summary::function_summary):
6835         Remove checking assert for all cgraph nodes.
6836         (function_summary::get): Check summary_uid.
6837         (symtab_insertion): Check summary_uid.
6838
6839 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
6840
6841         * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
6842         * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
6843         bmaskn instruction.
6844         (arc_dwarf_register_span): Remove enum keyword.
6845         (compact_memory_operand_p): New function.
6846         * config/arc/arc.h (reg_class): Add code density register classes.
6847         (REG_CLASS_NAMES): Likewise.
6848         (REG_CLASS_CONTENTS): Likewise.
6849         * config/arc/arc.md (*movqi_insn): Add code density instructions.
6850         (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
6851         (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
6852         (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
6853         * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
6854         constraints.
6855         (h, Rcd, Rsd, Rzd): New register constraints.
6856         (T): Use compact_memory_operand_p function.
6857         * config/arc/predicates.md (compact_load_memory_operand): Remove.
6858
6859 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
6860
6861         * config/sh/sh.md (*negnegt, *movtt): Remove.
6862
6863 2016-05-02  Marek Polacek  <polacek@redhat.com>
6864             Tom de Vries  <tom@codesourcery.com>
6865
6866         PR tree-optimization/70700
6867         * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
6868         bigger than FIRST_REF_NODE.
6869
6870 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
6871
6872         PR target/52898
6873         * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
6874         TARGET_CMPEQDI_T.
6875         (prepare_cbranch_operands): Don't use scratch register.  Assume that
6876         function is used when pseudos can be created.
6877         (expand_cbranchdi4): Likewise.  Remove unused TARGET_CMPEQDI_T paths.
6878         * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
6879         (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
6880         define_expand.  Allow it only when pseudos can be created.
6881         * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
6882
6883 2016-05-01  Uros Bizjak  <ubizjak@gmail.com>
6884
6885         * config/i386/constraints.md (BC): Only allow -1 operands.
6886         * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
6887         Add "enabled" attribute.  Update XI mode attribute calculation.
6888         * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
6889         (*movoi_internal_avx): Update XI mode attribute calculation.
6890         (*movti_internal): Ditto.
6891
6892 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
6893
6894         * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
6895         cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
6896
6897 2016-05-01  Eric Botcazou  <ebotcazou@adacore.com>
6898
6899         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
6900         statement on instruction code.  Remove trailing spaces.
6901         (altivec_expand_stv_builtin): Likewise.
6902
6903 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
6904
6905         * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
6906         (TARGET_FPU_DOUBLE): Simplify.
6907         (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
6908         'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
6909         * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
6910         with 'TARGET_FPU_DOUBLE'.
6911         * config/sh/sh.md: Likewise.
6912
6913 2016-05-01  Yoshinori Sato  <ysato@users.sourceforge.jp>
6914
6915         * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
6916         SH_DIV_STR_FOR_SIZE): Remove.
6917         * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
6918         SH_DIV_STR_FOR_SIZE): Remove.
6919
6920 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
6921
6922         * config/sh/predicates.md (any_register_operand, zero_extend_operand,
6923         logical_reg_operand): Delete.
6924         (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
6925         arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
6926         logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
6927         match_operand and match_test.
6928         (sh_const_vec, sh_1el_vec): Remove redundant checks.  Declare local
6929         variables on their first use.  Return bool values.
6930         * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
6931         * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
6932         arith_reg_operand for input operand.  Remove empty constraints.
6933         (xorsi3): Delete.
6934         (*xorsi3_compact): Rename to xorsi3.
6935         (zero_extend<mode>si2): Use arith_reg_operand for input operand.
6936         (*zero_extend<mode>si2_disp_mem): Update comment.
6937         (mov_nop): Delete.
6938
6939 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
6940
6941         * config/sh/t-sh: Remove SH5 support.
6942         * config.gcc: Likewise.
6943         * configure: Likewise.
6944
6945 2016-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6946
6947         * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
6948
6949 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
6950
6951         * config/sh/sh.c (register_sh_passes, sh_option_override,
6952         sh_print_operand, prepare_move_operands,
6953         sh_can_follow_jump): Remove TARGET_SH1 checks.
6954         * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
6955         PROMOTE_MODE): Likewise.
6956         * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
6957         movdi): Likewise.
6958
6959 2016-04-30  Alan Modra  <amodra@gmail.com>
6960
6961         * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
6962         restoring when fixed_reg_p, but allow out-of-line or stmw save.
6963         Check for user regs later to avoid unnecessary looping over regs.
6964         Merge user reg check with non-saved reg check.  Don't force
6965         inline VR restore when static chain used.
6966         (rs6000_frame_related): Omit eh_frame info for user regs when
6967         saving.
6968         (fixed_regs_p): Delete.
6969
6970 2016-04-30  Alan Modra  <amodra@gmail.com>
6971
6972         * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
6973         (SAVE_STRATEGY, REST_STRATEGY): ..this.  Renumber and sort enum.
6974         Update all uses.
6975
6976 2016-04-30  Alan Modra  <amodra@gmail.com>
6977
6978         PR target/69645
6979         * config/rs6000/rs6000.c (fixed_reg_p): New function.
6980         (fixed_regs_p): Rename from global_regs_p.  Call fixed_reg_p.
6981         Update all uses.
6982
6983 2016-04-30  Alan Modra  <amodra@gmail.com>
6984
6985         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
6986         Remove redundant PIC_OFFSET_TABLE_REGNUM test.  Replace with
6987         flag_pic test for Darwin.
6988
6989 2016-04-30  Alan Modra  <amodra@gmail.com>
6990
6991         * regs.h (struct reg_info_t): Delete freq_calls_crossed and
6992         throw_calls_crossed.
6993         (REG_FREQ_CALLS_CROSSED): Delete.
6994         (REG_N_THROWING_CALLS_CROSSED): Delete.
6995         * regstat.c (regstat_bb_compute_ri): Don't calculate
6996         REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
6997         (dump_reg_info): Don't print call cross frequency.
6998         * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
6999         and REG_N_THROWING_CALLS_CROSSED.
7000
7001 2016-04-30  Alan Modra  <amodra@gmail.com>
7002
7003         * regs.h (struct reg_info_t): Delete live_length.
7004         (REG_LIVE_LENGTH): Delete macro.
7005         * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
7006         local_live, local_processed and local_live_last_luid params.
7007         Replace bb_index param with bb.  Don't set REG_LIVE_LENGTH.
7008         Formatting fixes.
7009         (regstat_compute_ri): Adjust for above.  Don't set
7010         REG_LIVE_LENGTH.
7011         (dump_reg_info): Don't print live length.
7012         * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
7013         with test of setjmp_crosses.  Don't set REG_LIVE_LENGTH.
7014         Localize loop_depth var.
7015
7016 2016-04-30  Alan Modra  <amodra@gmail.com>
7017
7018         * ira.c (enum valid_equiv): New.
7019         (validate_equiv_mem): Return enum.
7020         (update_equiv_mem): Create replacement in more cases.
7021         (add_store_equivs): Update validate_equiv_mem call.
7022
7023 2016-04-30  Alan Modra  <amodra@gmail.com>
7024
7025         * ira.c (combine_and_move_insns): Rather than scanning insns,
7026         use DF infrastucture to find use and def insns.
7027
7028 2016-04-30  Alan Modra  <amodra@gmail.com>
7029
7030         ira.c (combine_and_move_insns): Move invariant conditions..
7031         (ira.c): ..to here.  Call combine_and_move_insns before
7032         add_store_equivs.  Call grow_reg_equivs later.  Allocate
7033         req_equiv later using max_reg_num() rather than global max_regno.
7034         (contains_replace_regs): Delete.
7035         (add_store_equivs): Remove contains_replace_regs test.
7036
7037 2016-04-30  Alan Modra  <amodra@gmail.com>
7038
7039         * ira.c (struct equiv_mem_data): New.
7040         (equiv_mem, equiv_mem_modified): Delete static vars.
7041         (validate_equiv_mem_from_store): Use "data" param to communicate..
7042         (validate_equiv_mem): ..from here.
7043
7044 2016-04-30  Alan Modra  <amodra@gmail.com>
7045
7046         * ira.c (add_store_equivs, combine_and_move_insns): New functions,
7047         split out from..
7048         (update_reg_equivs): ..here.  Move allocation and freeing of
7049         reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
7050         end_alias_analysis to..
7051         (ira): ..here.
7052
7053 2016-04-30  Alan Modra  <amodra@gmail.com>
7054
7055         * ira.c (pdx_subregs): Delete.
7056         (struct equivalence): Add pdx_subregs field.
7057         (set_paradoxical_subreg): Remove pdx_subregs param.  Update
7058         pdx_subregs access.
7059         (update_equiv_regs): Don't create or free pdx_subregs.  Update
7060         pdx_subregs access.
7061
7062 2016-04-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7063
7064         * config/rs6000/altivec.h: Change definitions of vec_xl and
7065         vec_xst.
7066         * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
7067         (LD_ELEMREV_V2DI): New.
7068         (LD_ELEMREV_V4SF): New.
7069         (LD_ELEMREV_V4SI): New.
7070         (LD_ELEMREV_V8HI): New.
7071         (LD_ELEMREV_V16QI): New.
7072         (ST_ELEMREV_V2DF): New.
7073         (ST_ELEMREV_V2DI): New.
7074         (ST_ELEMREV_V4SF): New.
7075         (ST_ELEMREV_V4SI): New.
7076         (ST_ELEMREV_V8HI): New.
7077         (ST_ELEMREV_V16QI): New.
7078         (XL): New.
7079         (XST): New.
7080         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7081         descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
7082         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
7083         TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
7084         (altivec_expand_builtin): Add handling for
7085         VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
7086         (rs6000_invalid_builtin): Add error-checking for
7087         RS6000_BTM_P9_VECTOR.
7088         (altivec_init_builtins): Define builtins used to implement vec_xl
7089         and vec_xst.
7090         (rs6000_builtin_mask_names): Define power9-vector.
7091         * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
7092         (RS6000_BTM_P9_VECTOR): Define.
7093         (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
7094         * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
7095         (vsx_ld_elemrev_v2df): Likewise.
7096         (vsx_ld_elemrev_v4sf): Likewise.
7097         (vsx_ld_elemrev_v4si): Likewise.
7098         (vsx_ld_elemrev_v8hi): Likewise.
7099         (vsx_ld_elemrev_v16qi): Likewise.
7100         (vsx_st_elemrev_v2df): Likewise.
7101         (vsx_st_elemrev_v2di): Likewise.
7102         (vsx_st_elemrev_v4sf): Likewise.
7103         (vsx_st_elemrev_v4si): Likewise.
7104         (vsx_st_elemrev_v8hi): Likewise.
7105         (vsx_st_elemrev_v16qi): Likewise.
7106         * doc/extend.texi: Add prototypes for vec_xl and vec_xst.  Correct
7107         grammar.
7108
7109 2016-04-29  Patrick Palka  <ppalka@gcc.gnu.org>
7110
7111         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
7112         out into ...
7113         (simplify_control_stmt_condition_1): ... here.  Recurse into
7114         BIT_AND_EXPRs and BIT_IOR_EXPRs.
7115
7116 2016-04-29  David Edelsohn  <dje.gcc@gmail.com>
7117
7118         PR target/69810
7119         * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
7120         (zero_extendqi<mode>2_dot): Revert earlier conversion from
7121         define_insn_and_split to define_insn.
7122         (zero_extendqi<mode>2_dot2): Same.
7123         (extendqi<mode>2_dot): Same.
7124         (extendqi<mode>2_dot2): Same.
7125
7126 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
7127
7128         * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
7129         (probe_stack): New expander.
7130         (probe_stack_<mode>): New insn pattern.
7131
7132 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
7133
7134         * config/i386/i386.md
7135         (operations with memory inputs setting flags peephole2):
7136         Remove uneeded REG_P checks.  Cleanup pattern generation.
7137
7138 2016-04-29  Ilya Enkovich  <ilya.enkovich@intel.com>
7139
7140         * tree-vect-loop.c (vect_transform_loop): Fix
7141         nb_iterations_upper_bound computation for vectorized loop.
7142
7143 2016-04-29  Marek Polacek  <polacek@redhat.com>
7144             Jakub Jelinek  <jakub@redhat.com>
7145
7146         PR sanitizer/70342
7147         * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
7148         TARGET_EXPR_SLOT as a base.
7149
7150 2016-04-29  Andrew Burgess  <andrew.burgess@embecosm.com>
7151
7152         * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
7153         with 'rCm2' constraints to limit possible immediate size.
7154         (*load_zeroextendqisi_update): Likewise.
7155         (*load_signextendqisi_update): Likewise.
7156         (*loadhi_update): Likewise.
7157         (*load_zeroextendhisi_update): Likewise.
7158         (*load_signextendhisi_update): Likewise.
7159         (*loadsi_update): Likewise.
7160         (*loadsf_update): Likewise.
7161
7162 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
7163
7164         * config/i386/predicates.md (constm1_operand): Fix comparison.
7165
7166 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
7167
7168         * testsuite/gcc.target/arc/ieee_eq.c: New test.
7169
7170 2016-04-29  Oleg Endo  <olegendo@gcc.gnu.org>
7171
7172         * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
7173         remaining SH5 related settings.
7174         * config/sh/sh-protos.h (shmedia_cleanup_truncate,
7175         shmedia_prepare_call_address): Delete.
7176         * config/sh/sh.c (sh_print_operand, output_stack_adjust,
7177         DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
7178         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
7179         UNSUPPORTED_SH2A): Remove m5 checks.
7180         (sh_divide_strategy_e): Remove SH5 division strategies.
7181         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
7182         * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
7183
7184 2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7185
7186         * config/s390/s390.c (s390_rtx_costs): Update documentation.
7187
7188 2016-04-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7189
7190         * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
7191         * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
7192         Change lder to ldr.
7193         * config/s390/vector.md ("mov<mode>"): Likewise.
7194
7195 2016-04-29  Ulrich Weigand  <uweigand@de.ibm.com>
7196
7197         * config/s390/constraints.md ("U", "W"): Invoke
7198         s390_mem_constraint with "ZR" and "ZT".
7199         * config/s390/s390.c (s390_check_qrst_address): Reject invalid
7200         addresses when using LRA.  Accept also short displacements for S
7201         and T constraints.  Do not check for long displacement target for
7202         S and T constraints.
7203         (s390_mem_constraint): Remove handling of U and W constraints.
7204         * config/s390/s390.md (various patterns): Remove the short
7205         displacement constraints (Q and R) if a long displacement
7206         constraint is present.  Add longdisp as required CPU capability.
7207         * config/s390/vector.md: Likewise.
7208         * config/s390/vx-builtins.md: Likewise.
7209
7210 2016-04-29  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
7211
7212         PR target/60040
7213         * reload1.c (reload): Call finish_spills before
7214         restarting reload loop. Skip select_reload_regs
7215         if update_eliminables_and_spill returns true.
7216
7217 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
7218
7219         * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
7220         * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
7221         (umulhisi3_imm): Update predicates and constraint letters.
7222         (umulhisi3_reg): Declare instruction as commutative.
7223         * config/arc/constraints.md (J12, J16): New constraints.
7224         * config/arc/predicates.md (short_unsigned_const_operand): New
7225         predicate.
7226         (arc_short_operand): Likewise.
7227         * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
7228
7229 2016-04-29  Richard Biener  <rguenther@suse.de>
7230
7231         PR tree-optimization/13962
7232         PR tree-optimization/65686
7233         * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
7234         * tree-ssa-alias.c (ptrs_compare_unequal): New function
7235         using PTA to compare pointers.
7236         * match.pd: Add pattern for pointer equality compare simplification
7237         using ptrs_compare_unequal.
7238
7239 2016-04-29  Richard Biener  <rguenther@suse.de>
7240
7241         * stor-layout.c (layout_type): Do not build a pointer-to-element
7242         type for arrays.
7243
7244 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
7245
7246         * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
7247         Use SWI mode iterator.  Use general_reg_operand predicate.
7248         (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
7249         peephole to MMX and SSE part.  Use mmx_reg_operand and sse_reg_operand
7250         predicates.
7251
7252 2016-04-29  Jakub Jelinek  <jakub@redhat.com>
7253
7254         PR middle-end/70843
7255         * fold-const.c (operand_equal_p): Don't verify hash value equality
7256         if arg0 == arg1.
7257         * tree.c (inchash::add_expr): Handle STATEMENT_LIST.  Ignore BLOCK
7258         and OMP_CLAUSE.
7259
7260 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
7261
7262         PR target/70858
7263         * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
7264         to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
7265         (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
7266         __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
7267         __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
7268
7269 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
7270
7271         * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
7272         to info.  Don't initialize separate fields to 0.  Clean up
7273         formatting a bit.
7274
7275 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
7276
7277         * config/i386/i386.md (peephole2s for operations with memory inputs):
7278         Use SWI mode iterator.
7279         (peephole2s for operations with memory outputs): Ditto.
7280         Do not check for stack checking probe.
7281
7282         (probe_stack): Remove expander.
7283
7284 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
7285             Andrew Burgess  <andrew.burgess@embecosm.com>
7286
7287         * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
7288         operands as 32-bits.
7289
7290 2016-04-28  Jason Merrill  <jason@redhat.com>
7291
7292         * gdbinit.in: Skip line-map.h.
7293
7294 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
7295             Andrew Burgess  <andrew.burgess@embecosm.com>
7296
7297         * config/arc/arc.c (arc_conditional_register_usage): Take
7298         TARGET_RRQ_CLASS into account.
7299         (arc_print_operand): Support printing 'p' and 's' operands.
7300         * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
7301         as 0.
7302         (TARGET_RRQ_CLASS): Define.
7303         (IS_POWEROF2_OR_0_P): Define.
7304         * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
7305         alternatives.
7306         (*tst_movb): New define_insn.
7307         (*tst): Avoid recognition if it could prevent '*tst_movb'
7308         combination; replace c/CnL with c/Chs alternative.
7309         (*tst_bitfield_tst): New define_insn.
7310         (*tst_bitfield_asr): New define_insn.
7311         (*tst_bitfield): New define_insn.
7312         (andsi3_i): Add Rrq variant.
7313         (extzv): New define_expand.
7314         (insv): New define_expand.
7315         (*insv_i): New define_insn.
7316         (*movb): New define_insn.
7317         (*movb_signed): New define_insn.
7318         (*movb_high): New define_insn.
7319         (*movb_high_signed): New define_insn.
7320         (*movb_high_signed + 1): New define_split pattern.
7321         (*mrgb): New define_insn.
7322         (*mrgb + 1): New define_peephole2 pattern.
7323         (*mrgb + 2): New define_peephole2 pattern.
7324         * config/arc/arc.opt (mbitops): New option for nps400, uses
7325         TARGET_NPS_BITOPS_DEFAULT.
7326         * config/arc/constraints.md (q): Make register class conditional.
7327         (Rrq): New register constraint.
7328         (Chs): New constraint.
7329         (Clo): New constraint.
7330         (Chi): New constraint.
7331         (Cbf): New constraint.
7332         (Cbn): New constraint.
7333         (C18): New constraint.
7334         (Cbi): New constraint.
7335
7336 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
7337
7338         * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
7339         dst->popcount.
7340         (bitmap_intersection_of_preds): Ditto.
7341         (bitmap_union_of_succs): Ditto.
7342         (bitmap_union_of_preds): Ditto.
7343         * sbitmap.c (do_popcount): Delete.
7344         (BITMAP_DEBUGGING): Delete.
7345         (sbitmap_verify_popcount): Delete.
7346         (sbitmap_alloc): Don't initialize the popcount field.
7347         (sbitmap_alloc_with_popcount): Delete.
7348         (sbitmap_resize): Don't resize the popcount array.
7349         (sbitmap_vector_alloc): Don't initialize the popcount field.
7350         (bitmap_copy): Don't copy the popcount array.
7351         (bitmap_clear): Don't clear the popcount array.
7352         (bitmap_clear): Delete the popcount array handling.
7353         (bitmap_ior_and_compl): Delete the popcount assert.
7354         (bitmap_not): Ditto.
7355         (bitmap_and_compl): Ditto.
7356         (bitmap_and): Delete the popcount array handling.
7357         (bitmap_xor): Ditto.
7358         (bitmap_ior): Ditto.
7359         (bitmap_or_and): Delete the popcount assert.
7360         (bitmap_and_or): Ditto.
7361         (popcount_table): Delete.
7362         (sbitmap_elt_popcount): Delete.
7363         * sbitmap.h (simple_bitmap_def): Delete the popcount field.
7364         (bitmap_set_bit): Delete the popcount assert.
7365         (bitmap_clear_bit): Ditto.
7366         (sbitmap_free): Don't free the popcount array.
7367         (sbitmap_alloc_with_popcount): Delete declaration.
7368         (sbitmap_popcount): Ditto.
7369
7370 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
7371             Andrew Burgess  <andrew.burgess@embecosm.com>
7372
7373         * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
7374         (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
7375         * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
7376         (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
7377         * config/arc/arc.opt (mcmem): New option.
7378         * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
7379         supply length for r/m alternative.
7380         (*extendqisi2_ac): Likewise.
7381         (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
7382         r/Uex alternative.
7383         (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
7384         (movhi_insn): Likewise.
7385         (movsi_insn): Add r/Ucm,Ucm/w alternatives.
7386         (*zero_extendqihi2_i): Add r/Ucm alternative.
7387         (*zero_extendqisi2_ac): Likewise.
7388         (*zero_extendhisi2_i): Likewise.
7389         * config/arc/constraints.md (Uex): New memory constraint.
7390         (Ucm): New define_constraint.
7391         * config/arc/predicates.md (long_immediate_loadstore_operand):
7392         Return 0 for MEM with cmem_address address.
7393         (cmem_address_0): New predicates.
7394         (cmem_address_1): Likewise.
7395         (cmem_address_2): Likewise.
7396         (cmem_address): Likewise.
7397
7398 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
7399
7400         * config/rs6000/rs6000.c (machine_function): Rename
7401         insn_chain_scanned_p to spe_insn_chain_scanned_p.
7402         (rs6000_stack_info): Adjust.
7403
7404 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
7405             Andrew Burgess  <andrew.burgess@embecosm.com>
7406
7407         * config/arc/constraints.md (Usd): Convert to define_constraint.
7408         (Us<): Likewise.
7409         (Us>): Likewise.
7410
7411 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
7412
7413         PR target/70821
7414         * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
7415         Add new peephole2 where the first insn is *mov<mode>_or instead of
7416         *mov<mode>_internal.
7417
7418 2016-04-28  Segher Boesssenkool  <segher@kernel.crashing.org>
7419
7420         * tracer.c (bb_seen): Make static.
7421
7422 2016-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>
7423
7424         * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
7425         support, setup defaults.
7426         * config/arc/arc-opts.h (enum processor_type): Add NPS400.
7427         * config/arc/arc.c (arc_init): Add NPS400 support.
7428         * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
7429         (TARGET_ARC700): NPS400 is also an ARC700.
7430         * config/arc/arc.opt: Add NPS400 options to -mcpu=.
7431
7432 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
7433
7434         PR target/70668
7435         * config/nds32/nds32.md (casesi): Don't access the operands array
7436         out of bounds.
7437
7438 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
7439
7440         * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
7441         (or $-1,reg peephole2): Ditto.
7442         (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
7443
7444 2016-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
7445
7446         * doc/extend.texi (Common Function Attributes) [optimize]:
7447         Discourage use of the optimize attribute.
7448
7449 2016-04-28  Bill Seurer  <seurer@linux.vnet.ibm.com>
7450
7451         * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
7452         special case builtin.
7453         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
7454         ALTIVEC_BUILTIN_VEC_ADDE.
7455         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
7456         support for ALTIVEC_BUILTIN_VEC_ADDE.
7457         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
7458         for __builtin_vec_adde.
7459
7460 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
7461
7462         * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
7463         * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
7464
7465 2016-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7466
7467         PR testsuite/70595
7468         * doc/sourcebuild.texi (Effective-Target Keywords, Other
7469         attributes): Document cilkplus_runtime.
7470
7471 2016-04-28  Martin Jambor  <mjambor@suse.cz>
7472
7473         * tree-cfg.c (verify_expr): Verify that local declarations belong to
7474         this function.  Call verify_expr on MEM_REFs and bases of other
7475         handled_components.
7476
7477 2016-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7478
7479         * internal-fn.c (expand_arith_overflow): Convert preprocessor check
7480         for WORD_REGISTER_OPERATIONS to runtime check.
7481
7482 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
7483
7484         * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
7485
7486 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
7487
7488         * config/arc/arc.c (arc_process_double_reg_moves): Fix for
7489         big-endian compilation.
7490         * config/arc/arc.md (addf3): Likewise.
7491         (subdf3): Likewise.
7492         (muldf3): Likewise.
7493
7494 2016-04-28  Richard Biener  <rguenther@suse.de>
7495
7496         PR tree-optimization/70840
7497         * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
7498         Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
7499         Mark x * pow(x,c) -> pow(x,c+1) commutative.
7500         Add powi(x,y) * powi(z,y) -> powi(x*z,y).
7501
7502 2015-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7503
7504         * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
7505         and explain why in a comment.
7506
7507 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
7508
7509         * config/arc/arc.md (cpu_facility): Add fpx variant.
7510         (subdf3): Prohibit use reverse sub when assist operations option
7511         is enabled.
7512         * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
7513         instructions only when FPX is enabled.
7514         * testsuite/gcc.target/arc/trsub.c: New test.
7515
7516 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
7517
7518         * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
7519         mult_operator when calculating "type" attribute.
7520         (*fop_<mode>_1_i387): Ditto.
7521         (*fop_xf_1_i387): Ditto.
7522         (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
7523         Use std::swap to swap operands.  Use RTL expressions to generate
7524         converted pattern.
7525
7526 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
7527             Joern Rennecke  <joern.rennecke@embecosm.com>
7528
7529         * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
7530         declaration.
7531         (emit_pic_move): Remove.
7532         (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
7533         * config/arc/arc.c (emit_pic_move): Removed.
7534         (TARGET_HAVE_TLS): Define.
7535         (arc_conditional_register_usage): Test for arc_tp_regno.
7536         (arc_print_operand, arc_print_operand_address): Handle TLS
7537         unspecs.
7538         (arc_needs_pcl_p): New function.
7539         (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
7540         (arc_legitimate_pic_addr_p): Handle TLS unspecs.
7541         (arc_raw_symbolic_reference_mentioned_p): Likewise.
7542         (arc_get_tp, arc_emit_call_tls_get_addr): New function.
7543         (arc_legitimize_tls_address): Likewise.
7544         (DTPOFF_ZERO_SYM): Define.
7545         (arc_legitimize_pic_address): Make it static, handle TLS cases.
7546         (arc_output_pic_addr_const): Print TLS unspecs.
7547         (prepare_pic_move): New function, replaces emit_pic_move.
7548         (arc_legitimate_constant_p): Handle TLS unspecs.
7549         (arc_legitimate_address_p): Likewise.
7550         (arc_rewrite_small_data_p): Use assert for TLS constants.
7551         (prepare_move_operands): Use prepare_pic_move.
7552         (arc_legitimize_address): Legitimize tls addresses.
7553         (arc_epilogue_uses): Check for arc_tp_regno.
7554         (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
7555         * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
7556         Define.
7557         [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
7558         Likewise.
7559         [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
7560         %(arc_tls_extra_start_spec).
7561         (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
7562         (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
7563         (EH_USES): Define.
7564         (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
7565         * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
7566         (UNSPEC_TLS_OFF): Add.
7567         (R10_REG): Define.
7568         (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
7569         (get_thread_pointersi): New patterns.
7570         * config/arc/arc.opt (mtp-regno): New option.
7571         * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
7572         (move_dest_operand): Likewise.
7573         * configure: Regenerate.
7574         * configure.ac: Add arc*-*-* case to test for tls.
7575         * doc/invoke.texi (ARC options): Document mtp-regno.
7576
7577 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
7578
7579         * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
7580         the new ARC HS SIMD instructions.
7581         (arc_preferred_simd_mode): New function.
7582         (arc_autovectorize_vector_sizes): Likewise.
7583         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
7584         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
7585         (arc_init_reg_tables): Accept new ARC HS SIMD modes.
7586         (arc_init_builtins): Add new SIMD builtin types.
7587         (arc_split_move): Handle 64 bit vector moves.
7588         * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
7589         (TARGET_PLUS_QMACW): Define.
7590         * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
7591         (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
7592         (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
7593         (VSUBADD4H): New builtins.
7594         * config/arc/simdext.md: Add new ARC HS SIMD instructions.
7595         * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
7596
7597 2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
7598             Matthias Klose  <doko@debian.org>
7599
7600         * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
7601
7602 2016-04-28  Richard Biener  <rguenther@suse.de>
7603
7604         PR middle-end/70777
7605         * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
7606         canonicalization.
7607
7608 2016-04-28  Oleg Endo  <olegendo@gcc.gnu.org>
7609
7610         * common/config/sh/sh-common.c: Remove SH5 support.
7611         * config/sh/constraints.md: Likewise.
7612         * config/sh/config/sh/elf.h: Likewise.
7613         * config/sh/linux.h: Likewise.
7614         * config/sh/netbsd-elf.h: Likewise.
7615         * config/sh/predicates.md: Likewise.
7616         * config/sh/sh-c.c: Likewise.
7617         * config/sh/sh-protos.h: Likewise.
7618         * config/sh/sh.c: Likewise.
7619         * config/sh/sh.h: Likewise.
7620         * config/sh/sh.md: Likewise.
7621         * config/sh/sh.opt: Likewise.
7622         * config/sh/sync.md: Likewise.
7623         * config/sh/sh64.h: Delete.
7624         * config/sh/shmedia.h: Likewise.
7625         * config/sh/shmedia.md: Likewise.
7626         * config/sh/sshmedia.h: Likewise.
7627         * config/sh/t-netbsd-sh5-64: Likewise.
7628         * config/sh/t-sh64: Likewise.
7629         * config/sh/ushmedia.h: Likewise.
7630
7631 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
7632
7633         * config/i386/i386.md (sign_extend to memory peephole2s): Use
7634         general_reg_operand instead of register_operand predicate.
7635
7636 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7637
7638         * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
7639
7640 2016-04-27  Marc Glisse  <marc.glisse@inria.fr>
7641
7642         * match.pd (A - B > A, A + B < A): New transformations.
7643
7644 2016-04-27  Patrick Palka  <ppalka@gcc.gnu.org>
7645
7646         * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
7647         which defaults to true.  Emit an outer pair of parentheses only if
7648         EMIT_PARENS.  When continuing a chain of && or || (or & or |),
7649         don't emit parentheses for the right-hand operand.
7650
7651 2016-04-27  Jeff Law  <law@redhat.com>
7652
7653         * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
7654
7655 2016-04-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7656
7657         * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
7658         (altivec_lvx_<mode>_internal): Document.
7659         (altivec_lvx_<mode>_2op): New define_insn.
7660         (altivec_lvx_<mode>_1op): Likewise.
7661         (altivec_lvx_<mode>_2op_si): Likewise.
7662         (altivec_lvx_<mode>_1op_si): Likewise.
7663         (altivec_stvx_<mode>): Remove.
7664         (altivec_stvx_<mode>_internal): Document.
7665         (altivec_stvx_<mode>_2op): New define_insn.
7666         (altivec_stvx_<mode>_1op): Likewise.
7667         (altivec_stvx_<mode>_2op_si): Likewise.
7668         (altivec_stvx_<mode>_1op_si): Likewise.
7669         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7670         Expand vec_ld and vec_st during parsing.
7671         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
7672         changes.
7673         (altivec_expand_stvx_be): Likewise.
7674         (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
7675         address-masking behavior in RTL.
7676         (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
7677         address-masking behavior in RTL.
7678         (altivec_expand_builtin): Change builtin code arguments for calls
7679         to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
7680         (insn_is_swappable_p): Avoid incorrect swap optimization in the
7681         presence of lvx/stvx patterns.
7682         (alignment_with_canonical_addr): New function.
7683         (alignment_mask): Likewise.
7684         (find_alignment_op): Likewise.
7685         (recombine_lvx_pattern): Likewise.
7686         (recombine_stvx_pattern): Likewise.
7687         (recombine_lvx_stvx_patterns): Likewise.
7688         (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
7689         stvx patterns from expand.
7690         * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
7691         expansions.
7692         (vector_altivec_store_<mode>): Likewise.
7693
7694 2016-04-26  Evandro Menezes  <e.menezes@samsung.com>
7695
7696         * config/aarch64/aarch64.md
7697         (*movhf_aarch64): Add "movi %0, #0" to zero up register and
7698         remove the "fp" attributes.
7699         (*movsf_aarch64): Add "movi %0, #0" to zero up register and
7700         add the "simd" attributes.
7701         (*movdf_aarch64): Likewise.
7702         (*movtf_aarch64): Remove the "fp" attributes.
7703         * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
7704         * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
7705
7706 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
7707
7708         * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
7709         rtx to rtx_code_label *.
7710         * rtl.h (maybe_set_first_label_num): Likewise.
7711
7712 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
7713
7714         * df-core.c (df_add_problem): Make the problem param be const.
7715         (df_remove_problem): Make local "problem" be const.
7716         * df-problems.c (problem_RD): Make const.
7717         (problem_LR): Likewise.
7718         (problem_LIVE): Likewise.
7719         (problem_MIR): Likewise.
7720         (problem_CHAIN): Likewise.
7721         (problem_WORD_LR): Likewise.
7722         (problem_NOTE): Likewise.
7723         (problem_MD): Likewise.
7724         * df-scan.c (problem_SCAN): Likewise.
7725         * df.h (struct df_problem): Make field "dependent_problem" be
7726         const.
7727         (struct dataflow): Likewise for field "problem".
7728         (df_add_problem): Make param const.
7729
7730 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
7731
7732         * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
7733         inter-unit moves to/from vector registers are enabled.  Do not disable
7734         for TARGET_MMX.
7735
7736 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
7737
7738         * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
7739         DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
7740         #define to...
7741         (enum df_problem_id): ...this new enum.
7742         (struct df_problem): Convert field "id" from "int" to
7743         enum df_problem_id.
7744
7745 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
7746
7747         * rtl.def: Update comment for "things in the instruction chain" to
7748         reflect the removal of the leading "i" field for INSN_UID in
7749         r210360.  Fix bogus apostrophe.
7750
7751 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
7752
7753         * config/i386/i386.md
7754         (lea arith with mem operand + setcc peephole2): Set operator mode.
7755
7756 2016-04-27  H.J. Lu  <hongjiu.lu@intel.com>
7757
7758         PR target/70155
7759         * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
7760         (dimode_scalar_to_vector_candidate_p): This.
7761         (timode_scalar_to_vector_candidate_p): New function.
7762         (scalar_to_vector_candidate_p): Likewise.
7763         (timode_check_non_convertible_regs): Likewise.
7764         (timode_remove_non_convertible_regs): Likewise.
7765         (remove_non_convertible_regs): Likewise.
7766         (remove_non_convertible_regs): Renamed to ...
7767         (dimode_remove_non_convertible_regs): This.
7768         (scalar_chain::~scalar_chain): Make it virtual.
7769         (scalar_chain::compute_convert_gain): Make it pure virtual.
7770         (scalar_chain::mark_dual_mode_def): Likewise.
7771         (scalar_chain::convert_insn): Likewise.
7772         (scalar_chain::convert_registers): Likewise.
7773         (scalar_chain::add_to_queue): Make it protected.
7774         (scalar_chain::emit_conversion_insns): Likewise.
7775         (scalar_chain::replace_with_subreg): Likewise.
7776         (scalar_chain::replace_with_subreg_in_insn): Likewise.
7777         (scalar_chain::convert_op): Likewise.
7778         (scalar_chain::convert_reg): Likewise.
7779         (scalar_chain::make_vector_copies): Likewise.
7780         (scalar_chain::convert_registers): New pure virtual function.
7781         (class dimode_scalar_chain): New class.
7782         (class timode_scalar_chain): Likewise.
7783         (scalar_chain::mark_dual_mode_def): Renamed to ...
7784         (dimode_scalar_chain::mark_dual_mode_def): This.
7785         (timode_scalar_chain::mark_dual_mode_def): New function.
7786         (timode_scalar_chain::convert_insn): Likewise.
7787         (dimode_scalar_chain::convert_registers): Likewise.
7788         (scalar_chain::compute_convert_gain): Renamed to ...
7789         (dimode_scalar_chain::compute_convert_gain): This.
7790         (scalar_chain::replace_with_subreg): Renamed to ...
7791         (dimode_scalar_chain::replace_with_subreg): This.
7792         (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
7793         (dimode_scalar_chain::replace_with_subreg_in_insn): This.
7794         (scalar_chain::make_vector_copies): Renamed to ...
7795         (dimode_scalar_chain::make_vector_copies): This.
7796         (scalar_chain::convert_reg): Renamed to ...
7797         (dimode_scalar_chain::convert_reg ): This.
7798         (scalar_chain::convert_op): Renamed to ...
7799         (dimode_scalar_chain::convert_op): This.
7800         (scalar_chain::convert_insn): Renamed to ...
7801         (dimode_scalar_chain::convert_insn): This.
7802         (scalar_chain::convert): Call convert_registers.
7803         (convert_scalars_to_vector): Change to scalar_chain pointer to
7804         use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
7805         in 32-bit mode.  Delete scalar_chain pointer.  Call
7806         free_dominance_info in 64-bit mode.
7807         (pass_stv::gate): Remove TARGET_64BIT check.
7808         (ix86_option_override): Put the 64-bit STV pass before the CSE
7809         pass.
7810
7811 2016-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>
7812
7813         * dwarf2out.h (struct dw_loc_descr_node): Remove the
7814         dw_loc_frame_offset field.
7815         * dwarf2out.c (new_loc_descr): Likewise.
7816         (resolve_args_picking_1): Turn the VISITED hash set into a
7817         FRAME_OFFSET hash map. Use it to associate a frame offset to
7818         visited nodes. Remove uses of the CHECKING_P macro.
7819         (resolve_args_picking): Update call to resolve_args_picking_1.
7820
7821 2016-04-27  Martin Liska  <mliska@suse.cz>
7822
7823         * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
7824         (free_loop_data): Release vuses of groups.
7825
7826 2016-04-27  Bin Cheng  <bin.cheng@arm.com>
7827
7828         * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
7829         instead of redundant use_id and boolean have_use_for.
7830         (struct iv_use): Change sub_id into group_id.  Remove field next.
7831         Move fields: related_cands, n_map_members, cost_map and selected
7832         to ...
7833         (struct iv_group): ... here.  New structure.
7834         (struct iv_common_cand): Use structure declaration directly.
7835         (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
7836         (MAX_CONSIDERED_USES): Rename macro to ...
7837         (MAX_CONSIDERED_GROUPS): ... here.
7838         (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
7839         (dump_iv, dump_use, dump_cand): Refactor format of dump information.
7840         (dump_uses): Rename to ...
7841         (dump_groups): ... here.  Update all uses.
7842         (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
7843         (find_induction_variables): Refactor format of dump information.
7844         (record_sub_use): Delete.
7845         (record_use): Update all uses.
7846         (record_group): New function.
7847         (record_group_use, find_interesting_uses_op): Call above functions.
7848         Update all uses.
7849         (find_interesting_uses_cond): Ditto.
7850         (group_compare_offset): New function.
7851         (split_all_small_groups): Rename to ...
7852         (split_small_address_groups_p): ... here.  Update all uses.
7853         (split_address_groups):  Update all uses.
7854         (find_interesting_uses): Refactor format of dump information.
7855         (add_candidate_1): Update all uses.  Remove redundant check on iv,
7856         base and step.
7857         (add_candidate, record_common_cand): Remove redundant assert.
7858         (add_iv_candidate_for_biv): Update use.
7859         (add_iv_candidate_derived_from_uses): Update all uses.
7860         (add_iv_candidate_for_groups, record_important_candidates): Ditto.
7861         (alloc_use_cost_map): Ditto.
7862         (set_use_iv_cost, get_use_iv_cost): Rename to ...
7863         (set_group_iv_cost, get_group_iv_cost): ... here.  Update all uses.
7864         (determine_use_iv_cost_generic): Ditto.
7865         (determine_group_iv_cost_generic): Ditto.
7866         (determine_use_iv_cost_address): Ditto.
7867         (determine_group_iv_cost_address): Ditto.
7868         (determine_use_iv_cost_condition): Ditto.
7869         (determine_group_iv_cost_cond): Ditto.
7870         (determine_use_iv_cost): Ditto.
7871         (determine_group_iv_cost): Ditto.
7872         (set_autoinc_for_original_candidates): Update all uses.
7873         (find_iv_candidates): Update all uses.  Refactor dump information.
7874         (determine_use_iv_costs): Ditto.
7875         (determine_iv_costs): Ditto.
7876         (iv_ca_cand_for_use): Rename to ...
7877         (iv_ca_cand_for_group): ... here.  Update all uses.
7878         (iv_ca_add_use, iv_ca_add_group): Ditto.
7879         (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
7880         (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
7881         (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
7882         (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
7883         (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
7884         (create_new_iv, adjust_iv_update_pos): Ditto.
7885         (rewrite_use_address): Delete.
7886         (rewrite_use_address_1): Rename to ...
7887         (rewrite_use_address): ... here.
7888         (rewrite_use_compare): Update all uses.
7889         (rewrite_use): Delete.
7890         (rewrite_uses): Rename to ...
7891         (rewrite_groups): ... here.  Update all uses.
7892         (remove_unused_ivs, free_loop_data): Update all uses.
7893         (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
7894
7895 2016-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7896
7897         * rtlanal.c (nonzero_bits1): Convert preprocessor check
7898         for WORD_REGISTER_OPERATIONS to runtime check.
7899
7900 2016-04-27  Richard Biener  <rguenther@suse.de>
7901
7902         PR ipa/70760
7903         * tree-ssa-structalias.c (find_func_aliases_for_call): Use
7904         aggregate_value_p to determine if a function result is
7905         returned by reference.
7906         (ipa_pta_execute): Functions having their address taken are
7907         not automatically nonlocal.
7908
7909 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
7910
7911         PR sanitizer/70683
7912         * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
7913         * fold-const.c (operand_equal_p): If flag_checking and
7914         OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
7915         and if it returns non-zero, assert iterative_hash_expr on both
7916         args is the same.
7917
7918 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
7919
7920         * doc/invoke.texi (-frename-registers): Also enabled at -Os.
7921
7922 2016-04-27  Nick Clifton  <nickc@redhat.com>
7923
7924         PR middle-end/49889
7925         * varasm.c (merge_weak): Generate an error if an attempt is made
7926         to convert a non-weak static function into a weak, public function.
7927
7928 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7929
7930         * params.def (MAX_PARTITION_SIZE): New param.
7931         * doc/invoke.texi: Document lto-max-partition.
7932
7933 2016-04-27  Richard Biener  <rguenther@suse.de>
7934
7935         PR ipa/70785
7936         * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
7937         function cummulating used_from_other_partition, externally_visible
7938         and force_output from aliases.
7939         (refered_from_nonlocal_var): Likewise.
7940         (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
7941         node flags properly.
7942
7943 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
7944
7945         * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
7946         (-Wmemset-elt-size): New item.
7947
7948 2016-04-27  Eric Botcazou  <ebotcazou@adacore.com>
7949
7950         PR ada/70759
7951         * stor-layout.h (internal_reference_types): Delete.
7952         * stor-layout.c (reference_types_internal): Likewise.
7953         (internal_reference_types): Likewise.
7954         (layout_type) <REFERENCE_TYPE>: Adjust.
7955
7956 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
7957
7958         PR sanitizer/70683
7959         * tree.h (inchash::add_expr): Add FLAGS argument.
7960         * tree.c (inchash::add_expr): Likewise.  If not OEP_ADDRESS_OF,
7961         use STRIP_NOPS first.  For INTEGER_CST assert not OEP_ADDRESS_OF.
7962         For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
7963         Formatting fix.  Adjust recursive calls.  For tcc_comparison,
7964         if swap_tree_comparison (code) is smaller than code, hash that
7965         and arguments in the other order.  Hash CONVERT_EXPR the same
7966         as NOP_EXPR.  For OEP_ADDRESS_OF hash MEM_REF with 0 offset
7967         of ADDR_EXPR of decl as the decl itself.  Add or remove
7968         OEP_ADDRESS_OF from recursive flags as needed.  For
7969         FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
7970         operands commutatively and only the third one normally.
7971         For internal CALL_EXPR hash in CALL_EXPR_IFN.
7972
7973 2016-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
7974
7975         * config/rtems.h (LIB_SPEC): Add -latomic.
7976
7977 2016-04-27  Joel Sherrill  <joel@rtems.org>
7978
7979         * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
7980         xilink.ld and flags not relevant to RTEMS.
7981
7982 2016-04-26  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
7983
7984         * toplev.c (backend_init_target): Avoid calling init_reload when using
7985         LRA.
7986
7987 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
7988
7989         * reorg.c (try_merge_delay_insns): Declare i and j inside the
7990         for loops rather than one for the whole function.
7991
7992 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
7993
7994         * match.pd (X + CST CMP X): New transformation.
7995
7996 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
7997
7998         * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
7999         * fold-const.c (fold_binary_loc): Remove 2 transformations
8000         superseded by match.pd.
8001         * match.pd (x+x -> x*2): Generalize to integers.
8002
8003 2016-04-26  Bernd Schmidt  <bschmidt@redhat.com>
8004
8005         * config/i386/i386.md (operation on memory peephole): Duplicate an
8006         existing peephole and adapt it to match lea rather than an operation
8007         that clobbers CC.
8008
8009         PR rtl-optimization/57193
8010         * opts.c (default_options_table): Add OPT_frename_registers at -O2
8011         and above.
8012         * doc/invoke.texi (-frename-registers, -O2): Update documentation.
8013
8014 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
8015
8016         * tree-if-conv.c (any_pred_load_store): New static variable.
8017         (if_convertible_gimple_assign_stmt_p): Remove parameter.  Use
8018         any_pred_load_store instead of and_mask_load_store.
8019         (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
8020         (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
8021         (combine_blocks, tree_if_conversion): Ditto.
8022
8023 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
8024
8025         PR tree-optimization/70771
8026         PR tree-optimization/70775
8027         * tree-if-conv.c (if_convertible_phi_p): Remove check on special
8028         virtual PHI nodes.  Delete parameter.
8029         (if_convertible_loop_p_1): Delete argument to above function.
8030         (predicate_all_scalar_phis): Delete code handling single-argument
8031         PHIs.
8032         (tree_if_conversion): Mark and update virtual SSA.
8033
8034 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8035
8036         PR target/61821
8037         * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
8038         (x86_elf_aligned_common): Rename to ...
8039         (x86_elf_aligned_decl_common): ... this.
8040         Add decl arg.  Switch to .lbss for largecomm object.  Use
8041         LARGECOMM_SECTION_ASM_OP.
8042         * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
8043         renaming.
8044         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
8045         (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
8046         Pass new decl arg.
8047         * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
8048         [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
8049
8050 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8051
8052         PR target/59407
8053         * config/i386/i386.c (SECTION_LARGE): Define.
8054         (x86_64_elf_select_section): Set it for large data/bss sections.
8055         Only clear SECTION_WRITE for .lrodata.
8056         (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
8057         data/bss sections.
8058         * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
8059         * varasm.c (default_elf_asm_named_section): Grow flagchars.
8060         [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
8061         SECTION_MACH_DEP.
8062         * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
8063         * doc/tm.texi: Regenerate.
8064
8065 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
8066
8067         PR bootstrap/70704
8068         * configure.ac (--enable-checking): Document extra flag, for
8069         non-release builds default to --enable-checking=yes,extra.
8070         If misc checking and extra checking, define CHECKING_P to 2 instead
8071         of 1.
8072         * common.opt (fchecking=): Add.
8073         * doc/invoke.texi (-fchecking=): Document.
8074         * doc/install.texi: Document --enable-checking changes.
8075         * configure: Regenerated.
8076         * config.in: Regenerated.
8077
8078 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
8079
8080         * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
8081         attribute instead of which_alternative.
8082         * config/i386/sse.md (*mov<mode>_internal): Ditto.
8083         Use EXT_REX_SSE_REG_P where appropriate.
8084
8085 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
8086
8087         * config/i386/predicates.md (const0_operand): Do not match
8088         const_wide_int code.
8089         (const1_operand): Ditto.
8090
8091 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
8092
8093         * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
8094         for SSE constm1 operands and TARGET_AVX512VL.
8095         (*movti_internal): Ditto.
8096         (*mov<mode>_or): Use constm1_operand predicate.
8097         * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
8098         for SSE vector_all_ones operands and TARGET_AVX512VL.
8099         * config/i386/predicates.md (constm1_operand): New predicate.
8100         * config/i386/i386.c (standard_sse_constant_opcode): Simplify
8101         emission of constant -1 load.
8102
8103 2016-04-25  Jason Merrill  <jason@redhat.com>
8104
8105         * gdbinit.in: Skip is-a.h.
8106
8107         * attribs.c (register_scoped_attributes): Fix logic.
8108         * attribs.h: Declare register_scoped_attributes.
8109
8110 2016-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8111
8112         * config/rs6000/rs6000-builtin.def: Correct pasto error for
8113         stxvd2x and stxvw4x built-in functions.
8114
8115 2016-04-25  DJ Delorie  <dj@redhat.com>
8116
8117         * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
8118         (ashrhi3): Likewise.
8119         (lshrhi3): Likewise.
8120
8121 2016-04-25  Richard Biener  <rguenther@suse.de>
8122
8123         PR tree-optimization/70780
8124         * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
8125         wasn't visited yet.
8126         (compute_antic): Mark blocks with abnormal preds as visited as
8127         they have a final empty antic-in solution already.
8128
8129 2016-04-25  Michael Collison  <michael.collison@linaro.org>
8130
8131         * ChangeLog(2016-04-25): Fix ChangeLog formatting.
8132
8133 2016-04-25  Michael Collison  <michael.collison@linaro.org>
8134
8135         * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
8136         mode is VQI to improve mixed mode vectorization.
8137         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
8138         define_insn to match low half of signed vaddw.
8139         * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
8140         define_insn to match high half of signed vaddw.
8141         * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
8142         define_insn to match low half of unsigned vaddw.
8143         * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
8144         define_insn to match high half of unsigned vaddw.
8145         * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
8146         (arm_simd_check_vect_par_cnst_half_p): Likewise.
8147         * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
8148         for new function.
8149         (arm_simd_check_vect_par_cnst_half_p): Likewise.
8150         * config/arm/predicates.md (vect_par_constant_high): Support
8151         big endian and simplify by calling
8152         arm_simd_check_vect_par_cnst_half
8153         (vect_par_constant_low): Likewise.
8154
8155 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
8156
8157         * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
8158         predicate for operand 2.
8159
8160 2016-04-24  Uros Bizjak  <ubizjak@gmail.com>
8161             H.J. Lu  <hongjiu.lu@intel.com>
8162
8163         * config/i386/i386-protos.h (standard_sse_constant_p): Add
8164         machine_mode argument.
8165         * config/i386/i386.c (standard_sse_constant_p): Return 2 for
8166         constm1_rtx operands.  For VOIDmode constants, get mode from
8167         pred_mode.  Check mode size if the mode is supported by ABI.
8168         (standard_sse_constant_opcode): Do not use standard_constant_p.
8169         Strictly check ABI support for all-ones operands.
8170         (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
8171         immediates. Update calls to standard_sse_constant_p.
8172         (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
8173         (ix86_rtx_costs): Ditto.
8174         * config/i386/i386.md (*movxi_internal_avx512f): Use
8175         nonimmediate_or_sse_const_operand instead of vector_move_operand.
8176         Use (v,BC) alternative instead of (v,C). Use register_operand
8177         checks instead of MEM_P.
8178         (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
8179         of vector_move_operand.  Add (v,BC) alternative and corresponding avx2
8180         isa attribute.  Use register_operand checks instead of MEM_P.
8181         (*movti_internal): Use nonimmediate_or_sse_const_operand for
8182         TARGET_SSE.  Improve TARGET_SSE insn constraint.  Add (v,BC)
8183         alternative and corresponding sse2 isa attribute.
8184         (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
8185         to standard_sse_constant_p.
8186         (FP constant splitters): Ditto.
8187         * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
8188         (C): Ditto.
8189         * config/i386/predicates.md (constm1_operand): Remove.
8190         (nonimmediate_or_sse_const_operand): Rewrite using RTX.
8191         * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
8192         vector_all_ones_operand instead of constm1_operand.
8193
8194 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8195
8196         * print-rtl.c (print_rtx_insn_vec): New function.
8197         * print-rtl.h: New prototype.
8198         * store-motion.c (struct st_expr): Make avail_stores a vector.
8199         (st_expr_entry): Adjust.
8200         (free_st_expr_entry): Likewise.
8201         (print_store_motion_mems): Likewise.
8202         (find_moveable_store): Likewise.
8203         (compute_store_table): Likewise.
8204         (delete_store): Likewise.
8205         (build_store_vectors): Likewise.
8206
8207 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8208
8209         * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
8210
8211 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8212
8213         * vec.h (vec_safe_contains): New function.
8214         (vec::contains): Likewise.
8215         (vec::begin): Likewise.
8216         (vec::end): Likewise.
8217
8218 2016-04-23  Jakub Jelinek  <jakub@redhat.com>
8219
8220         PR sanitizer/70712
8221         * cfgexpand.c (expand_stack_vars): Fix typo.
8222
8223 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
8224
8225         * system.h (list, map, set, vector): Include conditionally.
8226         * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
8227         * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
8228         * ipa-icf.c (INCLUDE_LIST): Define.
8229         * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
8230         * config/sh/sh.c (INCLUDE_VECTOR): Define.
8231         * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
8232         (INCLUDE_LIST, INCLUDE_VECTOR): Define.
8233         * cp/logic.cc (INCLUDE_LIST): Define.
8234         * fortran/trans-common.c (INCLUDE_MAP): Define.
8235
8236 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
8237
8238         * auto-profile.c: Remove <string.h> include.
8239         * ipa-icf-gimple.c: Remove <list> include.
8240         * diagnostic.c: Remove <new> include.
8241         * genmatch.c: Likewise.
8242         * pretty-print.c: Likewise.
8243         * toplev.c: Likewise
8244         * c/c-objc-common.c: Likewise.
8245         * cp/error.c: Likewise.
8246         * fortran/error.c: Likewise.
8247
8248 2016-04-22  Richard Biener  <rguenther@suse.de>
8249
8250         * lto-streamer-in.c (input_ssa_names): Do not allocate
8251         GIMPLE_NOP for all SSA names.
8252         * lto-streamer-out.c (output_ssa_names): Do not output
8253         SSA names that should have been released.
8254
8255 2016-04-22  Richard Biener  <rguenther@suse.de>
8256
8257         PR tree-optimization/70740
8258         * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
8259         VDEF.
8260
8261 2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
8262
8263         PR target/70750
8264         * config/i386/predicates.md (call_insn_operand): Replace
8265         sibcall_memory_operand with memory_operand.
8266
8267 2016-04-21  Patrick Palka  <ppalka@gcc.gnu.org>
8268
8269         * tree-vrp.c (register_edge_assert_for_2): Remove redundant
8270         has_single_use() tests.
8271         (register_edge_assert_for_1): Likewise.
8272         (find_assert_locations_1): Check the liveness bitmap instead of
8273         checking has_single_use().
8274
8275 2016-04-21  Kirill Yukhin  <kirill.yukhin@intel.com>
8276
8277         PR target/70728
8278         * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
8279         Extract AVX-512BW constraint from AVX.
8280
8281 2016-04-21  Richard Biener  <rguenther@suse.de>
8282
8283         PR tree-optimization/70725
8284         * tree-if-conv.c (if_convertible_phi_p): Adjust guard
8285         for phi_convertible_by_degenerating_args.
8286         (predicate_all_scalar_phis): Handle single-argument PHIs.
8287
8288 2016-04-21  Richard Biener  <rguenther@suse.de>
8289
8290         PR middle-end/70747
8291         * fold-const.c (fold_comparison): Return properly typed
8292         constant boolean.
8293
8294 2016-04-21  Bin Cheng  <bin.cheng@arm.com>
8295
8296         PR tree-optimization/70715
8297         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
8298         after expanding BASE using expand_simple_operations.
8299
8300 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
8301
8302         * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
8303         New transformations.
8304
8305 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
8306
8307         * match.pd (min(int_max, x), max(int_min, x)): New transformations.
8308
8309 2016-04-20  Jan Hubicka  <jh@suse.cz>
8310
8311         * ipa-inline.c (can_inline_edge_p): Pass caller info to
8312         ultiimate_alias_target.
8313         (update_callee_keys): Likewise.
8314         (lookup_recursive_calls): Likewise.
8315         (speculation_useful_p): Likewise.
8316
8317 2016-04-20  Jan Hubicka  <jh@suse.cz>
8318
8319         PR ipa/70018
8320         * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
8321         (set_nothrow_flag_1): ... this; handle interposition correctly;
8322         recurse on aliases and thunks.
8323         (cgraph_node::set_nothrow_flag): New.
8324         * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
8325         functions compiled with non-call exceptions that binds to current
8326         def.
8327         (propagate_nothrow): Be safe WRT interposition.
8328         * cgraph.h (set_nothrow_flag): Update prototype.
8329
8330 2016-04-18  Jan Hubicka  <jh@suse.cz>
8331
8332         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
8333         max_loop_iterations_int.
8334         (tree_unswitch_outer_loop): Likewise.
8335
8336 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
8337
8338         PR tree-optimization/69489
8339         * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
8340         (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
8341         Revise dump message.
8342         (if_convertible_bb_p): Remove check on edge count of basic block's
8343         predecessors.
8344
8345 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
8346
8347         PR tree-optimization/56625
8348         PR tree-optimization/69489
8349         * tree-data-ref.h (DR_INNERMOST): New macro.
8350         * tree-if-conv.c (innermost_loop_behavior_hash): New class for
8351         hashing struct innermost_loop_behavior.
8352         (ref_DR_map): Remove.
8353         (innermost_DR_map): New map.
8354         (baseref_DR_map): Revise comment.
8355         (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
8356         to innermost_DR_map accroding to its innermost loop behavior.
8357         (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
8358         to its innermost loop behavior.
8359         (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
8360         Add initialization for innermost_DR_map.  Record memory reference
8361         in DR_BASE_ADDRESS if the reference is compound one or it doesn't
8362         have innermost loop behavior.
8363         (if_convertible_loop_p): Remove release for ref_DR_map.  Release
8364         innermost_DR_map.
8365
8366 2016-04-20  Uros Bizjak  <ubizjak@gmail.com>
8367
8368         * config/i386/i386.md (*lea<mode>_general_1): Rename from
8369         *lea_general_1.  Use explicit SWI12 mode interator.
8370         (*lea<mode>_general_2): Rename from *lea_general_2.
8371         Use explicit SWI12 mode interator.
8372         (*lea<mode>_general_3): Rename from *lea_general_3.
8373         Use explicit SWI12 mode interator.
8374         (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
8375         Use explicit SWI12 mode interator.
8376         (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
8377         Use explicit SWI48 mode interator.
8378
8379 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
8380
8381         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
8382         Short-cut unaligned load and store cases.  Handle all integer
8383         vector modes.
8384         (ix86_expand_vector_move_misalign): Short-cut unaligned load
8385         and store cases.  Call ix86_avx256_split_vector_move_misalign
8386         directly without checking mode class.
8387
8388 2016-04-20  Andrew Pinski  <apinski@cavium.com>
8389             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8390
8391         PR target/64971
8392         * config/aarch64/aarch64.md (sibcall): Force call
8393         address to be DImode for ILP32.
8394         (sibcall_value): Likewise.
8395
8396 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
8397
8398         * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
8399
8400 2016-04-20  Richard Biener  <rguenther@suse.de>
8401
8402         * gimple-match.h (maybe_build_generic_op): Adjust prototype.
8403         * gimple-match-head.c (maybe_build_generic_op): Pass all ops
8404         by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
8405         (maybe_push_res_to_seq): Adjust.
8406         * gimple-fold.c (maybe_build_generic_op): Likewise.
8407
8408 2016-04-20  Marek Polacek  <polacek@redhat.com>
8409
8410         * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
8411         rather than true.
8412
8413 2016-04-20  Ilya Enkovich  <ilya.enkovich@intel.com>
8414
8415         * config/i386/sse.md (vec_unpacks_lo_hi): Always
8416         use kmovw to support AVX512F target.
8417
8418 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
8419
8420         * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
8421
8422 2016-04-20  Marek Polacek  <polacek@redhat.com>
8423
8424         PR tree-optimization/70725
8425         * tree-if-conv.c (is_false_predicate): New function.
8426         (predicate_mem_writes): Use it.
8427
8428 2016-04-20  Richard Biener  <rguenther@suse.de>
8429
8430         PR tree-optimization/70726
8431         * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
8432         shift amounts from a pattern stmt operand.
8433
8434 2016-04-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8435
8436         PR target/70674
8437         * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
8438         stack_restore_from_fpr pattern when restoring r15.
8439         (s390_optimize_prologue): Strip away the memory barrier in the
8440         parallel when trying to get rid of restore insns.
8441         * config/s390/s390.md ("stack_restore_from_fpr"): New insn
8442         definition for loading the stack pointer from an FPR.  Compared to
8443         the normal move insn this pattern includes a full memory barrier.
8444
8445 2016-04-19  Jakub Jelinek  <jakub@redhat.com>
8446
8447         PR middle-end/70680
8448         * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
8449         implicitly linear or lastprivate iterator on the outer context.
8450
8451 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
8452
8453         * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
8454         alignment check.
8455         * config/i386/i386.md (ssememalign): Removed.
8456         * config/i386/sse.md: Remove ssememalign attribute from patterns.
8457
8458 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
8459
8460         PR target/69201
8461         * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
8462         const short * to __builtin_ia32_loaddquhi512_mask.
8463         (_mm512_maskz_loadu_epi16): Likewise.
8464         (_mm512_mask_storeu_epi16): Pass short * to
8465         __builtin_ia32_storedquhi512_mask.
8466         (_mm512_mask_loadu_epi8): Pass const char * to
8467         __builtin_ia32_loaddquqi512_mask.
8468         (_mm512_maskz_loadu_epi8): Likewise.
8469         (_mm512_mask_storeu_epi8): Pass char * to
8470         __builtin_ia32_storedquqi512_mask.
8471         * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
8472         const double * to __builtin_ia32_loadupd512_mask.
8473         (_mm512_mask_loadu_pd): Likewise.
8474         (_mm512_maskz_loadu_pd): Likewise.
8475         (_mm512_storeu_pd): Pass double * to
8476         __builtin_ia32_storeupd512_mask.
8477         (_mm512_mask_storeu_pd): Likewise.
8478         (_mm512_loadu_ps): Pass const float * to
8479         __builtin_ia32_loadups512_mask.
8480         (_mm512_mask_loadu_ps): Likewise.
8481         (_mm512_maskz_loadu_ps): Likewise.
8482         (_mm512_storeu_ps): Pass float * to
8483         __builtin_ia32_storeups512_mask.
8484         (_mm512_mask_storeu_ps): Likewise.
8485         (_mm512_mask_loadu_epi64): Pass const long long * to
8486         __builtin_ia32_loaddqudi512_mask.
8487         (_mm512_maskz_loadu_epi64): Likewise.
8488         (_mm512_mask_storeu_epi64): Pass long long *
8489         to __builtin_ia32_storedqudi512_mask.
8490         (_mm512_loadu_si512): Pass const int * to
8491         __builtin_ia32_loaddqusi512_mask.
8492         (_mm512_mask_loadu_epi32): Likewise.
8493         (_mm512_maskz_loadu_epi32): Likewise.
8494         (_mm512_storeu_si512): Pass int * to
8495         __builtin_ia32_storedqusi512_mask.
8496         (_mm512_mask_storeu_epi32): Likewise.
8497         * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
8498         char * to __builtin_ia32_storedquqi256_mask.
8499         (_mm_mask_storeu_epi8): Likewise.
8500         (_mm256_mask_loadu_epi16): Pass const short * to
8501         __builtin_ia32_loaddquhi256_mask.
8502         (_mm256_maskz_loadu_epi16): Likewise.
8503         (_mm_mask_loadu_epi16): Pass const short * to
8504         __builtin_ia32_loaddquhi128_mask.
8505         (_mm_maskz_loadu_epi16): Likewise.
8506         (_mm256_mask_loadu_epi8): Pass const char * to
8507         __builtin_ia32_loaddquqi256_mask.
8508         (_mm256_maskz_loadu_epi8): Likewise.
8509         (_mm_mask_loadu_epi8): Pass const char * to
8510         __builtin_ia32_loaddquqi128_mask.
8511         (_mm_maskz_loadu_epi8): Likewise.
8512         (_mm256_mask_storeu_epi16): Pass short * to.
8513         __builtin_ia32_storedquhi256_mask.
8514         (_mm_mask_storeu_epi16): Pass short * to.
8515         __builtin_ia32_storedquhi128_mask.
8516         * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
8517         const double * to __builtin_ia32_loadupd256_mask.
8518         (_mm256_maskz_loadu_pd): Likewise.
8519         (_mm_mask_loadu_pd): Pass onst double * to
8520         __builtin_ia32_loadupd128_mask.
8521         (_mm_maskz_loadu_pd): Likewise.
8522         (_mm256_mask_storeu_pd): Pass double * to
8523         __builtin_ia32_storeupd256_mask.
8524         (_mm_mask_storeu_pd): Pass double * to
8525         __builtin_ia32_storeupd128_mask.
8526         (_mm256_mask_loadu_ps): Pass const float * to
8527         __builtin_ia32_loadups256_mask.
8528         (_mm256_maskz_loadu_ps): Likewise.
8529         (_mm_mask_loadu_ps): Pass const float * to
8530         __builtin_ia32_loadups128_mask.
8531         (_mm_maskz_loadu_ps): Likewise.
8532         (_mm256_mask_storeu_ps): Pass float * to
8533         __builtin_ia32_storeups256_mask.
8534         (_mm_mask_storeu_ps): ass float * to
8535         __builtin_ia32_storeups128_mask.
8536         (_mm256_mask_loadu_epi64): Pass const long long * to
8537         __builtin_ia32_loaddqudi256_mask.
8538         (_mm256_maskz_loadu_epi64): Likewise.
8539         (_mm_mask_loadu_epi64): Pass const long long * to
8540         __builtin_ia32_loaddqudi128_mask.
8541         (_mm_maskz_loadu_epi64): Likewise.
8542         (_mm256_mask_storeu_epi64): Pass long long * to
8543         __builtin_ia32_storedqudi256_mask.
8544         (_mm_mask_storeu_epi64): Pass long long * to
8545         __builtin_ia32_storedqudi128_mask.
8546         (_mm256_mask_loadu_epi32): Pass const int * to
8547         __builtin_ia32_loaddqusi256_mask.
8548         (_mm256_maskz_loadu_epi32): Likewise.
8549         (_mm_mask_loadu_epi32): Pass const int * to
8550         __builtin_ia32_loaddqusi128_mask.
8551         (_mm_maskz_loadu_epi32): Likewise.
8552         (_mm256_mask_storeu_epi32): Pass int * to
8553         __builtin_ia32_storedqusi256_mask.
8554         (_mm_mask_storeu_epi32): Pass int * to
8555         __builtin_ia32_storedqusi128_mask.
8556         * config/i386/i386-builtin-types.def (PCSHORT): New.
8557         (PINT64): Likewise.
8558         (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
8559         (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
8560         (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
8561         (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
8562         (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
8563         (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
8564         (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
8565         (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
8566         (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
8567         (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
8568         (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
8569         (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
8570         (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
8571         (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
8572         (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
8573         (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
8574         (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
8575         (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
8576         (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
8577         (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
8578         (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
8579         (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
8580         (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
8581         (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
8582         (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
8583         (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
8584         (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
8585         (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
8586         (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
8587         (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
8588         (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
8589         (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
8590         (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
8591         (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
8592         (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
8593         (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
8594         (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
8595         (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
8596         (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
8597         (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
8598         (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
8599         (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
8600         (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
8601         (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
8602         (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
8603         (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
8604         (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
8605         (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
8606         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
8607         use UNSPEC_STOREU.
8608         (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
8609         (ix86_avx256_split_vector_move_misalign): Don't use unaligned
8610         load nor store.
8611         (ix86_expand_vector_move_misalign): Likewise.
8612         (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
8613         to scalar function prototype for unaligned load/store builtins.
8614         (ix86_expand_special_args_builtin): Updated.
8615         * config/i386/sse.md (UNSPEC_LOADU): Removed.
8616         (UNSPEC_STOREU): Likewise.
8617         (VI_ULOADSTORE_BW_AVX512VL): Likewise.
8618         (VI_ULOADSTORE_F_AVX512VL): Likewise.
8619         (ssescalarsize): Handle V4TI, V2TI and V1TI.
8620         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
8621         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
8622         (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
8623         (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
8624         (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
8625         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
8626         (sse2_avx_avx512f>_storedqu<mode>): Likewise.
8627         (<avx512>_storedqu<mode>_mask): Likewise.
8628         (*sse4_2_pcmpestr_unaligned): Likewise.
8629         (*sse4_2_pcmpistr_unaligned): Likewise.
8630         (*mov<mode>_internal): Renamed to ...
8631         (mov<mode>_internal): This.  Remove check of AVX and IAMCU on
8632         misaligned operand.  Replace vmovdqu64 with vmovdqu<ssescalarsize>.
8633         (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
8634         (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
8635
8636 2016-04-19  Richard Biener  <rguenther@suse.de>
8637
8638         PR tree-optimization/70171
8639         * tree-ssa-phiprop.c: Include stor-layout.h.
8640         (phiprop_insert_phi): Handle the aggregate copy case.
8641         (propagate_with_phi): Likewise.
8642
8643 2016-04-19  Uros Bizjak  <ubizjak@gmail.com>
8644
8645         * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
8646         instead of simplify_gen_subreg (... , 0).
8647         (ix86_delegitimize_address): Ditto.
8648         (ix86_split_divmod): Ditto.
8649         (ix86_split_copysign_const): Ditto.
8650         (ix86_split_copysign_var): Ditto.
8651         (ix86_expand_args_builtin): Ditto.
8652         (ix86_expand_round_builtin): Ditto.
8653         (ix86_expand_special_args_builtin): Ditto.
8654         * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
8655         (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
8656         (udivmodqi4): Ditto.
8657         (absneg splitters): Ditto.
8658         (*jcc_bt<mode>_1): Ditto.
8659
8660 2016-04-19  Richard Biener  <rguenther@suse.de>
8661
8662         PR tree-optimization/70724
8663         * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
8664         restoring out from ...
8665         (free_scc_vn): ... here.
8666         * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
8667         * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
8668         tail merging.
8669         (pass_fre::execute): Restore SSA info.
8670
8671 2016-04-19  Richard Biener  <rguenther@suse.de>
8672
8673         * gimple-walk.h (struct walk_stmt_info): Add stmt member.
8674         * gimple-walk.c (walk_gimple_op): Initialize it.
8675         (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
8676         * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
8677         remapping SSA names of defs.
8678         (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
8679         adjustment.
8680
8681 2016-04-18  Vladimir Makarov  <vmakarov@redhat.com>
8682
8683         PR middle-end/70689
8684         * lra-constraints.c (equiv_substition_p): New.
8685         (process_alt_operands): Use it.
8686         (swap_operands): Swap it.
8687         (curr_insn_transform): Update it.
8688
8689 2016-04-18  Michael Matz  <matz@suse.de>
8690
8691         * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
8692         (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
8693         * tree-core.h (tree_type_common.align): Use bit-field.
8694         (tree_type_common.spare): New.
8695         (tree_decl_common.off_align): Make smaller.
8696         (tree_decl_common.align): Use bit-field.
8697
8698         * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
8699         * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
8700         (scan_sharing_clauses): Ditto.
8701         (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
8702         (omp_finish_file): Ditto.
8703         * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
8704         (layout_decl): Ditto.
8705         (relayout_decl): Ditto.
8706         (finalize_record_size): Use SET_TYPE_ALIGN.
8707         (finalize_type_size): Ditto.
8708         (finish_builtin_struct): Ditto.
8709         (layout_type): Ditto.
8710         (initialize_sizetypes): Ditto.
8711         * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
8712         * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
8713         (lookup_field_for_decl): Use SET_DECL_ALIGN.
8714         (get_chain_field): Ditto.
8715         (get_trampoline_type): Ditto.
8716         (get_nl_goto_field): Ditto.
8717         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
8718         SET_DECL_ALIGN.
8719         (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
8720         * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
8721         * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
8722         (build_qualified_type): Use SET_TYPE_ALIGN.
8723         (build_aligned_type, build_range_type_1): Ditto.
8724         (build_atomic_base): Ditto.
8725         (build_common_tree_nodes): Ditto.
8726         * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
8727         (expand_one_stack_var_at): Ditto.
8728         * coverage.c (build_var): Use SET_DECL_ALIGN.
8729         * except.c (init_eh): Ditto.
8730         * function.c (assign_parm_setup_block): Ditto.
8731         * symtab.c (increase_alignment_1): Ditto.
8732         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
8733         * tree-vect-stmts.c (ensure_base_align): Ditto.
8734         * varasm.c (align_variable): Ditto.
8735         (assemble_variable): Ditto.
8736         (build_constant_desc): Ditto.
8737         (output_constant_def_contents): Ditto.
8738
8739         * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
8740         * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
8741         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
8742         * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
8743         * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
8744
8745 2016-04-18  H.J. Lu  <hongjiu.lu@intel.com>
8746
8747         PR target/70708
8748         * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
8749         replace %vmovsd with "%vmovq".
8750         (vec_concatv2df): Likewise.
8751
8752 2016-04-18  Uros Bizjak  <ubizjak@gmail.com>
8753
8754         * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
8755         (*vec_extractv2si_0): Ditto.
8756         * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
8757         (zero_extended_scalar_load_operand splitters): Ditto.
8758         (vec_extract splitters): Ditto.
8759         (*vec_extractv4si_0_zext): Ditto.
8760         (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
8761         and lowpart_subreg.
8762         (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
8763         (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
8764         (*sse4_1_extractps): Use lowpart_subreg.
8765         * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
8766
8767 2016-04-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8768
8769         * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
8770         gld requirements.
8771         (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
8772         Mention Solaris 11 packaging changes.
8773         Update gas and gld requirements.
8774         Remove reference to pre-Solaris 10 bug.
8775         (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
8776         systems and bugs.
8777         (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
8778         with cc.
8779
8780 2016-04-17  Jan Hubicka  <jh@suse.cz>
8781
8782         * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
8783         max_loop_iterations_int.
8784
8785 2016-04-18  Richard Biener  <rguenther@suse.de>
8786
8787         PR tree-optimization/43434
8788         * tree-ssa-structalias.c (struct vls_data): New.
8789         (visit_loadstore): Handle all pointer-based accesses.
8790         (compute_dependence_clique): Compute a bitmap of restrict tags
8791         assigned bases and pass it to visit_loadstore.
8792
8793 2016-04-18  Matthew Wahab  <matthew.wahab@arm.com>
8794
8795         PR target/70711
8796         * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
8797         armv8.1-a and armv8.1-a+crc.
8798
8799 2016-04-18  Richard Biener  <rguenther@suse.de>
8800
8801         PR tree-optimization/70701
8802         * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
8803         references after translating through a memcpy.
8804
8805 2016-04-18  Richard Biener  <rguenther@suse.de>
8806
8807         * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
8808         (compute_antic): ... here.  For partial antic use regular
8809         postorder and scrap iteration.
8810         (compute_partial_antic_aux): Remove unused return value.
8811         (init_pre): Do not allocate postorder.
8812         (fini_pre): Do not free postorder.
8813
8814 2016-04-18  Richard Biener  <rguenther@suse.de>
8815
8816         PR middle-end/37870
8817         * expmed.c (extract_bit_field_1): Remove broken case
8818         using a wider MODE_INT mode.
8819
8820 2016-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
8821
8822         * has-brig.c (lendian16): Don't try to use __builtin_bswap16
8823         unless compiling with at least GCC-4.8.
8824
8825 2016-04-17  Jan Hubicka  <jh@suse.cz>
8826
8827         PR bootstrap/70706
8828         * graphite.c (graphite_finalize): Update call to
8829         tree_estimate_probability.
8830         * predict.h (tree_estimate_probability): Update prototype.
8831
8832 2016-04-17  Jan Hubicka  <jh@suse.cz>
8833
8834         * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
8835         (tree_estimate_probability): Likewise.
8836         (pass_profile::execute): Update.
8837         (report_predictor_hitrates): New function.
8838         * profile.c (compute_branch_probabilities): Use it.
8839         * predict.h (report_predictor_hitrates): Declare.
8840
8841 2016-04-17  Jan Hubicka  <jh@suse.cz>
8842
8843         PR ipa/70018
8844         * cgraph.h (cgraph_node::set_const_flag,
8845         cgraph_node::set_pure_flag): Update prototype to return bool;
8846         update comment.
8847         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
8848         of interposable symbol are interposable, too.
8849         (cgraph_set_const_flag_1): Rename to ...
8850         (set_const_flag_1): ... this one; change to self recursive function
8851         instead of call_for_symbol_thunks_and_aliases. Handle correctly
8852         clearnig the flag in all variants and also virtual thunks of const
8853         functions are pure; track if any change was done.
8854         (cgraph_node::set_const_flag): Update.
8855         (struct set_pure_flag_info): New struct.
8856         (cgraph_set_pure_flag_1): Rename to ...
8857         (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
8858         rather than pointer encoded flags; track if any changes was done;
8859         handle correctly clearning flag and setting flag of aliases already
8860         declared const.
8861         (cgraph_node::set_pure_flag): Update.
8862         (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
8863
8864 2016-04-17  Tom de Vries  <tom@codesourcery.com>
8865
8866         PR other/70433
8867         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
8868         backslash in label.
8869
8870 2016-04-17  Tom de Vries  <tom@codesourcery.com>
8871
8872         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
8873         '{}<> ' as escape-for-record.
8874
8875 2016-04-17  Tom de Vries  <tom@codesourcery.com>
8876
8877         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
8878         structure.
8879
8880 2016-04-17  Tom de Vries  <tom@codesourcery.com>
8881
8882         PR other/70185
8883         * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
8884         * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
8885         * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
8886         * passes.c (finish_optimization_passes): Only call
8887         finish_graph_dump_file if dfi->graph_dump_initialized.
8888         (execute_function_dump, pass_init_dump_file): Use
8889         dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
8890
8891 2016-04-17  Tom de Vries  <tom@codesourcery.com>
8892
8893         PR tree-optimization/70256
8894         * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
8895         (debug_varmap): New function.
8896
8897 2016-04-17  Tom de Vries  <tom@codesourcery.com>
8898
8899         PR other/70183
8900         * passes.c (pass_manager::register_pass): Propagate pflags.
8901
8902 2016-04-17  Tom de Vries  <tom@codesourcery.com>
8903
8904         PR other/68875
8905         * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
8906         * passes.c (pass_manager::pass_manager): Declare and init p_start in
8907         INSERT_PASSES_AFTER.  Add pass parameter to TERMINATE_PASS_LIST, and
8908         check if it's equal to p_start.
8909         * passes.def: Add arguments to TERMINATE_PASS_LISTs.
8910
8911 2016-04-15  Jan Hubicka  <jh@suse.cz>
8912
8913         PR ipa/70018
8914         * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
8915         function does not bind to current def.
8916         * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
8917         handle conservatively calls to functions that does not need to bind
8918         to current def.
8919         (check_call): Update call of worse_state.
8920         (ignore_edge_for_nothrow): Update.
8921         (ignore_edge_for_pure_const): Likewise.
8922         (propagate_pure_const): Update calls to worse_state.
8923         (skip_function_for_local_pure_const): Reformat comments.
8924
8925 2016-04-15  Jan Hubicka  <jh@suse.cz>
8926
8927         PR ipa/70018
8928         * cgraph.c (cgraph_node::get_availability): Add REF parameter.
8929         (cgraph_node::function_symbol): Likewise.
8930         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
8931         * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
8932         (symtab_node::ultimate_alias_target): Add REF parameter.
8933         (symtab_node::binds_to_current_def_p): Declare.
8934         (symtab_node;:ultimate_alias_target_1): Add REF parameter.
8935         (cgraph_node::function_symbol): Likewise.
8936         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
8937         (cgraph_node::get_availability): Likewise.
8938         (cgraph_edge::binds_to_current_def_p): New inline function.
8939         (varpool_node::get_availability): Add REF parameter.
8940         (varpool_node::ultimate_alias_target): Likewise.
8941         * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
8942         (symtab_node::binds_to_current_def_p): Likewise.
8943         * varpool.c (varpool_node::get_availability): Likewise.
8944
8945 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
8946
8947         PR target/70662
8948         * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
8949         Fix mode size check.
8950
8951 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
8952
8953         * BASE-VER: Set to 7.0.0.
8954
8955 2016-04-15  Alexander Monakov  <amonakov@ispras.ru>
8956
8957         * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
8958
8959 2016-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8960
8961         * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
8962         architecture revisions.
8963
8964 2016-04-15  Bernd Schmidt  <bschmidt@redhat.com>
8965
8966         * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
8967         * config/i386/i386.c (ix86_using_red_zone): No longer static.
8968         * config/i386/i386.md (stack decrement to push peepholes): Guard
8969         with !x86_using_red_zone ().
8970
8971 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
8972
8973         PR c++/70675
8974         * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
8975         to dump_generic_node.
8976         (NIY): Pass also flags to do_niy.
8977
8978 2016-04-15  Thomas Schwinge  <thomas@codesourcery.com>
8979
8980         * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
8981         (simd_clone_vector_of_formal_parm_types)
8982         (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
8983         (simd_clone_mangle, simd_clone_create)
8984         (simd_clone_adjust_return_type, create_tmp_simd_array)
8985         (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
8986         (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
8987         (ipa_simd_modify_function_body, simd_clone_linear_addend)
8988         (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
8989         (pass_data_omp_simd_clone, class pass_omp_simd_clone)
8990         (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
8991         * omp-simd-clone.c: ... this new file.
8992         (simd_clone_vector_of_formal_parm_types): Make it static.
8993         * Makefile.in (OBJS): Add omp-simd-clone.o.
8994
8995 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
8996
8997         PR target/70662
8998         * config/i386/sse.md: Use proper memory operand modifiers.
8999
9000
9001 2016-04-15  Richard Biener  <rguenther@suse.de>
9002         Alan Modra  <amodra@gmail.com>
9003
9004         PR tree-optimization/70130
9005         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
9006         when alignment stays not the same and no not use the realign
9007         scheme then.
9008
9009 2016-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
9010
9011         PR target/70669
9012         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
9013         direct move handlers for KFmode. Change TFmode handlers test from
9014         FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
9015
9016 2016-04-14  Jakub Jelinek  <jakub@redhat.com>
9017
9018         PR c++/70594
9019         * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
9020         * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
9021         (inlined_polymorphic_ctor_dtor_block_p): Use it.
9022         * tree-ssa-live.c (remove_unused_scope_block_p): When
9023         in_ctor_dtor_block, avoid discarding not just BLOCKs with
9024         BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
9025         block_ultimate_origin is FUNCTION_DECL.
9026         (remove_unused_locals): If current_function_decl is
9027         polymorphic_ctor_dtor_p, pass initial true to
9028         remove_unused_scope_block_p' is_ctor_dtor_block.
9029
9030 2016-04-14  Martin Sebor  <msebor@redhat.com>
9031
9032         PR c++/69517
9033         PR c++/70019
9034         PR c++/70588
9035         * doc/extend.texi (Variable Length): Revert.
9036
9037 2016-04-14  Marek Polacek  <polacek@redhat.com>
9038             Jan Hubicka  <hubicka@ucw.cz>
9039
9040         PR c++/70029
9041         * tree.c (verify_type): Disable the canonical type of main variant
9042         check.
9043
9044 2016-04-14  Jason Merrill  <jason@redhat.com>
9045
9046         * cfgexpand.c, expr.c: Revert previous change.
9047
9048 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
9049
9050         PR middle-end/70643
9051         * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
9052         when building a mem ref for the incoming reduction variable.
9053
9054 2016-04-14  Richard Biener  <rguenther@suse.de>
9055
9056         PR tree-optimization/70614
9057         * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
9058         loop if the evolution dropped to chrec_dont_know.
9059         (interpret_condition_phi): Likewise.
9060
9061 2016-04-14  Richard Biener  <rguenther@suse.de>
9062
9063         PR tree-optimization/70623
9064         * tree-ssa-pre.c (changed_blocks): Make global ...
9065         (compute_antic): ... local here.  Move and fix worklist
9066         handling here.  Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
9067         (compute_antic_aux): Add dumping for MAX assumed succs.  Remove
9068         worklist handling, dump when ANTIC_IN changed.
9069         (compute_partial_antic_aux): Remove worklist handling.
9070         (init_pre): Do not compute post dominators.  Add a comment about
9071         the CFG order chosen.
9072         (fini_pre): Do not free post dominators.
9073
9074 2016-04-13  Martin Sebor  <msebor@redhat.com>
9075
9076         PR c++/69517
9077         PR c++/70019
9078         PR c++/70588
9079         * doc/extend.texi (Variable Length): Document C++ specifics.
9080
9081 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
9082
9083         PR c++/70641
9084         * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
9085         on all recursive call stmts.  Return TODO_cleanup_cfg if any dead
9086         eh edges have been purged.
9087
9088         PR c++/70594
9089         * tree-sra.c (create_access_replacement,
9090         get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
9091         gets fancy name.
9092         * tree-pretty-print.c (dump_fancy_name): New function.
9093         (dump_decl_name, dump_generic_node): Use it.
9094
9095 2016-04-13  Jason Merrill  <jason@redhat.com>
9096
9097         * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
9098         * expr.c (expand_expr_real_1): Likewise.
9099
9100 2016-04-13  Ilya Enkovich  <ilya.enkovich@intel.com>
9101
9102         * config/i386/i386.md (kunpckhi): Swap operands.
9103         (kunpcksi): Likewise.
9104         (kunpckdi): Likewise.
9105         * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
9106         (vec_pack_trunc_<mode>): Likewise.
9107
9108 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
9109
9110         PR debug/70628
9111         * explow.c (convert_memory_address_addr_space_1): Formatting fix.
9112
9113         PR middle-end/70633
9114         * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
9115         gimplification turns some element into non-constant.
9116
9117         PR debug/70628
9118         * rtl.h (convert_memory_address_addr_space_1): New prototype.
9119         * explow.c (convert_memory_address_addr_space_1): No longer static,
9120         add NO_EMIT argument and don't call convert_modes if true, pass
9121         it down recursively, remove break after return.
9122         (convert_memory_address_addr_space): Adjust caller.
9123         * simplify-rtx.c (simplify_unary_operation_1): Call
9124         convert_memory_address_addr_space_1 instead of convert_memory_address,
9125         if it returns NULL, don't simplify.
9126
9127 2016-04-12  Eric Botcazou  <ebotcazou@adacore.com>
9128
9129         PR target/70630
9130         * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
9131
9132 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
9133
9134         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
9135         Bump the upper SIMDLEN limits, so that if the return type or
9136         characteristic type if the return type is void can be passed in
9137         all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
9138         allowed.
9139
9140 2016-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
9141
9142         PR target/70640
9143         * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
9144         Do not use "=" constraint on an input constraint.
9145         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
9146         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
9147         (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
9148         generates (neg (abs ...)) instead of (abs ...).
9149
9150 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
9151
9152         PR rtl-optimization/70596
9153         * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
9154         just invalidate LRA data and reset them.  Adjust dump wording.
9155
9156 2016-04-12  Martin Liska  <mliska@suse.cz>
9157
9158         Revert
9159         2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
9160
9161         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
9162         estimates here.
9163         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
9164         max_loop_iterations_int.
9165         (tree_unswitch_outer_loop): Likewise.
9166         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
9167         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
9168
9169 2016-04-12  Tom de Vries  <tom@codesourcery.com>
9170
9171         PR tree-optimization/68756
9172         * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
9173         instead of new_name.
9174
9175 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
9176
9177         PR tree-optimization/70602
9178         * tree-sra.c (generate_subtree_copies): Don't write anything into
9179         constant pool decls.
9180
9181         * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
9182         regardless whether there are depend clauses or not.
9183
9184 2016-04-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
9185
9186         PR target/70381
9187         * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
9188         target attribute and pragma from changing the -mfloat128
9189         and -mfloat128-hardware options.
9190
9191         * doc/extend.texi (Additional Floating Types): Document PowerPC
9192         __float128 restrictions.
9193
9194 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
9195
9196         PR target/70133
9197         * config/aarch64/driver-aarch64.c
9198         (aarch64_get_extension_string_for_isa_flags): New.
9199         (arch_extension): Rename to...
9200         (aarch64_arch_extension): ...This.
9201         (ext_to_feat_string): Rename to...
9202         (aarch64_extensions): ...This.
9203         (aarch64_core_data): Keep track of architecture extension flags.
9204         (cpu_data): Rename to...
9205         (aarch64_cpu_data): ...This.
9206         (aarch64_arch_driver_info): Keep track of architecture extension
9207         flags.
9208         (get_arch_name_from_id): Rename to...
9209         (get_arch_from_id): ...This, change return type.
9210         (host_detect_local_cpu): Update and reformat for renames, handle
9211         extensions through common infrastructure.
9212
9213 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
9214
9215         PR target/70133
9216         * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
9217         track of a canonical flag name.
9218         (all_extensions): Likewise.
9219         (arch_to_arch_name): Also track extension flags enabled by the arch.
9220         (all_architectures): Likewise.
9221         (aarch64_parse_extension): Move to here.
9222         (aarch64_get_extension_string_for_isa_flags): Take a new argument,
9223         rework.
9224         (aarch64_rewrite_selected_cpu): Update for above change.
9225         * config/aarch64/aarch64-option-extensions.def: Rework the way flags
9226         are handled, such that the single explicit value enabled by an
9227         extension is kept seperate from the implicit values it also enables.
9228         * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
9229         to here.
9230         (aarch64_parse_extension): New.
9231         * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
9232         here to config/aarch64/aarch64-protos.h.
9233         (aarch64_parse_extension): Move from here to
9234         common/config/aarch64/aarch64-common.c.
9235         (aarch64_option_print): Update.
9236         (aarch64_declare_function_name): Likewise.
9237         (aarch64_start_file): Likewise.
9238         * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
9239         the canonical flag for extensions.
9240         * config.gcc (aarch64*-*-*): Extend regex for capturing extension
9241         flags.
9242
9243 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
9244
9245         * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
9246         AARCH64_FL_CRC.
9247
9248 2016-04-09  Tom de Vries  <tom@codesourcery.com>
9249
9250         PR tree-optimization/68953
9251         * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
9252         first to last subscript.
9253
9254 2016-04-09  Jakub Jelinek  <jakub@redhat.com>
9255
9256         PR tree-optimization/70586
9257         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
9258         for any calls.
9259
9260 2016-04-08  Cesar Philippidis  <cesar@codesourcery.com>
9261
9262         PR lto/70289
9263         PR ipa/70348
9264         PR tree-optimization/70373
9265         PR middle-end/70533
9266         PR middle-end/70534
9267         PR middle-end/70535
9268         * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
9269         clauses for acc parallel reductions as necessary.  Error on those
9270         that are private.
9271         * omp-low.c (scan_sharing_clauses): Don't install variables which
9272         are used in acc parallel reductions.
9273         (lower_rec_input_clauses): Remove dead code.
9274         (lower_oacc_reductions): Add support for reference reductions.
9275         (lower_reduction_clauses): Remove dead code.
9276         (lower_omp_target): Don't remap variables appearing in acc parallel
9277         reductions.
9278         * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
9279
9280 2016-04-08  Jakub Jelinek  <jakub@redhat.com>
9281
9282         PR middle-end/70593
9283         * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
9284         with multiple SSA_NAME defs, force the outputs other than first
9285         to be live before calling live_track_process_def on each output.
9286
9287         PR rtl-optimization/70574
9288         * fwprop.c (forward_propagate_and_simplify): Don't add
9289         REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
9290         (try_fwprop_subst): Don't add REG_EQUAL note if there are any
9291         paradoxical subregs within *loc.
9292
9293 2016-04-08  Thomas Schwinge  <thomas@codesourcery.com>
9294
9295         * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
9296         -ftree-parallelize-loops={0,1}.
9297         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
9298         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
9299         * config/ia64/hpux.h (LIB_SPEC): Likewise.
9300         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
9301         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
9302
9303 2016-04-08  Maxim Ostapenko  <m.ostapenko@samsung.com>
9304
9305         PR sanitizer/70541
9306         * asan.c (instrument_derefs): If we get unknown location, extract it
9307         with EXPR_LOCATION.
9308         (maybe_instrument_call): Instrument gimple_call's arguments if needed.
9309
9310 2016-04-08  Tom de Vries  <tom@codesourcery.com>
9311
9312         * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
9313         implicit firstprivate clause.
9314
9315 2016-04-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9316
9317         PR target/70566
9318         * config/arm/thumb2.md (tst + branch-> lsls + branch
9319         peephole below *orsi_not_shiftsi_si): Require that condition
9320         register is dead after the peephole.
9321         (second peephole after the above): Likewise.
9322
9323 2016-04-08  Alan Modra  <amodra@gmail.com>
9324
9325         PR target/70117
9326         * builtins.c (fold_builtin_classify): For IBM extended precision,
9327         look at just the high-order double to test for NaN.
9328         (fold_builtin_interclass_mathfn): Similarly for Inf.  For isnormal
9329         test just the high double for Inf but both doubles for subnormal
9330         limit.
9331
9332 2016-04-07  Jakub Jelinek  <jakub@redhat.com>
9333
9334         * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
9335         * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
9336         node->simdclone->mask_mode != VOIDmode masks.
9337         (simd_clone_adjust_argument_types): Likewise.  Move sc var definition
9338         earlier, use it instead of node->simdclone.
9339         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
9340         Set clonei->mask_mode.
9341
9342 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
9343
9344         PR c/70436
9345         * parser.c (cp_parser_iteration_statement): New parameter IF_P.
9346         Pass it through to cp_parser_already_scoped_statement.
9347         (cp_parser_already_scoped_statement): New parameter IF_P.  Pass
9348         it through to cp_parser_statement.
9349         (cp_parser_statement): Pass IF_P through to
9350         cp_parser_iteration_statement.
9351         (cp_parser_pragma): Adjust call to
9352         cp_parser_iteration_statement.
9353
9354 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
9355
9356         PR c/70436
9357         * gimplify.c (gimplify_omp_ordered): Add explicit braces to
9358         resolve a future -Wparentheses warning.
9359         * omp-low.c (scan_sharing_clauses): Likewise.
9360         * tree-parloops.c (eliminate_local_variables): Likewise.
9361
9362 2016-04-06  Vladimir Makarov  <vmakarov@redhat.com>
9363
9364         PR rtl-optimization/70398
9365         * lra-constraints.c (process_address_1): Check zero scale and code
9366         for reloading with zero scale.
9367
9368 2016-04-06  Uros Bizjak  <ubizjak@gmail.com>
9369
9370         * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
9371         (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
9372
9373 2016-04-06  Jakub Jelinek  <jakub@redhat.com>
9374
9375         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
9376         Add support for AVX512F clones, include them by default for
9377         exported OpenMP declare simd functions.  For AVX2 allow simdlen 32
9378         and use it if charasteric type is 8-bit, for AVX512F allow simdlen
9379         up to 128.
9380
9381         PR middle-end/70550
9382         * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
9383         * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
9384         firstprivate clauses.
9385         * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
9386         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
9387         (lower_omp_target): Set TREE_NO_WARNING for
9388         non-addressable possibly uninitialized vars which are copied into
9389         addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
9390
9391 2016-04-05  John David Anglin  <danglin@gcc.gnu.org>
9392
9393         * config/pa/predicates.md (integer_store_memory_operand): Accept
9394         REG+D operands with a large offset when reload_in_progress is true.
9395         (floating_point_store_memory_operand): Likewise.
9396
9397 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
9398
9399         PR c++/70336
9400         * match.pd (nested int casts): Limit to GIMPLE.
9401
9402 2016-04-05  Jan Hubicka  <hubicka@ucw.cz>
9403
9404         PR ipa/66223
9405         * ipa-devirt.c (maybe_record_node): Fix comment; use
9406         SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
9407
9408 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
9409
9410         PR rtl-optimization/70542
9411         * ree.c (add_removable_extension): For VECTOR_MODE_P punt
9412         if there are any uses other than insn or debug insns.
9413
9414 2016-04-05  Marc Glisse  <marc.glisse@inria.fr>
9415             Jakub Jelinek  <jakub@redhat.com>
9416
9417         PR tree-optimization/70509
9418         * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
9419         Shift HOST_WIDE_INT_1U instead of 1.
9420
9421 2016-04-05  Zdenek Sojka  <zsojka@seznam.cz>
9422
9423         PR tree-optimization/70509
9424         * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
9425         of the vector base type for index.
9426
9427 2016-04-05  Uros Bizjak  <ubizjak@gmail.com>
9428
9429         PR target/70510
9430         * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
9431
9432 2016-04-05  Richard Biener  <rguenther@suse.de>
9433
9434         PR tree-optimization/70526
9435         * tree-sra.c (build_ref_for_offset): Use prev_base to
9436         extract the alias pointer type.
9437
9438 2016-04-05  Richard Biener  <rguenther@suse.de>
9439
9440         * dse.c (struct store_info): Remove alias_set member.
9441         (struct read_info_type): Likewise.
9442         (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
9443         spill_deleted, clear_alias_set_lookup): Remove.
9444         (get_group_info): Remove dead base == NULL_RTX case.
9445         (dse_step0): Remove initialization of removed variables.
9446         (delete_dead_store_insn): Reomve alias set dumping.
9447         (free_read_records): Remove alias_set handling.
9448         (canon_address): Remove alias_set_out parameter.
9449         (record_store): Remove spill_alias_set, it's always zero.
9450         (check_mem_read_rtx): Likewise.
9451         (dse_step2): Rename from ...
9452         (dse_step2_nospill): ... this.  Adjust.
9453         (scan_stores): Rename from ...
9454         (scan_stores_nospill): ... this.
9455         (scan_reads): Rename from ...
9456         (scan_reads_nospill): ... this.
9457         (scan_stores_spill, scan_reads_spill): Remove.
9458         (dse_step3_scan): Remove for_spills argument which is always false.
9459         (dse_step3): Likewise.
9460         (dse_step5): Rename from ...
9461         (dse_step5_nospill): ... this.  Remove alias_set handling.
9462         (rest_of_handle_dse): Adjust.
9463
9464 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
9465
9466         PR target/70525
9467         * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
9468         Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
9469         V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
9470         (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
9471
9472 2016-04-05  Richard Biener  <rguenther@suse.de>
9473
9474         PR middle-end/70499
9475         * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
9476         non-register type temporaries into SSA.
9477
9478 2016-04-04  Jan Hubicka  <hubicka@ucw.cz>
9479
9480         PR ipa/66223
9481         * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
9482         calls when sanitizing.
9483         (possible_polymorphic_call_target_p): Fix formatting.
9484
9485 2016-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9486             Jakub Jelinek <jakub@redhat.com>
9487
9488         PR middle-end/70457
9489         * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
9490         to ensure a call statement is compatible with a built-in's
9491         prototype.
9492         * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
9493         Likewise.
9494
9495 2016-04-04  Richard Biener  <rguenther@suse.de>
9496
9497         PR rtl-optimization/70484
9498         * rtl.h (canon_output_dependence): Declare.
9499         * alias.c (canon_output_dependence): New function.
9500         * dse.c (record_store): Use canon_output_dependence rather
9501         than canon_true_dependence.
9502
9503 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
9504
9505         PR ipa/68881
9506         * cgraph.h (symtab_node::copy_visibility_from): New function.
9507         * symtab.c (symtab_node::copy_visibility_from): New function.
9508         * ipa-visibility.c (optimize_weakref): New function.
9509         (function_and_variable_visibility): Use it.
9510
9511 2016-04-04  Martin Liska  <mliska@suse.cz>
9512
9513         PR hsa/70402
9514         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
9515         value that is really in range handled by SBR instruction.
9516         * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
9517         * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
9518         * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
9519
9520 2016-04-03  Oleg Endo  <olegendo@gcc.gnu.org>
9521
9522         PR target/70416
9523         PR target/67391
9524         * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
9525         set, but not for SP_REG operands.
9526
9527 2016-04-02  Martin Sebor  <msebor@redhat.com>
9528
9529         PR c++/67376
9530         * fold-const.c (maybe_nonzero_address): New function.
9531         (fold_comparison): Call it.  Fold equality and relational
9532         expressions involving null pointers.
9533         (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
9534
9535 2016-03-31  Evandro Menezes  <e.menezes@samsung.com>
9536
9537         Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
9538         the "Y" constraint (scalar FP 0.0 immediate).
9539
9540         * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
9541         Add the "const_double" to the list of operand constraints.
9542
9543 2016-04-01  Jakub Jelinek  <jakub@redhat.com>
9544
9545         PR rtl-optimization/70467
9546         * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
9547         If low word of the last operand is 0, just emit addition/subtraction
9548         for the high word.
9549
9550 2016-04-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9551
9552         PR target/70404
9553         * config/s390/s390.c (s390_expand_insv): Check for everything
9554         constant instead of just VOIDmode stuff.
9555
9556 2016-04-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9557
9558         PR target/70496
9559         * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
9560
9561 2016-04-01  Nathan Sidwell  <nathan@acm.org>
9562
9563         * tree.def (TRY_CATCH_EXPR): Correct documentation.
9564
9565 2016-03-31  Vladimir Makarov  <vmakarov@redhat.com>
9566
9567         PR rtl-optimization/70461
9568         * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
9569         is necessary.
9570
9571 2016-03-31  Martin Liska  <mliska@suse.cz>
9572
9573         PR hsa/70399
9574         * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
9575         a tree value or an immediate integer value to a buffer
9576         that is eventually copied to a BRIG section.
9577         (emit_immediate_operand): Call the function here.
9578         * hsa-dump.c (dump_hsa_immed): Remove checking assert.
9579         * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
9580         of class' fields that are removed.
9581         (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
9582         * hsa.h (class hsa_op_immed): Remove m_brig_repr and
9583         m_brig_repr_size fields.
9584
9585 2016-03-31  Martin Liska  <mliska@suse.cz>
9586
9587         PR hsa/70391
9588         * hsa-gen.c (hsa_function_representation::update_dominance): New
9589         function.
9590         (convert_addr_to_flat_segment): Likewise.
9591         (gen_hsa_memory_set): New alignment argument.
9592         (gen_hsa_ctor_assignment): Likewise.
9593         (gen_hsa_insns_for_single_assignment): Provide alignment
9594         to gen_hsa_ctor_assignment.
9595         (gen_hsa_insns_for_direct_call): Add new argument.
9596         (expand_lhs_of_string_op): New function.
9597         (expand_string_operation_builtin): Likewise.
9598         (expand_memory_copy): New function.
9599         (expand_memory_set): New function.
9600         (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
9601         (convert_switch_statements): Change signature.
9602         (generate_hsa): Use a return value of the function.
9603         (pass_gen_hsail::execute): Do not call
9604         convert_switch_statements here.
9605         * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
9606         * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
9607         (hsa_function_representation::update_dominance): New function.
9608
9609 2016-03-31  Martin Liska  <mliska@suse.cz>
9610
9611         PR hsa/70391
9612         * hsa-brig.c (emit_directive_variable): Emit alignment
9613         according to hsa_symbol::m_align.
9614         * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
9615         (dump_hsa_symbol): Dump alignment of HSA symbols.
9616         * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
9617         (gen_hsa_addr_with_align): New function.
9618         (hsa_bitmemref_alignment): Use newly added function.
9619         (gen_hsa_insns_for_load): Likewise.
9620         (gen_hsa_insns_for_store): Likewise.
9621         (gen_hsa_memory_copy): New argument added.
9622         (gen_hsa_insns_for_single_assignment): Respect
9623         alignment for assignments processed via gen_hsa_memory_copy.
9624         (gen_hsa_insns_for_direct_call): Likewise.
9625         (gen_hsa_insns_for_return): Likewise.
9626         (gen_function_def_parameters): Set default alignment.
9627         * hsa.c (hsa_object_alignment): New function.
9628         (hsa_byte_alignment): Pasted function.
9629         * hsa.h (hsa_symbol::m_align): New field.
9630
9631 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
9632
9633         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
9634         scratch field for goto case.
9635
9636 2016-03-31  James Greenhalgh  <james.greenhalgh@arm.com>
9637
9638         * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
9639
9640 2016-03-31  Ilya Enkovich  <enkovich.gnu@gmail.com>
9641
9642         PR target/70442
9643         * config/i386/i386.c (scalar_chain::convert_op): Fix description.
9644         (scalar_chain::convert_insn): Call convert_op for reg
9645         moves to handle undefined registers.
9646
9647 2016-03-31  Nathan Sidwell  <nathan@acm.org>
9648
9649         PR c++/70393
9650         * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
9651         Assert we don't want to move backwards.
9652
9653 2016-03-31  Kirill Yukhin  <kirill.yukhin@intel.com>
9654
9655         PR target/70453
9656         * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
9657
9658 2016-03-31  Jakub Jelinek  <jakub@redhat.com>
9659
9660         PR rtl-optimization/70460
9661         * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
9662         with operand from REG_LABEL_OPERAND, instead substitute
9663         SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
9664         Don't do anything for REG_NON_LOCAL_GOTO jumps.
9665
9666 2016-03-31  Martin Liska  <mliska@suse.cz>
9667
9668         * passes.c (execute_one_pass): Do not call
9669         todo_after for a discarded function.
9670
9671 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
9672
9673         * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
9674         (no_cost, infinite_cost): Initialize the new field.
9675         (get_computation_cost_at): Record setup cost.
9676         (determine_use_iv_cost_address): Skip cost computation for sub
9677         uses if we can estimate it without losing accuracy.
9678
9679 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
9680
9681         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
9682         estimates here.
9683         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
9684         max_loop_iterations_int.
9685         (tree_unswitch_outer_loop): Likewise.
9686         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
9687         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
9688
9689 2016-03-30  Richard Biener  <rguenther@suse.de>
9690
9691         PR middle-end/70450
9692         * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
9693
9694 2016-03-30  Jakub Jelinek  <jakub@redhat.com>
9695
9696         PR target/70421
9697         * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
9698         in gen_blendm expander.
9699
9700 2016-03-30  Nick Clifton  <nickc@redhat.com>
9701
9702         PR target/62254
9703         * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
9704         case where we are already provided with an SImode SUBREG.
9705
9706 2016-03-30  H.J. Lu  <hongjiu.lu@intel.com>
9707
9708         PR target/70439
9709         * config/i386/i386.c (ix86_expand_epilogue): Properly check
9710         conflict between DRAP register and __builtin_eh_return.
9711
9712 2016-03-30  Michael Matz  <matz@suse.de>
9713             Richard Biener  <rguenther@suse.de>
9714
9715         PR ipa/12392
9716         * ipa-polymorphic-call.c (struct type_change_info): Change
9717         speculative to an unsigned allowing to limit the work we do.
9718         (csftc_abort_walking_p): New inline function..
9719         (check_stmt_for_type_change): Limit the number of may-defs
9720         skipped for speculative devirtualization to
9721         max-speculative-devirt-maydefs.
9722         * params.def (max-speculative-devirt-maydefs): New param.
9723         * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
9724
9725 2016-03-30  Mike Stump  <mrs@gcc.gnu.org>
9726
9727         PR target/63890
9728         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
9729         and TARGET_MACHO.
9730
9731 2016-03-30  Patrick Palka  <ppalka@gcc.gnu.org>
9732
9733         PR tree-optimization/59124
9734         * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
9735         where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
9736
9737 2016-03-29  Jeff Law  <law@redhat.com>
9738
9739         * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
9740
9741 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
9742
9743         * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
9744         to HOST_WIDE_INT.
9745
9746 2016-03-29  Thomas Schwinge  <thomas@codesourcery.com>
9747
9748         * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
9749         * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
9750         gcrt0.o if linking dynamically.
9751
9752 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
9753
9754         PR ipa/70283
9755         * ipa-devirt.c (methods_equal_p): New function.
9756         (compare_virtual_tables): Use it.
9757         * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
9758         * cgraphclones.c (clone_function_name_1): Use
9759         symbol_table::symbol_suffix_separator.
9760         * coverage.c (build_var): Likewise.
9761         * symtab.c (symbol_table::symbol_suffix_separator): New.
9762
9763 2016-03-29  Jakub Jelinek  <jakub@redhat.com>
9764
9765         PR rtl-optimization/70429
9766         * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
9767         (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
9768         mode != result_mode.
9769
9770         PR c++/70353
9771         * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
9772
9773         PR tree-optimization/70405
9774         * ssa-iterators.h (num_imm_uses): Add missing braces.
9775
9776 2016-03-29  Vladimir Makarov  <vmakarov@redhat.com>
9777
9778         PR rtl-optimization/68695
9779         * ira-color.c (allocno_copy_cost_saving): New.
9780         (improve_allocation): Use it.
9781
9782 2016-03-29  Richard Henderson  <rth@redhat.com>
9783
9784         PR middle-end/70355
9785         * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
9786
9787 2016-03-29  Richard Biener  <rguenther@suse.de>
9788
9789         PR middle-end/70424
9790         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
9791         use alignment returned by get_pointer_alignment_1 if it is
9792         bigger than BITS_PER_UNIT.
9793         * builtins.c (get_pointer_alignment_1): Do not return true
9794         for alignment extracted from SSA info.
9795
9796 2016-03-28  James Bowman  <james.bowman@ftdichip.com>
9797
9798         * config/ft32/ft32.opt (mnodiv): New.
9799         * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
9800         * doc/invoke.texi (FT32 Options -mnodiv): New.
9801
9802 2016-03-28  Kirill Yukhin  <kirill.yukhin@intel.com>
9803
9804         PR target/70406
9805         * config/i386/i386.md (define_split, andn): Fix modes.
9806
9807 2016-03-26  Richard Biener  <rguenther@suse.de>
9808             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9809
9810         PR ipa/70366
9811         * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
9812         instead of
9813         TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
9814         as 2nd argument to cl_optimization_restore().
9815
9816 2016-03-25  Richard Henderson  <rth@redhat.com>
9817
9818         PR target/70120
9819         * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
9820         * config/aarch64/aarch64-protos.h: Declare it.
9821         * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
9822
9823 2016-03-25  Alan Modra  <amodra@gmail.com>
9824
9825         PR target/70052
9826         * config/rs6000/constraints.md (j): Simplify.
9827         * config/rs6000/predicates.md (easy_fp_constant): Exclude
9828         decimal float 0.D.
9829         * config/rs6000/rs6000.md (zero_fp): New mode_attr.
9830         (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
9831          mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
9832         in all constraint alternatives.
9833         (movtd_64bit_nodm): Delete "j" constraint alternative.
9834
9835 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
9836
9837         * tree-ssa-propagate.c: Enhance docs for
9838         SSA_PROP_NOT_INTERESTING.
9839
9840 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
9841
9842         * doc/extend.texi: Fix typo in documentation to pure attribute.
9843
9844 2016-03-24  John David Anglin  <danglin@gcc.gnu.org>
9845
9846         PR target/70319
9847         * config/pa/pa.md (bswapdi2): Use a scratch register.
9848
9849 2016-03-24  Richard Henderson  <rth@redhat.com>
9850
9851         PR middle-end/69845
9852         * fold-const.c (extract_muldiv_1): Correct test for multiplication
9853         overflow.
9854
9855 2016-03-24  Uros Bizjak  <ubizjak@gmail.com>
9856
9857         * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
9858         using ix86_expand_binary_operator instead of gen_andsi3.
9859
9860 2016-03-24  Richard Biener  <rguenther@suse.de>
9861
9862         PR tree-optimization/70396
9863         * tree-vect-stmts.c (vectorizable_comparison): Use
9864         get_vectype_for_scalar_type.
9865
9866 2016-03-24  Richard Biener  <rguenther@suse.de>
9867
9868         PR middle-end/70370
9869         * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
9870         with register bases.
9871
9872 2016-03-24  Richard Biener  <rguenther@suse.de>
9873
9874         PR tree-optimization/70372
9875         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
9876         build_all_ones_cst to also handle vector types correctly.
9877
9878 2016-03-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
9879
9880         PR target/70381
9881         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
9882         -mfloat128 here.
9883
9884 2016-03-23  Marek Polacek  <polacek@redhat.com>
9885
9886         PR c++/69884
9887         * doc/invoke.texi: Document -Wignored-attributes.
9888
9889 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
9890
9891         PR tree-optimization/69042
9892         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
9893         parameter from 30 to 40.
9894
9895 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
9896
9897         PR tree-optimization/69042
9898         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
9899         for use with constant offset stripped in base.
9900
9901 2016-03-23  Richard Biener  <rguenther@suse.de>
9902
9903         PR middle-end/70251
9904         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
9905         mode compatibility check.
9906         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
9907
9908 2016-03-23  Jeff Law  <law@redhat.com>
9909
9910         PR tree-optimization/64058
9911         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
9912         CONFLICT_COUNT.
9913         (struct ssa_conflicts): Move up earlier in the file.
9914         (conflicts_, var_map_): New static variables.
9915         (initialize_conflict_count): New function to initialize the
9916         CONFLICT_COUNT field for each conflict pair.
9917         (compare_pairs): Lazily initialize the conflict count and use it
9918         as the first tie-breaker.
9919         (sort_coalesce_list): Add new arguments conflicts, map.  Initialize
9920         and wipe conflicts_ and map_ around the call to qsort.  Remove
9921         special case for 2 coalesce pairs.
9922         * bitmap.c (bitmap_count_unique_bits): New function.
9923         (bitmap_count_bits_in_word): New function, extracted from
9924         bitmap_count_bits.
9925         (bitmap_count_bits): Use bitmap_count_bits_in_word.
9926         * bitmap.h (bitmap_count_unique_bits): Declare it.
9927
9928 2016-03-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
9929
9930         PR target/69917
9931         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
9932         transparent alias chain for decl assembler name.
9933         * config/sol2.c (solaris_assemble_visibility): Likewise.
9934
9935 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9936
9937         * config/arm/arm1020e.md (1020call_op): Reduce reservation
9938         duration.
9939         (v10_fdivs): Likewise.
9940         (v10_fdivd): Likewise.
9941
9942 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9943
9944         PR driver/70132
9945         * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
9946         to not call fclose twice on file.
9947
9948 2016-03-23  Jakub Jelinek  <jakub@redhat.com>
9949
9950         PR tree-optimization/70354
9951         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
9952         oprnd0 is wider than oprnd1 and there is a cast from the wider
9953         type to oprnd1, mask it with the mask of the narrower type.
9954
9955         PR target/70321
9956         * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
9957         Optimize TARGET_STV splitters, if high or low word of last argument
9958         is 0 or -1.
9959
9960 2016-03-22  Jeff Law  <law@redhat.com>
9961
9962         PR target/70232
9963         tree-ssa-threadbackward.c
9964         (fsm_find_control_statement_thread_paths): Correctly distinguish
9965         between old style jump threads vs FSM jump threads.
9966
9967 2016-03-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
9968
9969         PR target/70302
9970         * config/i386/i386.c (scalar_chain::convert_op): Support
9971         uninitialized register usage case.
9972
9973 2016-03-22  Richard Biener  <rguenther@suse.de>
9974
9975         PR middle-end/70251
9976         * genmatch.c (gen_transform): Adjust last parameter to a three-state
9977         int...
9978         (capture::gen_transform): ... to change behavior when substituting
9979         a condition into cond or not-cond expr context.
9980         (dt_simplify::gen_1): Adjust.
9981         * gimple-match-head.c: Include gimplify.h for unshare_expr.
9982         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
9983         last change and instead change to
9984         A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
9985         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
9986
9987 2016-03-22  Anthony Green  <green@moxielogic.com>
9988
9989         * config/moxie/moxiebox.h (CC1_SPEC): Define.  Fix endianness
9990         issue for moxiebox targets.
9991         (CC1PLUS_SPEC): Ditto.
9992
9993 2016-03-22  Richard Biener  <rguenther@suse.de>
9994
9995         PR middle-end/70333
9996         * fold-const.c (extract_muldiv_1): Properly perform multiplication
9997         in the wide type.
9998
9999 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
10000
10001         * config/i386/i386.c (def_builtin): Remove duplicated functionality.
10002
10003 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
10004
10005         PR target/70325
10006         * config/i386/i386.c (def_builtin): Handle
10007         OPTION_MASK_ISA_AVX512VL to be and-ed with other
10008         bits.
10009         (const struct builtin_description bdesc_special_args[]):
10010         Remove duplicate ISA bits.
10011
10012 2016-03-22  Jakub Jelinek  <jakub@redhat.com>
10013
10014         PR target/70329
10015         * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
10016         d.perm[i] for i >= d.nelt.  If not full_interleave, compute d.perm[i]
10017         in a way that works also for AVX512BW.
10018
10019         PR target/70300
10020         * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
10021         instead of source if operands[1] is xmm16 and above and
10022         !TARGET_AVX512VL.  Use avx512f_vec_dupv16sf_1 instead of
10023         vec_interleave_lowv4sf if we need to unpack xmm16 and above.
10024
10025         PR c++/70295
10026         * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
10027         on assign if (*from_p) is a comparison, set it to
10028         TREE_NO_WARNING (*from_p).
10029
10030 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
10031
10032         PR middle-end/70326
10033         * lra.c (restore_scratches): Ignore deleted insns.
10034
10035 2016-03-21  Marc Glisse  <marc.glisse@inria.fr>
10036             Jakub Jelinek  <jakub@redhat.com>
10037
10038         PR tree-optimization/70317
10039         * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
10040         to HONOR_NANS.
10041
10042 2016-03-21  Uros Bizjak  <ubizjak@gmail.com>
10043
10044         PR target/70327
10045         * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
10046         of ix86_expand_move.
10047         (movoi): Ditto.
10048         (movti): Use general_operand for operand 1 predicate.
10049
10050 2016-03-21  Martin Liska  <mliska@suse.cz>
10051
10052         * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
10053         insns.
10054         (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
10055
10056 2016-03-21  Martin Liska  <mliska@suse.cz>
10057
10058         PR ipa/70306
10059         * ipa-icf.c (sem_function::parse): Skip static
10060         constructors and destructors.
10061
10062 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
10063
10064         PR target/70296
10065         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
10066         function-like macro, peek following token(s) if it is followed
10067         by CPP_OPEN_PAREN token with optional padding in between, and
10068         if not, don't treat it like a macro.
10069
10070 2016-03-21  Thomas Schwinge  <thomas@codesourcery.com>
10071             Alexander Monakov  <amonakov@ispras.ru>
10072
10073         * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
10074         for the stabs debug format.
10075
10076 2016-03-21  Richard Biener  <rguenther@suse.de>
10077
10078         PR tree-optimization/70310
10079         * tree-vect-generic.c (expand_vector_condition): Fold the built
10080         condition.
10081
10082 2016-03-21  Kirill Yukhin  <kirill.yukhin@intel.com>
10083
10084         PR target/70293
10085         * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
10086         Block third alternative for AVX-512VL target,
10087
10088 2016-03-21  Martin Liska  <mliska@suse.cz>
10089
10090         PR hsa/70234
10091         * hsa-brig.c (emit_function_directives): Mark unemitted
10092         global variables for emission.
10093         * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
10094         (get_symbol_for_decl): Likewise.
10095         * hsa.h (struct hsa_symbol): New flag.
10096
10097 2016-03-21  Richard Biener  <rguenther@suse.de>
10098
10099         PR tree-optimization/70288
10100         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
10101         we do not estimate unsimplified all-constant conditionals or
10102         switches as optimized away.
10103
10104 2016-03-21  Andrey Belevantsev  <abel@ispras.ru>
10105
10106         PR rtl-optimization/69102
10107         * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
10108         when we have a readonly dependency context.
10109
10110 2016-03-18  Jeff Law  <law@redhat.com>
10111
10112         PR rtl-optimization/70263
10113         * ira.c (memref_used_between_p): Assert we found END in the insn chain.
10114         (update_equiv_regs): When trying to move a store to after the insn
10115         that sets the source of the store, make sure the store occurs after
10116         the insn that sets the source of the store.  When successful note
10117         the REG_EQUIV note created in the dump file.
10118
10119 2016-03-16  David Wohlferd  <dw@LimeGreenSocks.com>
10120             Bernd Schmidt  <bschmidt@redhat.com>
10121
10122         * doc/extend.texi: Document more potential problems with basic asms.
10123
10124 2016-03-18  Bernd Schmidt  <bschmidt@redhat.com>
10125
10126         PR rtl-optimization/70278
10127         * lra-constraints.c (split_reg): Handle the case where biggest_mode is
10128         VOIDmode.
10129
10130 2016-03-18  Jason Merrill  <jason@redhat.com>
10131
10132         * calls.c (load_register_parameters): Fix zero size sibcall logic.
10133
10134 2016-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
10135
10136         * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
10137         values to 128b regs.
10138
10139 2016-03-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
10140
10141         PR tree-optimization/70252
10142         * tree-vect-stmts.c (supportable_widening_operation): Check resulting
10143         boolean vector has a proper number of elements.
10144         (supportable_narrowing_operation): Likewise.
10145
10146 2016-03-18  Tom de Vries  <tom@codesourcery.com>
10147
10148         PR ipa/70269
10149         * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
10150
10151 2016-03-18  Jakub Jelinek  <jakub@redhat.com>
10152
10153         * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
10154         instead of replace_rtx for DEBUG_INSNs.
10155
10156 2016-03-18  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
10157
10158         * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
10159         load type reservations.
10160
10161 2016-03-17  John David Anglin  <danglin@gcc.gnu.org>
10162
10163         PR target/70188
10164         * config/pa/constraints.md: Revert 2015-02-13 change.  Use
10165         define_constraint for "Q" and "T" constraints.
10166
10167 2016-03-17  Evandro Menezes  <e.menezes@samsung.com>
10168
10169         Tweak the pipeline model for Exynos M1
10170
10171         * config/aarch64/aarch64.c (exynosm1_tunings):  Enable weak prefetching
10172         model.
10173
10174 2016-03-17  David Malcolm  <dmalcolm@redhat.com>
10175
10176         PR c/70264
10177         * diagnostic-show-locus.c (compatible_locations_p): Handle the case
10178         where one or both locations aren't within a line_map.
10179
10180 2016-03-17  H.J. Lu  <hongjiu.lu@intel.com>
10181
10182         PR driver/70192
10183         * opts.c (finish_options): Don't set flag_pie to the default if
10184         -fpic, -fPIC, -fno-pic or -fno-PIC is used.  Set flag_pic to 0
10185         if it is -1.
10186
10187 2016-03-17  Joern Rennecke  <joern.rennecke@embecosm.com>
10188
10189         * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
10190         true as ALL_REGS argument to replace_rtx.
10191
10192 2016-03-17  Richard Biener  <rguenther@suse.de>
10193
10194         PR debug/70271
10195         * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
10196         last.
10197
10198 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
10199
10200         PR target/70245
10201         * rtl.h (replace_rtx): Add ALL_REGS argument.
10202         * rtlanal.c (replace_rtx): Likewise.  If true, use REGNO
10203         equality and assert mode is the same, instead of just rtx pointer
10204         equality.
10205         * config/i386/i386.md (mov + arithmetics with load peephole): Pass
10206         true as ALL_REGS argument to replace_rtx.
10207
10208 2016-03-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
10209
10210         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
10211         for boolean vector with vector mode only.
10212         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
10213
10214 2016-03-17  Nick Clifton  <nickc@redhat.com>
10215
10216         PR target/70162
10217         * config/rx/rx.c (rx_print_integer): Print negative constants in
10218         decimal.
10219
10220 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
10221
10222         PR target/70261
10223         * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
10224
10225 2016-03-16  Richard Henderson  <rth@redhat.com>
10226             Richard Biener  <rguenth@suse.de>
10227
10228         PR middle-end/70240
10229         PR middle-end/68215
10230         PR tree-opt/68714
10231         * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
10232         first operand as is_gimple_condexpr.
10233
10234         PR middle-end/70240
10235         PR middle-end/68215
10236         Revert r231575
10237         2015-12-11  Eric Botcazou  <ebotcazou@adacore.com>
10238         * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
10239         Do not gimplify the result.
10240         (do_unop): Adjust call to tree_vec_extract.
10241         (do_binop): Likewise.
10242         (do_compare): Likewise.
10243         (do_plus_minus): Likewise.
10244         (do_negate): Likewise.
10245         (expand_vector_condition): Likewise.
10246         (do_cond): Likewise.
10247
10248 2016-03-16  Richard Henderson  <rth@redhat.com>
10249
10250         PR target/70048
10251         * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
10252         (aarch64_classify_address): Use it.
10253         (aarch64_legitimize_address): Force all subexpressions of PLUS
10254         into registers.  Simplify as (sfp+const)+reg or (reg+reg)+const.
10255
10256 2016-03-16  Jakub Jelinek  <jakub@redhat.com>
10257             Richard Biener  <rguenth@suse.de>
10258
10259         PR target/70245
10260         * rtlanal.c (replace_rtx): For REG, if from is a REG,
10261         return to even if only REGNO is equal, and assert
10262         mode is the same.
10263
10264 2016-03-11  Jeff Law  <law@redhat.com>
10265
10266         PR rtl-optimization/70224
10267         * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
10268
10269 2016-03-16  Richard Henderson  <rth@redhat.com>
10270
10271         PR middle-end/70199
10272         * function.h (struct function): Add has_forced_label_in_static.
10273         * gimplify.c (force_labels_r): Set it.
10274         * lto-streamer-in.c (input_struct_function_base): Read it.
10275         * lto-streamer-out.c (output_struct_function_base): Write it.
10276         * tree-inline.c (has_label_address_in_static_1): Remove.
10277         (copy_forbidden): Remove fndecl parameter; test
10278         has_forced_label_in_static.
10279         (inline_forbidden_p): Update call to copy_forbidden.
10280         (tree_versionable_function_p): Likewise.
10281         * ipa-chkp.c (chkp_instrumentable_p): Likewise.
10282         (chkp_versioning): Likewise.
10283         * tree-inline.h (copy_forbidden): Update decl.
10284
10285 2016-03-16  Marek Polacek  <polacek@redhat.com>
10286
10287         PR c/70093
10288         * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
10289         function being thunked if the result type doesn't have fixed size.
10290         * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
10291         doesn't have fixed size.
10292
10293 2016-03-16  Bin Cheng  <bin.cheng@arm.com>
10294
10295         * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
10296         reporting malformed loop nest.
10297
10298 2016-03-16  Tom de Vries  <tom@codesourcery.com>
10299
10300         PR lto/70187
10301         * ipa-devirt.c (possible_polymorphic_call_targets): Move
10302         nodes.length () == 1 test to before first nodes[0] access.
10303
10304 2016-03-16  Tom de Vries  <tom@codesourcery.com>
10305
10306         PR tree-optimization/68715
10307         * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
10308         single_pred_p test.
10309
10310 2016-03-16  Tom de Vries  <tom@codesourcery.com>
10311
10312         PR tree-optimization/68809
10313         * graphite-scop-detection.c (same_close_phi_node): Test if result types
10314         are the same.
10315
10316 2016-03-16  Carlos O'Donell  <carlos@redhat.com>
10317             Sandra Loosemore  <sandra@codesourcery.com>
10318
10319         * doc/extend.texi (Common Function Attributes): Describe ifunc impact
10320         on leaf attribute. Mention ELF interposition problems.
10321
10322 2016-03-16  Alan Modra  <amodra@gmail.com>
10323
10324         PR rtl-optimization/69195
10325         PR rtl-optimization/47992
10326         * ira.c (indirect_jump_optimize): Ignore artificial defs.
10327         Add comments.
10328
10329 2016-03-15  Eric Botcazou  <ebotcazou@adacore.com>
10330
10331         PR bootstrap/69513
10332         * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
10333
10334 2016-03-15  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
10335
10336         * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
10337
10338 2016-03-15  Jakub Jelinek  <jakub@redhat.com>
10339
10340         PR rtl-optimization/70222
10341         * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
10342         optimization if mode is different from result_mode, queue up masking
10343         of the result in outer_op.  Formatting fix.
10344
10345         PR middle-end/70239
10346         * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
10347         of safe_grow.
10348
10349 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
10350
10351         PR rtl-optimization/69032
10352         * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
10353         looping backwards over basic block insns.
10354
10355 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
10356
10357         PR target/66660
10358         * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
10359         to non-speculative when propagating trap bits.
10360
10361 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
10362
10363         PR rtl-optimization/63384
10364         * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
10365         DEBUG_INSN_P insns.
10366
10367 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
10368
10369         PR target/64411
10370         * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
10371         factored out from ...
10372         (sched_analyze_insn): ... here.
10373         * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
10374         * sel-sched-ir.c (setup_id_implicit_regs): New function, use
10375         get_implicit_reg_pending_clobbers in it.
10376         (setup_id_reg_sets): Use setup_id_implicit_regs.
10377         (deps_init_id): Ditto.
10378
10379 2016-03-15  Tom de Vries  <tom@codesourcery.com>
10380
10381         PR ipa/70161
10382         * cgraph.c (cgraph_node::get_body): Save, reset and restore
10383         dump_file_name.
10384         * passes.c (execute_one_ipa_transform_pass): Add missing argument to
10385         execute_function_dump.
10386         (execute_one_pass): Don't dump function if it will be dumped after ipa
10387         transform.
10388
10389 2016-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
10390
10391         * genrecog.c (match_pattern_2): If pred is NULL don't call
10392         safe_predicate_mode on it.
10393
10394 2016-03-14  Jakub Jelinek  <jakub@redhat.com>
10395
10396         PR middle-end/70219
10397         * lra-constraints.c (delete_move_and_clobber): Change assertion
10398         to also allow dregno == 0.
10399
10400 2016-03-14  Richard Henderson  <rth@redhat.com>
10401
10402         PR tree-opt/68714
10403         * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
10404         (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
10405         (reassociate_bb): Use optimize_vec_cond_expr; avoid
10406         optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
10407         on vectors.
10408
10409 2016-03-14  Bernd Schmidt  <bschmidt@redhat.com>
10410
10411         PR target/70083
10412         * lra-lives.c (process_bb_lives): Also update biggest mode for hard
10413         regs.
10414         (lra_create_live_ranges_1): initialize hard register biggest_mode to
10415         VOIDmode.
10416         * lra-constraints.c (split_reg): For hard regs, try to find the
10417         biggest single-register mode used in the function.
10418
10419 2016-03-14  Richard Biener  <rguenther@suse.de>
10420
10421         PR tree-optimization/56365
10422         * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
10423         constants to compare against.
10424
10425 2016-03-14  Segher Boessenkool  <segher@kernel.crashing.org>
10426
10427         PR target/70098
10428         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
10429         *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
10430         (define_split for the GPR case): Use int_reg_operand instead of
10431         gpc_reg_operand for the output.
10432
10433 2016-03-14  Tom de Vries  <tom@codesourcery.com>
10434
10435         PR tree-optimization/70045
10436         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
10437         create_empty_if_region_on_edge argument.
10438
10439 2016-03-13  Eric Botcazou  <ebotcazou@adacore.com>
10440
10441         * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
10442         (STACK_CHECK_PROTECT): Likewise.
10443         * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
10444         (STACK_CHECK_PROTECT): Likewise.
10445         * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
10446         (STACK_CHECK_PROTECT): Likewise.
10447         * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
10448         * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
10449         (STACK_CHECK_PROTECT): Likewise.
10450
10451 2016-03-12  Andrey Belevantsev  <abel@ispras.ru>
10452
10453         PR rtl-optimization/69307
10454         * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
10455         registers in modes that span more than one register.
10456
10457 2016-03-12  Vladimir Makarov  <vmakarov@redhat.com>
10458
10459         PR target/69614
10460         * lra-constraints.c (delete_move_and_clobber): New.
10461         (remove_inheritance_pseudos): Use it.
10462
10463 2016-03-12  Eric Botcazou  <ebotcazou@adacore.com>
10464
10465         PR ada/70017
10466         * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
10467         the libcall is LCT_THROW.
10468         * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
10469         for the checking routine.
10470
10471 2016-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
10472
10473         PR target/70131
10474         * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
10475         optimization if we have direct move.
10476         (roundu32<mode>2_fprs): Likewise.
10477
10478 2016-03-11  Bernd Schmidt  <bschmidt@redhat.com>
10479
10480         PR target/70123
10481         * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
10482         be rematerialized.
10483         (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
10484         Arguments swapped.  All callers changed.  Take reg_renumber into
10485         account, and Calculate and compare register ranges for hard regs.
10486
10487 2016-03-11  Jeff Law  <law@redhat.com>
10488
10489         PR tree-optimization/70190
10490         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
10491         Handle cases where we can not extract the taken edge, even though we
10492         found a constant value.
10493
10494         PR tree-optimization/64058
10495         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
10496         (num_coalesce_pairs): Move up earlier in file.
10497         (find_coalesce_pair): Initialize the INDEX field for each pair
10498         discovered.
10499         (compare_pairs): No longer sort on the elements in each pair.
10500         Instead break ties with the index of the coalesce pair.
10501
10502 2016-03-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10503
10504         PR target/70002
10505         * config/aarch64/aarch64-protos.h
10506         (aarch64_save_restore_target_globals): New prototype.
10507         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
10508         Call the above when popping pragma.
10509         * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
10510         New function.
10511         (aarch64_set_current_function): Rewrite using the above.
10512
10513 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
10514
10515         PR tree-optimization/70177
10516         * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
10517         (extract_ops_from_tree): ... this.  In the 2 argument
10518         overload remove _1 suffix.
10519         * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
10520         (extract_ops_from_tree): ... this.
10521         * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
10522         Adjust callers.
10523         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
10524         * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
10525         extract_ops_from_tree instead of 2 operand one.
10526
10527 2016-03-11  Alan Lawrence  <alan.lawrence@arm.com>
10528
10529         PR tree-optimization/70013
10530         * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
10531         for constant-pool entries.
10532
10533 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
10534
10535         PR rtl-optimization/70174
10536         * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
10537         followed by gen_lowpart on force_reg instead of just gen_lowpart.
10538
10539         PR tree-optimization/70169
10540         * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
10541         LABEL_DECL like VAR_DECL.  Emit nothing instead of gcc_unreachable
10542         for unknown codes.
10543
10544 2016-03-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
10545             Jakub Jelinek  <jakub@redhat.com>
10546
10547         PR target/70160
10548         * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
10549         of uninitialized values.
10550
10551 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10552
10553         * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
10554         define_expand.
10555         ("*trunctddd2"): New pattern definition.
10556         ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
10557         TD->DD truncation.
10558
10559 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10560
10561         * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
10562         definitions for BFP and DFP rounding modes.
10563         ("fixuns_truncdddi2", "fixuns_trunctddi2")
10564         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
10565         ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
10566         ("fix_trunctf<mode>2"): Use the new constants instead of magic
10567         numbers.
10568
10569 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10570
10571         * config/s390/constraints.md: Adjust comment.
10572         ("Y"): Adjust comment.  Rename s390_decompose_shift_count to
10573         s390_decompose_addrstyle_without_index.
10574         * config/s390/predicates.md (shift_count_or_setmem_operand):
10575         Rename to setmem_operand.
10576         * config/s390/s390-protos.h
10577         (s390_decompose_shift_count): Rename to
10578         s390_decompose_addrstyle_without_index.
10579         * config/s390/s390.c (s390_decompose_shift_count)
10580         (s390_mem_constraint, print_shift_count_operand)
10581         (print_operand_address, print_operand): Rename
10582         s390_decompose_shift_count to
10583         s390_decompose_addrstyle_without_index and rename
10584         print_shift_count_operand to print_addrstyle_operand troughout the
10585         file.
10586         * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
10587         ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
10588         Rename shift_count_or_setmem_operand to setmem_operand.
10589         * config/s390/vx-builtins.md ("vec_insert<mode>")
10590         ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
10591         nonmemory_operand.
10592
10593 2016-03-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10594
10595         PR target/70168
10596         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
10597         Handle overlapping retval and newval.
10598
10599 2016-03-10  Nick Clifton  <nickc@redhat.com>
10600
10601         PR target/7044
10602         * config/aarch64/aarch64.c
10603         (aarch64_override_options_after_change_1): When forcing
10604         flag_omit_frame_pointer to be true, use a special value that can
10605         be detected if this function is called again, thus preventing
10606         flag_omit_leaf_frame_pointer from being forced to be false.
10607
10608 2016-03-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10609
10610         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
10611         Set x_flag_omit_leaf_frame_pointer when handling
10612         -momit-leaf-frame-pointer.
10613
10614 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
10615
10616         PR lto/69589
10617         * cgraph.c (cgraph_node::dump): Dump split_part and
10618         indirect_call_target.
10619         * cgraph.h (cgraph_node): Add indirect_call_target flag.
10620         * ipa.c (has_addr_references_p): Cleanup.
10621         (is_indirect_call_target_p): New.
10622         (walk_polymorphic_call_targets): Do not mark virtuals that may be
10623         called indirectly as local.
10624         (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
10625
10626 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
10627
10628         PR ipa/69630
10629         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
10630         on cxa_pure_virtual.
10631
10632 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
10633
10634         PR lto/69589
10635         * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
10636
10637 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
10638
10639         PR lto/69589
10640         * tree.c (need_assembler_name_p): Only record main variant type names.
10641
10642 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
10643
10644         PR target/70113.
10645         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
10646         Always define to 0 or 1.
10647         (TARGET_FIX_ERR_A53_843419): New macro.
10648         * config/aarch64/aarch64-elf-raw.h
10649         (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
10650         * config/aarch64/aarch64-linux.h: Likewise.
10651         * config/aarch64/aarch64.c
10652         (aarch64_override_options_after_change_1): Do not default
10653         aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
10654         843419 is on.
10655         (aarch64_attributes): Handle fix-cortex-a53-843419.
10656         (aarch64_can_inline_p): Likewise.
10657         * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
10658
10659 2016-03-10  Alan Lawrence  <alan.lawrence@arm.com>
10660         Jakub Jelinek <jakub@redhat.com>
10661
10662         * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
10663         * tree.c (array_at_struct_end_p): Do not limit to size of decl for
10664         DECL_COMMONS if flag_unconstrained_commons is set.
10665         * tree-dfa.c (get_ref_base_and_extent): Likewise.
10666         * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
10667         (funconstrained-commons): Document.
10668
10669 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
10670
10671         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
10672         aarch64-fusion-pairs.def and aarch64-tuning-flags.def
10673
10674 2016-03-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
10675
10676         * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
10677         has a proper number of elements.
10678
10679 2016-03-10  Alan Modra  <amodra@gmail.com>
10680
10681         PR rtl-optimization/69195
10682         PR rtl-optimization/47992
10683         * ira.c (recorded_label_ref): Delete.
10684         (update_equiv_regs): Return void.
10685         (indirect_jump_optimize): New function.
10686         (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
10687         before regstat_compute_ri.  Don't rebuild_jump_labels here.
10688         Delete update_regstat.
10689
10690 2016-03-10  Richard Biener  <rguenther@suse.de>
10691
10692         PR tree-optimization/70128
10693         * tree-ssa-structalias.c (set_uids_in_ptset): Set
10694         vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
10695
10696 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
10697
10698         PR tree-optimization/70152
10699         * tree-sra.c (replace_removed_params_ssa_names): Copy over
10700         SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
10701
10702         PR target/70086
10703         * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
10704         instead of gen_sse2_loadlpd.
10705         * config/i386/sse.md (*vec_concatv2df): Rename to...
10706         (vec_concatv2df): ... this.
10707
10708         PR tree-optimization/70127
10709         * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
10710
10711 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
10712
10713         PR c/68473
10714         PR c++/70105
10715         * diagnostic-show-locus.c (compatible_locations_p): New function.
10716         (layout::layout): Sanitize ranges using compatible_locations_p.
10717
10718 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
10719
10720         PR c/68473
10721         PR c++/70105
10722         * diagnostic-show-locus.c (layout_range::layout_range): Replace
10723         location_range param with three const expanded_locations * and a
10724         bool.
10725         (layout::layout): Replace call to
10726         rich_location::lazily_expand_location with get_expanded_location.
10727         Extract the range and perform location expansion here, passing
10728         the results to the layout_range ctor.
10729         * diagnostic.c (source_range::debug): Delete.
10730         * diagnostic.h (diagnostic_expand_location): Reimplement in terms
10731         of rich_location::get_expanded_location.
10732         * gcc-rich-location.c (get_range_for_expr): Delete.
10733         (gcc_rich_location::add_expr): Reimplement to avoid the
10734         rich_location::add_range overload that took a location_range,
10735         passing a location_t instead.
10736
10737 2016-03-09  Richard Biener  <rguenther@suse.de>
10738         Jakub Jelinek  <jakub@redhat.com>
10739
10740         PR tree-optimization/70138
10741         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
10742         Also skip vect_double_reduction_def.
10743
10744 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
10745
10746         PR target/70049
10747         * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
10748         if the operand is "m".
10749
10750 2016-03-09  Nathan Sidwell  <nathan@acm.org>
10751
10752         * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
10753
10754 2016-03-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
10755
10756         * config/i386/i386.c (processor_target_table): Fix cost table
10757         intialization order for znver1.
10758
10759 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
10760
10761         * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
10762         - becuase -> because.
10763         * ipa-reference.c (ignore_module_statics): Likewise.
10764         * cgraph.c (cgraph_node::get_body): Likewise.
10765         * ipa-inline.c (early_inliner): Likewise.
10766         * ipa-devirt.c (types_same_for_odr): Likewise.
10767         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
10768         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
10769
10770 2016-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10771
10772         * tree-ssa-math-opts.c: Fix typo in comment.
10773
10774 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
10775
10776         PR target/70110
10777         * config/i386/i386.c (scalar_chain::make_vector_copies,
10778         scalar_chain::convert_reg): Call end_sequence in between
10779         get_insns and emit_conversion_insns rather than after both
10780         calls.
10781
10782 2016-03-07  Uros Bizjak  <ubizjak@gmail.com>
10783
10784         PR target/70064
10785         * config/i386/i386.h (machine_function): Add
10786         pc_thunk_call_expanded flag.
10787         (ix86_pc_thunk_call_expanded): New define.
10788         * config/i386/i386.md (set_got, set_got_labelled): New expanders.
10789         (*set_got): Rename insn pattern from set_got.
10790         (*set_got_labelled): Rename inst pattern from set_got_labelled.
10791         * config/i386/i386.c (ix86_compute_frame_layout): Use
10792         ix86_pc_thunk_call_expanded to prevent red-zone.
10793
10794 2016-03-07  Martin Jambor  <mjambor@suse.cz>
10795
10796         * hsa.h (hsa_get_ctor_statements): Declare.
10797         (hsa_get_dtor_statements): Likewise.
10798         (hsa_get_kernel_dispatch_type): Likewise.
10799         * hsa.c (hsa_get_ctor_statements): New function.
10800         (hsa_get_dtor_statements): Likewise.
10801         (hsa_get_kernel_dispatch_type): Likewise.
10802         * hsa-brig.c (hsa_cdtor_statements): Removed.
10803         (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
10804         hsa_get_dtor_statements.
10805         * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
10806         (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
10807
10808 2016-03-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>
10809
10810         * config/arm/arm-cores.def (cortex-r8): New.
10811         * config/arm/arm-tables.opt (cortex-r8): Regenerate.
10812         * config/arm/arm-tune.md: Likewise.
10813         * doc/invoke.texi: Add cortex-r8 to list of cpu values.
10814
10815 2016-03-07  Martin Sebor  <msebor@redhat.com>
10816
10817         PR rtl-optimization/19705
10818         * doc/invoke.texi (Options That Control Optimization): Clarify
10819         -fno-branch-count-reg.
10820
10821 2016-02-26  Richard Biener  <rguenther@suse.de>
10822             Jeff Law  <law@redhat.com>
10823
10824         PR tree-optimization/69740
10825         * cfghooks.c (remove_edge): Request loop fixups if we delete
10826         an edge that might turn an irreducible loop into a natural
10827         loop.
10828         * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
10829         Move after definition of loops_state_clear.
10830
10831 2016-03-07  Bin Cheng  <bin.cheng@arm.com>
10832
10833         PR rtl-optimization/69052
10834         * rtlanal.c (commutative_operand_precedence): Set higher precedence
10835         to CONST_WIDE_INT.
10836
10837 2016-03-07  Tom de Vries  <tom@codesourcery.com>
10838
10839         PR tree-optimization/70116
10840         * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
10841         is_tm_ending stmts and ubsan/asan internal functions.
10842         (find_duplicate): Use it.  Don't test is_tm_ending here.
10843
10844 2016-03-07  Richard Biener  <rguenther@suse.de>
10845
10846         PR tree-optimization/70115
10847         * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
10848         (propagate_constants_for_unrolling): Use replace_uses_by.
10849
10850 2016-03-07  Nathan Sidwell  <nathan@codesourcery.com>
10851
10852         PR middle-end/69916
10853         * omp-low.c (struct oacc_loop): Add ifns.
10854         (new_oacc_loop_raw): Initialize it.
10855         (finish_oacc_loop): Clear mask & flags if no ifns.
10856         (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
10857         (oacc_loop_xform_loop): Add ifns arg & adjust.
10858         (oacc_loop_process): Adjust oacc_loop_xform_loop call.
10859
10860 2016-03-07  Richard Henderson  <rth@redhat.com>
10861
10862         PR rtl-opt/70061
10863         * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
10864         (insert_value_copy_on_edge): Likewise.
10865
10866 2016-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10867
10868         * config/arm/arm_neon.h: Show error if using with soft-float ABI.
10869
10870 2016-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10871
10872         PR target/62281
10873         * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
10874
10875 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
10876
10877         * config/i386/i386.c (znver1_cost): Fix Multiply cost.
10878
10879 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
10880
10881         Fix sseimul type attribute.
10882         * config/i386/znver1.md
10883         (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
10884         znver1_sseimul_avx256_load) : Fix the type attribute.
10885         (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
10886         pipe usage and latency.
10887
10888 2016-03-05  Jakub Jelinek  <jakub@redhat.com>
10889
10890         PR c++/70084
10891         * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
10892         of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
10893         to the right type.
10894
10895 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
10896
10897         PR c/69973
10898         * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
10899
10900         PR rtl-optimization/69941
10901         * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
10902         the reg share its mode.
10903
10904 2016-03-04  Jeff Law  <law@redhat.com>
10905
10906         PR tree-optimization/69196
10907         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
10908         If the both SSA_NAMEs are anonymous, then consider them unassociated
10909         and include the PHI in the statement count.
10910
10911 2016-03-05  Tom de Vries  <tom@codesourcery.com>
10912
10913         * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
10914         construct in oacc routine.  Check for oacc region in oacc routine.
10915
10916 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
10917
10918         PR target/70062
10919         * config/i386/i386.c (decide_alg): Add RECUR argument.  Revert
10920         2016-02-22 changes, instead don't recurse if RECUR is already true.
10921         Don't change *dynamic_check if RECUR.  Adjust recursive caller
10922         to pass true to the new argument.
10923         (ix86_expand_set_or_movmem): Adjust decide_alg caller.
10924
10925         PR target/70059
10926         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
10927         <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
10928         fixes.
10929         (vec_set_hi_<mode><mask_name>): Likewise.  Swap VEC_CONCAT operands.
10930
10931 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
10932
10933         PR rtl-optimization/57676
10934         * lra-assigns.c (lra_assign): Guard test for maximum iterations
10935         with flag_checking.
10936
10937 2016-03-04  Ilya Enkovich  <enkovich.gnu@gmail.com>
10938
10939         * tree-vect-patterns.c (search_type_for_mask): Handle
10940         comparison of booleans.
10941
10942 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
10943
10944         * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
10945         Fix @xref usage.
10946
10947         PR debug/69947
10948         * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
10949         all other ops that have dw_val_class_die_ref operands,
10950         and DW_OP_GNU_entry_value.
10951
10952 2016-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10953
10954         PR rtl-optimization/69904
10955         * config/arm/arm.c (arm_cannot_copy_insn_p):
10956         Return true for load-exclusive instructions.
10957
10958 2016-03-03  Jakub Jelinek  <jakub@redhat.com>
10959
10960         PR target/70021
10961         * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
10962         argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
10963         the pattern no matter if it is used just by non-pattern, pattern
10964         or mix thereof.
10965         (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
10966         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
10967         oprnd1 def_stmt is in pattern, don't look through it.
10968
10969 2016-03-03  Marek Polacek  <polacek@redhat.com>
10970
10971         PR middle-end/70050
10972         * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
10973
10974 2016-03-03  Martin Liska  <mliska@suse.cz>
10975
10976         PR tree-optimization/70043
10977         * tree-vect-loop.c (optimize_mask_stores): Move iterator to
10978         previous statement if we see a debug statement.
10979
10980 2016-03-03  Richard Biener  <rguenther@suse.de>
10981
10982         PR tree-optimization/55936
10983         * tree-vrp.c (compare_name_with_value): Add use_equiv_p
10984         parameter and guard unsafe equivalence use.
10985         (vrp_evaluate_conditional_warnv_with_ops): Always use
10986         safe equivalences but not via the quadratic compare_names
10987         helper.
10988
10989 2016-03-03  Michael Collison  <michael.collison@linaro.org>
10990
10991         PR target/70014
10992         * config/arm/arm.md (*subsi3_carryin_const): Change predicate
10993         for operand 1 to s_register_operand. Change predicate for operand
10994         2 to arm_not_immediate_operand.
10995
10996 2016-03-02  H.J. Lu  <hongjiu.lu@intel.com>
10997
10998         * doc/tm.texi: Regenerated.
10999
11000 2016-03-02  Richard Henderson  <rth@redhat.com>
11001
11002         PR rtl-opt/67145
11003         * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
11004         simplification when all args are positive non-fixed registers.
11005
11006 2016-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11007
11008         * target.def (lra_p): Specify that new ports should use LRA.
11009
11010 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
11011
11012         PR libgomp/69555
11013         * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
11014         gimplify_type_sizes the type they refer to.
11015         (omp_notice_variable): Handle reference vars to VLAs.
11016         * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
11017         reference to VLA decls in the second pass instead of first pass.
11018
11019 2016-03-02  Tom de Vries  <tom@codesourcery.com>
11020
11021         PR tree-optimization/68659
11022         * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
11023         new_expr == NULL_TREE.
11024         (get_new_name): Handle ADDR_EXPR.
11025
11026 2016-03-02  Bin Cheng  <bin.cheng@arm.com>
11027
11028         PR rtl-optimization/69052
11029         * loop-invariant.c (canonicalize_address): New function.
11030         (inv_can_prop_to_addr_use): Check validity of address expression
11031         which is canonicalized by above function.
11032
11033 2016-03-02  Alan Modra  <amodra@gmail.com>
11034
11035         PR ipa/69990
11036         * ipa-icf.c (sem_variable::merge): Do not merge an alias with
11037         larger alignment.
11038
11039 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
11040
11041         PR target/70028
11042         * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
11043         (*movhi_internal): Put mask moves from and to memory separately
11044         from moves from/to GPRs.
11045
11046 2016-03-02  Richard Biener  <rguenther@suse.de>
11047
11048         * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
11049         GENERIC expressions in GIMPLE.
11050
11051 2016-03-02  Richard Biener  <rguenther@suse.de>
11052
11053         * config/i386/i386.c (type_natural_mode): Fix typo.
11054
11055 2016-03-02  Nick Clifton  <nickc@redhat.com>
11056
11057         * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
11058
11059 2016-03-02  Richard Biener  <rguenther@suse.de>
11060             Uros Bizjak  <ubizjak@gmail.com>
11061
11062         PR target/67278
11063         * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
11064
11065 2016-03-02  Richard Biener  <rguenther@suse.de>
11066
11067         PR middle-end/67278
11068         * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
11069
11070 2016-03-02  Marek Polacek  <polacek@redhat.com>
11071
11072         PR c/67854
11073         * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
11074         "is promoted to" warning.
11075
11076 2016-03-01  DJ Delorie  <dj@redhat.com>
11077
11078         * config.gcc: Deprecate mep-*.
11079
11080 2016-03-01  Vladimir Makarov  <vmakarov@redhat.com>
11081
11082         PR middle-end/70025
11083         * lra-constraints.c (regno_val_use_in): New.
11084         (match_reload): Use it instead of regno_use_in.
11085
11086 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
11087
11088         PR rtl-optimization/70007
11089         * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
11090         references present in REG_EQUAL notes attached to non-SET patterns.
11091
11092 2016-03-01  Jeff Law  <law@redhat.com>
11093
11094         PR tree-optimization/69196
11095         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
11096         Appropriately clamp the number of statements to copy when the
11097         thread path does not traverse a loop backedge.
11098
11099         PR tree-optimization/69196
11100         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
11101         Do count some PHIs in the thread path against the insn count.  Decrease
11102         final statement count by one as the control statement in the last
11103         block will get removed.  Remove special cased code for handling PHIs
11104         in the last block.
11105
11106 2016-03-01  Uros Bizjak  <ubizjak@gmail.com>
11107
11108         PR target/70027
11109         * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
11110         asm dialect alternatives to explicit GOTPCREL calls.
11111
11112 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
11113
11114         PR ada/70017
11115         * ira.c (do_reload): Issue warning for generic stack checking here...
11116         * reload1.c (reload): ...instead of here and streamline it.
11117
11118 2016-03-01  Nick Clifton  <nickc@redhat.com>
11119
11120         * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
11121
11122 2016-03-01  Richard Biener  <rguenther@suse.de>
11123
11124         PR tree-optimization/69983
11125         * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
11126         types and fall back to operand_equal_p.
11127
11128 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11129
11130         Revert
11131         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11132
11133         * config/s390/constraints.md ("jm8"): New constraint.
11134         * config/s390/predicates.md ("const_int_8bitset_operand"): New
11135         predicate.
11136         * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
11137         into ...
11138         ("*setmem_long<setmem_and>"): New pattern.
11139         ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
11140         into ...
11141         ("*setmem_long_31z<setmem_and>"): New pattern.
11142         * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
11143         New substitution rules with the required attributes.
11144
11145
11146 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11147
11148         Revert
11149         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11150
11151         * gensupport.c (process_substs_on_one_elem): Split loop to
11152         complete mark_operands_used_in_match_dup on all expressions in the
11153         vector first.
11154         (adjust_operands_numbers): Inline into process_substs_on_one_elem
11155         and remove function.
11156
11157 2016-03-01  Richard Biener  <rguenther@suse.de>
11158
11159         PR middle-end/70022
11160         * fold-const.c (fold_indirect_ref_1): Fix range checking for
11161         vector BIT_FIELD_REF extract.
11162
11163 2016-03-01  Richard Biener  <rguenther@suse.de>
11164
11165         PR tree-optimization/69994
11166         * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
11167
11168 2016-03-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
11169
11170         PR tree-optimization/69956
11171         * tree-vect-stmts.c (supportable_widening_operation): Support
11172         multi-step conversion of boolean vectors.
11173         (supportable_narrowing_operation): Likewise.
11174
11175 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11176
11177         * config/s390/s390.c (s390_decompose_address): Don't accept SImode
11178         anymore.
11179
11180 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11181
11182         * config/s390/subst.md (DSI_VI): New mode iterator.
11183         ("addr_style_op_subst"): Use DSI_VI instead of DSI.
11184         * config/s390/vector.md ("vec_set<mode>"): Move expander before
11185         the insn definition.
11186         ("*vec_set<mode>"): Change predicate and add alternative to
11187         support only either register or const_int operands as element
11188         selector.
11189         ("*vec_set<mode>_plus"): New pattern to support reg + const_int
11190         operands.
11191         ("vec_extract<mode>"): New expander.
11192         ("*vec_extract<mode>"): New insn definition supporting reg and
11193         const_int element selectors.
11194         ("*vec_extract<mode>_plus"): New insn definition supporting
11195         reg+const_int element selectors.
11196         ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
11197         following expander+insn definition.
11198         ("<vec_shifts_name><mode>3"): New expander.
11199         ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
11200
11201 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11202
11203         * config/s390/s390.md ("*tabort_1"): Change predicate to
11204         nonmemory_operand.  Add a second alternative to cover
11205         register as well as const int operands.
11206         ("*tabort_1_plus"): New pattern definition.
11207
11208 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11209
11210         * config/s390/s390.md ("*ashrdi3_cc_31")
11211         ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
11212         ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
11213         Merge insn definitions into ...
11214         ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
11215         New pattern definition.
11216         ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
11217         ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
11218         ("*ashr<mode>3_and"): Merge insn definitions into ...
11219         ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
11220         New pattern definition.
11221         * config/s390/subst.md ("addr_style_op_cc_subst")
11222         ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
11223         substitutions patterns plus attributes.
11224         Add ashiftrt to SUBST iterator.
11225
11226 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11227
11228         * config/s390/s390.md ("<shift><mode>3"): Change predicate of
11229         op2 to nonmemory_operand.
11230         ("*<shift>di3_31", "*<shift>di3_31_and"):
11231         Merge into single pattern definition ...
11232         ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
11233         ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
11234         pattern definition ...
11235         ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
11236         * config/s390/subst.md: Add ashift and lshiftrt to SUBST
11237         iterator.
11238
11239 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11240
11241         * config/s390/predicates.md (const_int_6bitset_operand): New
11242         predicate.
11243         * config/s390/s390.md: Include subst.md.
11244         ("rotl<mode>3"): New expander.
11245         ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
11246         ...
11247         ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
11248         * config/s390/subst.md: New file.
11249
11250 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11251
11252         * config/s390/s390.md ("op_type", "atype", "length" attributes):
11253         Remove RRR type.  It doesn't really exist.
11254         ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
11255         attributes.
11256         ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
11257         ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
11258         ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
11259         ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
11260         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
11261         ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
11262         `enabled' attribute.
11263
11264 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11265
11266         * gensupport.c (process_substs_on_one_elem): Split loop to
11267         complete mark_operands_used_in_match_dup on all expressions in the
11268         vector first.
11269         (adjust_operands_numbers): Inline into process_substs_on_one_elem
11270         and remove function.
11271
11272 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
11273
11274         PR target/69706
11275         * config/sparc/sparc.c (NWORDS_UP): Rename to...
11276         (CEIL_NWORDS): ...this.  Use CEIL macro.
11277         (compute_fp_layout): Adjust to above renaming.
11278         (function_arg_union_value): Likewise.
11279         (sparc_arg_partial_bytes): Likewise.
11280         (sparc_function_arg_advance): Likewise.
11281
11282 2016-02-29  Jeff Law  <law@redhat.com>
11283
11284         PR tree-optimization/70005
11285         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
11286         where an object with a boolean range is compared against a value
11287         outside [0..1].
11288
11289         PR tree-optimization/69999
11290         * gimple-ssa-split-paths.c (split_paths): When duplicating a block
11291         with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
11292         loop cleanups.
11293
11294 2016-02-29  Richard Biener  <rguenther@suse.de>
11295
11296         PR tree-optimization/69994
11297         * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
11298         (get_unary_op): Look through nop conversions.
11299         (ops_equal_values_p): New function, look for equality diregarding
11300         nop conversions.
11301         (eliminate_plus_minus_pair): Use ops_equal_values_p
11302         (repropagate_negates): Do not use get_unary_op here.
11303
11304 2016-02-29  Martin Liska  <mliska@suse.cz>
11305
11306         * system.h: Poison ENABLE_CHECKING macro.
11307
11308 2016-02-29  Martin Liska  <mliska@suse.cz>
11309
11310         * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
11311         is presented in dump flags.
11312         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
11313         (hsa_regalloc): Likewise.
11314
11315 2016-02-19  Richard Biener  <rguenther@suse.de>
11316
11317         PR tree-optimization/69980
11318         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
11319         permutation of those we need to keep.
11320
11321 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
11322
11323         PR target/69706
11324         * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
11325         (NWORDS_UP): ...this
11326         (init_cumulative_args): Minor tweaks.
11327         (sparc_promote_function_mode): Likewise.
11328         (scan_record_type): Delete.
11329         (traverse_record_type): New function template.
11330         (classify_data_t): New structure type.
11331         (classify_registers): New inline function.
11332         (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
11333         exhausted.  Instantiate traverse_record_type on classify_registers and
11334         deal with the case of a structure passed in slot #15 with no FP field
11335         in the first word.
11336         (assign_data_t): New structure type.
11337         (compute_int_layout): New static function.
11338         (compute_fp_layout): Likewise.
11339         (count_registers): New inline function.
11340         (assign_int_registers): New static function.
11341         (assign_fp_registers): Likewise.
11342         (assign_registers): New inline function.
11343         (function_arg_record_value_1): Delete.
11344         (function_arg_record_value_2): Likewise.
11345         (function_arg_record_value_3): Likewise.
11346         (function_arg_record_value): Adjust to above changes.  Instantiate
11347         traverse_record_type on count_registers to first count the number of
11348         registers to be used and then on assign_registers to assign them.
11349         (function_arg_union_value): Adjust to above renaming.
11350         (sparc_function_arg_1); Minor tweaks.  Remove commented out code.
11351         (sparc_arg_partial_bytes): Adjust to above renaming.  Deal with the
11352         case of a structure passed in slot #15
11353         (sparc_function_arg_advance): Likewise.
11354         (function_arg_padding): Minor tweak.
11355
11356 2016-02-29  Richard Biener  <rguenther@suse.de>
11357
11358         PR tree-optimization/69720
11359         * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
11360         the adjustment_def path for possibly vectorized defs.
11361         (vect_create_epilog_for_reduction): Handle vectorized initial
11362         defs properly.
11363
11364 2016-02-28  Eric Botcazou  <ebotcazou@adacore.com>
11365
11366         * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
11367
11368 2016-02-27  Jeff Law  <law@redhat.com>
11369
11370         Revert
11371         2016-02-26  Richard Biener  <rguenther@suse.de>
11372                     Jeff Law  <law@redhat.com>
11373
11374         PR tree-optimization/69740
11375         * cfghooks.c (remove_edge): Request loop fixups if we delete
11376         an edge that might turn an irreducible loop into a natural
11377         loop.
11378
11379 2016-02-27  Jakub Jelinek  <jakub@redhat.com>
11380
11381         PR rtl-optimization/69896
11382         * tree-vect-generic.c (get_compute_type): Avoid single element
11383         vector types.
11384
11385 2016-02-26  Evandro Menezes  <e.menezes@samsung.com>
11386
11387         Rename the AArch64 tuning option and related functions to enable the
11388         Newton series for the reciprocal square root to reflect its
11389         approximative characteristic.
11390
11391         * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
11392         function to "aarch64_emit_approx_rsqrt".
11393         * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
11394         AARCH64_EXTRA_TUNE_APPROX_RSQRT.
11395         * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
11396         (xgene1_tunings): Likewise.
11397         (use_rsqrt_p): Likewise.
11398         (aarch64_emit_swrsqrt): Use new function name.
11399         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
11400         * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
11401         text explaining this option.
11402         * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
11403
11404 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
11405
11406         PR target/69969
11407         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
11408         complain about -mallow-movmisalign without -mvsx if
11409         TARGET_ALLOW_MOVMISALIGN was not set explicitly.
11410
11411 2016-02-26  Joel Sherrill  <joel@rtems.org>
11412
11413         * config.gcc: Add x86_64-*-rtems*.
11414         * config/i386/rtems-64.h: New file.
11415
11416 2016-02-26  Joel Sherrill  <joel@rtems.org>
11417
11418         * config.gcc: Add aarch64-*-rtems*.
11419         * config/aarch64/rtems.h: New file.
11420
11421 2016-02-26  Segher Boessenkool  <segher@kernel.crashing.org>
11422
11423         PR target/69946
11424         * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
11425         shift amount using %h.  Add comment.
11426
11427 2016-02-26  Richard Biener  <rguenther@suse.de>
11428             Jeff Law  <law@redhat.com>
11429
11430         PR tree-optimization/69740
11431         * cfghooks.c (remove_edge): Request loop fixups if we delete
11432         an edge that might turn an irreducible loop into a natural
11433         loop.
11434
11435 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11436
11437         PR middle-end/69920
11438         * tree-sra.c (sra_modify_assign): Do not remove loads of
11439         uninitialized aggregates to SSA_NAMEs.
11440
11441 2016-02-26  Richard Henderson  <rth@redhat.com>
11442
11443         PR target/69709
11444         * config/s390/s390.md (risbg and risbgn splitters): Allocate new
11445         pseudo in case the target rtx matches the source of the left
11446         shift.
11447
11448 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11449
11450         PR hsa/69568
11451         * hsa.h (hsa_type_packed_p): Declare.
11452         * hsa.c (hsa_type_packed_p): New function.
11453         * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
11454         loads.
11455         (gen_hsa_insns_for_store): Use hsa_type_packed_p.
11456         * hsa-brig.c (emit_basic_insn): Likewise.
11457
11458 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11459
11460         pr hsa/69674
11461         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
11462         pointers.
11463         (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
11464
11465 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11466
11467         * hsa.h (is_a_helper): New overload for hsa_op_immed for
11468         hsa_op_with_type operands.
11469         (hsa_unsigned_type_for_type): Declare.
11470         * hsa.c (hsa_unsigned_type_for_type): New function.
11471         * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
11472         (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
11473         the finalizer.  Do not emit extra move.
11474
11475 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11476
11477         * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
11478         atomic operations in private segment.
11479
11480 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11481
11482         * omp-low.c (grid_find_ungridifiable_statement): Store problematic
11483         statements to wi->info.  Also disallow omp simd constructs.
11484         (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
11485         for not gridifying.  Dump special string for omp_for.
11486
11487 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11488
11489         PR target/69245
11490         * config/aarch64/aarch64.c (aarch64_set_current_function):
11491         Save/restore target globals when switching to
11492         target_option_default_node.
11493
11494 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11495
11496         PR target/69613
11497         * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
11498         Return 0 if !SHIFT_COUNT_TRUNCATED.
11499
11500 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
11501             Eric Botcazou  <ebotcazou@adacore.com>
11502
11503         PR rtl-optimization/69891
11504         * dse.c (scan_insn): If we can't figure out memset arguments
11505         or they are non-constant, call clear_rhs_from_active_local_stores.
11506
11507 2016-02-26  Martin Liska  <mliska@suse.cz>
11508
11509         * doc/extend.texi: Mention clog10, clog10f an clog10l
11510         in Builtins section.
11511
11512 2016-02-26  Martin Liska  <mliska@suse.cz>
11513
11514         * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
11515         CHECKING_P.
11516         (resolve_args_picking_1): Likewise.
11517         * dwarf2out.h (struct GTY): Likewise.
11518
11519 2016-02-26  Martin Liska  <mliska@suse.cz>
11520
11521         * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
11522         with flag_checking.
11523         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
11524
11525 2016-02-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
11526             Martin Liska  <mliska@suse.cz>
11527
11528         * doc/install.texi: Mention --enable-valgrind-annotations.
11529
11530 2016-02-26  Richard Biener  <rguenther@suse.de>
11531
11532         PR tree-optimization/69551
11533         * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
11534         looking through aliases adjust DECL_PT_UID to refer to the
11535         ultimate alias target.
11536
11537 2016-02-25  Martin Liska  <mliska@suse.cz>
11538
11539         PR middle-end/69919
11540         * alloc-pool.c (after_memory_report): New variable.
11541         * alloc-pool.h (base_pool_allocator ::release): Do not use
11542         the infrastructure if after_memory_report.
11543         * toplev.c (toplev::main): Mark after memory report.
11544
11545 2016-02-25  Richard Biener  <rguenther@suse.de>
11546
11547         PR tree-optimization/48795
11548         * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
11549
11550 2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>
11551
11552         PR driver/68463
11553         * config/gnu-user.h (CRTOFFLOADBEGIN): Define.  Add crtoffloadbegin.o if
11554         offloading is enabled and -fopenacc or -fopenmp is specified.
11555         (CRTOFFLOADEND): Likewise.
11556         (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
11557         (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
11558         * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
11559         (offload_objects_file_name): New static var.
11560         (tool_cleanup): Remove offload_objects_file_name file.
11561         (find_offloadbeginend): Replace with ...
11562         (find_crtoffloadtable): ... this.
11563         (run_gcc): Remove offload_argc and offload_argv.
11564         Get offload_objects_file_name from -foffload-objects=... option.
11565         Read names of object files with offload from this file, pass them to
11566         compile_images_for_offload_targets.  Don't call find_offloadbeginend and
11567         don't pass offloadbegin and offloadend to the linker.  Don't pass
11568         offload non-LTO files to the linker, because now they're not claimed.
11569
11570 2016-02-25  Jan Hubicka  <hubicka@ucw.cz>
11571
11572         PR ipa/69630
11573         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
11574         on builtin_unreachable.
11575
11576 2016-02-25  Jakub Jelinek  <jakub@redhat.com>
11577
11578         PR rtl-optimization/69896
11579         * regcprop.c: Include cfgrtl.h.
11580         (copyprop_hardreg_forward_1): If noop_p insn uses narrower
11581         than remembered mode, either delete it (if noop_move_p), or
11582         treat like copy_p but not noop_p instruction.
11583
11584 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
11585
11586         PR debug/69705
11587         * dwarf2out.c (gen_variable_die): Work around buggy LTO
11588         - allow NULL decl for Fortran DW_TAG_common_block variables.
11589
11590 2016-02-24  Jason Merrill  <jason@redhat.com>
11591
11592         * common.opt (flifetime-dse): Add -flifetime-dse=1.
11593
11594 2016-02-24  Richard Biener  <rguenther@suse.de>
11595             Jakub Jelinek  <jakub@redhat.com>
11596
11597         PR middle-end/69760
11598         * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
11599         conditionally executed ops to well-defined overflow behavior.
11600
11601 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
11602
11603         PR middle-end/69915
11604         * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
11605         elements.
11606
11607 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11608
11609         PR rtl-optimization/69886
11610         * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
11611         argument.  Use it when checking validity of set instructions.
11612         (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
11613         (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
11614         callsite.
11615         * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
11616         * store-motion.c (find_moveable_store): Update
11617         can_assign_to_reg_without_clobbers_p callsite.
11618
11619 2016-02-24  Richard Biener  <rguenther@suse.de>
11620
11621         PR middle-end/68963
11622         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
11623         bogus check.
11624         (record_nonwrapping_iv): Do not fall back to the low/high bound
11625         for non-constant IV bases if the stmt is not always executed.
11626
11627 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11628
11629         * config/arm/arm-cores.def (cortex-a32): New entry.
11630         * config/arm/arm-tables.opt: Regenerate.
11631         * config/arm/arm-tune.md: Regenerate.
11632         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
11633         * config/arm/t-aprofile: Handle mcpu=cortex-a32.
11634         * doc/invoke.texi (ARM Options): Document cortex-a32 as value
11635         for -mcpu and -mtune.
11636
11637 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11638
11639         PR target/69875
11640         * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
11641         * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
11642         * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
11643         (atomic_loaddi_1): Delete.
11644         (atomic_loaddi): Rewrite expander using the above changes.
11645
11646 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
11647
11648         PR c/69918
11649         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
11650         2 to 3.
11651
11652 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
11653             Richard Biener  <rguenth@suse.de>
11654
11655         PR middle-end/69909
11656         * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
11657         set_mem_attributes if tem is SSA_NAME which got expanded
11658         as a MEM.
11659
11660 2016-02-24  Richard Biener  <rguenther@suse.de>
11661
11662         PR tree-optimization/69907
11663         * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
11664         end of permutations for BB vectorization.
11665
11666 2016-02-24  Christian Bruel  <christian.bruel@st.com>
11667
11668         * config/arm/arm-c.c (arm_option_override): Initialize
11669         target_option_current_node.
11670         * config/arm/arm.c (arm_pragma_target_parse): Replace
11671         build_target_option_node call by target_option_current_node.
11672         Set target_option_current_node.
11673         Fix comments.
11674
11675 2016-02-23  David Edelsohn  <dje.gcc@gmail.com>
11676
11677         PR target/69810
11678         * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
11679         define_insn_and_split to define_insn.
11680         (zero_extendqi<mode>2_dot2): Same.
11681         (extendqi<mode>2_dot): Same.
11682         (extendqi<mode>2_dot2): Same.
11683
11684 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
11685
11686         * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
11687         and add bypass for AES{D,E} and AESMC pairs.
11688         * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
11689         and AESMC pairs.
11690
11691 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
11692
11693         * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
11694         series for reciprocal square root in Exynos M1.
11695
11696 2016-02-23  Martin Sebor  <msebor@redhat.com>
11697
11698         PR c/69759
11699         * doc/extend.texi (Other Builtins): Document __builtin_alloca and
11700         __builtin_alloca_with_align.
11701
11702 2016-02-23  Richard Henderson  <rth@redhat.com>
11703
11704         * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
11705         (ix86_register_pragmas): Remove __seg_tls.
11706         * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
11707         * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
11708         (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
11709         (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
11710         (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
11711         * doc/extend.texi (__seg_tls): Remove item.
11712
11713 2016-02-23  Richard Biener  <rguenther@suse.de>
11714
11715         * alloc-pool.h (struct allocation_object): Make id member
11716         conditional on CHECKING_P again.
11717         (get_instance): Adjust.
11718         (base_pool_allocator): Likewise.
11719
11720 2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>
11721
11722         * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
11723         (parallelize_loops): In OpenACC kernels mode, set n_threads to
11724         zero.
11725         (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
11726         flag_openacc.
11727         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
11728
11729 2016-02-23  Richard Biener  <rguenther@suse.de>
11730
11731         * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
11732         * bitmap.h (struct bitmap_usage): Likewise.
11733         (bitmap_move): Declare.
11734         * bitmap.c (register_overhead): Take size_t argument.
11735         (bitmap_move): New function.
11736         * df-problems.c (df_rd_transfer_function): Use bitmap_move
11737         to properly account overhead.
11738         * tree.c (free_node): Use tree_size.
11739
11740 2016-02-23  Jakub Jelinek  <jakub@redhat.com>
11741
11742         PR c++/69902
11743         * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
11744         when inverting comparison.
11745
11746         PR c/69900
11747         * common.opt (Wunreachable-code): Add Warning flag.
11748
11749 2016-02-23  Mark Wielaard  <mjw@redhat.com>
11750             Jakub Jelinek  <jakub@redhat.com>
11751
11752         PR c/69911
11753         * cgraphunit.c (check_global_declaration): Check main_input_filename
11754         and DECL_SOURCE_FILE are not NULL.
11755
11756 2016-02-23  Martin Jambor  <mjambor@suse.cz>
11757
11758         PR tree-optimization/69666
11759         * tree-sra.c (sra_modify_assign): Do not attempt to create
11760         default_def replacements for unscalarizable regions.
11761
11762 2016-02-20  Mark Wielaard  <mjw@redhat.com>
11763
11764         PR c/28901
11765         * cgraphunit.c (check_global_declaration): Check level of
11766         warn_unused_const_variable and main_input_filename.
11767         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
11768         (-Wunused-variable): For C implies -Wunused-const-variable=1.
11769         (-Wunused-const-variable): Explain levels 1 and 2.
11770
11771 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
11772
11773         PR target/69888
11774         * config/i386/i386.c (decide_alg): Ensure we don't recurse with
11775         identical arguments.  Formatting and spelling fixes.
11776
11777         PR target/69885
11778         * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
11779         be specified.
11780
11781         PR target/69894
11782         PR target/69895
11783         * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
11784         and m68k-devices.def.
11785         * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
11786         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
11787
11788 2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>
11789
11790         * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
11791         and HImode registers.
11792
11793 2016-02-22  Richard Biener  <rguenther@suse.de>
11794
11795         PR tree-optimization/69882
11796         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
11797         preserve permutations present because of gaps.
11798         (vect_supported_load_permutation_p): Always continue checking
11799         permutations after vect_attempt_slp_rearrange_stmts.
11800
11801 2016-02-22  Bin Cheng  <bin.cheng@arm.com>
11802
11803         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
11804         min_profitable_estimate, rather than min_profitable_iters.
11805
11806 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
11807
11808         PR target/69885
11809         * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
11810         SImode for last match_operand.
11811
11812 2016-02-22  Martin Liska  <mliska@suse.cz>
11813
11814         * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
11815         return bitsize - 1 as the return value.
11816
11817 2016-02-22  Oleg Endo  <olegendo@gcc.gnu.org>
11818
11819         PR target/69806
11820         PR target/54089
11821         * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
11822         Handle negative shift counts.
11823         * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
11824         force_reg on the shift constant.
11825         (lshrsi3): Likewise.  Expand into lshrsi3_n* instead of lshrsi3_d.
11826         (lshrsi3_d): Handle negative shift counts.
11827
11828 2016-02-22  Richard Biener  <rguenther@suse.de>
11829             Tom de Vries  <tom@codesourcery.com>
11830
11831         * graph.c: Include dumpfile.h.
11832         (print_graph_cfg): Split into three overloads.
11833         * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
11834
11835 2016-02-22  Tom de Vries  <tom@codesourcery.com>
11836
11837         * gdbhooks.py (class DumpFn): Add and instantiate, adding command
11838         dump-fn.
11839
11840 2016-02-22  Richard Biener  <rguenther@suse.de>
11841
11842         PR ipa/37448
11843         * ipa-inline-transform.c (inline_call): When not updating
11844         overall summaries adjust self size by the growth estimate.
11845         * ipa-inline.c (inline_to_all_callers_1): Add to the callers
11846         hash-set, do not update overall summaries here.  Renamed from ...
11847         (inline_to_all_callers): ... this which is now wrapping the
11848         above and performing delayed overall summary update.
11849         (early_inline_small_functions): Delay updating of the overall
11850         summary.
11851
11852 2016-02-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
11853
11854         * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
11855         variable.
11856
11857 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
11858
11859         PR driver/69805
11860         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
11861         :%* in %:gt() argument.
11862         (greater_than_spec_func): Adjust for expecting only numbers,
11863         if there are more than two numbers, compare the last two.
11864
11865 2016-02-19  Jonathan Wakely  <jwakely@redhat.com>
11866
11867         * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
11868         -Wnarrowing with -std.
11869
11870 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
11871
11872         PR c++/69851
11873         * expr.c (store_field): Don't use bit-field path if exp is
11874         COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
11875         different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
11876         and the assignment can be performed by bitwise copy.  Formatting
11877         fix.
11878
11879         PR middle-end/69838
11880         * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
11881         call copy_reg_eh_region_note_forward on before and/or after sequences
11882         and remove note from insn if it no longer can throw.
11883
11884         PR target/69820
11885         * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
11886         if TARGET_AVX512BW.
11887
11888 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11889
11890         * config/s390/vector.md: Add missing commutative operand markers
11891         to the patterns which qualify for one.
11892         * config/s390/vx-builtins.md: Likewise.
11893
11894 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11895
11896         * config/s390/vector.md (VI, VI_QHS): Add single element vector
11897         types to mode iterators.
11898         (vec_double): ... and mode attribute.
11899         * config/s390/vx-builtins.md (non_vec_int): Likewise.
11900
11901 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11902
11903         * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
11904         Change the predicate of op2 from nonimmediate to general and let
11905         reload fix it if necessary.
11906
11907 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11908
11909         * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
11910
11911 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11912
11913         * config/s390/s390.c (s390_expand_vcond): Use the compare operand
11914         mode.
11915
11916 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11917
11918         * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
11919         * config/s390/s390.c (s390_expand_vec_movstr): New function.
11920         * config/s390/s390.md ("movstr<P:mode>"): Call
11921         s390_expand_vec_movstr.
11922
11923 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11924
11925         * config/s390/s390.md: Add missing output modifier for operand 1
11926         to print it as address properly.
11927
11928 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11929
11930         * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
11931         * config/s390/2964.md: New file.
11932         * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
11933         of insn grouping attributes depending on the CPU level.
11934         (s390_get_unit_mask): New function.
11935         (s390_sched_score): Remove the OOO from the scheduling macros.
11936         Add loop to calculate a score for the instruction mix.
11937         (s390_sched_reorder): Likewise plus improve debug output.
11938         (s390_sched_variable_issue): Rename macros as above.  Calculate
11939         the unit distances after actually scheduling an insn.  Improve
11940         debug output.
11941         (s390_sched_init): Clear last_scheduled_unit_distance array.
11942         * config/s390/s390.md: Include 2964.md.
11943
11944 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
11945
11946         PR target/69671
11947         * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
11948         *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
11949         *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
11950         *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
11951         *avx512f_<code>v8div16qi2_mask_1): New insns.
11952
11953 2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
11954
11955         PR target/68404
11956         * config/rs6000/predicates.md (fusion_gpr_addis): Revert
11957         2016-02-09 change.
11958
11959         * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
11960         earlyclobber from target.  Use wF constraint for fused memory
11961         address.
11962         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
11963
11964 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
11965             Martin Liska  <mliska@suse.cz>
11966
11967         PR sanitizer/69863
11968         * cfgexpand.c (asan_sanitize_stack_p): New function.
11969         (partition_stack_vars): Use the function.
11970         (expand_stack_vars): Likewise.
11971         (defer_stack_allocation): Likewise.
11972         (expand_used_vars): Likewise.
11973
11974 2016-02-18  Richard Biener  <rguenther@suse.de>
11975
11976         PR middle-end/69553
11977         * fold-const.c (operand_equal_p): Properly compare offsets for
11978         IMAGPART_EXPR and ARRAY_REF.
11979
11980 2016-02-18  Nick Clifton  <nickc@redhat.com>
11981
11982         PR target/62254
11983         PR target/69610
11984         * config/arm/arm.c (arm_option_override_internal): Disable
11985         interworking if the target does not support thumb instructions.
11986         (arm_reload_in_hi): Handle the case where a register to register
11987         move needs reloading because there is no simple pattern to handle
11988         it.
11989         (arm_reload_out_hi): Likewise.
11990
11991 2016-02-18  Richard Biener  <rguenther@suse.de>
11992
11993         PR middle-end/69854
11994         * match.pd: Don't use fold_binary or fold_unary for folding
11995         constants.
11996
11997 2016-02-17  Jakub Jelinek  <jakub@redhat.com>
11998
11999         PR c++/69850
12000         * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
12001         on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
12002         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
12003         warn on gimple_no_warning_p statements.
12004
12005 2016-02-17  Jonathan Wakely  <jwakely@redhat.com>
12006
12007         * doc/extend.texi (C++ Attributes): Correct description of
12008         warn_unused type attribute.
12009
12010 2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12011
12012         * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
12013         correct instruction.
12014
12015 2016-02-17  Richard Biener  <rguenther@suse.de>
12016
12017         PR rtl-optimization/69609
12018         * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
12019         (find_traces_1_round): When ending a trace update cached priority
12020         of successors.
12021         (bb_to_key): Use cached priority when available.
12022         (copy_bb): Initialize cached priority.
12023         (reorder_basic_blocks_software_trace_cache): Likewise.
12024
12025 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12026
12027         PR target/69161
12028         * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
12029         New predicate.
12030         (aarch64_comparison_operator): Break overly long line into two.
12031         (aarch64_comparison_operation): Likewise.
12032         * config/aarch64/aarch64.md (cstorecc4): Use
12033         aarch64_comparison_operator_mode instead of
12034         aarch64_comparison_operator.
12035         (cstore<mode>4): Likewise.
12036         (aarch64_cstore<mode>): Likewise.
12037         (*cstoresi_insn_uxtw): Likewise.
12038         (cstore<mode>_neg): Likewise.
12039         (*cstoresi_neg_uxtw): Likewise.
12040
12041 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12042
12043         PR target/69161
12044         * config/arm/predicates.md (arm_comparison_operator_mode):
12045         New predicate.
12046         * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
12047         instead of arm_comparison_operator.
12048         (*mov_negscc): Likewise.
12049         (*mov_notscc): Likewise.
12050         * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
12051         (*thumb2_mov_negscc): Likewise.
12052         (*thumb2_mov_negscc_strict_it): Likewise.
12053         (*thumb2_mov_notscc): Likewise.
12054         (*thumb2_mov_notscc_strict_it): Likewise.
12055
12056 2016-02-17  Wilco Dijkstra  <wdijkstr@arm.com>
12057
12058         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
12059         Add missing return.
12060
12061 2016-02-17  Eric Botcazou  <ebotcazou@adacore.com>
12062
12063         * config/visium/visium.c (machine_libfunc_index): New enum.
12064         (machine_libfuncs): New structure.
12065         (visium_libfuncs): New static variable.
12066         (TARGET_INIT_LIBFUNCS): Define to...
12067         (visium_init_libfuncs): ...this.  New function.
12068         (expand_block_move_4): Use the appropriate libfunc.
12069         (expand_block_move_2): Likewise.
12070         (expand_block_move_1): Likewise.
12071         (expand_block_set_4): Likewise.
12072         (expand_block_set_2): Likewise.
12073         (expand_block_set_1): Likewise.
12074         (visium_trampoline_init): Likewise.
12075
12076 2016-02-17  Nick Clifton  <nickc@redhat.com>
12077
12078         * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
12079         TI's devices.csv file as of March 2016.
12080
12081 2016-02-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
12082
12083         PR Target/48344
12084         * opts-global.c (handle_common_deferred_options): Introduce and
12085         initialize two global variables to remember command-line options
12086         specifying a stack-limiting register.
12087         * opts.h: Add extern declarations of the two new global variables.
12088         * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
12089         variable based on the values of the two new global variables.
12090
12091 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
12092
12093         PR c/69835
12094         * common.opt (Wnonnull-compare): New warning.
12095         * doc/invoke.texi (-Wnonnull): Remove text about comparison
12096         of arguments against NULL.
12097         (-Wnonnull-compare): Document.
12098         * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
12099         * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
12100         * passes.def (pass_warn_nonnull_compare): Add.
12101         * gimple-ssa-nonnull-compare.c: New file.
12102
12103 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
12104
12105         * config/aarch64/aarch64.c (cortexa57_tunings): Remove
12106         AARCH64_EXTRA_TUNE_RECIP_SQRT.
12107
12108 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
12109
12110         * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
12111         reciprocal sqrt for -mlow-precision-recip-sqrt.
12112
12113 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
12114             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12115
12116         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
12117         always use lane loads to construct non-constant vectors.
12118
12119 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
12120
12121         * config/aarch64/aarch64.md
12122         (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
12123         constraints for operand 3.
12124         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
12125
12126 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
12127             Richard Biener  <rguenther@suse.de>
12128
12129         PR tree-optimization/69820
12130         * tree-vect-patterns.c (type_conversion_p): Return false if
12131         *orig_type is unsigned single precision or boolean.
12132         (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
12133         Formatting fix.
12134
12135 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
12136
12137         PR rtl-optimization/69764
12138         PR rtl-optimization/69771
12139         * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
12140         op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
12141
12142 2016-02-16  Richard Biener  <rguenther@suse.de>
12143
12144         PR tree-optimization/69776
12145         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
12146         sets from caller.
12147         (indirect_refs_may_alias_p): Likewise.
12148         (refs_may_alias_p_1): Pass alias sets as from ao_ref.
12149         * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
12150         according to tbaa_p.
12151         * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
12152         (optimize_stmt): For redundant store discovery do not allow tbaa.
12153
12154 2016-02-16  Bernd Schmidt  <bschmidt@redhat.com>
12155
12156         PR tree-optimization/69714
12157         * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
12158         Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
12159
12160 2016-02-16  Claudiu Zissulescu  <claziss@synopsys.com>
12161
12162         * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
12163         * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
12164         (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
12165         * config/arc/arc.c (arc_init): Check FPU options.
12166         (get_arc_condition_code): Handle new CC_FPU* modes.
12167         (arc_select_cc_mode): Likewise.
12168         (arc_conditional_register_usage): Allow 64 bit datum into even-odd
12169         register pair only. Allow access for ARCv2 accumulator.
12170         (gen_compare_reg): Whenever we have FPU support use FPU compare
12171         instructions.
12172         (arc_reorg): Don't generate brcc insns when FPU compare
12173         instructions are involved.
12174         * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
12175         (TARGET_OPTFPE): Add condition when ARC EM can use optimized
12176         floating point emulation.
12177         (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
12178         (REVERSE_CONDITION): Add new CC_FPU* modes.
12179         (TARGET_FP_SP_BASE): Define.
12180         (TARGET_FP_DP_BASE): Likewise.
12181         (TARGET_FP_SP_FUSED): Likewise.
12182         (TARGET_FP_DP_FUSED): Likewise.
12183         (TARGET_FP_SP_CONV): Likewise.
12184         (TARGET_FP_DP_CONV): Likewise.
12185         (TARGET_FP_SP_SQRT): Likewise.
12186         (TARGET_FP_DP_SQRT): Likewise.
12187         (TARGET_FP_DP_AX): Likewise.
12188         * config/arc/arc.md (ARCV2_ACC): New constant.
12189         (type): New fpu type attribute.
12190         (SDF): Conditional iterator.
12191         (cstore<mode>, cbranch<mode>): Change expand condition.
12192         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
12193         handles FPU/FPX cases as well.
12194         * config/arc/arc.opt (mfpu): New option.
12195         * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
12196         Renamed.
12197         (adddf3, muldf3, subdf3): Removed.
12198         * config/arc/predicates.md (proper_comparison_operator): Recognize
12199         CC_FPU* modes.
12200         * config/arc/fpu.md: New file.
12201         * doc/invoke.texi (ARC Options): Document mfpu option.
12202
12203 2016-02-16  Richard Biener  <rguenther@suse.de>
12204
12205         PR rtl-optimization/69291
12206         * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
12207         noce_operand_ok check.
12208
12209 2016-02-16  Tom de Vries  <tom@codesourcery.com>
12210
12211         PR lto/67709
12212         * omp-low.c (simd_clone_create): Remove call to
12213         symtab->call_cgraph_insertion_hooks.
12214
12215 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
12216
12217         PR tree-optimization/69802
12218         * tree-ssa-reassoc.c (update_range_test): If op is
12219         SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
12220         op == 1 test of precision 1 integral op, otherwise handle
12221         that case as op itself.  Fix up formatting.
12222         (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
12223         up formatting.
12224
12225 2016-02-16  Richard Biener  <rguenther@suse.de>
12226
12227         PR tree-optimization/69586
12228         * tree-vrp.c (register_edge_assert_for_2): Handle all integral
12229         types for conversion sources.
12230
12231 2016-02-16  Richard Biener  <rguenther@suse.de>
12232
12233         PR middle-end/69801
12234         * fold-const.c (operand_equal_p): For COND_EXPR zero operand
12235         mask OEP_ADDRESS_OF.
12236
12237 2016-02-16  Alan Modra  <amodra@gmail.com>
12238
12239         PR target/68973
12240         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
12241         (p8_mtvsrd_df, p8_mtvsrd_sf): New.
12242         (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
12243         (p8_mtvsrwz): New.
12244         (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
12245         (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
12246         (p8_fmrgow_<mode>): Likewise.
12247         (reload_vsx_from_gpr<mode>): Make clobber IF.  Adjust for above
12248         changes.
12249         (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
12250         (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
12251         to use movdi_internal64.  Remove op0_di.
12252         * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
12253
12254 2016-02-15  Evandro Menezes  <e.menezes@samsung.com>
12255
12256         Add support for the FCCMP insn types
12257
12258         * config/aarch64/aarch64.md (fccmp): Change insn type.
12259         (fccmpe): Likewise.
12260         * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
12261         * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
12262         * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
12263         * config/arm/xgene1.md (xgene1_fcmp): Likewise.
12264         * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
12265         * config/arm/types.md (fccmps): Add new insn type.
12266         (fccmpd): Likewise.
12267
12268 2016-02-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
12269
12270         * alias.c (get_alias_set): Fix a typo in comment.
12271
12272 2016-02-15  Richard Biener  <rguenther@suse.de>
12273
12274         PR tree-optimization/69595
12275         * match.pd: Complete range test simplification to true.
12276
12277 2016-02-15  Bernd Schmidt  <bschmidt@redhat.com>
12278
12279         PR rtl-optimization/69648
12280         * lra-constraints.c (update_ebb_live_info): Don't remove sets of
12281         pic_offset_table_rtx.
12282
12283         PR rtl-optimization/69752
12284         * ira.c (update_equiv_regs): When looking for more than a single SET,
12285         also take other side effects into account.
12286
12287 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
12288
12289         * config/s390/s390.c (s390_function_profiler): Add a new sequence
12290         for z900+ CPUs in 31-bit mode.
12291
12292 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
12293
12294         * common/config/s390/s390-common.c (s390_supports_split_stack):
12295         New function.
12296         (TARGET_SUPPORTS_SPLIT_STACK): New macro.
12297         * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
12298         * config/s390/s390.c (struct machine_function): New field
12299         split_stack_varargs_pointer.
12300         (s390_register_info): Mark r12 as clobbered if it'll be used as temp
12301         in s390_emit_prologue.
12302         (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
12303         vararg pointer.
12304         (morestack_ref): New global.
12305         (SPLIT_STACK_AVAILABLE): New macro.
12306         (s390_expand_split_stack_prologue): New function.
12307         (s390_live_on_entry): New function.
12308         (s390_va_start): Use split-stack vararg pointer if appropriate.
12309         (s390_asm_file_end): Emit the split-stack note sections.
12310         (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
12311         * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
12312         (UNSPECV_SPLIT_STACK_CALL): New unspec.
12313         (UNSPECV_SPLIT_STACK_DATA): New unspec.
12314         (split_stack_prologue): New expand.
12315         (split_stack_space_check): New expand.
12316         (split_stack_data): New insn.
12317         (split_stack_call): New expand.
12318         (split_stack_call_*): New insn.
12319         (split_stack_cond_call): New expand.
12320         (split_stack_cond_call_*): New insn.
12321
12322 2016-02-15  Richard Biener  <rguenther@suse.de>
12323
12324         PR tree-optimization/69783
12325         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
12326         Add trivially correct cases.
12327
12328 2016-02-15  Tom de Vries  <tom@codesourcery.com>
12329
12330         PR lto/69655
12331         * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
12332         do_force_output.
12333         * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
12334
12335 2016-02-15  Richard Biener  <rguenther@suse.de>
12336
12337         PR tree-optimization/69776
12338         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
12339         * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
12340         indicate whether we can use TBAA to disambiguate against stores.
12341         Use alias-set zero if not.
12342         (visit_reference_op_store): Do not use TBAA when looking up
12343         redundant stores.
12344         * tree-ssa-pre.c (compute_avail): Use TBAA here.
12345         (eliminate_dom_walker::before_dom_children): But not when looking
12346         up redundant stores.
12347
12348 2016-02-14  John David Anglin  <danglin@gcc.gnu.org>
12349
12350         * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
12351
12352 2016-02-14  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
12353
12354         *  config/i386/znver1.md
12355         (znver1_pop, znver1_pop_mem,
12356         znver1_load_imov_double_store,
12357         znver1_load_imov_direct_store,
12358         znver1_load_imov_direct_load,
12359         znver1_load_imov_double_load): Add new.
12360         (znver1_insn, znver1_insn_load): Add icmov type.
12361         (znver1_sseavx_fma,
12362         znver1_sseavx_fma_load,
12363         znver1_avx256_fma,
12364         znver1_avx256_fma_load): Fix pipe usage.
12365
12366 2016-02-14  Alan Modra  <amodra@gmail.com>
12367
12368         PR target/68973
12369         * reloads.c (find_reloads_address_1): For pre/post-inc/dec
12370         with an invalid hard reg, reload just the reg not the entire
12371         pre/post-inc/dec address expression.
12372
12373 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
12374
12375         PR target/67260
12376         * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
12377         fixed R1_REG scratch reg.
12378         (sibcall_value_pcrel_fdpic): Likewise.
12379
12380 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
12381
12382         PR target/67636
12383         PR target/64345
12384         * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
12385
12386 2016-02-12  Walter Lee  <walt@tilera.com>
12387
12388         * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
12389         * config/tilegx/t-tilegx: Likewise.
12390
12391 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
12392
12393         PR other/69554
12394         * diagnostic-show-locus.c (struct line_span): New struct.
12395         (layout::get_first_line): Delete.
12396         (layout::get_last_line): Delete.
12397         (layout::get_num_line_spans): New member function.
12398         (layout::get_line_span): Likewise.
12399         (layout::print_heading_for_line_span_index_p): Likewise.
12400         (layout::get_expanded_location): Likewise.
12401         (layout::calculate_line_spans): Likewise.
12402         (layout::m_first_line): Delete.
12403         (layout::m_last_line): Delete.
12404         (layout::m_line_spans): New field.
12405         (layout::layout): Update comment.  Replace m_first_line and
12406         m_last_line with m_line_spans, replacing their initialization
12407         with a call to calculate_line_spans.
12408         (diagnostic_show_locus): When printing source lines and
12409         annotations, rather than looping over a single span
12410         of lines, instead loop over each line_span within
12411         the layout, with an inner loop over the lines within them.
12412         Call the context's start_span callback when changing line spans.
12413         * diagnostic.c (diagnostic_initialize): Initialize start_span.
12414         (diagnostic_build_prefix): Break out the building of the location
12415         part of the string into...
12416         (diagnostic_get_location_text): ...this new function, rewriting
12417         it from nested ternary expressions to a sequence of "if"
12418         statements.
12419         (default_diagnostic_start_span_fn): New function.
12420         * diagnostic.h (diagnostic_start_span_fn): New typedef.
12421         (diagnostic_context::start_span): New field.
12422         (default_diagnostic_start_span_fn): New prototype.
12423
12424 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
12425
12426         PR driver/69779
12427         * gcc.c (driver::finalize): Fix cleanup of "specs".
12428
12429 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
12430
12431         PR driver/69265
12432         PR driver/69453
12433         * gcc.c (driver::driver): Initialize m_option_suggestions.
12434         (driver::~driver): Clean up m_option_suggestions.
12435         (suggest_option): Convert to...
12436         (driver::suggest_option): ...this, and split out into
12437         driver::build_option_suggestions and find_closest_string.
12438         (driver::build_option_suggestions): New function, from
12439         first half of suggest_option.  Special-case
12440         OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
12441         the sanitizer_opts array.  For options of enum types, add the
12442         various enum values to the candidate strings.
12443         (driver::handle_unrecognized_options): Remove "const".
12444         * gcc.h (driver::handle_unrecognized_options): Likewise.
12445         (driver::build_option_suggestions): New decl.
12446         (driver::suggest_option): New decl.
12447         (driver::m_option_suggestions): New field.
12448         * opts-common.c (add_misspelling_candidates): New function.
12449         * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
12450         and make non-static.
12451         * opts.h (sanitizer_opts): New array decl.
12452         (add_misspelling_candidates): New function decl.
12453         * spellcheck.c (find_closest_string): New function.
12454         * spellcheck.h (find_closest_string): New function decl.
12455
12456 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
12457
12458         PR rtl-optimization/69764
12459         PR rtl-optimization/69771
12460         * optabs.c (expand_binop_directly): For shift_optab_p, force
12461         convert_modes with VOIDmode if xop1 has VOIDmode.
12462
12463 2016-02-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
12464
12465         PR target/69729
12466         * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
12467         to correctly determine instrumentation thunks.
12468
12469 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
12470
12471         PR ipa/69241
12472         * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
12473         type by reference, force lhs on the call.
12474
12475         PR ipa/68672
12476         * ipa-split.c (split_function): Don't compute/use main_part_return_p.
12477         Compute retval and retbnd early in all cases if split_part_return_p
12478         and return_bb is not EXIT.  Remove all clobber stmts and reset
12479         all debug stmts that refer to SSA_NAMEs defined in split part,
12480         except if it is retval, in that case replace the old retval with the
12481         lhs of the call to the split part.
12482
12483 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
12484
12485         revert:
12486         2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
12487
12488         PR middle-end/66726
12489         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
12490         whose result is used in PHI.
12491         (maybe_optimize_range_tests): Likewise.
12492         (final_range_test_p): Likweise.
12493
12494 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
12495
12496         PR middle-end/66726
12497         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
12498         whose result is used in PHI.
12499         (maybe_optimize_range_tests): Likewise.
12500         (final_range_test_p): Likweise.
12501
12502 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
12503
12504         * cgraph.c: Spelling fixes - behaviour -> behavior and
12505         neighbour -> neighbor.
12506         * target.def: Likewise.
12507         * sel-sched.c: Likewise.
12508         * config/mips/mips.c: Likewise.
12509         * config/arc/arc.md: Likewise.
12510         * config/arm/cortex-a57.md: Likewise.
12511         * config/arm/arm.c: Likewise.
12512         * config/arm/neon.md: Likewise.
12513         * config/arm/arm-c.c: Likewise.
12514         * config/vms/vms-c.c: Likewise.
12515         * config/s390/s390.c: Likewise.
12516         * config/i386/znver1.md: Likewise.
12517         * config/i386/i386.c: Likewise.
12518         * config/ia64/hpux-unix2003.h: Likewise.
12519         * config/msp430/msp430.md: Likewise.
12520         * config/rx/rx.c: Likewise.
12521         * config/rx/rx.md: Likewise.
12522         * config/aarch64/aarch64-simd.md: Likewise.
12523         * config/aarch64/aarch64.c: Likewise.
12524         * config/nvptx/nvptx.c: Likewise.
12525         * config/bfin/bfin.c: Likewise.
12526         * config/cris/cris.opt: Likewise.
12527         * config/rs6000/rs6000.c: Likewise.
12528         * target.h: Likewise.
12529         * spellcheck.c: Likewise.
12530         * ira-build.c: Likewise.
12531         * tree-inline.c: Likewise.
12532         * builtins.c: Likewise.
12533         * lra-constraints.c: Likewise.
12534         * explow.c: Likewise.
12535         * hwint.h: Likewise.
12536         * targhooks.c: Likewise.
12537         * tree-vect-data-refs.c: Likewise.
12538         * expr.c: Likewise.
12539         * doc/tm.texi: Likewise.
12540         * doc/extend.texi: Likewise.
12541         * doc/install.texi: Likewise.
12542         * doc/md.texi: Likewise.
12543         * tree-ssa-tail-merge.c: Likewise.
12544         * sched-int.h: Likewise.
12545         * match.pd: Likewise.
12546         * sched-ebb.c: Likewise.
12547         * target.def (omit_struct_return_reg): Likewise.
12548         * gimple-ssa-isolate-paths.c: Likewise.
12549         (find_implicit_erroneous_behaviour): Renamed to...
12550         (find_implicit_erroneous_behavior): ... this.
12551         (find_explicit_erroneous_behaviour): Renamed to...
12552         (find_explicit_erroneous_behavior): ... this.
12553         (gimple_ssa_isolate_erroneous_paths): Adjust caller.
12554
12555 2016-02-11  Segher Boessenkool  <segher@kernel.crashing.org>
12556
12557         PR rtl-optimization/64682
12558         PR rtl-optimization/69567
12559         PR rtl-optimization/69737
12560         * combine.c (distribute_notes) <REG_DEAD>: If the register is set
12561         in I2 as well, just lose it.
12562
12563 2016-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12564
12565         * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
12566         New variable.
12567         (aarch64_last_printed_tune_string): Likewise.
12568         (aarch64_declare_function_name): Only output .arch assembler
12569         directive if it will be different from the previously output
12570         directive.  Same for .tune comment but only if -dA is set.
12571         (aarch64_start_file): New function.
12572         (TARGET_ASM_FILE_START): Define.
12573
12574 2016-02-11  David Malcolm  <dmalcolm@redhat.com>
12575
12576         PR plugins/69758
12577         * Makefile.in (PLUGIN_HEADERS): Add params.list.
12578
12579 2016-02-11  Jakub Jelinek  <jakub@redhat.com>
12580
12581         PR target/65313
12582         * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
12583         -Wmaybe-uninitialized warning.
12584
12585 2016-02-11  Oleg Endo  <olegendo@gcc.gnu.org>
12586
12587         PR target/69713
12588         * config/sh/sh.md (casesi_worker_0): Add T_REG use.
12589
12590 2016-02-11  Richard Biener  <rguenther@suse.de>
12591
12592         PR rtl-optimization/69291
12593         * ifcvt.c (noce_try_store_flag_constants): Do not allow
12594         subexpressions affected by changing the result.
12595
12596 2016-02-10  Vladimir Makarov  <vmakarov@redhat.com>
12597
12598         PR target/69148
12599         * lra-constraints.c (curr_insn_transform): Find in/out operands
12600         for secondary memory moves.  Update dups.
12601
12602 2016-02-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
12603
12604         PR tree-optimization/69652
12605         * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
12606         to nested loop, did source re-formatting, skip debug statements,
12607         add check on statement with volatile operand, remove dead scalar
12608         statements.
12609
12610 2016-02-10  Jakub Jelinek  <jakub@redhat.com>
12611             Patrick Palka  <ppalka@gcc.gnu.org>
12612
12613         PR ipa/69241
12614         PR c++/69649
12615         * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
12616         calls if the return type is TREE_ADDRESSABLE.
12617         * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
12618         * ipa-split.c (split_function): Fix doubled "we" in comment.
12619         Use void return type for the split part even if
12620         !split_point->split_part_set_retval.
12621
12622 2016-02-10  Bin Cheng  <bin.cheng@arm.com>
12623
12624         PR tree-optimization/68021
12625         * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
12626         when computing the value of biv cand by itself.
12627
12628 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
12629
12630         * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
12631         (cortexa57_tunings): Likewise.
12632         (cortexa72_tunings): Likewise.
12633         (arch_macro_fusion_pair_p): Add support for AES fusion.
12634         * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
12635         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
12636         Allow virtual registers before reload so early scheduling works.
12637         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
12638         correct latency and pipeline.
12639         (cortex_a57_crypto_complex): Likewise.
12640         (cortex_a57_crypto_xor): Likewise.
12641         (define_bypass): Add AES bypass.
12642
12643 2016-02-10  Richard Biener  <rguenther@suse.de>
12644
12645         PR tree-optimization/69726
12646         * passes.def: Add DCE pass before late uninit.
12647         * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
12648         really fixup if-conversions job.
12649
12650 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
12651
12652         * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
12653         (arm_cortex_a57_tune): Likewise.
12654         (aarch_macro_fusion_pair_p): Add support for AES fusion.
12655         * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
12656
12657 2016-02-10  Eric Botcazou  <ebotcazou@adacore.com>
12658
12659         * timevar.def (TV_PHASE_DBGINFO): Delete.
12660         (TV_PHASE_CHECK_DBGINFO): Likewise.
12661         * varpool.c (varpool_node::assemble_decl): Do not change timevar.
12662
12663 2016-02-10  Richard Biener  <rguenther@suse.de>
12664
12665         PR tree-optimization/69719
12666         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
12667         Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
12668
12669 2016-02-09  Andrew Pinski  <apinski@cavium.com>
12670
12671         PR tree-opt/69282
12672         * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
12673         get_vcond_mask_icode returns false.
12674
12675 2016-02-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
12676
12677         PR target/68404
12678         * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
12679         an ADDIS that adds a pointer to a large constant that sets the
12680         upper16 bits with a load operation.
12681
12682 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
12683
12684         PR target/68532
12685         * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
12686         order.
12687         * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
12688         endian.
12689         (vzipq_s16): Likewise.
12690         (vzipq_s32): Likewise.
12691         (vzipq_f32): Likewise.
12692         (vzipq_u8): Likewise.
12693         (vzipq_u16): Likewise.
12694         (vzipq_u32): Likewise.
12695         (vzipq_p8): Likewise.
12696         (vzipq_p16): Likewise.
12697
12698 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
12699
12700         PR target/68532
12701         * config/arm/arm.c (neon_endian_lane_map): New function.
12702         (neon_vector_pair_endian_lane_map): New function.
12703         (arm_evpc_neon_vuzp): Allow for big endian lane order.
12704         * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
12705         endian.
12706         (vuzpq_s16): Likewise.
12707         (vuzpq_s32): Likewise.
12708         (vuzpq_f32): Likewise.
12709         (vuzpq_u8): Likewise.
12710         (vuzpq_u16): Likewise.
12711         (vuzpq_u32): Likewise.
12712         (vuzpq_p8): Likewise.
12713         (vuzpq_p16): Likewise.
12714
12715 2016-02-11  Alexandre Oliva  <aoliva@redhat.com>
12716
12717         PR target/69634
12718         * regstat.c (regstat_bb_compute_calls_crossed): Disregard
12719         debug insns.
12720
12721 2016-02-09  Uros Bizjak  <ubizjak@gmail.com>
12722
12723         * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
12724         truncate const_int operand 1 to QImode.
12725
12726 2016-02-09  Eric Botcazou  <ebotcazou@adacore.com>
12727
12728         * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
12729         corresponding to an abnormal edge.
12730
12731 2016-02-09  Tom de Vries  <tom@codesourcery.com>
12732
12733         PR tree-optimization/69599
12734         * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
12735         function.
12736         (find_func_aliases_for_builtin_call, find_func_clobbers)
12737         (ipa_pta_execute):  Handle case that foo and foo._0 are not in same lto
12738         partition.
12739
12740 2016-02-09  Richard Biener  <rguenther@suse.de>
12741
12742         PR tree-optimization/69715
12743         * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
12744         LHS on calls as non-rewritable.
12745
12746 2016-02-09  Tom de Vries  <tom@codesourcery.com>
12747
12748         PR lto/69707
12749         * lto-wrapper.c (append_diag_options): New function.
12750         (compile_offload_image): Call append_diag_options.
12751
12752 2016-02-08  Sandra Loosemore  <sandra@codesourcery.com>
12753
12754         PR other/69722
12755         * doc/extend.texi (Flag Output Operands): Correct sectioning.
12756         Minor copy-edit to fix verb tenses.
12757
12758 2016-02-08  Jakub Jelinek  <jakub@redhat.com>
12759
12760         PR tree-optimization/69209
12761         * ipa-split.c (split_function): If split part is not
12762         returning retval, retval has gimple type but is not
12763         gimple value, force it into a SSA_NAME first.
12764
12765 2016-02-08  Nicklas Bo Jensen  <nbjensen@gmail.com>
12766
12767         * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
12768         outdated section.
12769
12770 2016-02-08  Jason Merrill  <jason@redhat.com>
12771
12772         PR c++/69631
12773         * convert.c (convert_to_integer_1): Check dofold on truncation
12774         distribution.
12775         (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
12776         (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
12777         Rename from *_nofold.
12778         * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
12779         (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
12780
12781 2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
12782
12783         PR target/60410
12784         * tree.c (build_common_tree_nodes): Remove short_double argument.
12785         All callers changed.
12786         * tree.h (build_common_tree_nodes): Adjust declaration.
12787         * doc/invoke.texi (-fshort-double): Remove documentation.
12788         * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
12789         MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
12790         * lto-wrapper.c (merge_and_complain, append_compiler_options)
12791         (append_linker_options): Don't handle OPT_fshort_double.
12792
12793         PR rtl-optimization/68730
12794         * lra-remat.c (insn_to_cand_activation): New static variable.
12795         (lra_remat): Allocate and free it.
12796         (create_cand): New arg activation. Initialize a field in
12797         insn_to_cand_activation if it is nonnull.
12798         (create_cands): Pass the activation insn to create_cand when making
12799         a candidate involving an output reload.  Reorganize code a little.
12800         (do_remat): Keep track of active status of candidates in a separate
12801         bitmap.
12802
12803 2016-02-08  Richard Biener  <rguenther@suse.de>
12804
12805         PR tree-optimization/69719
12806         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
12807         Properly use absolute of the difference of the two offsets to
12808         compare or adjust the segment length.
12809
12810 2016-02-08  Richard Biener  <rguenther@suse.de>
12811             Jeff Law  <law@redhat.com>
12812
12813         PR target/68273
12814         * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
12815         types for anonymous SSA names.
12816
12817 2016-02-08   Richard Biener  <rguenther@suse.de>
12818
12819         PR rtl-optimization/69274
12820         * ira.c (ira_setup_alts): Do not change recog_data.operand order.
12821
12822 2016-02-08  Jeff Law  <law@redhat.com>
12823
12824         PR tree-optimization/65917
12825         * tree-ssa-dom.c (record_temporary_equivalences): Record both
12826         equivalences from if (x == y) style conditionals.
12827         (loop_depth_of_name): Remove.
12828         (record_equality): Remove loop depth check.
12829         * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
12830         (const_and_copies::record_const_or_copy_raw): New member function.
12831         * tree-ssa-scopedtables.c
12832         (const_and_copies::record_const_or_copy_raw): New, factored out of
12833         (const_and_copies::record_const_or_copy): Call new member function.
12834
12835 2016-02-05  Jeff Law  <law@redhat.com>
12836
12837         PR tree-optimization/68541
12838         * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
12839         (count_stmts_in_block): New function.
12840         (poor_ifcvt_candidate_code): Likewise.
12841         (is_feasible_trace): Add some heuristics to determine when path
12842         splitting is profitable.
12843         (find_block_to_duplicate_for_splitting_paths): Make sure the graph
12844         is a diamond with a single exit.
12845
12846 2016-02-05  Martin Sebor  <msebor@redhat.com>
12847
12848         PR c++/69662
12849         * doc/invoke.texi: Update -Wplacement-new to take an optional
12850         argument.
12851
12852 2016-02-06  Richard Henderson  <rth@redhat.com>
12853
12854         PR c/69643
12855         * tree.c (tree_nop_conversion_p): Do not strip casts into or
12856         out of non-standard address spaces.
12857
12858 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
12859
12860         PR rtl-optimization/69691
12861         * lra-eliminations.c (move_plus_up): Don't add the addend twice.
12862
12863 2016-02-05  Pat Haugen  <pthaugen@us.ibm.com>
12864
12865         * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
12866         * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
12867         (*ieee128_mfvsrd_64bit): Likewise.
12868         (*ieee128_mfvsrd_32bit): Likewise.
12869
12870 2016-02-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
12871
12872         PR target/69369
12873         Revert r232560:
12874         2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
12875
12876         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
12877         instrumented_version.
12878
12879 2016-01-05  Jeremy Bennett  <jeremy.bennett@embecosm.com>
12880
12881         * doc/invoke.texi (Optimize Options): In table of --param options
12882         rename second occurrence of tracer-min-branch-ratio to
12883         tracer-min-branch-probability, rename
12884         tracer-min-branch-ratio-feedback to
12885         tracer-min-branch-probability-feedback and clarify description,
12886         rename sched-spec-state-edge-prob-cutoff to
12887         sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
12888         to selsched-insns-to-rename, rename lto-minpartition to
12889         lto-min-partition, delete reorder-blocks-duplicate and
12890         reorder-blocks-duplicate-feedback.
12891
12892 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12893
12894         * config/s390/s390.c (s390_register_info_set_ranges): Remove
12895         superfluous loops.
12896
12897 2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
12898
12899         * doc/extend.texi: S/390: Correct some typos.
12900
12901 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12902
12903         * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
12904
12905 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12906
12907         PR target/69625
12908         * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
12909         (s390_register_info_gprtofpr): Use new macros above.
12910         (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
12911         its name.
12912         (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
12913         its name.  Adjust restore and save gpr ranges.
12914         (s390_register_info_set_ranges): New function.
12915         (s390_register_info): Use new macros above.  Call
12916         s390_register_info_set_ranges.
12917         (s390_optimize_register_info): Likewise.
12918         (s390_hard_regno_rename_ok): Use new macros.
12919         (s390_hard_regno_scratch_ok): Likewise.
12920         (s390_emit_epilogue): Likewise.
12921         (s390_can_use_return_insn): Likewise.
12922         (s390_optimize_prologue): Likewise.
12923         * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
12924
12925 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
12926
12927         PR bootstrap/69677
12928         * config/i386/i386.c (convert_scalars_to_vector): Readd stack
12929         alignment fixes.
12930         (ix86_option_override_internal): Disable TARGET_STV even for
12931         -m{incoming,preferred}-stack-boundary=3.
12932
12933 2016-02-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12934
12935         * config.gcc: Mark deprecated rtems targets as obsolete.
12936
12937 2016-02-04  Segher Boessenkool  <segher@kernel.crashing.org>
12938
12939         PR rtl-optimization/64682
12940         PR rtl-optimization/69567
12941         * combine.c (distribute_notes) <REG_DEAD>: Place the death note
12942         before I2 only if the register is both used and set in I2.
12943
12944 2016-02-04  DJ Delorie  <dj@redhat.com>
12945
12946         * config/msp430/msp430.c (msp430_start_function): Add function type.
12947
12948 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
12949
12950         PR fortran/69368
12951         * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
12952
12953 2016-02-04  Uros Bizjak  <ubizjak@gmail.com>
12954
12955         PR rtl-optimization/69577
12956         Revert:
12957         2015-10-29  Richard Henderson  <rth@redhat.com>
12958
12959         PR target/68124
12960         PR rtl-opt/67609
12961         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
12962         sse check to the exact conditions of PR 67609.
12963
12964 2016-02-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
12965
12966         PR target/69667
12967         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
12968         instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
12969         not allowed into the traditional Altivec registers.
12970         (movtd_64bit_nodm): Likewise.
12971         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
12972
12973 2016-02-04  David Malcolm  <dmalcolm@redhat.com>
12974
12975         * config/aarch64/cortex-a57-fma-steering.c
12976         (aarch64_register_fma_steering): Remove "static" from arguments
12977         to register_pass.
12978
12979 2016-02-04  Wilco Dijkstra  <wdijkstr@arm.com>
12980
12981         PR target/69619
12982         * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
12983         twice when complex.
12984
12985 2016-02-04  Mike Frysinger  <vapier@gentoo.org>
12986
12987         * doc/invoke.texi: Delete -mno-fma4.
12988
12989 2016-02-04  Richard Sandiford  <richard.sandiford@arm.com>
12990
12991         PR rtl-optimization/69577
12992         * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
12993         (find_subregs_of_mode): Update accordingly.  Iterate over partial
12994         definitions.
12995
12996 2016-02-04  Alan Lawrence  <alan.lawrence@arm.com>
12997
12998         * config/arm/arm-protos.h (neon_reinterpret): Remove.
12999         * config/arm/arm.c (neon_reinterpret): Remove.
13000         * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
13001         vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
13002         vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
13003         vreinterpretti): Remove.
13004         * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
13005         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
13006         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
13007         neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
13008         neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
13009         neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
13010         * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
13011         vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
13012         vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
13013         vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
13014         vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
13015         vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
13016         vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
13017         vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
13018         vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
13019         vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
13020         vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
13021         vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
13022         vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
13023         vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
13024         vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
13025         vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
13026         vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
13027         vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
13028         vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
13029         vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
13030         vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
13031         vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
13032         vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
13033         vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
13034         vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
13035         vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
13036         vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
13037         vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
13038         vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
13039         vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
13040         vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
13041         vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
13042         vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
13043         vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
13044         vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
13045         vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
13046         vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
13047         vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
13048         vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
13049         vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
13050         vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
13051         vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
13052         vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
13053         vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
13054         vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
13055         vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
13056         vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
13057         vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
13058         vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
13059         vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
13060         vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
13061         vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
13062         vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
13063         vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
13064         vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
13065         vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
13066         vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
13067         vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
13068         vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
13069         vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
13070         vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
13071         vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
13072         vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
13073         vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
13074         vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
13075         vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
13076         vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
13077         vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
13078         vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
13079         vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
13080         vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
13081         vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
13082         vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
13083         vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
13084         vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
13085         vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
13086         vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
13087         vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
13088         vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
13089         vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
13090         vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
13091         vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
13092         vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
13093         vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
13094         vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
13095         vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
13096         vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
13097         vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
13098         vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
13099         vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
13100         vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
13101         vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
13102         vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
13103         vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
13104         vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
13105         vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
13106         vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
13107
13108 2016-02-04  Martin Liska  <mliska@suse.cz>
13109
13110         PR sanitizer/69276
13111         * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
13112         that are gimple_store_p.
13113         (maybe_instrument_call): Likewise.
13114
13115 2016-02-04  Bin Cheng  <bin.cheng@arm.com>
13116
13117         * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
13118         register scaling out of memory reference and comment why.
13119
13120 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13121
13122         PR target/65932
13123         PR target/67714
13124         * cse.c (cse_insn): Pass NULL to fold_rtx when initially
13125         folding the source of a SET.
13126
13127 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13128
13129         PR target/65932
13130         PR target/67714
13131         * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
13132         the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
13133
13134 2016-02-04  Jim Wilson  <jim.wilson@linaro.org>
13135
13136         PR target/65932
13137         PR target/67714
13138         * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
13139         HImode.
13140
13141 2016-02-04  Christian Bruel  <christian.bruel@st.com>
13142
13143         * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
13144         * config/arm/arm.c (arm_set_current_function): Likewise.
13145
13146 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
13147             Ilya Enkovich  <enkovich.gnu@gmail.com>
13148             H.J. Lu  <hongjiu.lu@intel.com>
13149
13150         PR target/69454
13151         * config/i386/i386.c (convert_scalars_to_vector): Remove
13152         stack alignment fixes.
13153         (ix86_option_override_internal): Disable TARGET_STV if stack
13154         might not be aligned enough.
13155         (ix86_minimum_alignment): Assert that TARGET_STV is false.
13156
13157 2016-02-04  Victoria Stepanyan  <victoria.stepanyan@amd.com>
13158
13159         * config/i386/x86-tune.def: Disable default prefetching
13160         for -march=znver1.
13161
13162 2016-02-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
13163             Vladimir Makarov  <vmakarov@redhat.com>
13164
13165         PR target/69461
13166         * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
13167         in validating fused toc addresses.
13168
13169 2016-02-03  Jakub Jelinek  <jakub@redhat.com>
13170
13171         PR c/69627
13172         * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
13173         range->m_caret fields if range->m_show_caret_p is false.
13174
13175         PR target/69644
13176         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
13177         Force oldval into register if it does not satisfy reg_or_short_operand
13178         predicate.  Fix up formatting.
13179
13180 2016-02-03  Vladimir Makarov  <vmakarov@redhat.com>
13181             Alexandre Oliva  <aoliva@redhat.com>
13182
13183         PR target/69461
13184         * lra-constraints.c (simplify_operand_subreg): Check additionally
13185         address validity after potential reloading.
13186         (process_address_1): Check insns validity.  In case of failure do
13187         nothing.
13188
13189 2016-02-03  Kirill Yukhin  <kirill.yukhin@intel.com>
13190
13191         PR target/69118
13192         * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
13193         Fix target.
13194
13195 2016-02-02  Jakub Jelinek  <jakub@redhat.com>
13196
13197         * wide-int.cc (canonize_uhwi): New function.
13198         (wi::divmod_internal): Use it.
13199
13200 2016-02-02  James Norris  <jnorris@codesourcery.com
13201
13202         * gimplify.c (omp_notice_variable): Add usage check.
13203
13204 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
13205
13206         * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
13207         like LE, GE, LT, GT when emitting relational operator.
13208
13209 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
13210
13211         * ira-costs.c (find_costs_and_classes): Add extra argument.
13212         * target.def (ira_change_pseudo_allocno_class): Add parameter.
13213         * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
13214         * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
13215         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
13216         Add best_class parameter, and return it if not ALL_REGS.
13217         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
13218         Add parameter.
13219         * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
13220         Update target hook.
13221
13222 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
13223
13224         * config/aarch64/aarch64.c
13225         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
13226         (aarch64_ira_change_pseudo_allocno_class): New function.
13227
13228 2016-02-02  Uros Bizjak  <ubizjak@gmail.com>
13229
13230         PR target/67032
13231         * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
13232
13233 2016-02-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
13234
13235         * config/avr/avr.c (avr_option_override): Set
13236         PARAM_ALLOW_STORE_DATA_RACES to 1.
13237
13238 2016-02-02  Richard Biener  <rguenther@suse.de>
13239
13240         PR tree-optimization/69595
13241         * match.pd: Add range test simplifications to true/false.
13242
13243 2016-02-02  Thomas Schwinge  <thomas@codesourcery.com>
13244
13245         * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
13246         * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
13247         instead.
13248
13249 2016-02-02  Richard Biener  <rguenther@suse.de>
13250
13251         PR tree-optimization/69606
13252         * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
13253         info on the result before moving a stmt.
13254
13255 2016-02-02  Yuri Rumyantsev  <ysrumyan@gmail.com>
13256
13257         PR middle-end/68542
13258         * config/i386/i386.c (ix86_expand_branch): Add support for conditional
13259         branch with vector comparison.
13260         * config/i386/sse.md (VI48_AVX): New mode iterator.
13261         (define_expand "cbranch<mode>4): Add support for conditional branch
13262         with vector comparison.
13263         * tree-vect-loop.c (optimize_mask_stores): New function.
13264         * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
13265         has_mask_store field of vect_info.
13266         * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
13267         vectorized loops having masked stores after vec_info destroy.
13268         * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
13269         correspondent macros.
13270         (optimize_mask_stores): Add prototype.
13271
13272 2016-02-02  Alan Modra  <amodra@gmail.com>
13273
13274         PR target/69548
13275         * config/rs6000/predicates.md (quad_int_reg_operand): Don't
13276         allow subregs.
13277
13278 2016-02-02  Alan Modra  <amodra@gmail.com>
13279
13280         PR target/68662
13281         * config/rs6000/rs6000.c (need_toc_init): New var, set it
13282         whenever toc_label_name used.
13283         (rs6000_file_start): Don't set up toc section here,
13284         (rs6000_output_function_epilogue): do so here instead,
13285         (rs6000_xcoff_file_start): and here.
13286         * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
13287         (load_toc_aix_di): Likewise.
13288
13289 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
13290
13291         PR rtl-optimization/69592
13292         * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
13293         (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
13294         (num_sign_bit_copies_binary_arith_p): New inline function.
13295         (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
13296
13297 2016-02-01  Jeff Law  <law@redhat.com>
13298
13299         PR tree-optimization/69580
13300         * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
13301         * tree-ssa-threadbackward.c
13302         (fsm_find_control_statement_thread_paths): Do not try to walk
13303         through large PHI nodes.
13304
13305 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
13306
13307         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
13308         when count is incremented above limit, don't analyze further
13309         insns afterwards.
13310
13311         * omp-low.c (oacc_parse_default_dims): Avoid
13312         -Wsign-compare warning, make sure value fits into int
13313         rather than just unsigned int.
13314
13315 2016-02-01  Bin Cheng  <bin.cheng@arm.com>
13316
13317         PR tree-optimization/67921
13318         * fold-const.c (split_tree): New parameters.  Convert pointer
13319         type variable part to proper type before negating.
13320         (fold_binary_loc): Pass new arguments to split_tree.
13321
13322 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
13323
13324         * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
13325         (nvptx_goacc_validate_dims): Extend to handle global defaults.
13326         * target.def (OACC_VALIDATE_DIMS): Extend documentation.
13327         * doc/tm.texti: Rebuilt.
13328         * doc/invoke.texi (fopenacc-dim): Document.
13329         * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
13330         (append_compiler_options): Likewise.
13331         * omp-low.c (oacc_default_dims, oacc_min_dims): New.
13332         (oacc_parse_default_dims): New.
13333         (oacc_validate_dims): Add USED arg.  Select non-unity default when
13334         possible.
13335         (oacc_loop_fixed_partitions): Return mask of used partitions.
13336         (oacc_loop_auto_partitions): Emit dump info.
13337         (oacc_loop_partition): Return mask of used partitions.
13338         (execute_oacc_device_lower): Parse default dimension arg.  Adjust
13339         loop partitioning and validation calls.
13340
13341 2016-02-01  Richard Biener  <rguenther@suse.de>
13342
13343         PR middle-end/69556
13344         * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
13345
13346 2016-02-01  Richard Biener  <rguenther@suse.de>
13347
13348         PR tree-optimization/69574
13349         * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
13350         of asserting return chrec_dont_know.
13351
13352 2016-02-01  Martin Liska  <mliska@suse.cz>
13353
13354         * mem-stats-traits.h: Add copyright header.
13355         * mem-stats.h: Likewise.
13356
13357 2016-02-01  Richard Biener  <rguenther@suse.de>
13358
13359         PR tree-optimization/69579
13360         * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
13361         Do not propagate through abnormal PHI results.
13362
13363 2016-02-01  Eric Botcazou  <ebotcazou@adacore.com>
13364
13365         * postreload.c (reload_cse_simplify): Remove dead code.
13366
13367 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
13368
13369         PR rtl-optimization/69570
13370         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
13371         if there is more than one set, not if there is a single set.
13372
13373 2016-02-01  Richard Henderson  <rth@redhat.com>
13374
13375         PR rtl-opt/69535
13376         * combine.c (make_compound_operation): When looking through a
13377         subreg, make sure to re-extend to the width of the outer mode.
13378
13379 2016-01-30  Jakub Jelinek  <jakub@redhat.com>
13380
13381         PR tree-optimization/69546
13382         * wide-int.cc (wi::divmod_internal): For unsigned division
13383         where both operands fit into uhwi, if o1 is 1 and o0 has
13384         msb set, if divident_prec is larger than bits per hwi,
13385         clear another quotient word and return 2 instead of 1.
13386         Similarly for remainder with msb in HWI set, if dividend_prec
13387         is larger than bits per hwi.
13388
13389 2016-01-29  Martin Jambor  <mjambor@suse.cz>
13390
13391         * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
13392         Use short lowercase names.
13393         (get_memory_order): Mask with MEMMODEL_BASE_MASK.  Support
13394         MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
13395         acq_rel one.  Protect warning agains segfaults if
13396         get_memory_order_name returns NULL.
13397         (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
13398         with release semantics.  Do not warn if get_memory_order already did.
13399         (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
13400         semantics.  Fix check for relaxed or acquire semantics.  Do not warn
13401         if get_memory_order already did.
13402
13403 2016-01-29  Sebastian Pop  <s.pop@samsung.com>
13404
13405         * doc/install.texi: Document that isl-0.16 is supported.
13406
13407 2016-01-29  Vladimir Makarov  <vmakarov@redhat.com>
13408
13409         PR target/69299
13410         * config/i386/constraints.md (Bm): Describe as special memory
13411         constraint.
13412         * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
13413         * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
13414         * genpreds.c (struct constraint_data): Add is_special_memory.
13415         (have_special_memory_constraints, special_memory_start): New
13416         static vars.
13417         (special_memory_end): Ditto.
13418         (add_constraint): Add new arg is_special_memory.  Add code to
13419         process its true value.  Update have_special_memory_constraints.
13420         (process_define_constraint): Pass the new arg.
13421         (process_define_register_constraint): Ditto.
13422         (choose_enum_order): Process special memory.
13423         (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
13424         function insn_extra_special_memory_constraint.
13425         (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
13426         * gensupport.c (process_rtx): Process
13427         DEFINE_SPECIAL_MEMORY_CONSTRAINT.
13428         * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
13429         * ira-lives.c (single_reg_class): Use
13430         insn_extra_special_memory_constraint.
13431         * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
13432         * lra-constraints.c (process_alt_operands): Ditto.
13433         (curr_insn_transform): Use insn_extra_special_memory_constraint.
13434         * recog.c (asm_operand_ok, preprocess_constraints): Process
13435         CT_SPECIAL_MEMORY.
13436         * reload.c (find_reloads): Ditto.
13437         * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
13438         * stmt.c (parse_input_constraint): Use
13439         insn_extra_special_memory_constraint.
13440
13441 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
13442
13443         PR target/69530
13444         * lra-splill.c (lra_final_code_change): Revert r229087 by
13445         removing all sub-registers.
13446
13447 2016-01-29  Steve Ellcey  <sellcey@imgtec.com>
13448
13449         PR target/65604
13450         * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
13451
13452 2016-01-29  Jakub Jelinek  <jakub@redhat.com>
13453
13454         PR target/69551
13455         * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
13456         SSE1, copy target into the temporary reg first before recursing
13457         on it.
13458
13459 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
13460
13461         * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
13462         with vm.
13463
13464 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
13465
13466         * ginclude/stdarg.h: Test __cplusplus instead of
13467         __GXX_EXPERIMENTAL_CXX0X__.
13468
13469 2016-01-29  Richard Biener  <rguenther@suse.de>
13470
13471         PR tree-optimization/69547
13472         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
13473         Do not mark clobbers necessary.
13474         (mark_all_reaching_defs_necessary_1): Likewise.
13475
13476 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
13477
13478         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
13479         declaration name with %qs and print it in both error messages.
13480         Also fix indentation.
13481
13482 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
13483
13484         PR other/69006
13485         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
13486         trailing blank line from error message.
13487
13488 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
13489
13490         PR c++/69462
13491         * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
13492         for C++-11.
13493
13494 2016-01-29  Richard Biener  <rguenther@suse.de>
13495
13496         PR middle-end/69537
13497         * match.pd: Allow all integral types when simplifying a
13498         widening or sign-changing conversion.
13499
13500 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
13501
13502         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
13503         back to setting codegen_error to fail codegen.
13504
13505 2016-01-28  Uros Bizjak  <ubizjak@gmail.com>
13506
13507         PR target/69459
13508         * config/i386/constraints.md (C): Only accept constant zero operand.
13509         (BC): New constraint.
13510         * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
13511         instead of C constraint.
13512         * doc/md.texi (Machine Constraints): Update description
13513         of C constraint.
13514
13515 2016-01-28  Steve Ellcey  <sellcey@imgtec.com>
13516
13517         PR target/68400
13518         * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
13519
13520 2016-01-28  Jakub Jelinek  <jakub@redhat.com>
13521
13522         PR middle-end/69542
13523         * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
13524         non-debug insns.
13525
13526 2016-01-28  Pat Haugen  <pthaugen@us.ibm.com>
13527
13528         * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
13529         branches if using guessed profile.
13530
13531 2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>
13532
13533         * graphite-optimize-isl.c (optimize_isl): Fix dump.
13534
13535 2016-01-28  Richard Henderson  <rth@redhat.com>
13536
13537         PR target/69305
13538         * config/aarch64/aarch64-modes.def (CC_Cmode): New
13539         * config/aarch64/aarch64-protos.h: Update.
13540         * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
13541         (aarch64_select_cc_mode): Add check for use of CC_Cmode.
13542         (aarch64_get_condition_code_1): Handle CC_Cmode.
13543         * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
13544         (*add<mode>3_compareC_cconly_imm): New.
13545         (*add<mode>3_compareC_cconly): New.
13546         (*add<mode>3_compareC_imm): New.
13547         (add<mode>3_compareC): New.
13548         (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
13549         to be first.  Use aarch64_carry_operation.
13550         (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
13551         (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
13552         (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
13553         (subti3): Use subdi3_compare1.
13554         (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
13555         (sub<mode>3_compare1): New.
13556         (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
13557         (*sub<mode>3_carryin): Use aarch64_borrow_operation.
13558         (*subsi3_carryin_uxtw): Likewise.
13559         (*ngc<mode>, *ngcsi_uxtw): Likewise.
13560         (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
13561         * config/aarch64/iterators.md (DWI): New.
13562         * config/aarch64/predicates.md (aarch64_carry_operation): New.
13563         (aarch64_borrow_operation): New.
13564
13565 2016-01-28  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
13566
13567         * graphite-optimize-isl.c (optimize_isl): Print a different debug
13568         message when isl does not return a valid schedule.
13569
13570 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
13571
13572         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
13573         Remove comments from class declarations: they are already in the code
13574         close by the defs.
13575
13576 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
13577
13578         * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
13579         codegen_error_p.
13580         (ternary_op_to_tree): Same.
13581         (unary_op_to_tree): Same.
13582         (nary_op_to_tree): Same.
13583         (gcc_expression_from_isl_expr_op): Same.
13584         (gcc_expression_from_isl_expression): Same.
13585         (graphite_create_new_loop): Same.
13586         (graphite_create_new_loop_guard): Same.
13587         (build_iv_mapping): Same.
13588         (graphite_create_new_guard): Same.
13589         (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
13590         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
13591
13592 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
13593
13594         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
13595         instead of setting codegen_error to fail codegen.
13596
13597 2016-01-28  Jason Merrill  <jason@redhat.com>
13598
13599         * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
13600
13601 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
13602
13603         * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
13604         Remove CONST_INT_P check in CCMP cost calculation.
13605
13606 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
13607
13608         * config/aarch64/aarch64.c (generic_vector_cost):
13609         Set vec_permute_cost.
13610         (cortexa57_vector_cost): Likewise.
13611         (exynosm1_vector_cost): Likewise.
13612         (xgene1_vector_cost): Likewise.
13613         (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
13614         * config/aarch64/aarch64-protos.h (cpu_vector_cost):
13615         Add vec_permute_cost entry.
13616
13617 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
13618
13619         * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
13620         immediate as %1.
13621         (add<mode>3_compare0): Likewise.
13622         (addsi3_compare0_uxtw): Likewise.
13623         (add<mode>3nr_compare0): Likewise.
13624         (compare_neg<mode>): Likewise.
13625         (<optab><mode>3): Likewise.
13626
13627 2016-01-28  Ilya Enkovich  <enkovich.gnu@gmail.com>
13628
13629         * tree-vect-stmts.c (vectorizable_comparison): Add
13630         NULL check for vectype.
13631
13632 2016-01-28  Richard Biener  <rguenther@suse.de>
13633
13634         PR tree-optimization/69466
13635         * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
13636         Account for PHIs we couldn't duplicate.
13637
13638 2016-01-28  Martin Liska  <mliska@suse.cz>
13639
13640         PR pch/68758
13641         * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
13642         instead of ENABLE_VALGRIND_CHECKING.
13643
13644 2016-01-27  Richard Henderson  <rth@redhat.com>
13645
13646         PR rtl-opt/69447
13647         * lra-remat.c (subreg_regs): New.
13648         (dump_candidates_and_remat_bb_data): Dump it.
13649         (operand_to_remat): Reject if operand in subreg_regs.
13650         (set_bb_regs): Collect subreg_regs.
13651         (lra_remat): Init and free subreg_regs.  Compute
13652         calculate_local_reg_remat_bb_data before create_cands.
13653
13654 2016-01-27  H.J. Lu  <hongjiu.lu@intel.com>
13655
13656         PR target/68986
13657         * config/i386/i386.c (ix86_update_stack_boundary): Don't
13658         change stack_alignment_needed for __tls_get_addr call.
13659
13660 2016-01-27  Segher Boessenkool  <segher@kernel.crashing.org>
13661
13662         * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
13663
13664 2016-01-27  Jeff Law  <law@redhat.com>
13665
13666         PR tree-optimization/68398
13667         PR tree-optimization/69196
13668         * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
13669         (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
13670         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
13671         Only count PHIs in the last block in the path.  The others will
13672         const/copy propagate away.  Add heuristic to allow more irreducible
13673         subloops to be created when it is likely profitable to do so.
13674
13675         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
13676         Fix typo in comment.  Use gsi_after_labels and remove the GIMPLE_LABEL
13677         check from within the loop.  Use gsi_next_nondebug rather than gsi_next.
13678
13679 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
13680
13681         PR lto/69254
13682         * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
13683         END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
13684         * asan.c (DEF_BUILTIN_STUB): Temporarily define.
13685         * tree-streamer-in.c: Include asan.h.
13686         (streamer_get_builtin_tree): For builtins in sanitizer
13687         range call initialize_sanitizer_builtins and retry.
13688
13689 2016-01-27  Ian Lance Taylor  <iant@google.com>
13690
13691         * common.opt (fkeep-gc-roots-live): New undocumented option.
13692         * tree-ssa-loop-ivopts.c (add_candidate_1): If
13693         -fkeep-gc-roots-live, skip pointers.
13694         (add_iv_candidate_for_biv): Handle add_candidate_1 returning
13695         NULL.
13696
13697 2016-01-27  Uros Bizjak  <ubizjak@gmail.com>
13698
13699         PR target/69512
13700         * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
13701         (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
13702
13703 2016-01-27  Thomas Klausner  <wiz@NetBSD.org>
13704
13705         PR target/68380
13706         * configure.ac: NetBSD provides SSP in its C library.
13707         * configure: Updated.
13708
13709 2016-01-27  Richard Biener  <rguenther@suse.de>
13710
13711         PR tree-optimization/69166
13712         * tree-vect-loop.c (vect_is_simple_reduction): Always check
13713         reduction code for commutativity / associativity.
13714
13715 2016-01-27  Martin Jambor  <mjambor@suse.cz>
13716
13717         PR tree-optimization/69355
13718         * tree-sra.c (analyze_access_subtree): Correct hole detection when
13719         total_scalarization fails.
13720
13721 2016-01-27  David Edelsohn  <dje.gcc@gmail.com>
13722
13723         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
13724         power9.
13725
13726 2016-01-27  Christian Bruel  <christian.bruel@st.com>
13727
13728         PR target/69245
13729         * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
13730         Move arm_reset_previous_fndecl and set_target_option_current_node in
13731         the conditional part.  Call save_restore_target_globals.
13732         * config/arm/arm.c (arm_set_current_function):
13733         Refactor to better support #pragma target and attribute mix.
13734         Call save_restore_target_globals.
13735         * config/arm/arm-protos.h (save_restore_target_globals): New function.
13736
13737 2016-01-27  Martin Liska  <mliska@suse.cz>
13738
13739         * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
13740         reference for an HSA kernel and its host function.
13741
13742 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
13743
13744         PR tree-optimization/69399
13745         * wide-int.h (wi::lrshift): For larger precisions, only
13746         use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
13747
13748 2016-01-27  Claudiu Zissulescu  <claziss@synopsys.com>
13749
13750         * config/arc/predicates.md (proper_comparison_operator): Reject
13751         constant-constant comparison.
13752
13753 2016-01-26  Tom de Vries  <tom@codesourcery.com>
13754
13755         PR tree-optimization/69110
13756         * tree-data-ref.c (initialize_data_dependence_relation): Handle
13757         DR_NUM_DIMENSIONS == 0.
13758
13759 2016-01-26  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
13760             Sebastian Pop  <s.pop@samsung.com>
13761
13762         * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
13763         isl_ast_op_cond and isl_ast_op_select.
13764         (gcc_expression_from_isl_expr_op): Same.
13765
13766 2016-01-26  Jason Merrill  <jason@redhat.com>
13767
13768         PR c++/68782
13769         * tree.c (recompute_constructor_flags): Split out from
13770         build_constructor.
13771         (verify_constructor_flags): New.
13772         * tree.h: Declare them.
13773
13774 2016-01-26  Iain Buclaw  <ibuclaw@gdcproject.org>
13775
13776         PR rtl-optimization/69217
13777         * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
13778         are no TYPE_FIELDS set for the record type.
13779
13780 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
13781
13782         PR target/68662
13783         * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
13784         toc_label_name unconditionally.
13785         (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
13786         SYMBOL_REF string.  Use toc_label_name instead of constructing
13787         LCTOC1.
13788         (rs6000_elf_declare_function_name): Use toc_label_name instead of
13789         constructing LCTOC1.
13790
13791 2016-01-26  Martin Sebor  <msebor@redhat.com>
13792
13793         PR other/69477
13794         * doc/extend.texi (Common Type Attributes): Move text that talks about
13795         attribute packed from attribute aligned to the section discussing
13796         the former attribute for clarity.
13797
13798 2016-01-26  Richard Henderson  <rth@redhat.com>
13799
13800         PR middle-end/60908
13801         * trans-mem.c (tm_region_init): Mark entry block as visited.
13802
13803 2016-01-26  David Malcolm  <dmalcolm@redhat.com>
13804
13805         PR other/69006
13806         * diagnostic-show-locus.c (layout::print_source_line): Replace
13807         call to pp_newline with call to layout::print_newline.
13808         (layout::print_annotation_line): Likewise.
13809         (layout::move_to_column): Likewise.
13810         (layout::print_any_fixits): After printing any fixits, print a
13811         trailing newline, if necessary.
13812         (layout::print_newline): New method, resetting any colorization
13813         before a newline.
13814         (diagnostic_show_locus): Move the pp_newline to before the
13815         early bailout.  Remove dummy block enclosing the layout instance.
13816         * diagnostic.c (default_diagnostic_finalizer): Replace invocation
13817         of pp_newline_and_flush with pp_flush.
13818         (diagnostic_append_note): Delete use of pp_newline.
13819         (diagnostic_append_note_at_rich_loc): Delete.
13820         * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
13821         * pretty-print.h (output_buffer_append_r): Reset buff->line_length
13822         when newline characters are added to the buffer.
13823
13824 2016-01-26  Michael Matz  <matz@suse.de>
13825
13826         * configure.ac (ac_cv_std_swap_in_utility): New test.
13827         * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
13828         * configure: Regenerate.
13829         * config.in: Regenerate.
13830
13831 2016-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
13832
13833         * config/arc/arc.md (cstoresi4): Force operand into register.
13834         (arcset<code>): Fix predicate.
13835         (arcsetltu): Likewise.
13836         (arcsetgeu): Likewise.
13837         (arcsethi): Likewise.
13838         (arcsetls): Likewise.
13839
13840 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
13841
13842         PR tree-optimization/69483
13843         * gimple-fold.c (canonicalize_constructor_val): Return NULL
13844         if base has error_mark_node type.
13845
13846 2016-01-26  Christophe Lyon  <christophe.lyon@linaro.org>
13847
13848         PR target/68620
13849         * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
13850         * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
13851         New helper macros.
13852         (vget_lane_f16): Handle big-endian.
13853         (vgetq_lane_f16): Likewise.
13854         (vset_lane_f16): Likewise.
13855         (vsetq_lane_f16): Likewise.
13856         * config/arm/iterators.md (VQXMOV): Add V8HF.
13857         (VDQ): Add V4HF and V8HF.
13858         (V_reg): Handle V4HF and V8HF.
13859         (Is_float_mode): Likewise.
13860         * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
13861         neon_vdup_nv8hf): New patterns.
13862         (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
13863         Use VD_LANE iterator.
13864         (neon_vld1_dup<mode>): Use VQ2 iterator.
13865
13866 2016-01-26  Nathan Sidwell  <nathan@acm.org>
13867
13868         * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
13869         (set_oacc_fn_attrib): Add IS_KERNEL arg.
13870         * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
13871         (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
13872         (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
13873         (oacc_validate_dims): Add LEVEL arg, don't return level.
13874         (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
13875         oacc_validate_dims.
13876         (execute_oacc_device_lower): Adjust, add more dump output.
13877         * tree-ssa-loop.c (gate_oacc_kernels): Use
13878         oacc_fn_attrib_kernels_p.
13879         * tree-parloops.c (create_parallel_loop): Adjust
13880         set_oacc_fn_attrib call.
13881
13882 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
13883
13884         PR lto/69254
13885         * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
13886         (append_compiler_options): Handle -fcilkplus.
13887         (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
13888
13889 2016-01-26  Nick Clifton  <nickc@redhat.com>
13890
13891         PR target/66655
13892         * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
13893         been marked as DECL_ONE_ONLY but we do not the means to make it
13894         so, then do not allow it to bind locally.
13895
13896 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
13897
13898         PR lto/69254
13899         * opts.h (parse_sanitizer_options): New prototype.
13900         * opts.c (sanitizer_opts): New array.
13901         (parse_sanitizer_options): New function.
13902         (common_handle_option): Use parse_sanitizer_options.
13903
13904 2016-01-26  H.J. Lu  <hongjiu.lu@intel.com>
13905
13906         PR target/68986
13907         * config/i386/i386.c (ix86_compute_frame_layout): Move stack
13908         alignment adjustment to ...
13909         (ix86_update_stack_boundary): Here.  Don't over-align stack for
13910         __tls_get_addr.
13911         (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
13912         if __tls_get_addr is called.
13913
13914 2016-01-26  Christian Bruel  <christian.bruel@st.com>
13915
13916         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
13917
13918 2016-01-26  Eric Botcazou  <ebotcazou@adacore.com>
13919
13920         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
13921
13922 2016-01-26  Richard Biener  <rguenther@suse.de>
13923
13924         PR middle-end/69467
13925         * match.pd: Guard X * CST CMP 0 pattern with single_use.
13926
13927 2016-01-26  Richard Biener  <rguenther@suse.de>
13928
13929         PR tree-optimization/69452
13930         * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
13931         (move_computations_dom_walker::before_dom_children): Rename
13932         to ...
13933         (move_computations_worker): This.
13934         (move_computations): Perform an RPO rather than a DOM walk.
13935
13936 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
13937
13938         PR target/69442
13939         * combine.c (combine_instructions): For REG_EQUAL note with
13940         SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
13941         to the underlying register.
13942         * doc/rtl.texi (REG_EQUAL): Document the behavior of
13943         REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
13944
13945 2016-01-26  Roger Ferrer Ibáñez  <rofirrim@gmail.com>
13946
13947         PR target/67896
13948         * config/aarch64/aarch64-builtins.c
13949         (aarch64_init_simd_builtin_types): Do not set structural
13950         equality to __Poly{8,16,64,128}_t types.
13951
13952 2016-01-26  Richard Sandiford  <richard.sandiford@arm.com>
13953
13954         PR tree-optimization/69400
13955         * wide-int.cc (wi_pack): Take the precision as argument and
13956         perform canonicalization here rather than in the callers.
13957         Use the main loop to handle all full-width HWIs.  Add a
13958         zero HWI if in_len isn't a full result.
13959         (wi::divmod_internal): Update accordingly.
13960         (wi::mul_internal): Likewise.  Simplify.
13961
13962 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
13963             Sebastian Pop  <s.pop@samsung.com>
13964
13965         * graphite-poly.c (apply_poly_transforms): Simplify.
13966         (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
13967         (print_isl_map): Same.
13968         (print_isl_union_map): Same.
13969         (print_isl_schedule): New.
13970         (debug_isl_schedule): New.
13971         * graphite-dependences.c (scop_get_reads): Do not call
13972         isl_union_map_add_map that is undocumented isl functionality.
13973         (scop_get_must_writes): Same.
13974         (scop_get_may_writes): Same.
13975         (scop_get_original_schedule): Remove.
13976         (scop_get_dependences): Do not call isl_union_map_compute_flow that
13977         is deprecated in isl 0.15.  Instead, use isl_union_access_* interface.
13978         (compute_deps): Remove.
13979         * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
13980         (debug_schedule_ast): New.
13981         (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
13982         set_separate_option.
13983         (graphite_regenerate_ast_isl): Add dump.
13984         (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
13985         from scop->transformed_schedule.
13986         (graphite_regenerate_ast_isl): Add more dump.
13987         * graphite-optimize-isl.c (optimize_isl): Set
13988         scop->transformed_schedule.  Check whether schedules are equal.
13989         (apply_poly_transforms): Move here.
13990         * graphite-poly.c (apply_poly_transforms): ... from here.
13991         (free_poly_bb): Static.
13992         (free_scop): Static.
13993         (pbb_number_of_iterations_at_time): Remove.
13994         (print_isl_ast): New.
13995         (debug_isl_ast): New.
13996         (debug_scop_pbb): New.
13997         * graphite-scop-detection.c (print_edge): Move.
13998         (print_sese): Move.
13999         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
14000         (build_scop_scattering): Remove.
14001         (create_pw_aff_from_tree): Assert instead of bailing out.
14002         (add_condition_to_pbb): Remove unused code, do not fail.
14003         (add_conditions_to_domain): Same.
14004         (add_conditions_to_constraints): Remove.
14005         (build_scop_context): New.
14006         (add_iter_domain_dimension): New.
14007         (build_iteration_domains): Initialize pbb->iterators.
14008         Call add_conditions_to_domain.
14009         (nested_in): New.
14010         (loop_at): New.
14011         (index_outermost_in_loop): New.
14012         (index_pbb_in_loop): New.
14013         (outermost_pbb_in): New.
14014         (add_in_sequence): New.
14015         (add_outer_projection): New.
14016         (outer_projection_mupa): New.
14017         (add_loop_schedule): New.
14018         (build_schedule_pbb): New.
14019         (build_schedule_loop): New.
14020         (embed_in_surrounding_loops): New.
14021         (build_schedule_loop_nest): New.
14022         (build_original_schedule): New.
14023         (build_poly_scop): Call build_original_schedule.
14024         * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
14025         (free_poly_dr): Remove.
14026         (struct poly_bb): Add iterators.  Remove schedule, transformed, saved.
14027         (free_poly_bb): Remove.
14028         (debug_loop_vec): Remove.
14029         (print_isl_ast): Declare.
14030         (debug_isl_ast): Declare.
14031         (scop_do_interchange): Remove.
14032         (scop_do_strip_mine): Remove.
14033         (scop_do_block): Remove.
14034         (flatten_all_loops): Remove.
14035         (optimize_isl): Remove.
14036         (pbb_number_of_iterations_at_time): Remove.
14037         (debug_scop_pbb): Declare.
14038         (print_schedule_ast): Declare.
14039         (debug_schedule_ast): Declare.
14040         (struct scop): Remove schedule.  Add original_schedule,
14041         transformed_schedule.
14042         (free_gimple_poly_bb): Remove.
14043         (print_generated_program): Remove.
14044         (debug_generated_program): Remove.
14045         (unify_scattering_dimensions): Remove.
14046         * sese.c (print_edge): ... here.
14047         (print_sese): ... here.
14048         (debug_edge): ... here.
14049         (debug_sese): ... here.
14050         * sese.h (print_edge): Declare.
14051         (print_sese): Declare.
14052         (dump_edge): Declare.
14053         (dump_sese): Declare.
14054
14055 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
14056             Sebastian Pop  <s.pop@samsung.com>
14057
14058         * Makefile.in: Set ISLVER in site.exp.
14059
14060 2016-01-25  Jakub Jelinek  <jakub@redhat.com>
14061
14062         * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
14063         DECL_VALUE_EXPR of new_var even for the non-array case.  Look
14064         through DECL_VALUE_EXPR for expansion.
14065
14066 2016-01-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14067
14068         * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
14069         the frame info after reload completed.
14070
14071 2016-01-25  Jeff Law  <law@redhat.com>
14072
14073         PR tree-optimization/69196
14074         PR tree-optimization/68398
14075         * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
14076         tree-ssa-threadupdate.c.
14077         (determine_bb_domination_status): Prototype
14078         * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
14079         (determine_bb_domination_status): No longer static.
14080         (valid_jump_thread_path): Remove code to detect characteristics
14081         of the jump thread path not associated with correctness.
14082         * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
14083         Correct test for thread path length.  Count PHIs for real operands as
14084         statements that need to be copied.  Do not count ASSERT_EXPRs.
14085         Look at all the blocks in the thread path.  Compute and selectively
14086         filter thread paths based on threading through the latch, threading
14087         a multiway branch or crossing a multiway branch.
14088
14089 2016-01-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14090
14091         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled):  Add
14092         decl with __attribute__ ((unused)) annotation.
14093
14094 2016-01-25  Ilya Enkovich  <enkovich.gnu@gmail.com>
14095
14096         PR target/69421
14097         * tree-vect-stmts.c (vectorizable_condition): Check vectype
14098         of operands is compatible with a statement vectype.
14099
14100 2016-01-25  Eric Botcazou  <ebotcazou@adacore.com>
14101
14102         * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
14103         improve wording for mixed storage order support.
14104
14105 2016-01-25  Bilyan Borisov  <bilyan.borisov@arm.com>
14106
14107         * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
14108         (vcvt_u64_f64): Likewise.
14109         (vcvta_s64_f64): Likewise.
14110         (vcvta_u64_f64): Likewise.
14111         (vcvtm_s64_f64): Likewise.
14112         (vcvtm_u64_f64): Likewise.
14113         (vcvtn_s64_f64): Likewise.
14114         (vcvtn_u64_f64): Likewise.
14115         (vcvtp_s64_f64): Likewise.
14116         (vcvtp_u64_f64): Likewise.
14117
14118 2016-01-25  Claudiu Zissulescu  <claziss@synopsys.com>
14119
14120         * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
14121         (arc_init): Check validity mll64 option.
14122         (arc_save_restore): Use double load/store instruction.
14123         (arc_expand_movmem): Likewise.
14124         (arc_split_move): Don't split if we have double load/store
14125         instructions. Returns a boolean.
14126         (arc_process_double_reg_moves): Change function to return boolean
14127         instead of a sequence of instructions.
14128         (arc_dwarf_register_span): New function.
14129         * config/arc/arc-protos.h (arc_split_move): Change prototype.
14130         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
14131         * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
14132         (*movdf_insn): Likewise.
14133         * config/arc/arc.opt (mll64): New option.
14134         * config/arc/predicates.md (even_register_operand): New predicate.
14135         * doc/invoke.texi (ARC Options): Add mll64 documentation.
14136
14137 2016-01-25  Richard Biener  <rguenther@suse.de>
14138
14139         PR lto/69393
14140         * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
14141         * tree-streamer-out.c (pack_ts_base_value_fields): Stream
14142         DECL_NAMELESS.
14143         * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
14144
14145 2016-01-25  Richard Biener  <rguenther@suse.de>
14146
14147         PR tree-optimization/69376
14148         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
14149         flag.
14150         (VN_INFO_ANTI_RANGE_P): New inline.
14151         (VN_INFO_RANGE_TYPE): Likewise.
14152         * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
14153         SSA_NAME_ANTI_RANGE_P.
14154         (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
14155         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
14156         Properly query VN_INFO_RANGE_TYPE.
14157
14158 2016-01-25  Nick Clifton  <nickc@redhat.com>
14159
14160         PR target/66655
14161         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
14162
14163 2016-01-23  Tom de Vries  <tom@codesourcery.com>
14164
14165         PR tree-optimization/69426
14166         * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
14167         removed clobber.
14168
14169 2016-01-23  Jakub Jelinek  <jakub@redhat.com>
14170
14171         * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
14172         "the the" with "the" in the comments.
14173         * ipa-devirt.c (build_type_inheritance_graph,
14174         update_type_inheritance_graph): Likewise.
14175         * tree.c (build_function_type_list_1): Likewise.
14176         * cfgloopmanip.c (scale_loop_profile): Likewise.
14177         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
14178         * gimple-ssa-split-paths.c
14179         (find_block_to_duplicate_for_splitting_paths): Likewise.
14180         * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
14181         * expr.c (convert_move): Likewise.
14182         * var-tracking.c (vt_stack_adjustments): Likewise.
14183         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
14184         * tree-vrp.c (test_for_singularity): Likewise.
14185
14186         * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
14187         directly instead of building a temporary tree.
14188
14189         PR bootstrap/69434
14190         * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
14191         remove <algorithm> include.
14192
14193 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
14194
14195         PR target/69432
14196         * config/i386/i386.c: Include dojump.h.
14197         (expand_small_movmem_or_setmem,
14198         expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
14199         fixes.
14200         (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
14201         if dynamic_check != -1.
14202
14203 2016-01-21  Jeff Law  <law@redhat.com>
14204
14205         PR middle-end/69347
14206         * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
14207         record_temporary_equivalences.  Rewritten to avoid unnecessary calls
14208         into dominated_by_p.
14209         (cprop_into_successor_phis): Avoid unnecessary tests.
14210
14211 2016-01-22  Richard Henderson  <rth@redhat.com>
14212
14213         PR target/69416
14214         * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
14215         (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
14216
14217 2016-01-22  Michael Matz  <matz@suse.de>
14218
14219         * system.h (string, algorithm): Include only conditionally.
14220         (new): Include always under C++.
14221         * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
14222         * final.c (toplevel): Ditto.
14223         * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
14224         * genconditions.c (write_header): Make gencondmd.c define
14225         INCLUDE_STRING.
14226         * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
14227
14228         * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
14229         * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
14230
14231 2016-01-22  Christian Bruel  <christian.bruel@st.com>
14232
14233         PR target/68674
14234         * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
14235
14236 2016-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14237
14238         PR target/69403
14239         * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
14240         define_insn_and_split.  Ensure operands[1] and operands[0] do not
14241         get assigned the same register.
14242
14243 2016-01-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
14244
14245         * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
14246
14247 2016-01-22  Christian Bruel  <christian.bruel@st.com>
14248
14249         * config/arm/arm-c.c (arm_pragma_target_parse):
14250         Remove warn_builtin_macro_redefined overwrite.
14251
14252 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
14253
14254         * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
14255         flag_non_call_exceptions compatibility.
14256
14257 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
14258
14259         PR debug/66668
14260         * dwarf2out.c (add_child_die_after): New function.
14261         (dwarf_qual_info_t): New type.
14262         (dwarf_qual_info): New variable.
14263         (qualified_die_p): New function.
14264         (modified_type_die): For -fdebug-types-section, ensure
14265         canonical order of qualifiers.  Put qualified DIEs adjacent
14266         to the corresponding non-qualified type DIE and search there
14267         for existing qualified DIEs.
14268
14269 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
14270
14271         * doc/extend.texi (scalar_storage_order type attribute): Document
14272         restriction on type punning and aliasing, and remove future tense.
14273
14274 2016-01-21  Roman Zhuykov  <zhroma@ispras.ru>
14275
14276         PR target/69252
14277         * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
14278         first stage.
14279
14280 2016-01-21  Jeff Law  <law@redhat.com>
14281
14282         PR middle-end/69347
14283         * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
14284         useless call to record_temporary_equivalences.
14285         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
14286         allocate 10 slots in the bb_path vector and let it grow as needed.
14287         (fsm_find_control_statement_thread_paths): Similarly for the next_path
14288         vector.
14289
14290 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
14291
14292         * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
14293         Detangle.
14294         * configure: Regenerate.
14295
14296 2016-01-21  Pat Haugen  <pthaugen@us.ibm.com>
14297
14298         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
14299         * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
14300
14301 2016-01-21  Bernd Schmidt  <bschmidt@redhat.com>
14302
14303         PR middle-end/66178
14304         * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
14305         drop EXPAND_INITIALIZER.
14306         * rtl.h (contains_symbolic_reference_p): Declare.
14307         * rtlanal.c (contains_symbolic_reference_p): New function.
14308         * simplify-rtx.c (simplify_binary_operation_1): Don't turn
14309         a subtraction into a NOT if symbolic constants are involved.
14310
14311 2016-01-21  Anton Blanchard  <anton@samba.org>
14312             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14313
14314         PR target/63354
14315         * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
14316         #define.
14317         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
14318         function.
14319
14320 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
14321
14322         * config/microblaze/microblaze.c
14323         (get_branch_target): New.
14324         (insert_wic_for_ilb_runout): New.
14325         (insert_wic): New.
14326         (microblaze_machine_dependent_reorg): New.
14327         (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
14328         * config/microblaze/microblaze.md
14329         (UNSPEC_IPREFETCH): Define.
14330         (iprefetch): New pattern
14331         * config/microblaze/microblaze.opt
14332         (mxl-prefetch): New flag.
14333
14334 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
14335
14336         * config/microblaze/microblaze.h
14337         (FIXED_REGISTERS): Update in macro.
14338         (CALL_USED_REGISTERS): Update in macro.
14339
14340 2016-01-21  Yuri Rumyantsev  <ysrumyan@gmail.com>
14341
14342         PR rtl-optimization/68920
14343         * ifcvt.c (cond_move_process_if_block): Limit number of conditional
14344         moves.
14345
14346 2016-01-21  Vladimir Makarov  <vmakarov@redhat.com>
14347
14348         PR rtl-optimization/68990
14349         * lra-coalesce.c (lra_coalesce): Invalidate value for the result
14350         pseudo instead of inheritance ones.
14351
14352 2016-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14353             Nick Clifton  <nickc@redhat.com>
14354
14355         PR target/69129
14356         PR target/69012
14357         * config/mips/mips.c (mips_compute_frame_info): Initialise
14358         args_size and hard_frame_pointer_offset fields of the frame
14359         structure before calling mips_global_pointer.
14360
14361 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
14362
14363         * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
14364         label reference.
14365         * configure: Regenerate.
14366
14367 2016-01-21  Richard Biener  <rguenther@suse.de>
14368
14369         * graphite-optimize-isl.c (get_schedule_map): Fix typo.
14370
14371 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
14372
14373         * config/s390/s390.c (s390_asm_declare_function_size): Add code
14374         to actually emit the .size directive.
14375
14376 2016-01-21   Stefan Sørensen  <stefan.sorensen@spectralink.com>
14377              Jakub Jelinek  <jakub@redhat.com>
14378
14379         PR target/69187
14380         PR target/65624
14381         * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
14382         args array size by one to avoid buffer overflow.
14383
14384 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
14385
14386         * config/s390/s390.md (pool_section_start): Use switch_to_section
14387         to select proper read-only data section instead of hardcoding
14388         .rodata.
14389         (pool_section_end): Use switch_to_section to match the above.
14390
14391 2016-01-21  Richard Biener  <rguenther@suse.de>
14392
14393         PR tree-optimization/69378
14394         * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
14395         (set_ssa_val_to): Use it for dominance checks taking into
14396         account not executable edges.
14397
14398 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
14399
14400         PR c++/69355
14401         * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
14402         for bitsize instead of GET_MODE_PRECISION (mode).
14403
14404 2016-01-20  Martin Sebor  <msebor@redhat.com>
14405
14406         PR c/52291
14407         * extend.texi (__sync Builtins): Clarify the semantics of
14408         __sync_fetch_and_OP built-ins on pointers.
14409         (__atomic Builtins): Same.
14410
14411 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14412             Sebastian Pop  <s.pop@samsung.com>
14413
14414         * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
14415         (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
14416         (is_valid_rename): Same.
14417         (translate_isl_ast_to_gimple::get_rename): Same.
14418         (translate_isl_ast_to_gimple::rename_all_uses): Same.
14419         (translate_isl_ast_to_gimple::rename_uses): Same.
14420         (get_new_name): Check for close_phi nodes.
14421         (copy_loop_phi_args): Use phi_node_kind.
14422         (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
14423         (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
14424
14425 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14426             Sebastian Pop  <s.pop@samsung.com>
14427
14428         Revert commit r229783.
14429         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
14430         Remove use of parameter_rename_map.
14431         (copy_def): Remove.
14432         (copy_internal_parameters): Remove.
14433         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
14434         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
14435         (free_sese_info): Do not free parameter_rename_map.
14436         (set_rename): Do not use parameter_rename_map.
14437         (rename_uses): Update call to set_rename.
14438         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
14439         * sese.h (parameter_rename_map_t): Remove.
14440         (struct sese_info_t): Remove field parameter_rename_map.
14441
14442 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14443             Sebastian Pop  <s.pop@samsung.com>
14444
14445         * graphite-isl-ast-to-gimple.c: Fix comment.
14446         * graphite-scop-detection.c (defined_in_loop_p): New.
14447         (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
14448         names defined in loop.
14449
14450 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14451             Sebastian Pop  <s.pop@samsung.com>
14452
14453         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
14454         Discard unstructured if-then-else regions.
14455
14456 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14457             Sebastian Pop  <s.pop@samsung.com>
14458
14459         * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
14460         (cleanup_loop_iter_dom): Remove.
14461         (build_loop_iteration_domains): Remove.
14462         (build_scop_context): Remove.
14463         (build_scop_iteration_domain): Remove.
14464         (add_loop_constraints): New.
14465         (build_iteration_domains): New.
14466         (build_poly_scop): Call build_iteration_domains.
14467
14468 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14469             Sebastian Pop  <s.pop@samsung.com>
14470
14471         * graphite-scop-detection.c
14472         (scop_detection::harmful_loop_in_region): Free dom and loops.
14473         (scop_detection::loop_body_is_valid_scop): Free bbs.
14474
14475 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14476             Sebastian Pop  <s.pop@samsung.com>
14477
14478         * graphite-scop-detection.c (record_loop_in_sese): New.
14479         (gather_bbs::before_dom_children): Call record_loop_in_sese.
14480         (build_scops): Remove call to build_sese_loop_nests.
14481         * sese.c (sese_record_loop): Remove.
14482         (build_sese_loop_nests): Remove.
14483         (new_sese_info): Remove region->loops.
14484         (free_sese_info): Same.
14485         * sese.h (sese_contains_loop): Same.
14486         (build_sese_loop_nests): Remove.
14487         (sese_contains_loop): Remove.
14488
14489 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14490             Sebastian Pop  <s.pop@samsung.com>
14491
14492         * graphite-scop-detection.c (loop_is_valid_scop): Renamed
14493         loop_is_valid_in_scop.
14494         (scop_detection::harmful_stmt_in_region): Renamed
14495         harmful_loop_in_region.
14496         Call loop_is_valid_in_scop.
14497
14498 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14499             Sebastian Pop  <s.pop@samsung.com>
14500
14501         * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
14502         isl_ast_node_mark.
14503
14504 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14505             Sebastian Pop  <s.pop@samsung.com>
14506
14507         * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
14508         * graphite.h (struct poly_bb): Remove field is_reduction.
14509         (PBB_IS_REDUCTION): Remove.
14510
14511 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14512             Sebastian Pop  <s.pop@samsung.com>
14513
14514         * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
14515         (add_pdr_constraints): Same.
14516         (scop_get_reads): Same.
14517         (scop_get_must_writes): Same.
14518         (scop_get_may_writes): Same.
14519         (scop_get_original_schedule): Same.
14520         (extend_schedule): Same.
14521         (apply_schedule_on_deps): Same.
14522         (carries_deps): Same.
14523         (compute_deps): Same.
14524         (scop_get_dependences): Same.
14525         * graphite-isl-ast-to-gimple.c
14526         (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
14527         * graphite-optimize-isl.c (get_schedule_for_band): Same.
14528         (get_schedule_for_band_list): Same.
14529         (get_schedule_map): Same.
14530         (apply_schedule_map_to_scop): Same.
14531         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
14532         (build_loop_iteration_domains): Same.
14533         (add_condition_to_pbb): Same.
14534         (add_param_constraints): Same.
14535         (pdr_add_memory_accesses): Same.
14536         (pdr_add_data_dimensions): Same.
14537
14538 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
14539
14540         * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
14541         requirements.
14542
14543 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
14544
14545         * common.opt (feliminate-dwarf2-dups): Replace references to
14546         "DWARF 2" with just "DWARF".
14547         * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
14548         * doc/extend.texi: Likewise.
14549         * doc/cpp.texi: Likewise.
14550         * doc/invoke.texi: Likewise.
14551         (Option Summary): Add -gdwarf to list of Debugging Options.
14552         (Debugging Options): Document -gdwarf.
14553         * doc/contrib.texi: Spell "DWARF" like that.
14554
14555 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
14556
14557         * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
14558         warning.  Fix up formatting.
14559
14560         PR middle-end/67653
14561         * gimplify.c (gimplify_asm_expr): Warn if it is too late to
14562         attempt to mark memory input operand addressable and
14563         call prepare_gimple_addressable in that case.  Don't adjust
14564         input_location for diagnostics, use error_at instead.
14565
14566 2016-01-20  Peter Bergner  <bergner@vnet.ibm.com>
14567
14568         * config/rs6000/ppc-auxv.h: New file.
14569         * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
14570         (cpu_is): Likewise.
14571         (cpu_supports): Likewise.
14572         * config/rs6000/rs6000.c: include "ppc-auxv.h".
14573         (cpu_is_info): New variable.
14574         (cpu_supports_info): Likewise.
14575         (tcb_verification_symbol): Likewise.
14576         (cpu_builtin_p): Likewise.
14577         (cpu_expand_builtin): New function.
14578         (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
14579         (rs6000_init_builtins): Likewise.
14580         (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
14581         * config/rs6000/rs6000.h (TLS_REGNUM): New define.
14582         * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
14583         * configure: Regenerate.
14584         * config.in: Likewise.
14585         * doc/extend.texi (PowerPC Built-in Functions): Document
14586         __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
14587
14588 2016-01-20  David Edelsohn  <dje.gcc@gmail.com>
14589
14590         PR target/68609
14591         * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
14592         domain check.
14593         * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
14594         for V4SFmode.
14595
14596 2016-01-20  Richard Henderson  <rth@redhat.com>
14597
14598         PR bootstrap/69343
14599         PR bootstrap/69339
14600         PR tree-opt/68964
14601         Revert:
14602         * tree.c (tm_define_builtin): New.
14603         (find_tm_vector_type): New.
14604         (build_tm_vector_builtins): New.
14605         (build_common_builtin_nodes): Call it.
14606
14607 2016-01-20  Christophe Lyon  <christophe.lyon@linaro.org>
14608
14609         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
14610         (arm_fp_ok): Likewise.
14611         (arm_fp): Likewise.
14612         (arm_crypto): Likewise.
14613
14614 2016-01-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
14615             Richard Biener  <rguenther@suse.de>
14616
14617         PR tree-optimization/69328
14618         * tree-vect-stmts.c (vect_is_simple_cond): Check compared
14619         vectors have same number of elements.
14620         (vectorizable_condition): Fix masked version recognition.
14621
14622 2016-01-20  Richard Biener  <rguenther@suse.de>
14623
14624         PR tree-optimization/69345
14625         * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
14626         (VN_INFO_PTR_INFO): Likewise.
14627         * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
14628         info when it is equal between non-dominating SSA names.
14629         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
14630         Make sure to look at original SSA infos.
14631
14632 2016-01-20  Jeff Law  <law@redhat.com>
14633
14634         PR target/25114
14635         * config/m68k/predicates.md (pow2_m1_operand): New predicate
14636         extracted from ...
14637         (reg_or_pow2_m1_operand): Call pow2_m1_operand.
14638         (pc_or_label_operand): New predicate.
14639         * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
14640         tests for small integers that are 2^n - 1.
14641
14642 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
14643
14644         * doc/invoke.texi (Options Summary): Add '.' after @xref.
14645
14646 2016-01-19  Jeff Law  <law@redhat.com>
14647
14648         PR middle-end/69347
14649         * tree-ssa-threadbackwards.c
14650         (fsm_find_control_statement_thread_paths): Do not try to lookup
14651         FSM paths for SSA_NAMEs appearing in abnormal PHIs.
14652
14653 2016-01-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
14654
14655         * doc/lto.texi: Remove text that says only Gold has linker plugin
14656         support.
14657
14658 2016-01-19  Eric Botcazou  <ebotcazou@adacore.com>
14659
14660         * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
14661         (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
14662         the DIE accordingly.
14663         (modified_type_die): Add REVERSE parameter and pass it recursively,
14664         as well as to base_type_die.  Adjust presence check accordingly.
14665         (base_type_for_mode): Adjust call to modified_type_die.
14666         (add_type_attribute): Add REVERSE parameter and pass it to
14667         modified_type_die.
14668         (generic_parameter_die): Adjust call to add_type_attribute.
14669         (add_scalar_info): Likewise.
14670         (add_subscript_info): Likewise.
14671         (gen_array_type_die): Likewise.
14672         (gen_descr_array_type_die): Likewise.
14673         (gen_entry_point_die): Likewise.
14674         (gen_enumeration_type_die): Likewise.
14675         (gen_formal_parameter_die): Likewise.
14676         (gen_subprogram_die): Likewise.
14677         (gen_variable_die ): Likewise.
14678         (gen_const_die): Likewise.
14679         (gen_field_die): Likewise.
14680         (gen_pointer_type_die): Likewise.
14681         (gen_reference_type_die): Likewise.
14682         (gen_ptr_to_mbr_type_die): Likewise.
14683         (gen_inheritance_die): Likewise.
14684         (gen_subroutine_type_die): Likewise.
14685         (gen_typedef_die): Likewise.
14686         (force_type_die): Adjust call to modified_type_die.
14687
14688 2016-01-19  Sandra Loosemore  <sandra@codesourcery.com>
14689
14690         * doc/standards.texi: Copy-editing for grammar, markup, and sentence
14691         flow throughout the file.  Fix broken link to Objective-C 2.0
14692         documentation.
14693         * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
14694         errors.
14695
14696 2016-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
14697
14698         * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
14699
14700 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
14701
14702         PR ipa/66223
14703         * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
14704         (maybe_record_node): Record cxa_pure_virtual as the only possible
14705         target if there are not ohter candidates.
14706         (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
14707
14708 2016-01-19  Richard Biener  <rguenther@suse.de>
14709
14710         * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
14711         (get_memory_order): Likewise.
14712
14713 2016-01-19  Kirill Yukhin  <kirill.yukhin@intel.com>
14714
14715         * tree-vect-stmts.c (vectorizable_store): Check
14716         rhs vectype.
14717
14718 2016-01-19  David Malcolm  <dmalcolm@redhat.com>
14719
14720         PR jit/68446
14721         * gcc.c (driver::decode_argv): Add call to
14722         init_opts_obstack before init_options_struct.
14723         * opts.c (init_opts_obstack): Remove idempotency.
14724         (init_options_struct): Replace call to init_opts_obstack
14725         with a gcc_assert to verify that it has already been called.
14726         * toplev.c (toplev::main): Add call to init_opts_obstack before
14727         calls to init_options_struct.
14728         (toplev::finalize): Move cleanup of opts_obstack next to
14729         cleanup of save_decoded_options, clearing the latter, and
14730         save_decoded_options_count.
14731
14732 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14733
14734         PR target/69135
14735         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
14736         attribute to unconditional.  Remove %? from output template.
14737
14738 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
14739             Jiong Wang  <jiong.wang@arm.com>
14740
14741         * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
14742         generated from different expand order.
14743
14744 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
14745
14746         * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
14747         Add support for CCMP costing.
14748
14749 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
14750
14751         * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
14752         * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
14753         (fccmpe<mode>): Likewise.
14754         (fcmp): Rename to fcmp and globalize pattern.
14755         (fcmpe): Likewise.
14756         * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
14757         (aarch64_gen_ccmp_next): Add FP support.
14758
14759 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
14760
14761         * target.def (gen_ccmp_first): Update documentation.
14762         (gen_ccmp_next): Likewise.
14763         * doc/tm.texi (gen_ccmp_first): Update documentation.
14764         (gen_ccmp_next): Likewise.
14765         * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
14766         expand_ccmp_expr_1.  Improve comments.
14767         * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
14768         (ccmp_ior<mode>): Remove pattern.
14769         (cmp<mode>): Remove expand.
14770         (cmp): Globalize pattern.
14771         (cstorecc4): Use cc_register.
14772         (mov<mode>cc): Remove ccmp_cc_register check.
14773         * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
14774         Simplify after removal of CC_DNE/* modes.
14775         (aarch64_ccmp_mode_to_code): Remove.
14776         (aarch64_print_operand): Remove 'K' case.  Merge 'm' and 'M' cases.
14777         In 'k' case use integer as condition.
14778         (aarch64_nzcv_codes): Remove inverted cases.
14779         (aarch64_code_to_ccmode): Remove.
14780         (aarch64_gen_ccmp_first): Use cmp pattern directly.  Return the correct
14781         comparison with CC register to be used in folowing CCMP/branch/CSEL.
14782         (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
14783         pattern.  Return the comparison with CC register.  Invert conditions
14784         when bitcode is OR.
14785         * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
14786         * config/aarch64/predicates.md (ccmp_cc_register): Remove.
14787
14788 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
14789
14790         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
14791         instrumented_version.
14792
14793 2016-01-19  Richard Biener  <rguenther@suse.de>
14794
14795         PR tree-optimization/69336
14796         * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
14797         handled components with get_ref_base_and_extent.
14798         (equal_mem_array_ref_p): Adjust.
14799
14800 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
14801
14802         PR debug/65779
14803         * shrink-wrap.c: Include valtrack.h.
14804         (move_insn_for_shrink_wrap): Add DEBUG argument.  If
14805         MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
14806         in between insn and where it will be moved to.  Call
14807         dead_debug_insert_temp.
14808         (prepare_shrink_wrap): Adjust caller.  Call dead_debug_local_init
14809         first and dead_debug_local_finish at the end.
14810         For uses and defs bitmap, handle all regs in between REGNO and
14811         END_REGNO, not just the first one.
14812
14813 2016-01-19  Richard Biener  <rguenther@suse.de>
14814
14815         PR tree-optimization/69352
14816         * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
14817         (equal_mem_array_ref_p): Constrain size and max size properly.
14818         Compare the reverse flag.
14819
14820 2016-01-19  Bernd Schmidt  <bschmidt@redhat.com>
14821
14822         * ira.c (ira): Update regstat data if we deleted insns.
14823
14824 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
14825
14826         PR rtl-optimization/68955
14827         PR rtl-optimization/64557
14828         * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
14829         here.  Fix up formatting.
14830         * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
14831
14832 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
14833
14834         PR lto/69133
14835         * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
14836         assume that the node has body.
14837         * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
14838         check.
14839
14840 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
14841
14842         * lto-streamer-out.c (lto_output): Do not stream instrumentation
14843         thunks.
14844
14845 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
14846
14847         * symtab.c (symtab_node::asm_name): Do not call printable name directly.
14848         (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
14849
14850 2016-01-19  Martin Jambor  <mjambor@suse.cz>
14851             Martin Liska  <mliska@suse.cz>
14852             Michael Matz  <matz@suse.de>
14853
14854         * Makefile.in (OBJS): Add new source files.
14855         (GTFILES): Add hsa.c.
14856         * common.opt (disable_hsa): New variable.
14857         (-Whsa): New warning.
14858         * config.in (ENABLE_HSA): New.
14859         * configure.ac: Treat hsa differently from other accelerators.
14860         (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
14861         $enable_offloading.
14862         (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
14863         * doc/install.texi (Configuration): Document --with-hsa-runtime,
14864         --with-hsa-runtime-include, --with-hsa-runtime-lib and
14865         --with-hsa-kmt-lib.
14866         * doc/invoke.texi (-Whsa): Document.
14867         (hsa-gen-debug-stores): Likewise.
14868         * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
14869         to invoke offload compiler for hsa acclerator.
14870         * opts.c (common_handle_option): Determine whether HSA offloading
14871         should be performed.
14872         * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
14873         * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
14874         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
14875         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
14876         * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
14877         * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
14878         GF_OMP_FOR_KIND_GRID_LOOP.
14879         (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
14880         (pp_gimple_stmt_1): Likewise.
14881         * gimple-walk.c (walk_gimple_stmt): Likewise.
14882         * gimple.c (gimple_build_omp_grid_body): New function.
14883         (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
14884         * gimple.def (GIMPLE_OMP_GRID_BODY): New.
14885         * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
14886         GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
14887         GF_OMP_TEAMS_GRID_PHONY.
14888         (gimple_statement_omp_single_layout): Updated comments.
14889         (gimple_build_omp_grid_body): New function.
14890         (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
14891         (gimple_omp_for_grid_phony): New function.
14892         (gimple_omp_for_set_grid_phony): Likewise.
14893         (gimple_omp_parallel_grid_phony): Likewise.
14894         (gimple_omp_parallel_set_grid_phony): Likewise.
14895         (gimple_omp_teams_grid_phony): Likewise.
14896         (gimple_omp_teams_set_grid_phony): Likewise.
14897         (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
14898         * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
14899         (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
14900         (BUILT_IN_GOMP_TARGET): Updated type.
14901         * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
14902         (adjust_for_condition): New function.
14903         (get_omp_for_step_from_incr): Likewise.
14904         (extract_omp_for_data): Moved parts to adjust_for_condition and
14905         get_omp_for_step_from_incr.
14906         (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
14907         (fixup_child_record_type): Bail out if receiver_decl is NULL.
14908         (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
14909         (scan_omp_parallel): Do not create child functions for phony
14910         constructs.
14911         (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
14912         (scan_omp_1_op): Checking assert we are not remapping to
14913         ERROR_MARK.  Also also handle GIMPLE_OMP_GRID_BODY.
14914         (parallel_needs_hsa_kernel_p): New function.
14915         (expand_parallel_call): Register apprpriate parallel child
14916         functions as HSA kernels.
14917         (grid_launch_attributes_trees): New type.
14918         (grid_attr_trees): New variable.
14919         (grid_create_kernel_launch_attr_types): New function.
14920         (grid_insert_store_range_dim): Likewise.
14921         (grid_get_kernel_launch_attributes): Likewise.
14922         (get_target_argument_identifier_1): Likewise.
14923         (get_target_argument_identifier): Likewise.
14924         (get_target_argument_value): Likewise.
14925         (push_target_argument_according_to_value): Likewise.
14926         (get_target_arguments): Likewise.
14927         (expand_omp_target): Call get_target_arguments instead of looking
14928         up for teams and thread limit.
14929         (grid_expand_omp_for_loop): New function.
14930         (grid_arg_decl_map): New type.
14931         (grid_remap_kernel_arg_accesses): New function.
14932         (grid_expand_target_kernel_body): New function.
14933         (expand_omp): Call it.
14934         (lower_omp_for): Do not emit phony constructs.
14935         (lower_omp_taskreg): Do not emit phony constructs but create for them
14936         a temporary variable receiver_decl.
14937         (lower_omp_taskreg): Do not emit phony constructs.
14938         (lower_omp_teams): Likewise.
14939         (lower_omp_grid_body): New function.
14940         (lower_omp_1): Call it.
14941         (grid_reg_assignment_to_local_var_p): New function.
14942         (grid_seq_only_contains_local_assignments): Likewise.
14943         (grid_find_single_omp_among_assignments_1): Likewise.
14944         (grid_find_single_omp_among_assignments): Likewise.
14945         (grid_find_ungridifiable_statement): Likewise.
14946         (grid_target_follows_gridifiable_pattern): Likewise.
14947         (grid_remap_prebody_decls): Likewise.
14948         (grid_copy_leading_local_assignments): Likewise.
14949         (grid_process_kernel_body_copy): Likewise.
14950         (grid_attempt_target_gridification): Likewise.
14951         (grid_gridify_all_targets_stmt): Likewise.
14952         (grid_gridify_all_targets): Likewise.
14953         (execute_lower_omp): Call grid_gridify_all_targets.
14954         (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
14955         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
14956         (tree_omp_clause): Added union field dimension.
14957         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
14958         * tree.c (omp_clause_num_ops): Added number of arguments of
14959         OMP_CLAUSE__GRIDDIM_.
14960         (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
14961         (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
14962         * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
14963         (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
14964         (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
14965         (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
14966         * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
14967         * tree-pass.h (make_pass_gen_hsail): Declare.
14968         (make_pass_ipa_hsa): Likewise.
14969         * ipa-hsa.c: New file.
14970         * lto-section-in.c (lto_section_name): Add hsa section name.
14971         * lto-streamer.h (lto_section_type): Add hsa section.
14972         * timevar.def (TV_IPA_HSA): New.
14973         * hsa-brig-format.h: New file.
14974         * hsa-brig.c: New file.
14975         * hsa-dump.c: Likewise.
14976         * hsa-gen.c: Likewise.
14977         * hsa.c: Likewise.
14978         * hsa.h: Likewise.
14979         * toplev.c (compile_file): Call hsa_output_brig.
14980         * hsa-regalloc.c: New file.
14981
14982 2016-01-18  Jeff Law  <law@redhat.com>
14983
14984         PR tree-optimization/69320
14985         * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
14986         ranged object, do nothing if the RHS constant is not [0..1].
14987         (optimize_stmt): Comparing a boolean ranged object against a
14988         constant outside [0..1] results in a compile-time constant.
14989
14990         * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
14991         test.
14992
14993 2016-01-18  Sandra Loosemore  <sandra@codesourcery.com>
14994
14995         * doc/invoke.texi (Invoking GCC): Add new section to menu.
14996         (Option Summary): Update to reflect new section and moved options.
14997         (C++ Dialect Options): Move -fstats to new section.
14998         (Debugging Options): Move all dump, statistics, and other GCC
14999         developer options to new section.  Rewrite section introduction
15000         and re-order remaining options to put the more basic ones first.
15001         (Optimization Options): Move -fira-verbose and -flto-report* to
15002         new section.
15003         (Developer Options): New section incorporating moved options.
15004         * doc/cppopts.texi (-dM): Update cross-reference.
15005
15006 2016-01-18  Richard Henderson  <rth@redhat.com>
15007
15008         PR target/69176
15009         * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
15010         operands to pseudo only if CSE is expected.  Split long immediate
15011         operands only after reload, and for the stack pointer.
15012         (*add<GPI>3_pluslong): Remove.
15013         (*addsi3_aarch64, *adddi3_aarch64): Merge into...
15014         (*add<GPI>3_aarch64): ... here.  Add r/rk/Upl alternative.
15015         (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
15016         (*add<GPI>3 peepholes): New.
15017         (*add<GPI>3 splitters): New.
15018         * config/aarch64/constraints.md (Upl): New.
15019         * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
15020
15021 2016-01-18  Richard Biener  <rguenther@suse.de>
15022
15023         PR tree-optimization/69297
15024         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
15025         stmt at most once.
15026         (vect_bb_vectorization_profitable_p): Clear visited flag again.
15027
15028 2016-01-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
15029
15030         PR middle-end/68542
15031         * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
15032         of mixind vector and scalar types.
15033         (fold_relational_const): Add handling of vector
15034         comparison with boolean result.
15035         * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
15036         comparison of vector operands with boolean result for EQ/NE only.
15037         (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
15038         (verify_gimple_cond): Likewise.
15039         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
15040         valid type of VAL.
15041
15042 2016-01-18  Joseph Myers  <joseph@codesourcery.com>
15043
15044         * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
15045         !TARGET_OCTEON.
15046
15047 2016-01-18  Richard Biener  <rguenther@suse.de>
15048
15049         PR middle-end/69308
15050         * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
15051
15052 2016-01-18  Tom de Vries  <tom@codesourcery.com>
15053
15054         * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
15055
15056 2016-01-18  Tom de Vries  <tom@codesourcery.com>
15057
15058         * omp-low.c (set_oacc_fn_attrib): Make extern.
15059         * omp-low.h (set_oacc_fn_attrib): Declare.
15060         * tree-parloops.c (struct reduction_info): Add reduc_addr field.
15061         (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
15062         (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
15063         Add and handle function parameter oacc_kernels_p.
15064         (find_reduc_addr, get_omp_data_i_param): New function.
15065         (ref_conflicts_with_region, oacc_entry_exit_ok_1)
15066         (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
15067         (parallelize_loops): Add and handle function parameter oacc_kernels_p.
15068         Calculate dominance info.  Skip loops that are not in a kernels region
15069         in oacc_kernels_p mode.  Skip inner loops of parallelized loops.
15070         (pass_parallelize_loops::execute): Call parallelize_loops with
15071         oacc_kernels_p argument.
15072         (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
15073         New member function.
15074         (pass_parallelize_loops::bool oacc_kernels_p): New member var.
15075         * passes.def: Add argument to pass_parallelize_loops instantation.
15076
15077 2016-01-18  Tom de Vries  <tom@codesourcery.com>
15078
15079         * tree-parloops.c (pass_parallelize_loops::execute): Allow
15080         pass_parallelize_loops to be run outside the loop pipeline.
15081
15082 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
15083
15084         * tree-scalar-evolution.c (follow_copies_to_constant): New.
15085         (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
15086
15087 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
15088
15089         PR target/63679
15090         * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
15091         using get_ref_base_and_extent.
15092         (equal_mem_array_ref_p): New.
15093         (hashable_expr_equal_p): Add call to previous.
15094
15095 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
15096
15097         PR target/63679
15098         * tree-sra.c (disqualified_constants, constant_decl_p): New.
15099         (sra_initialize): Allocate disqualified_constants.
15100         (sra_deinitialize): Free disqualified_constants.
15101         (disqualify_candidate): Update disqualified_constants when appropriate.
15102         (create_access): Scan for constant-pool entries as we go along.
15103         (scalarizable_type_p): Add check against type_contains_placeholder_p.
15104         (maybe_add_sra_candidate): Allow constant-pool entries.
15105         (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
15106         (initialize_constant_pool_replacements): New.
15107         (sra_modify_assign): Avoid mangling assignments created by previous,
15108         and don't generate writes into constant pool.
15109         (sra_modify_function_body): Call initialize_constant_pool_replacements.
15110
15111 2016-01-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
15112
15113         * config/i386/i386.c (scalar_to_vector_candidate_p): Support
15114         andnot instruction.
15115         (scalar_chain::convert_op): Likewise.
15116         * config/i386/i386.md (*andndi3_doubleword): New.
15117
15118 2016-01-18  Richard Biener  <rguenther@suse.de>
15119
15120         PR tree-optimization/69170
15121         * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
15122         building a vector from scalar results of a pattern stmt.
15123
15124 2016-01-18  Jakub Jelinek  <jakub@redhat.com>
15125
15126         * haifa-sched.c (autopref_multipass_init): Work around
15127         -Wmaybe-uninitialized warning.
15128
15129 2016-01-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
15130
15131         * config/arm/arm.c (thumb1_reorg): Check that the comparison is
15132         against the constant 0.
15133
15134 2016-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15135
15136         PR tree-optimization/68799
15137         * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
15138         look up phi candidates in the statement-candidate map.
15139         (phi_add_costs): Likewise.
15140         (record_phi_increments): Likewise.
15141         (phi_incr_cost): Likewise.
15142         (ncd_with_phi): Likewise.
15143         (all_phi_incrs_profitable): Likewise.
15144
15145 2016-01-17  Jakub Jelinek  <jakub@redhat.com>
15146
15147         * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
15148         -Wmaybe-uninitialized warning.
15149
15150 2016-01-16  Sandra Loosemore  <sandra@codesourcery.com>
15151
15152         * doc/invoke.texi (Invoking GCC): Add new section to menu.
15153         (Option Summary): Update to reflect new section and moved options.
15154         (C++ Dialect Options): Move -fvtable-verify and related options.
15155         (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
15156         and profiling-related options.
15157         (Optimization Options): Move profile generation options and
15158         -fstack-protector and related options.
15159         (Instrumentation Options): New section incorporating moved options.
15160         (Code Generation Options): Move -finstrument-functions and
15161         related options, -fstack-check, -fstack-limit*, and -fbounds-check.
15162
15163 2016-01-16  Tom de Vries  <tom@codesourcery.com>
15164
15165         * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
15166
15167 2016-01-16  Tom de Vries  <tom@codesourcery.com>
15168
15169         * omp-low.c (expand_omp_atomic_fetch_op):  Release defs of update stmt.
15170
15171 2016-01-16  Richard Sandiford  <richard.sandiford@arm.com>
15172
15173         * hash-table.h (hash_table::empty): Turn into an inline wrapper
15174         that checks whether the table is already empty.  Rename the
15175         original implementation to...
15176         (hash_table::empty_slot): ...this new private function.
15177
15178 2016-01-15  David Malcolm  <dmalcolm@redhat.com>
15179
15180         PR diagnostic/68899
15181         * diagnostic-show-locus.c (layout::print_source_line): Move x
15182         offset of line until after call to
15183         get_line_width_without_trailing_whitespace.
15184
15185 2016-01-15  Jeff Law  <law@redhat.com>
15186
15187         PR tree-optimization/69270
15188         * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
15189         tree-ssa-dom.c.  Improve test for [0..1] ranve from VRP.
15190         * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
15191         * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
15192         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
15193         ssa_name_has_boolean_range and constant_boolean_node.
15194
15195 2016-01-15  Vladimir Makarov  <vmakarov@redhat.com>
15196
15197         PR rtl-optimization/69030
15198         * lra-spills.c (remove_pseudos): Check nrefs and make the function
15199         returning bool.
15200         (spill_pseudos): Delete debug insn for dead pseudo.
15201         (lra_spill): Initiate spill_hard_reg and slots memory separately.
15202
15203 2016-01-15  Jiong Wang  <jiong.wang@arm.com>
15204
15205         * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
15206         New.
15207         (TYPES_UNOPUS): Likewise.
15208         * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
15209         builtin type, from UNOP to UNOPUS.
15210         (lbtruncuv4sf): Likewise.
15211         (lbtruncuv2df): Likewise.
15212         (lrounduv2sf): Likewise.
15213         (lrounduv4sf): Likewise.
15214         (lrounduv2df): Likewise.
15215         (lroundusf): Likewise.
15216         (lroundusf): Likewise.
15217         (lceiluv2sf): Likewise.
15218         (lceiluv4sf): Likewise.
15219         (lceiluv2df): Likewise.
15220         (lceilusf): Likewise.
15221         (lceiludf): Likewise.
15222         (lflooruv2sf): Likewise.
15223         (lflooruv4sf): Likewise.
15224         (lflooruv2df): Likewise.
15225         (lfloorusf): Likewise.
15226         (lfloorudf): Likewise.
15227         (lfrintnuv2sf): Likewise.
15228         (lfrintnuv4sf): Likewise.
15229         (lfrintnuv2df): Likewise.
15230         (lfrintnusf): Likewise.
15231         (lfrintnudf): Likewise.
15232         * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
15233         conversion.
15234         (vcvtq_u32_f32): Likewise.
15235         (vcvtq_u64_f64): Likewise.
15236         (vcvta_u32_f32): Likewise.
15237         (vcvtaq_u32_f32): Likewise.
15238         (vcvtaq_u64_f64): Likewise.
15239         (vcvtm_u32_f32): Likewise.
15240         (vcvtmq_u32_f32): Likewise.
15241         (vcvtmq_u64_f64): Likewise.
15242         (vcvtn_u32_f32): Likwise.
15243         (vcvtnq_u32_f32): Likewise.
15244         (vcvtnq_u64_f64): Likewise.
15245         (vcvtp_u32_f32): Likewise.
15246         (vcvtpq_u32_f32): Likewise.
15247         (vcvtpq_u64_f64): Likewise.
15248         (vcvtmd_u64_f64): Likewise.
15249         (vcvtms_u32_f32): Likewise.
15250         (vcvtad_u64_f64): Likewise.
15251         (vcvtas_u32_f32): Likewise.
15252         (vcvtnd_u64_f64): Likewise.
15253         (vcvtns_u32_f32): Likewise.
15254         (vcvtpd_u64_f64): Likewise.
15255         (vcvtps_u32_f32): Likewise.
15256
15257 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15258
15259         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
15260         CSEL of zero_extended registers.
15261
15262 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15263
15264         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
15265         Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
15266
15267 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15268
15269         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
15270         false when argument string is not found in the attributes table
15271         at all.
15272
15273 2016-01-15  David Edelsohn  <dje.gcc@gmail.com>
15274
15275         PR target/68609
15276         * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
15277         (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
15278         * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
15279         precision estimate.
15280
15281 2016-01-15  Richard Biener  <rguenther@suse.de>
15282
15283         PR tree-optimization/66856
15284         * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
15285         * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
15286         (vect_create_new_slp_node): Increment stmt reference count.
15287         (vect_get_and_check_slp_defs): Make sure stmts are nor already in
15288         an SLP tree before swapping operands.
15289         (vect_build_slp_tree): Likewise.
15290         (destroy_bb_vec_info): Free stmt info after SLP instances.
15291         * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
15292         * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
15293         (STMT_VINFO_NUM_SLP_USES): New macro.
15294
15295 2016-01-15  Richard Biener  <rguenther@suse.de>
15296
15297         PR debug/69137
15298         * dwarf2out.c (add_linkage_name_raw): New function split out from ...
15299         (add_linkage_name): ... here.
15300         (gen_typedef_die): Use add_linkage_name_raw instead of
15301         add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
15302         if necessary.
15303
15304 2016-01-15  Cesar Philippidis  <cesar@codesourcery.com>
15305
15306         * gimplify.c (oacc_default_clause): Decode reference and pointer
15307         types for both kernels and parallel regions.
15308
15309 2016-01-15  Richard Sandiford  <richard.sandiford@arm.com>
15310
15311         PR middle-end/69246
15312         * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
15313
15314 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
15315
15316         * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
15317         (convert_scalars_to_vector): Likewise.
15318
15319 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
15320
15321         * doc/extend.texi (Type Traits): Fix grammar.
15322
15323 2016-01-15  Martin Jambor  <mjambor@suse.cz>
15324
15325         * tree-inline.c (remap_decl): Use existing dclarations if
15326         remapping a type and prevent_decl_creation_for_types.
15327         (replace_locals_stmt): Do an initial remapping of non-VLA typed
15328         decls first.  Do real remapping with
15329         prevent_decl_creation_for_types set.
15330         * tree-inline.h (copy_body_data): New field
15331         prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
15332         padding.
15333
15334 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
15335
15336         * config/s390/s390.opt (mmvcle): More verbose help text.
15337
15338 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
15339
15340         * config/s390/s390.opt: Add period to -mzvector option text.
15341
15342 2016-01-15  Richard Biener  <rguenther@suse.de>
15343
15344         PR tree-optimization/68961
15345         * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
15346         of invariants in stores again.
15347
15348 2016-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
15349
15350         * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
15351
15352 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
15353
15354         * config/i386/i386.c (ix86_expand_branch): Don't split
15355         DI mode xor instruction to SI mode.
15356
15357 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
15358
15359         PR ipa/68148
15360         * ipa-icf.c (sem_function::merge): Virtual functions may become
15361         reachable even if they address is not taken and there are no
15362         idrect calls.
15363
15364 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
15365
15366         * lto-streamer-out.c (subtract_estimated_size): New function.
15367         (get_symbol_initial_value): Use it.
15368
15369 2016-01-15  Christian Bruel  <christian.bruel@st.com>
15370
15371         PR target/65837
15372         * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
15373         (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
15374         (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
15375         use add_builtin_function_ext_scope instead of add_builtin_function.
15376         (neon_set_p, neon_crypto_set_p): Remove.
15377         (arm_init_builtins): Always call arm_init_neon_builtins and
15378         arm_init_crypto_builtins.
15379         (arm_expand_builtin): Check that builtins are allowed for the arch.
15380         * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
15381         * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
15382         arm_init_neon_builtins call.
15383
15384 2016-01-15  Richard Biener  <rguenther@suse.de>
15385
15386         PR tree-optimization/69117
15387         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
15388         * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
15389         of the leader conservatively.
15390         (free_scc_vn): Restore original SSA name infos.
15391
15392 2016-01-14  Jeff Law  <law@redhat.com>
15393
15394         PR tree-optimization/69270
15395         * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
15396         single bit of precision, verify it's also unsigned.
15397         (record_edge_info): Use constant_boolean_node rather than fold_convert
15398         to convert boolean_true/boolean_false to the right type.
15399
15400 2016-01-14  Richard Henderson  <rth@redhat.com>
15401
15402         PR rtl-opt/69014
15403         * loop-doloop.c (record_reg_sets): New.
15404         (doloop_optimize): Reject the transform if the sequence
15405         clobbers registers live at the end of the loop block.
15406         (doloop_optimize_loops): Enable df_live if needed.
15407
15408 2016-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
15409
15410         * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
15411         * config/rs6000/rs6000.c: Likewise.
15412         * config/rs6000/rs6000.h: Likewise.
15413         * config/rs6000/rs6000.md: Likewise.
15414         * doc/extend.texi: Likewsie.
15415
15416 2016-01-14  Jeff Law  <law@redhat.com>
15417
15418         * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
15419         typo.
15420
15421 2016-01-14  Richard Henderson  <rth@redhat.com>
15422
15423         PR c/69272
15424         PR tree-opt/68964
15425         * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
15426         * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
15427         instead of builtin_decl_declared_p to test for declaration.
15428
15429 2016-01-14  Nicklas Bo Jensen  <nbjensen@gmail.com>
15430
15431         * doc/loop.texi (Loop Analysis and Representation): Document
15432         loop_depth function.
15433
15434 2016-01-14  Tom de Vries  <tom@codesourcery.com>
15435
15436         PR tree-optimization/68773
15437         * omp-low.c (expand_omp_target): Don't set force_output.
15438         * varpool.c (varpool_node::get_create): Same.
15439         * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
15440         offload_funcs with force_output.
15441
15442 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
15443
15444         PR debug/69244
15445         * lra-eliminations.c (move_plus_up): Don't change anything if either
15446         the outer or inner subreg mode is not MODE_INT.
15447         * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
15448         integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
15449
15450 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
15451
15452         * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
15453         reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
15454         reduc_uplus_@var{m}): Remove.
15455         * expr.c (expand_expr_real_2): Remove expansion path for
15456         reduc_[us](min|max|plus) optabs.
15457         * optabs-tree.c (scalar_reduc_to_vector): Remove.
15458         * optabs-tree.h (scalar_reduc_to_vector): Remove.
15459         * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
15460         reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
15461         * tree-vect-loop.c (vectorizable_reduction): Remove test for
15462         reduc_[us](min|max|plus) optabs.
15463
15464 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
15465
15466         * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
15467         (reduc_plus_scal_v2sf): New.
15468         (reduc_smax_v2sf): Rename to...
15469         (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
15470         (reduc_smin_v2sf): Rename to...
15471         (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
15472
15473 2016-01-14  Jan Hubicka  <hubicka@ucw.cz>
15474
15475         * alias.c (compare_base_symbol_refs): New function.
15476         (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
15477         it.
15478
15479 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
15480
15481         PR middle-end/68146
15482         PR tree-optimization/69155
15483         * tree-complex.c: Include cfganal.h.
15484         (phis_to_revisit): New variable.
15485         (extract_component): Add phiarg_p argument.  Assert that returned
15486         SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
15487         (update_phi_components): Partly rewrite to use loop over real/imag
15488         components instead of code duplication.  If extract_component returns
15489         SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
15490         create_tmp_reg into the PHI node instead, and mention the phi triplet
15491         in phis_to_revisit.
15492         (tree_lower_complex): Walk bbs in rpo order.  Adjust phis recorded
15493         in phis_to_revisit at the end.
15494
15495 2016-01-14  Richard Biener  <rguenther@suse.de>
15496
15497         PR tree-optimization/68060
15498         * tree-vect-loop.c (vect_is_simple_reduction): Check the
15499         outer loop reduction is only used in the inner loop before
15500         detecting a double reduction.
15501
15502 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
15503
15504         PR target/68269
15505         * combine.c (expand_field_assignment): Punt if compute_mode is
15506         unsupported scalar mode.
15507
15508 2016-01-14  Richard Biener  <rguenther@suse.de>
15509
15510         PR tree-optimization/66856
15511         * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
15512         SLP node only if it built successfully.
15513         (vect_analyze_slp_instance): Adjust.
15514
15515 2016-01-14  Jeff Law  <law@redhat.com>
15516
15517         PR tree-optimization/69270
15518         * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
15519         (record_edge_info): Use it.  Convert boolean_{true,false}_node
15520         to the type of op0.
15521
15522 2016-01-13  Jan Hubicka  <hubicka@ucw.cz>
15523
15524         PR ipa/66487
15525         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
15526         use block_ultimate_origin
15527         (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
15528
15529 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
15530
15531         * doc/invoke.texi (Submodel Options): Rename section to
15532         "Machine-Dependent Options" to better reflect its content.
15533         Rewrite introductory text to remove archaic CPU names.
15534         Update references.
15535
15536 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
15537
15538         * doc/invoke.texi (Code Gen Options): Move section up in file,
15539         before target-specific options.  Update menu and option summary
15540         to reflect the new section ordering.
15541
15542 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
15543
15544         * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
15545         (C++ Dialect Options): Add cross-reference to -std option.
15546         * doc/standards.texi (C++ Language): Document C++14 support.
15547
15548 2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
15549
15550         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
15551         for pack/unpack functions for __ibm128.
15552         (PACK_IF): Likewise.
15553         (UNPACK_IF): Likewise.
15554
15555         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
15556         support for __ibm128 pack/unpack functions.
15557         (rs6000_invalid_builtin): Likewise.
15558         (rs6000_init_builtins): Likewise.
15559         (rs6000_opt_masks): Likewise.
15560
15561         * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
15562         (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
15563         functions
15564         (RS6000_BTM_COMMON): Likewise.
15565
15566         * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
15567         (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
15568         disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
15569         128-bit floating point.  Add support for the double values to be
15570         in Altivec registers for TF/IF packing and unpacking, but restrict
15571         TD packing sub-fields to be FPR registers.  Don't allow overlapped
15572         register support for packing.  Allow pack inputs to be memory
15573         locations.  Don't build generator functions for unpack<mode>_dm
15574         and unpack<mode>_nodm.
15575         (unpack<mode>_dm): Likewise.
15576         (unpack<mode>_nodm): Likewise.
15577         (pack<mode>): Likewise.
15578
15579         * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
15580         built-in functions to pack/unpack explicit __ibm128 values.
15581         (__builtin_unpack_ibm128): Likewise.
15582
15583         * doc/extend.texi (PowerPC Built-in Functions): Document
15584         __builtin_pack_ibm128 and __builtin_unpack_ibm128.
15585
15586 2016-01-13  Bernd Schmidt  <bschmidt@redhat.com>
15587
15588         PR c/66208
15589         * c-common.c (check_function_nonnull): Remove unnecessary declaration.
15590         Add new arg loc and pass it down as context.
15591         (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
15592         to the location to use for the warning.
15593         (check_function_arguments): New arg loc.  All callers changed.  Pass
15594         it to check_function_nonnull.
15595         * c-common.h (check_function_arguments): Adjust declaration.
15596
15597 2016-01-13  Jakub Jelinek  <jakub@redhat.com>
15598
15599         PR tree-optimization/69156
15600         * gimple.c (validate_type): Removed.
15601         (gimple_builtin_call_types_compatible_p): Use
15602         useless_type_conversion_p instead of validate_type.
15603         * value-prof.c (gimple_stringop_fixed_value): Fold
15604         icall_size to correct type.
15605
15606 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
15607
15608         * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
15609         effects.
15610
15611 2016-01-13  Richard Henderson  <rth@redhat.com>
15612
15613         PR tree-opt/68964
15614         * target.def (builtin_tm_load, builtin_tm_store): Remove.
15615         * config/i386/i386.c (ix86_builtin_tm_load): Remove.
15616         (ix86_builtin_tm_store): Remove.
15617         (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
15618         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
15619         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
15620         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
15621         * doc/tm.texi: Rebuild.
15622
15623         * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
15624         (BUILT_IN_TM_MEMCPY_RTWN): New.
15625         * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
15626         fallback from vector to integer helpers.
15627         (build_tm_load): Handle vector types directly, instead of
15628         via target hook.
15629         (build_tm_store): Likewise.
15630         (expand_assign_tm): Prepare for register types not handled by
15631         the above.  Copy them to memory and use memcpy.
15632         * tree.c (tm_define_builtin): New.
15633         (find_tm_vector_type): New.
15634         (build_tm_vector_builtins): New.
15635         (build_common_builtin_nodes): Call it.
15636
15637 2016-01-13  Uros Bizjak  <ubizjak@gmail.com>
15638
15639         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
15640         TARGET_SSE_MATH without TARGET_SSE2.  Rewrite.
15641
15642 2016-01-13  Tom de Vries  <tom@codesourcery.com>
15643
15644         PR tree-optimization/69169
15645         * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
15646         handled_struct_type param.
15647         (create_variable_info_for, intra_create_variable_infos): Call
15648         create_variable_info_for_1 with extra arg.
15649
15650 2016-01-13  Yvan Roux  <yvan.roux@linaro.org>
15651
15652         * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
15653         and "armv8.1-a+crc" entries.
15654
15655 2016-01-13  Alexander Fomin  <alexander.fomin@intel.com>
15656
15657         PR target/69228
15658         * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
15659         Change first operand predicate from register_or_constm1_operand
15660         to register_operand.
15661         (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
15662         (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
15663         (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
15664         (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
15665         (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
15666         (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
15667         (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
15668         * config/i386/i386.c (ix86_expand_builtin): Remove first operand
15669         comparison with constm1_rtx from vec_prefetch_gen part.
15670
15671 2016-01-13  Richard Biener  <rguenther@suse.de>
15672
15673         PR tree-optimization/69013
15674         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
15675         Exchange assert for a test.
15676
15677 2016-01-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15678
15679         PR target/69247
15680         * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
15681
15682 2016-01-13  Richard Biener  <rguenther@suse.de>
15683
15684         PR tree-optimization/69242
15685         * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
15686         assert with a check.
15687
15688 2016-01-13  Richard Biener  <rguenther@suse.de>
15689
15690         PR tree-optimization/69186
15691         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
15692         Properly guard vect_update_misalignment_for_peel call.
15693
15694 2016-01-12  Jeff Law  <law@redhat.com>
15695
15696         PR tree-optimization/pr67755
15697         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
15698         "need_profile_correction".
15699         (thread_block_1): Initialize new field to false by default.  If we
15700         have multiple thread paths through a common joiner to different
15701         final targets, then set new field to true.
15702         (compute_path_counts): Only do count adjustment when it's really
15703         needed.
15704
15705 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
15706
15707         * doc/invoke.texi (Spec Files): Move section down in file, past
15708         all command-line option descriptions.
15709
15710 2016-01-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15711
15712         PR middle-end/54809
15713         * doc/gty.texi: Remove documentation of mark_hook.
15714         * gengtype.c (struct write_types_data): Remove code to support
15715         mark_hook attribute.
15716         (walk_type): Likewise.
15717         (write_func_for_structure): Likewise.
15718
15719 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
15720
15721         * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
15722         Directory Options, and -specs= to Overall Options.
15723         (Overall Options): Adjust similarly.  Reorder to group related
15724         options together.  Make -specs= cross-reference the spec file details.
15725         (Directory Options): Adjust similarly.
15726
15727 2016-01-12  Jeff Law  <law@redhat.com>
15728
15729         * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
15730
15731 2016-01-12  Olivier Hainque  <hainque@adacore.com>
15732
15733         * gcc.c (spec_undefvar_allowed): New global.
15734         (process_command): Set to true when running for --version or --help,
15735         alone or together.
15736         (getenv_spec_function): When the variable is not defined, use the
15737         variable name as the variable value if we're allowed not to issue
15738         a fatal error.
15739
15740 2016-01-12  Bin Cheng  <bin.cheng@arm.com>
15741
15742         PR tree-optimization/68911
15743         * tree-vrp.c (adjust_range_with_scev): Check overflow in range
15744         information computed for expression "init + nit * step".
15745
15746 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
15747
15748         * doc/invoke.texi (Invoking GCC): Copy-edit.  Incorporate information
15749         about name of GCC executable.  Remove deleted node from menu.
15750         (Directory Options) <-B>: Remove cross-reference to deleted node.
15751         (Target Options): Delete section.
15752
15753 2016-01-12  Christian Bruel  <christian.bruel@st.com>
15754
15755         PR target/69180
15756         * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
15757         for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
15758
15759 2016-01-12  Jakub Jelinek  <jakub@redhat.com>
15760
15761         PR target/69198
15762         * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
15763         aligned_mem is properly set for AVX512-VL floating point masked
15764         stores.
15765
15766         PR target/69175
15767         * ifcvt.c (cond_exec_process_if_block): When removing the last
15768         insn from then_bb, remove also any possible barriers that follow it.
15769
15770 2016-01-12  H.J. Lu  <hongjiu.lu@intel.com>
15771
15772         PR target/68456
15773         PR target/69226
15774         * config/i386/iamcu.h (SIZE_TYPE): New macro.
15775         (PTRDIFF_TYPE): Likewise.
15776         (WCHAR_TYPE): Likewise.
15777         (WCHAR_TYPE_SIZE): Likewise.
15778         (STDINT_LONG32): Likewise.
15779
15780 2016-01-12  Richard Biener  <rguenther@suse.de>
15781
15782         PR tree-optimization/69053
15783         * tree-vect-loop.c (get_initial_def_for_reduction): Properly
15784         convert initial value for cond reductions.
15785
15786 2016-01-12  Richard Biener  <rguenther@suse.de>
15787
15788         PR tree-optimization/69007
15789         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
15790         widen_sum after dot_prod and sad.
15791
15792 2016-01-12  Richard Biener  <rguenther@suse.de>
15793
15794         PR tree-optimization/69168
15795         * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
15796         pattern stmt SLP type.
15797         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
15798         end up unused so cope with that case.
15799
15800 2016-01-12  Richard Biener  <rguenther@suse.de>
15801
15802         PR tree-optimization/69157
15803         * tree-vect-stmts.c (vectorizable_mask_load_store): Check
15804         stmts def type only during analyze phase.
15805         (vectorizable_call): Likewise.
15806         (vectorizable_simd_clone_call): Likewise.
15807         (vectorizable_conversion): Likewise.
15808         (vectorizable_assignment): Likewise.
15809         (vectorizable_shift): Likewise.
15810         (vectorizable_operation): Likewise.
15811         (vectorizable_store): Likewise.
15812         (vectorizable_load): Likewise.
15813
15814 2016-01-12  Richard Biener  <rguenther@suse.de>
15815
15816         PR tree-optimization/69174
15817         * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
15818         space.
15819         (vectorizable_load): Properly compute the number of loads needed
15820         for permuted strided SLP loads and do not spuriously assign
15821         to SLP_TREE_VEC_STMTS.
15822
15823 2016-01-12  Andris Pavenis  <andris.pavenis@iki.fi>
15824
15825         * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
15826         (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
15827         (MD_EXEC_PREFIX): Remove.
15828         (MD_STARTFILE_PREFIX) Removee.
15829         (FILE_NAME_ABSOLUTE_P): Remove.
15830         (CPP_SPEC): Do not read macros from sys/version.h.
15831         (LINK_COMMAND_SPEC): Remove.
15832         (LOCAL_INCLUDE_DIR): Remove.
15833         (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
15834         (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
15835         (POST_LINK_SPEC): Define to invoke stubify after linker
15836         (LIBSTDCXX): Remove define
15837         (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
15838         (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
15839         (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
15840         (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
15841         (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
15842         (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
15843         (i386_djgpp_asm_named_section): Add propotype of new procedure
15844
15845         * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
15846         (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
15847         (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
15848         in config/i386/djgpp.h).
15849         (STANDARD_STARTFILE_PREFIX_2): Define identical to
15850         STANDARD_STARTFILE_PREFIX_1.
15851         (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
15852         (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
15853         installation errors.
15854         (MAX_OFILE_ALIGNMENT): Define to 128.
15855         (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
15856
15857         * config/i386/djgpp.c: New file. Add implementation of
15858         i386_djgpp_asm_named_section.
15859
15860         * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
15861
15862         * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
15863         Add rule for building djgpp.o.
15864
15865 2016-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15866
15867         * config/rs6000/rs6000.c (v2df_reduction_p): New function.
15868         (rtx_is_swappable_p): Reductions are swappable.
15869         (insn_is_swappable_p): V2DF reductions are swappable.
15870
15871 2016-01-11  John David Anglin  <danglin@gcc.gnu.org>
15872
15873         * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
15874         reloads for other unsupported memory operands.
15875
15876 2016-01-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
15877             Jim Wilson  <jim.wilson@linaro.org>
15878
15879         PR target/69194
15880         * config/arm/arm-builtins.c (arm_expand_neon_args): Call
15881         copy_to_mode_reg instead of force_reg.
15882
15883 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
15884
15885         PR target/69225
15886         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
15887         TARGET_80387 is true.
15888
15889 2016-01-11  Jakub Jelinek  <jakub@redhat.com>
15890
15891         PR target/69071
15892         * lra-eliminations.c (move_plus_up): Only move plus up
15893         if subreg of the constant can be simplified into constant
15894         and use the simplified subreg of the constant instead of
15895         the original constant.
15896
15897         * fold-const.c (fold_convertible_p): Don't return true
15898         for conversion of VECTOR_TYPE to same sized integral type.
15899         (fold_convert_loc): Fix up formatting.  Fold conversion of
15900         VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
15901         instead of NOP_EXPR.
15902
15903         PR tree-optimization/69214
15904         * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
15905         innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
15906         Formatting fix.
15907
15908         PR tree-optimization/69207
15909         * tree-vect-slp.c (vect_get_constant_vectors): For
15910         VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
15911         fold_convertible_p to vector_type's element type, and always
15912         use VCE for non-VECTOR_BOOLEAN_TYPE_P.
15913
15914 2016-01-11  Richard Biener  <rguenther@suse.de>
15915
15916         PR tree-optimization/69173
15917         * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
15918         fixup the cycle if all stmts are in a pattern.
15919
15920 2016-01-11  Uros Bizjak  <ubizjak@gmail.com>
15921
15922         PR middle-end/68999
15923         * alias.c (base_alias_check): Move check for addresses with
15924         alignment ANDs before the call for compare_base_decls.
15925         (memrefs_conflict_p): Return -1 for different decls
15926         that went through alignment adjustments.
15927
15928 2016-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15929
15930         PR rtl-optimization/68796
15931         * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
15932         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
15933         and QImode comparisons against zero with CC_NZmode.
15934         * config/aarch64/iterators.md (short_mask): New mode_attr.
15935
15936 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
15937
15938         * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
15939         (<avx512>_store<mode>_mask): Likewise.
15940
15941 2016-01-11  Bernd Schmidt  <bschmidt@redhat.com>
15942             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15943
15944         PR rtl-optimization/68841
15945         * ifcvt.c (struct noce_if_info): Add orig_x field.
15946         (bbs_ok_for_cmove_arith): Add to_rename parameter.
15947         Don't record conflicts on to_rename if it's present.
15948         Allow memory destinations in sets.
15949         (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
15950         blocks, passing orig_x to the checks.
15951         (noce_process_if_block): Set if_info->orig_x appropriately.
15952
15953 2016-01-11  Tom de Vries  <tom@codesourcery.com>
15954
15955         PR tree-optimization/69069
15956         * tree-parloops.c (create_parallel_loop): Add missing phi args.
15957
15958 2016-01-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
15959
15960         PR rtl-optimization/68920
15961         * config/i386/i386.c (ix86_option_override_internal): Restrict number
15962         of conditional moves for  RTL if-conversion to 1 for
15963         TARGET_ONE_IF_CONV_INSN.
15964         * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
15965         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
15966         * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
15967         parameter to restirct number of conditional moves for
15968         RTL if-conversion.
15969         * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
15970         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
15971         conditionl moves.
15972
15973 2016-01-11  Alexandre Oliva  <aoliva@redhat.com>
15974
15975         PR bootstrap/69123
15976         * var-tracking.c (drop_overlapping_mem_locs): Operate on all
15977         onepart vars.  Fix typo in comment.  Fix reversed condition in
15978         unshare test.
15979         (dataflow_set_remove_mem_locs): Operate on all onepart vars.
15980
15981         PR bootstrap/69123
15982         * var-tracking.c (dump_onepart_variable_differences): New.
15983         (dataflow_set_different): If a detailed dump is requested,
15984         delay early returns and dump differences between onepart
15985         variables present before and after, and added variables.
15986
15987 2016-01-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
15988
15989         PR target/69010
15990         * expr.c (expand_expr_real_1): For boolean vector constants
15991         with a scalar mode use const_scalar_mask_from_tree.
15992         (const_scalar_mask_from_tree): New.
15993         * optabs.c (expand_vec_cond_mask_expr): Use mask mode
15994         assigned to a mask type to handle constants.
15995
15996 2016-01-11  Martin Jambor  <mjambor@suse.cz>
15997
15998         PR ipa/69044
15999         * ipa-cp.c (estimate_local_effects): Do not clone for removal of
16000         useless parameters if we cannot change function signature.
16001
16002 2016-01-11  Martin Jambor  <mjambor@suse.cz>
16003
16004         PR ipa/66616
16005         * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
16006         flag.
16007
16008 2016-01-11  Tom de Vries  <tom@codesourcery.com>
16009
16010         PR tree-optimization/69109
16011         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
16012         latch with phi.
16013
16014 2016-01-11  Tom de Vries  <tom@codesourcery.com>
16015
16016         PR tree-optimization/69108
16017         * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
16018         res is not used in a phi.
16019
16020 2016-01-11  Yury Gribov  <y.gribov@samsung.com>
16021
16022         PR 67425
16023         * common.opt (frandom-seed): Fix parameter name.
16024         * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
16025
16026 2016-01-11  Tom de Vries  <tom@codesourcery.com>
16027
16028         PR tree-optimization/69058
16029         * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
16030         not supported.
16031
16032 2016-01-11  Andrew Burgess  <andrew.burgess@embecosm.com>
16033
16034         * config/arc/arc.opt (mdiv-rem): Add period to the end.
16035         (mcode-density): Likewise.
16036
16037 2016-01-10  Tom de Vries  <tom@codesourcery.com>
16038
16039         PR tree-optimization/69062
16040         * tree-parloops.c (loop_has_phi_with_address_arg): New function.
16041         (parallelize_loops): Don't paralelize loop that has phi with address
16042         arg.
16043
16044 2016-01-10  Tom de Vries  <tom@codesourcery.com>
16045
16046         PR tree-optimization/69039
16047         * tree-parloops.c (try_create_reduction_list): Only allow single exit
16048         phi for reduction.
16049
16050 2016-01-09  John David Anglin  <danglin@gcc.gnu.org>
16051
16052         PR middle-end/68743
16053         * match.pd: Require target has function_c99_misc before doing
16054         truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
16055
16056 2016-01-09  Gerald Pfeifer  <gerald@pfeifer.com>
16057
16058         * configure.ac (isl_options_set_schedule_serialize_sccs): Also
16059         use GMPINC.
16060         * configure: Regenerate.
16061
16062 2016-01-09  Jakub Jelinek  <jakub@redhat.com>
16063
16064         PR middle-end/50865
16065         PR tree-optimization/69097
16066         * fold-const.h (expr_not_equal_to): New prototype.
16067         * fold-const.c: Include stringpool.h and tree-ssanames.h.
16068         (expr_not_equal_to): New function.
16069         * match.pd (X % -Y is the same as X % Y): Don't optimize
16070         unless X is known not to be equal to minimum or Y is known
16071         not to be equal to -1.
16072         * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
16073         fold TRUNC_MOD_EXPR if the second argument is not a power of two.
16074         (simplify_stmt_using_ranges): Adjust caller.
16075         (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
16076         substitute_and_fold.
16077
16078 2016-01-09  Jan Hubicka  <hubicka@ucw.cz>
16079
16080         * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
16081         w/o DECL_NAME.
16082
16083 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
16084
16085         PR tree-optimization/69167
16086         * gimple-fold.c (replace_stmt_with_simplification): Also punt if
16087         new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
16088         ops[0] comparison.
16089         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
16090
16091 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
16092             Richard Biener  <rguenther@suse.de>
16093
16094         PR tree-optimization/68707
16095         * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
16096         instances that can be handled via vect_load_lanes.
16097
16098 2016-01-08  Uros Bizjak  <ubizjak@gmail.com>
16099
16100         * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
16101         if we can't determine address equivalence.
16102         * alias.c (compare_base_decl): Update for changed return value of
16103         symtab_node::equal_address_to.
16104
16105 2016-01-08  Jason Merrill  <jason@redhat.com>
16106
16107         PR c++/68983
16108         PR c++/67557
16109         * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
16110         * expr.c (store_field): Not here.
16111         * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
16112         call with TREE_ADDRESSABLE type.
16113         * tree-cfg.c (verify_gimple_call): Adjust.
16114
16115 2016-01-08  Olivier Hainque  <hainque@adacore.com>
16116
16117         * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
16118         libc_internal.
16119
16120 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
16121
16122         * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
16123         (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
16124         (reduc_smin_v2sf): Rename to...
16125         (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
16126         (reduc_splus_v2sf): Rename to...
16127         (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
16128
16129 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
16130
16131         PR tree-optimization/69162
16132         * gimplify.c (gimplify_va_arg_expr): Encode original type of
16133         valist argument in another argument.
16134         (gimplify_modify_expr): Adjust for the above change.  Cleanup.
16135         * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
16136         to determine the va_list type, build a MEM_REF instead of
16137         build_fold_indirect_ref.
16138
16139         PR tree-optimization/69172
16140         * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
16141         gimple_build.
16142
16143 2016-01-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16144
16145         PR tree-optimization/67781
16146         * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
16147         and cmpnop in two steps: first the ones not accessed in original
16148         gimple expression in a endian independent way and then the ones not
16149         accessed in the final result in an endian-specific way.
16150
16151 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
16152
16153         PR tree-optimization/69083
16154         * tree-vect-slp.c (vect_get_constant_vectors): For
16155         VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
16156         element type.  If op is fold_convertible_p to vector_type's element
16157         type, use NOP_EXPR instead of VCE.
16158
16159 2016-01-08  Segher Boessenkool  <segher@kernel.crashing.org>
16160
16161         PR rtl-optimization/67778
16162         PR rtl-optimization/68634
16163         PR rtl-optimization/68909
16164         * shrink-wrap.c (try_shrink_wrapping): Add comment.  Don't pop
16165         block from the stack until done with it.  Remove a superfluous
16166         bitmap set.  Remove a superfluous bitmap test.
16167
16168 2016-01-07  Martin Sebor  <msebor@redhat.com>
16169
16170         PR c/68966
16171         * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
16172         constraint on the type of arguments.
16173
16174 2016-01-07  Andreas Tobler  <andreast@gcc.gnu.org>
16175
16176         * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
16177         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
16178         unaligned_access on the gcc_options set.
16179         * config/arm/arm.c (arm_option_override_internal): Use
16180         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
16181
16182 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
16183
16184         PR target/69140
16185         * config/i386/i386.c (ix86_frame_pointer_required): Enable
16186         frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
16187
16188 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
16189
16190         Revert
16191         2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
16192
16193         PR target/69140
16194         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
16195         depending on frame_pointer_needed before remaining integer and SSE
16196         registers are saved.
16197
16198 2016-01-07  Sandra Loosemore  <sandra@codesourcery.com>
16199
16200         PR 1078
16201         * doc/extend.texi (Nvidia PDX Function Attributes): New section.
16202
16203 2016-01-07  H.J. Lu  <hongjiu.lu@intel.com>
16204
16205         PR target/69171
16206         * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
16207         Use the "xBm" constraint.
16208         (float<sseintvecmodelower><mode>2<mask_name><round_name):
16209         Likewise.
16210         (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
16211         (sse_cvtsi2ssq<round_name>): Likewise.
16212         (sse_cvtss2si<round_name>): Likewise.
16213         (sse_cvtss2siq<round_name>): Likewise.
16214         (sse2_cvtsi2sdq<round_name>): Likewise.
16215         (sse2_cvtsd2si<round_name>): Likewise.
16216         (sse2_cvtsd2siq<round_name>): Likewise.
16217         * config/i386/subst.md (round_nimm_scalar_predicate): New
16218         predicate.
16219
16220 2015-12-15  Bernd Schmidt  <bschmidt@redhat.com>
16221
16222         PR middle-end/67639
16223         * varasm.c (make_decl_rtl): Mark invalid register vars as
16224         DECL_EXTERNAL.
16225
16226         PR rtl-optimization/66206
16227         * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
16228         All callers changed.
16229
16230 2016-01-07  Jakub Jelinek  <jakub@redhat.com>
16231
16232         PR tree-optimization/69141
16233         * tree-ssa-pre.c: Include langhooks.h.
16234         (eliminate_dom_walker::before_dom_children): Use
16235         lang_hooks.decl_printable_name instead of
16236         cgraph_node::get ()->name ().
16237
16238         PR middle-end/68960
16239         * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
16240         it and DECL_ALIGN too.
16241
16242 2016-01-06  Robert Suchanek  <robert.suchanek@imgtec.com>
16243
16244         * config/mips/mips-ftypes.def: Sort to lexicographical order.
16245
16246 2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
16247
16248         PR target/69140
16249         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
16250         depending on frame_pointer_needed before remaining integer and SSE
16251         registers are saved.
16252
16253 2015-01-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16254
16255         * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
16256         mode iterator with VSX_M2.
16257         (*p9_vecstore_<mode>): Likewise.
16258         (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
16259         (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
16260         (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
16261         (define_split for VSX_LE128 stores): Likewise.
16262         (define_peephole2 for TImode LE swaps): Likewise.
16263         (define_split for VSX_LE128 post-reload stores): Likewise.
16264
16265 2016-01-06  Marek Polacek  <polacek@redhat.com>
16266
16267         PR sanitizer/69099
16268         * convert.c (convert_to_integer_1): Adjust call to
16269         ubsan_instrument_float_cast.  Use NULL_TREE instead of NULL.
16270         * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter.  Use
16271         EXPR instead of ARG.
16272         * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
16273
16274 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
16275
16276         PR 1078
16277         * doc/extend.texi (RL78 Variable Attributes): New section.
16278
16279 2016-01-05  Marek Polacek  <polacek@redhat.com>
16280
16281         PR c/69104
16282         * builtins.c (get_memmodel): Use expansion point location rather than
16283         the input location.  Call warning_at rather than warning.
16284         (expand_builtin_atomic_compare_exchange): Likewise.
16285         (expand_builtin_atomic_load): Likewise.
16286         (expand_builtin_atomic_store): Likewise.
16287         (expand_builtin_atomic_clear): Likewise.
16288
16289 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
16290
16291         PR target/68991
16292         * config/i386/i386.c (ix86_expand_vector_logical_operator):
16293         Replace nonimmediate_operand with vector_operand.
16294         * config/i386/predicates.md (vector_operand): New predicate.
16295         (general_vector_operand): Replace nonimmediate_operand with
16296         vector_operand.
16297         * config/i386/sse.md: Replace nonimmediate_operand with
16298         vector_operand and m constraint with Bm constraint on SSE
16299         patterns with 16-byte memory operand.
16300         * config/i386/subst.md (round_nimm_predicate): Replace
16301         nonimmediate_operand with vector_operand.
16302         (round_saeonly_nimm_predicate): Likewise.
16303         (round_saeonly_nimm_scalar_predicate): New.
16304
16305 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
16306
16307         PR target/68991
16308         * config/i386/constraints.md (Bm): New constraint.
16309         * config/i386/predicates.md (vector_memory_operand): New
16310         predicate.
16311         * config/i386/sse.md: Replace xm with xBm in plusminus and
16312         any_logic patterns.
16313
16314 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
16315
16316         PR 1078
16317         * doc/extend.texi (V850 Function Attributes): New section.
16318         (V850 Variable Attributes): New section.
16319
16320 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
16321
16322         PR 1078
16323         * doc/extend.texi (MicroBlaze Function Attributes): Document
16324         interrupt_handler and fast_interrupt attributes.
16325
16326 2016-01-05  Sergei Trofimovich  <siarheit@google.com>
16327
16328         PR other/60465
16329         * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
16330         for local symbolic operands.
16331         * config/ia64/predicates.md (local_symbolic_operand64): New
16332         predicate.
16333
16334 2016-01-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16335
16336         PR rtl-optimization/68651
16337         * combine.c (combine_simplify_rtx): Canonicalize x + x into
16338         x << 1.
16339
16340 2016-01-05  Nathan Sidwell  <nathan@acm.org>
16341
16342         * alias.c (compare_base_decls): Use symtab_node::get.
16343
16344 2016-01-05  Nick Clifton  <nickc@redhat.com>
16345
16346         PR target/68770
16347         * ira-costs.c (copy_cost): Initialise the t_icode field of the
16348         secondary_reload_info structure.
16349
16350         PR target/66655
16351         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
16352         decls if weak support is available.
16353
16354 2016-01-04  Martin Sebor  <msebor@redhat.com>
16355
16356         * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
16357
16358 2016-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
16359
16360         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
16361         OPTION_MASK_P9_DFORM.
16362
16363         * config/rs6000/constraints.md (wo constraint): New constraint for
16364         ISA 3.0 (power9).
16365
16366         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
16367         for wo constraint.
16368         (rs6000_init_hard_regno_mode_ok): Likewise.
16369
16370         * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
16371         wo constraint.
16372
16373         * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
16374         expanders not to have constraints.  Add support for ISA 3.0 xxperm
16375         instruction.  Add support for fusing xxlor with xxperm.
16376         (altivec_vperm_<mode>_internal): Likewise.
16377         (altivec_vperm_v8hiv16qi): Likewise.
16378         (altivec_vperm_<mode>v16q): Likewise.
16379         (altivec_vperm_<mode>_uns): Likewise.
16380         (vperm_v8hiv4si): Likewise.
16381         (vperm_v16qiv8hi): Likewise.
16382
16383         * doc/md.texi (RS/6000 constraints): Document wo constraint.
16384
16385 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
16386
16387         Update copyright years.
16388
16389         * gcc.c (process_command): Update copyright notice dates.
16390         * gcov-dump.c (print_version): Ditto.
16391         * gcov.c (print_version): Ditto.
16392         * gcov-tool.c (print_version): Ditto.
16393         * gengtype.c (create_file): Ditto.
16394         * doc/cpp.texi: Bump @copying's copyright year.
16395         * doc/cppinternals.texi: Ditto.
16396         * doc/gcc.texi: Ditto.
16397         * doc/gccint.texi: Ditto.
16398         * doc/gcov.texi: Ditto.
16399         * doc/install.texi: Ditto.
16400         * doc/invoke.texi: Ditto.
16401
16402 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
16403
16404         * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
16405         modes larger than TImode as TImode if NEON is not enabled.
16406
16407 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
16408
16409         PR target/69100
16410         * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
16411         mode for %f0-%f31 only if TARGET_FPU.
16412
16413 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
16414
16415         PR target/69072
16416         * config/sparc/sparc.c (scan_record_type): Take into account subfields
16417         to compute the PACKED_P predicate.
16418         (function_arg_record_value): Minor tweaks.
16419
16420 2016-01-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16421
16422         * doc/install.texi (--with-multilib-list): Describe the meaning of the
16423         option for arm*-*-* targets.
16424
16425 2016-01-03  Sandra Loosemore  <sandra@codesourcery.com>
16426
16427         * doc/extend.texi (Common Function Attributes): Move docs for
16428         MSP430-specific attributes to....
16429         (MSP430 Function Attributes): ...here.  Delete the redundant
16430         entries and copy-edit the remaining text.
16431         (MSP430 Variable Attributes): Use uniform format for index
16432         entries and add a cross-reference to the corresponding function
16433         attribute docs.
16434
16435 2016-01-03  Vladimír Čunát  <vcunat@gmail.com>
16436
16437         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
16438         -finite-math typo.
16439         (x86 Options): Likewise.
16440
16441 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
16442
16443         PR 1078
16444
16445         * extend.texi (Common Function Attributes) <no_stack_limit>: New.
16446         * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
16447         to corresponding attribute.
16448
16449 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
16450
16451         * doc/extend.texi (Common Function Attributes) <noplt>: Move
16452         to correct alphabetization of table.  Copy-edit and correct
16453         markup.
16454         <stack_protect>: Likewise.
16455         <target_clones>: Likewise.
16456         <simd>: Likewise.
16457         * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
16458         Correct punctuation.
16459         (Code Gen Options) <-fno-plt>: Copy-edit.
16460
16461 2016-01-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
16462
16463         PR target/68917
16464         * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
16465         SI values.  Explicitly convert SI to DI and vice-versa.
16466
16467 2016-01-01  Jakub Jelinek  <jakub@redhat.com>
16468
16469         PR tree-optimization/69070
16470         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
16471         REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
16472
16473         PR sanitizer/69055
16474         * ubsan.c (ubsan_instrument_float_cast): Call
16475         initialize_sanitizer_builtins.
16476
16477         PR target/69015
16478         * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
16479 \f
16480 Copyright (C) 2016 Free Software Foundation, Inc.
16481
16482 Copying and distribution of this file, with or without modification,
16483 are permitted in any medium without royalty provided the copyright
16484 notice and this notice are preserved.