rs6000-builtin.def (BU_FLOAT128_2): New #define.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2016-06-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2
3         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
4         (BU_FLOAT128_1): Likewise.
5         (FABSQ): Likewise.
6         (COPYSIGNQ): Likewise.
7         (RS6000_BUILTIN_NANQ): Likewise.
8         (RS6000_BUILTIN_NANSQ): Likewise.
9         (RS6000_BUILTIN_INFQ): Likewise.
10         (RS6000_BUILTIN_HUGE_VALQ): Likewise.
11         * config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype.
12         (TARGET_FOLD_BUILTIN): New #define.
13         (rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry.
14         (rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128.
15         (rs6000_fold_builtin): New target hook implementation, handling
16         folding of 128-bit NaNs and infinities.
17         (rs6000_init_builtins): Initialize const_str_type_node; ensure all
18         entries are filled in to avoid problems during bootstrap
19         self-test; define builtins for 128-bit NaNs and infinities.
20         (rs6000_opt_mask): Add entry for float128.
21         * config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define.
22         (RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128.
23         (rs6000_builtin_type_index): Add RS6000_BTI_const_str.
24         (const_str_type_node): New #define.
25         * config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert
26         to a define_expand that dispatches to either copysign<mode>3_soft
27         or copysign<mode>3_hard.
28         (copysign<mode>3_hard): Rename from copysign<mode>3.
29         (copysign<mode>3_soft): New define_insn.
30         * doc/extend.texi: Document new builtins.
31
32 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
33
34         * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using
35         PRIu64 instead of lu.
36
37 2016-06-24  Eric Botcazou  <ebotcazou@adacore.com>
38
39         PR debug/71642
40         * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
41         copy the type name.
42
43 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
44
45         PR tree-optimization/71647
46         * omp-low.c (lower_rec_input_clauses): Convert
47         omp_clause_aligned_alignment (c) to size_type_node for the
48         last argument of __builtin_assume_aligned.
49
50 2016-06-24  Martin Liska  <mliska@suse.cz>
51
52         * cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
53         * cfgloop.h: Change 'struct loop' to 'const struct loop' for a
54         few functions.
55         * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
56         argument to true if the expected number of iterations is
57         loop-based.
58
59 2016-06-24  Uros Bizjak  <ubizjak@gmail.com>
60
61         * configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to
62         assemble for 32bit target.
63         (HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble
64         and $ld_ix86_gld_32_opt to link for 32bit target.
65         (HAVE_AS_IX86_TLSLDMPLT): Ditto.
66         * configure: Regenerate.
67
68 2016-06-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
69
70         * config/arm/arm.c (int_log2): Delete definition and prototype.
71         (shift_op): Use exact_log2 instead of int_log2.
72         (vfp3_const_double_for_fract_bits): Likewise.
73
74 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
75
76         * internal-fn.c (expand_arith_set_overflow): New function.
77         (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
78         Use it.
79         (expand_arith_overflow_result_store): Likewise.  Handle precision
80         smaller than mode precision.
81         * tree-vrp.c (extract_range_basic): For imag part, handle
82         properly signed 1-bit precision result.
83         * doc/extend.texi (__builtin_add_overflow): Document that last
84         argument can't be pointer to enumerated or boolean type.
85         (__builtin_add_overflow_p): Document that last argument can't
86         have enumerated or boolean type.
87
88 2016-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
89             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
90
91         * config/rs6000/predicates.md (splat_input_operand): Rework.
92         Don't allow constants, since the insns that use this predicate
93         don't support constants.  Constants are handled by other insns
94         that are created via combine.  During and after register
95         allocation, only allow indexed or indirect addresses, and not
96         general addresses.  Only allow modes supported by the hardware.
97         * config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage
98         comment.  Move check for using VSPLTIS<x> to a common location,
99         instead of doing it in two different places.
100
101 2016-06-23  Jocelyn Mayer  <l_indien@magic.fr>
102
103         * config/i386/driver-i386.c (host_detect_local_cpu): Set
104         PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
105         <case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for
106         signature_CENTAUR_ebx.
107
108 2016-06-23  H.J. Lu  <hongjiu.lu@intel.com>
109
110         PR target/66232
111         PR target/67400
112         * configure.ac (as_ix86_tls_ldm_opt): Renamed to ...
113         (as_ix86_gas_32_opt): This.
114         (ld_ix86_tls_ldm_opt): Renamed to ...
115         (ld_ix86_gld_32_opt): This.
116         (R_386_TLS_LDM reloc): Updated.
117         (R_386_GOT32X reloc): New assembler/linker check.
118         (HAVE_AS_IX86_GOT32X): New.  Defined to 1 if 32-bit assembler and
119         linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT".  Otherise,
120         defined to 0.
121         * config.in: Regenerated.
122         * configure: Likewise.
123         * config/i386/i386.c (ix86_force_load_from_GOT_p): Return
124         true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode.
125         (ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt
126         if ix86_force_load_from_GOT_p returns true.
127         (ix86_print_operand_address_as): Also support UNSPEC_GOT if
128         ix86_force_load_from_GOT_p returns true.
129         (ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load
130         the external function address via the GOT slot.
131         (ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and
132         HAVE_AS_IX86_GOT32X before returning false.
133         (ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in
134         32-bit mode if ix86_nopic_noplt_attribute_p returns true.
135
136 2016-06-23  Eric Botcazou  <ebotcazou@adacore.com>
137
138         * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant.
139
140 2016-06-23  Andi Kleen  <ak@linux.intel.com>
141
142         * Makefile.in: Regenerate.
143         * doc/install.texi: Document autoprofiledbootstrap.
144
145 2016-06-23  Andi Kleen  <ak@linux.intel.com>
146
147         * config/i386/gcc-auto-profile: New file.
148
149 2016-06-23  Martin Liska  <mliska@suse.cz>
150
151         PR middle-end/71619
152         * predict.c (predict_loops): Revert the hunk that was removed
153         in r237103.
154
155 2016-06-23  Jakub Sejdak  <jakub.sejdak@phoesys.com>
156
157         * config.gcc: Add support for arm*-*-phoenix* targets.
158         * config/arm/t-phoenix: New.
159         * config/phoenix.h: New.
160
161 2016-06-23  Uros Bizjak  <ubizjak@gmail.com>
162             H.J. Lu  <hongjiu.lu@intel.com>
163
164         PR target/67400
165         * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
166         * config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
167         (ix86_legitimate_constant_p): Do not allow UNSPEC_GOTPCREL if
168         ix86_force_load_from_GOT_p returns true.
169         (ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL if
170         ix86_force_load_from_GOT_p returns true.
171         (ix86_print_operand_address_as): Support UNSPEC_GOTPCREL if
172         ix86_force_load_from_GOT_p returns true.
173         (ix86_expand_move): Load the external function address via the
174         GOT slot if ix86_force_load_from_GOT_p returns true.
175         * config/i386/predicates.md (x86_64_immediate_operand): Return
176         false for SYMBOL_REFs where ix86_force_load_from_GOT_p returns true.
177         (x86_64_zext_immediate_operand): Ditto.
178
179 2016-06-22  Uros Bizjak  <ubizjak@gmail.com>
180
181         * config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
182
183 2016-06-22  David Malcolm  <dmalcolm@redhat.com>
184
185         PR c/70339
186         * diagnostic-core.h (pedwarn_at_rich_loc): New prototype.
187         * diagnostic.c (pedwarn_at_rich_loc): New function.
188         * spellcheck.h (best_match::best_match): Add a
189         "best_distance_so_far" optional parameter.
190         (best_match::set_best_so_far): New method.
191         (best_match::get_best_distance): New accessor.
192         (best_match::get_best_candidate_length): New accessor.
193
194 2016-06-22  Nick Clifton  <nickc@redhat.com>
195
196         * dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in
197         place of GET_MODE_CLASS() == MODE_INT, so that partial integer
198         modes are accepted as well.
199         (ucompare_loc_descriptor): Likewise.
200         (minmax_loc_descriptor): Likewise.
201         (clz_loc_descriptor): Likewise.
202         (popcount_loc_descriptor): Likewise.
203         (bswap_loc_descriptor): Likewise.
204         (rotate_loc_descriptor): Likewise.
205         (mem_loc_descriptor): Likewise.
206         (loc_descriptor): Likewise.
207
208 2016-06-22  David Malcolm  <dmalcolm@redhat.com>
209
210         * common.opt (fdiagnostics-parseable-fixits): New option.
211         * diagnostic.c: Include "selftest.h".
212         (print_escaped_string): New function.
213         (print_parseable_fixits): New function.
214         (diagnostic_report_diagnostic): Call print_parseable_fixits.
215         (selftest::assert_print_escaped_string): New function.
216         (ASSERT_PRINT_ESCAPED_STRING_STREQ): New macro.
217         (selftest::test_print_escaped_string): New function.
218         (selftest::test_print_parseable_fixits_none): New function.
219         (selftest::test_print_parseable_fixits_insert): New function.
220         (selftest::test_print_parseable_fixits_remove): New function.
221         (selftest::test_print_parseable_fixits_replace): New function.
222         (selftest::diagnostic_c_tests): New function.
223         * diagnostic.h (struct diagnostic_context): Add field
224         "parseable_fixits_p".
225         * doc/invoke.texi (Diagnostic Message Formatting Options): Add
226         -fdiagnostics-parseable-fixits.
227         (-fdiagnostics-parseable-fixits): New option.
228         * opts.c (common_handle_option): Handle
229         -fdiagnostics-parseable-fixits.
230         * selftest-run-tests.c (selftest::run_tests): Call
231         selftest::diagnostic_c_tests.
232         * selftest.h (selftest::diagnostic_c_tests): New prototype.
233
234 2016-06-22  Ilya Enkovich  <ilya.enkovich@intel.com>
235
236         PR tree-optimization/71488
237         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Support
238         comparison of boolean vectors.
239         * tree-vect-stmts.c (vectorizable_comparison): Vectorize comparison
240         of boolean vectors using bitwise operations.
241
242 2016-06-22  Andreas Schwab  <schwab@suse.de>
243
244         * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
245         Remove declaration.
246
247 2016-06-22  Eric Botcazou  <ebotcazou@adacore.com>
248
249         * function.c (assign_parm_setup_reg): Prevent sharing in another case.
250
251 2016-06-22  Bernd Edlinger  <bernd.edlinger@hotmail.de>
252
253         * config/i386/i386.c (print_reg): Emit an error message on attempt to
254         print FLAGS_REG.
255
256 2016-06-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
257
258         * config/arm/arm.c (arm_cortex_a73_tune): New struct.
259         * config/arm/arm-cores.def (cortex-a73): New entry.
260         (cortex-a73.cortex-a35): Likewise.
261         (cortex-a73.cortex-a53): Likewise.
262         * config/arm/arm-tables.opt: Regenerate.
263         * config/arm/arm-tune.md: Likewise.
264         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle mcpu=cortex-a73,
265         mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
266         * config/arm/t-aprofile: Handle mcpu=cortex-a73,
267         mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
268         * doc/invoke.texi (ARM Options): Document cortex-a73,
269         cortex-a73.cortex-a35 and cortex-a73.cortex-a53.
270
271 2016-06-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
272
273         * config/aarch64/aarch64.c (cortexa73_tunings): New struct.
274         * config/aarch64/aarch64-cores.def (cortex-a73): New entry.
275         (cortex-a73.cortex-a35): Likewise.
276         (cortex-a73.cortex-a53): Likewise.
277         * config/aarch64/aarch64-tune.md: Regenerate.
278         * doc/invoke.texi (AArch64 Options): Document cortex-a73,
279         cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to
280         -mcpu and -mtune.
281
282 2016-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
283
284         * configure.ac (gcc_cv_as_compress_debug): Remove
285         --compress-debug-sections as extra as switch.
286         Handle gas --compress-debug-sections=type.
287         (gcc_cv_ld_compess_debug): Remove bogus ld_date check.
288         Handle gld --compress-debug-sections=type.
289         * configure: Regenerate.
290
291 2016-06-21  Andrew Burgess  <andrew.burgess@embecosm.com>
292
293         * bb-reorder.c (pass_partition_blocks::gate): Update comment.
294
295 2016-06-21  John David Anglin  <danglin@gcc.gnu.org>
296
297         * gcov-tool.c (profile_rewrite): Use int64_t instead of long long.
298         (do_rewrite): likewise.
299
300 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
301
302         * common/config/mep/mep-common.c: Remove.
303         * config.gcc: Remove mep-* support.
304         * config/mep/constraints.md: Remove.
305         * config/mep/default.h: Remove.
306         * config/mep/intrinsics.h: Remove.
307         * config/mep/intrinsics.md: Remove.
308         * config/mep/ivc2-template.h: Remove.
309         * config/mep/mep-c5.cpu: Remove.
310         * config/mep/mep-core.cpu: Remove.
311         * config/mep/mep-default.cpu: Remove.
312         * config/mep/mep-ext-cop.cpu: Remove.
313         * config/mep/mep-intrin.h: Remove.
314         * config/mep/mep-ivc2.cpu: Remove.
315         * config/mep/mep-pragma.c: Remove.
316         * config/mep/mep-protos.h: Remove.
317         * config/mep/mep.c: Remove.
318         * config/mep/mep.cpu: Remove.
319         * config/mep/mep.h: Remove.
320         * config/mep/mep.md: Remove.
321         * config/mep/mep.opt: Remove.
322         * config/mep/predicates.md: Remove.
323         * config/mep/t-mep: Remove.
324         * doc/install.texi: Remove mep-* documentation.
325         * doc/md.texi: Likewise.
326
327 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
328
329         * config.gcc: Remove support for avr-rtems.
330         * config/avr/gen-avr-mmcu-specs.c: Likewise.
331         * config/avr/rtems.h: Remove.
332         * config/avr/t-rtems: Remove.
333
334 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
335
336         * config.gcc: Remove m32r-rtems support.
337         * config/m32r/rtems.h: Remove.
338
339 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
340
341         * config.gcc: Remove h8300-rtems support.
342         * config/h8300/rtems.h: Remove.
343         * config/h8300/t-rtems: Remove.
344
345 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
346
347         * config.gcc: Remove support for knetbsd.
348         * configure.ac: Likewise.
349         * config/i386/knetbsd-gnu.h: Remove.  * config/i386/knetbsd-gnu64.h: Remove.
350         * config/knetbsd-gnu.h: Remove.
351         * configure: Regenerate.
352
353 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
354
355         * config.gcc: Remove support for openbsd 2 and 3.
356         * config/openbsd-oldgas.h: Remove.
357
358 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
359
360         * config.gcc: Remove interix support.
361         * config/i386/i386-interix.h: Remove.
362         * config/i386/interix.opt: Remove.
363         * config/i386/t-interix: Remove.
364         * configure: Regenerate.
365         * configure.ac: Remove interix support.
366         * doc/install.texi: Remove interix documentation.
367
368 2016-06-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
369
370         * config/rs6000/rs6000.h: Add conditional preprocessing directives
371         to disable Power9-specific compiler features if HAVE_AS_POWER9 is
372         not defined.
373
374 2016-06-21  Eric Botcazou  <ebotcazou@adacore.com>
375
376         * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if
377         they are both PLACEHOLDER_EXPRs.
378
379 2016-06-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
380
381         * stor-layout.c (layout_type): Move setting complex MODE to
382         layout_type, instead of setting it ahead of time by the caller.
383         * tree.c (build_complex_type): Likewise.
384
385 2016-06-21  Martin Liska  <mliska@suse.cz>
386
387         * predict.c (force_edge_cold): Replace imposisble with
388         impossible.
389
390 2016-06-21  Ilya Verbin  <ilya.verbin@intel.com>
391
392         * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
393         * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
394
395 2016-06-21  Ilya Verbin  <ilya.verbin@intel.com>
396
397         * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
398
399 2016-06-21  H.J. Lu  <hongjiu.lu@intel.com>
400             Ilya Enkovich  <ilya.enkovich@intel.com>
401
402         PR target/71549
403         * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
404         New member function to convert V1TImode register to SUBREG
405         TImode in debug insn.
406         (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses
407         after changing register mode to V1TImode.
408
409 2016-06-21  Virendra Pathak  <virendra.pathak@broadcom.com>
410
411         * config/aarch64/aarch64-cores.def (vulcan): New core.
412         * config/aarch64/aarch64-tune.md: Regenerate.
413         * doc/invoke.texi: Document vulcan as an available option.
414
415 2016-06-21  Eric Botcazou  <ebotcazou@adacore.com>
416
417         * cse.c (canon_asm_operands): New function extracted from...
418         (canonicalize_insn): ...here.  Call it to canonicalize an ASM_OPERANDS
419         either standalone or member of a PARALLEL.
420
421 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
422
423         PR target/30417
424         * config/avr/gen-avr-mmcu-specs.c (print_mcu):
425         [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
426         [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
427
428 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
429
430         PR target/71103
431         * config/avr/avr.md (movqi): Only handle loading subreg:qi of
432         constant addresses if can_create_pseudo_p.
433
434 2016-06-21  Jakub Jelinek  <jakub@redhat.com>
435
436         PR tree-optimization/71588
437         * tree-ssa-strlen.c (valid_builtin_call): New function.
438         (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
439         it.
440
441 2016-06-20  Jakub Jelinek  <jakub@redhat.com>
442
443         PR middle-end/71581
444         * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
445         see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
446         for conversion of scalar user var to complex type and use the
447         underlying SSA_NAME_VAR in that case.  If EXPR is still NULL,
448         punt.
449
450         PR rtl-optimization/71591
451         * toplev.c (toplev::run_self_tests): If no_backend, complain and
452         don't run any tests.
453
454 2016-06-20  Hans-Peter Nilsson  <hp@axis.com>
455
456         PR target/71571
457         * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
458         delay-slot "nop" for PIC with CRIS v32.  Also add missing leading
459         space for PIC with non-v32 and the common non-PIC "jump".
460
461 2016-06-20  Jakub Jelinek  <jakub@redhat.com>
462
463         PR target/71559
464         * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
465         returned values and add UN*/LTGT/*ORDERED cases with values matching
466         D operand modifier on vcmp for AVX.
467
468 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
469
470         * config/aarch64/aarch64.opt
471         (mpc-relative-literal-loads): Rename internal option name.
472         * config/aarch64/aarch64.c
473         (aarch64_nopcrelative_literal_loads): Rename to
474         aarch64_pcrelative_literal_loads.
475         (aarch64_expand_mov_immediate): Likewise.
476         (aarch64_secondary_reload): Likewise.
477         (aarch64_can_use_per_function_literal_pools_p): Likewise.
478         (aarch64_override_options_after_change_1): Rename and simplify logic.
479         (aarch64_classify_symbol): Merge large model checks into switch,
480         remove pc-relative load check.
481
482 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
483
484         * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
485         costs relative to the cost of a register move.
486
487 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
488
489         * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
490         (vcvt_n_f64_u64): Likewise.
491         (vcvt_n_s64_f64): Likewise.
492         (vcvt_n_u64_f64): Likewise.
493         (vcvt_f64_s64): Likewise.
494         (vrecpe_f64): Likewise.
495         (vcvt_f64_u64): Likewise.
496         (vrecps_f64): Likewise.
497
498 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
499
500         * config/aarch64/aarch64.md
501         (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
502         iterators.
503         (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise.  Correct
504         attributes.
505         * config/aarch64/aarch64-builtins.c
506         (aarch64_types_binop_uss_qualifiers): Delete.
507         (TYPES_BINOP_USS): Likewise.
508         (aarch64_types_binop_sus_qualifiers): Likewise.
509         (TYPES_BINOP_SUS): Likewise.
510         (aarch64_types_fcvt_from_unsigned_qualifiers): New.
511         (TYPES_FCVTIMM_SUS): Likewise.
512         * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
513         rather than BINOP.
514         (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
515         (fcvtzs): Use SHIFTIMM rather than BINOP.
516         (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.
517
518 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
519
520         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
521         costs relative to the cost of a register move.
522
523 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
524
525         * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
526         Allow scalar/single vector modes to be tieable.
527
528 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
529
530         * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
531
532 2016-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
533
534         * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
535         "alignement".
536         * tree.h (TYPE_ALIGN): Likewise.
537
538 2016-06-20  Georg-Johann Lay  <avr@gjlay.de>
539
540         PR target/71103
541         * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
542
543 2016-06-20  Georg-Johann Lay  <avr@gjlay.de>
544
545         * config/avr/avr.c (avr_print_operand): Fix "format not a string
546         literal" build warnings.
547         (avr_print_operand_address): Dito.
548
549 2016-06-19  David Edelsohn  <dje.gcc@gmail.com>
550
551         PR target/71375
552         * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
553         * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
554
555 2016-06-18  John David Anglin  <danglin@gcc.gnu.org>
556
557         * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
558
559 2016-06-18  Eric Botcazou  <ebotcazou@adacore.com>
560
561         PR bootstrap/71435
562         * reload1.c (reload): Pass 0 to finish_spills when called because
563         update_eliminables_and_spill returns true and remove did_spill.
564         (finish_spills): Adjust comment and document GLOBAL parameter.
565
566 2016-06-17  DJ Delorie  <dj@redhat.com>
567
568         PR target/71338
569         * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
570         * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
571         (umulqihi3_virt): Likewise.
572         * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
573         (umulqihi3_real): Likewise.
574
575 2016-06-17  Martin Liska  <mliska@suse.cz>
576
577         * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
578
579 2016-06-17  Martin Liska  <mliska@suse.cz>
580
581         * predict.def: PRED_LOOP_EXIT from 92 to 85.
582
583 2016-06-17  James Greenhalgh  <james.greenhalgh@arm.com>
584
585         * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
586         __FAST_MATH__.
587         (vaddq_f32): Likewise.
588         (vmul_f32): Likewise.
589         (vmulq_f32): Likewise.
590         (vsub_f32): Likewise.
591         (vsubq_f32): Likewise.
592
593 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
594
595         PR tree-optimization/71347
596         * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
597         cost for all uses in group.
598
599 2016-06-17 Bin Cheng  <bin.cheng@arm.com>
600
601         * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
602         insert gimple seq if it's not empty.
603
604 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
605
606         * tree-vectorizer.h (struct dr_with_seg_len): Remove class
607         member OFFSET.
608         * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
609         rather than OFFSET.
610         (comp_dr_with_seg_len_pair): Ditto.
611         (vect_prune_runtime_alias_test_list): Ditto.  Also Canonicalize
612         struct dr_with_seg_len_pair against DR_OFFSET.
613         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle
614         DR_OFFSET directly.
615
616 2016-06-17  Szabolcs Nagy  <szabolcs.nagy@arm.com>
617
618         * config/aarch64/geniterators.sh: Handle parenthesised conditions.
619
620 2016-06-16  John David Anglin  <danglin@gcc.gnu.org>
621
622         * config/pa/pa.c (pa_output_pic_pcrel_sequence): New.
623         (pa_output_lbranch): Use pa_output_pic_pcrel_sequence.
624         (pa_output_millicode_call): Likewise.
625         (pa_output_call): Likewise.
626         (pa_output_indirect_call): Likewise.
627         (pa_asm_output_mi_thunk): Likewise.
628
629 2016-06-16  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
630
631         * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
632
633 2016-06-16  Martin Liska  <mliska@suse.cz>
634
635         * predict.c (combine_predictions_for_insn): When we find a first
636         match predictor, we should consider just predictors with
637         PRED_FLAG_FIRST_MATCH.  Print either first match (if any) or
638         DS theory predictor.
639         (combine_predictions_for_bb): Likewise.
640
641 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
642
643         * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
644         with base of reference to struct.
645
646 2016-06-16  Uros Bizjak  <ubizjak@gmail.com>
647
648         * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
649
650 2016-06-16  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
651
652         PR target/71151
653         * config/avr/avr.c (avr_asm_init_sections): Remove setup of
654         progmem_swtable_section.
655         (progmem_swtable_section): Remove.
656         (avr_asm_function_rodata_section): Remove.
657         (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
658         * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1.
659
660 2016-06-16  Jocelyn Mayer  <l_indien@magic.fr>
661
662         * config/i386/driver-i386.c (host_detect_local_cpu): Set
663         PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.
664         <case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for
665         signature_CENTAUR_ebx.
666         * config/i386/i386.c (ix86_option_override_internal): Add
667         definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4,
668         nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4.
669         * doc/invoke.texi (x86 Options): Document new VIA -march entries.
670
671 2016-06-16  Martin Liska  <mliska@suse.cz>
672
673         * predict.def: Add fortran loop preheader predictor.
674         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
675         fold IFN_BUILTIN_EXPECT with a known constant argument.
676
677 2016-06-16  Martin Liska  <mliska@suse.cz>
678
679         * predict.def: Add 'Fortran' to display text of all
680         PRED_FORTRAN_* predictors.
681
682 2016-06-16  Uros Bizjak  <ubizjak@gmail.com>
683
684         PR target/71242
685         * config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New.
686         [IA64_BUILTIN_NANSQ]: Ditto.
687         (ia64_fold_builtin): New function.
688         (TARGET_FOLD_BUILTIN): New define.
689         (ia64_init_builtins) Declare const_string_type node.
690         Add __builtin_nanq and __builtin_nansq builtin functions.
691         (ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ.
692
693 2016-06-16  Nick Clifton  <nickc@redhat.com>
694
695         * config/msp430/msp430-opts.h (msp430_hwmult_types): Add
696         MSP430_HWMULT_ prefix to enum values.
697         (msp430_regions): Add MSP430_REGION_ prefix to enum values.
698         * config/msp430/msp430.c: Update use of enum values.
699         * config/msp430/msp430.md: Likewise.
700         * config/msp430/msp430.opt: Likewise.
701
702 2016-06-16  Jan Hubicka  <hubicka@ucw.cz>
703
704         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
705         of comparsions in the last iteration.
706
707 2016-06-16  Claudiu Zissulescu  <claziss@synopsys.com>
708             Joern Rennecke  <joern.rennecke@embecosm.com>
709
710         * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
711         addresses.
712         (arc_needs_pcl_p): Add GOTOFFPC.
713         (arc_legitimate_pic_addr_p): Likewise.
714         (arc_output_pic_addr_const): Likewise.
715         (arc_legitimize_pic_address): Generate a pc-relative address using
716         GOTOFFPC.
717         (arc_output_libcall): Use @pcl syntax.
718         (arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC.
719         * config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC.
720         (*movsi_insn): Use @pcl syntax.
721         (doloop_begin_i): Likewise.
722
723 2016-06-16  Martin Liska  <mliska@suse.cz>
724
725         * predict.def: Define a new predictor.
726
727 2016-06-16  Claudiu Zissulescu  <claziss@synopsys.com>
728
729         * config/arc/arc.opt (mtp-regno): Update text.
730
731 2016-06-16  Renlin Li  <renlin.li@arm.com>
732
733         * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
734
735 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
736
737         PR target/71554
738         * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
739         (setcc + and peephole2): Likewise.
740
741         PR rtl-optimization/71532
742         * cse.c (cse_insn): For const/pure calls, invalidate argument passing
743         memory slots.
744
745 2016-06-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
746
747         * config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading
748         DImode constants with XXSPLTIB in vector registers.
749         (vsx_extract_<mode>, V2DImode/V2DFmode): Combine both
750         vsx_extract_<mode>_internal{1,2} into a single insn that handles
751         direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes
752         extraction of the element at the top of the register as a scalar
753         value.
754         (vsx_extract_<mode>_internal1): Likewise.
755         (vsx_extract_<mode>_internal2): Likewise.
756         * config/rs6000/constraints.md (wi constraint): Remove a comment
757         about DImode not being allowed in Altivec registers.
758         (wB constraint): New constraint for constants that can be
759         generated in Altivec registers with VSPLTISW/VUPKHSW.
760         * config/rs6000/predicates.md (xxspltib_constant_split): Update
761         comments.
762         (xxspltib_constant_nosplit): Likewise.
763         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add
764         support for -mupper-regs-di to enable DImode to go into Altivec
765         registers.
766         (POWERPC_MASKS): Likewise.
767         (power7 cpu): Likewise.
768         * config/rs6000/rs6000.opt (-mupper-regs-di): Likewise.
769         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
770         for DImode being allowed in Altivec registers.  Update wi/wj
771         constraints.  Set scalar_in_vmx_p flag.
772         (rs6000_option_override_internal): Add checks for -mupper-regs-di.
773         (xxspltib_constant_p): Allow CONST_INT's with VOIDmode.  Don't
774         return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB.
775         (rs6000_opt_masks): Add -mupper-regs-di.
776         * config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use
777         direct move to use wi and not wj.
778         (lfiwzx): Likewise.
779         (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
780         alternative.
781         (floatunssi<mode>2_lfiwzx_mem): Likewise.
782         (fix_trunc<mode>di2_fctidz): Change second alternative to allow
783         any VSX register, instead of just Altivec registers, to allow
784         either operand to be an Altivec register or both.
785         (fixuns_trunc<mode>di2_fctiduz): Likewise.
786         (movdi_internal32): Add support for -mupper-regs-di.  Add support
787         to load constants via XXSPLTIB or VSPLTISW.  Add spacing to allow
788         the alternatives and attributes to be lined up to be easier to
789         read.
790         (movdi_internal64): Likewise.
791         (64-bit DImode splitters): Change predicates to only split loading
792         up GPR registers.  Add splits for using XXSPLTIB or VSPLTISW to
793         load constants in ISA 3.0 or ISA 2.07 respectively.
794         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
795         -mupper-regs-di.  Update -mupper-regs-df and -mupper-regs-sf to
796         mention -mcpu=power9 sets these options.
797         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the
798         wB constraint.
799
800 2016-06-15  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
801
802         PR target/67353
803         * config/avr/avr.c (avr_set_current_function): Warn misspelled
804         interrupt/ signal handler if -Wmisspelled-isr flag is enabled.
805         * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled
806         by default to warn misspelled interrupt/ signal handler.
807         * doc/invoke.texi (AVR Options): Document it. Update description
808         for -nodevicelib option.
809
810 2016-06-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
811
812         * config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean
813         up parentheses.  Use GET_MODE_UNIT_BITSIZE.
814         (aarch64_<sur>shll2_n<mode>): Likewise.
815
816 2016-06-15  Ilya Enkovich  <ilya.enkovich@intel.com>
817
818         PR middle-end/71529
819         * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
820         DECL_CONTEXT for copied arguments.
821
822 2016-06-15  Alan Hayward  <alan.hayward@arm.com>
823
824         PR tree-optimization/71483
825         * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
826         for slp
827
828 2016-06-15  Martin Liska  <mliska@suse.cz>
829
830         * predict.c (tree_predict_by_opcode): Call predict_edge_def
831         instead of predict_edge w/o a probability.
832
833 2016-06-15  Alan Hayward  <alan.hayward@arm.com>
834
835         PR tree-optimization/71439
836         * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
837         live PHIs.
838
839 2016-06-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
840
841         * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
842         register subregs in SET_SRC.
843
844 2016-06-15  Richard Biener  <rguenther@suse.de>
845
846         * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
847         store restrictions.
848
849 2016-06-15  Richard Biener  <rguenther@suse.de>
850
851         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
852         not consider dependences between accesses that belong to the
853         same group.
854         (vect_analyze_data_ref_dependences): Do not analyze read-read
855         or self-dependences.
856
857 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
858
859         * spellcheck-tree.c: Include spellcheck-tree.h rather than
860         spellcheck.h.
861         (find_closest_identifier): Reimplement in terms of
862         best_match<tree,tree>.
863         * spellcheck-tree.h: New file.
864         * spellcheck.c (struct edit_distance_traits<const char *>): New
865         struct.
866         (find_closest_string): Reimplement in terms of
867         best_match<const char *, const char *>.
868         * spellcheck.h (levenshtein_distance): Move prototype of tree-based
869         overload to spellcheck-tree.h.
870         (find_closest_identifier): Likewise.
871         (struct edit_distance_traits<T>): New template.
872         (class best_match): New class.
873
874 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
875
876         * selftest-run-tests.c (selftest::run_tests): Call
877         selftest::spellcheck_tree_c_tests.
878         * selftest.h (selftest::spellcheck_tree_c_tests): New decl.
879         * spellcheck-tree.c: Include selftest.h and stringpool.h.
880         (selftest::test_find_closest_identifier): New function.
881         (selftest::spellcheck_tree_c_tests): New function.
882         * spellcheck.c (selftest::test_find_closest_string): Verify that
883         the order of the vec does not affect the results for this case.
884         (selftest::test_data): New array.
885         (selftest::test_metric_conditions): New function.
886         (selftest::spellcheck_c_tests): Add a test of case-comparison.
887         Call selftest::test_metric_conditions.
888
889 2016-06-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
890
891         * config/rs6000/rs6000-builtin.def (commentary): Typo.
892         (BU_P9_MISC_1): Likewise.
893         (BU_P9_64BIT_MISC_0): Likewise.
894         (BU_P9_MISC_0): Likewise.
895
896 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
897
898         * gcc-rich-location.c
899         (gcc_rich_location::add_fixit_misspelled_id): New method.
900         * gcc-rich-location.h
901         (gcc_rich_location::add_fixit_misspelled_id): Add decl.
902
903 2016-06-14  Andreas Tobler  <andreast@gcc.gnu.org>
904
905         * config/arm/freebsd.h: Only enable unaligned access for armv6 on
906         FreeBSD 11 and above.
907
908 2016-06-14  Uros Bizjak  <ubizjak@gmail.com>
909
910         * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
911
912 2016-06-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
913
914         * expmed.h: Close parenthesis in "at your option" in copyright
915         boilerplate.
916         * lower-subreg.h: Likewise.
917
918 2016-06-14  Richard Biener  <rguenther@suse.de>
919
920         PR middle-end/71526
921         * genmatch.c (expr::gen_transform): Use in_type for comparisons
922         if available.
923
924 2015-06-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
925
926         * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
927         New function.
928         (aarch64_rtx_costs): Use it.  Rewrite CONST_INT_P (op1) case to handle
929         mask+shift version.
930         * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
931         New prototype.
932         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
933         matching condition with aarch64_mask_and_shift_for_ubfiz_p.
934
935 2016-06-14  Richard Biener  <rguenther@suse.de>
936
937         PR tree-optimization/71522
938         * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
939         copying into float copying.
940
941 2016-06-14  Jakub Jelinek  <jakub@redhat.com>
942
943         PR tree-optimization/71520
944         * tree-ssa-tail-merge.c (find_duplicate): Handle labels.
945         (replace_block_by): Move user labels from bb1 to bb2.
946
947 2016-06-14  Richard Biener  <rguenther@suse.de>
948
949         PR middle-end/71310
950         PR bootstrap/71510
951         * expr.h (get_bit_range): Declare.
952         * expr.c (get_bit_range): Export.
953         * fold-const.c (optimize_bit_field_compare): Use get_bit_range and
954         word_mode again to constrain the bitfield access.
955
956 2016-06-14  Richard Biener  <rguenther@suse.de>
957
958         PR tree-optimization/71521
959         * tree-vrp.c (extract_range_from_binary_expr_1): Guard
960         division int_const_binop against zero divisor.
961
962 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
963
964         * config/i386/i386.md (signbittf2): New expander.
965         * config/i386/sse.md (ptesttf2): New insn pattern.
966
967 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
968
969         PR bootstrap/71481
970         * input.c (selftest::test_reading_source_line): Avoid reading from
971         __FILE__ by creating a tempfile with known content and reading
972         from that instead.
973
974 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
975
976         * pretty-print.c (assert_pp_format_colored): Skip the test if
977         GCC_COLORS is set.
978         (test_pp_format): Remove comment about GCC_COLORS.
979
980 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
981
982         * input.c (test_reading_source_line): Use SELFTEST_LOCATION.
983         * pretty-print.c (assert_pp_format_va): Add location param and use
984         it with ASSERT_STREQ_AT.
985         (assert_pp_format): Add location param and pass it to
986         assert_pp_format_va.
987         (assert_pp_format_colored): Likewise.
988         (ASSERT_PP_FORMAT_1): New.
989         (ASSERT_PP_FORMAT_2): New.
990         (ASSERT_PP_FORMAT_3): New.
991         (test_pp_format): Provide SELFTEST_LOCATION throughout, either
992         explicitly, or implicitly via the above macros.
993         * selftest.c (selftest::pass): Use a selftest::location rather
994         than file and line.
995         (selftest::fail): Likewise.  Print the function name.
996         (selftest::fail_formatted): Likewise.
997         (selftest::assert_streq): Use a selftest::location rather than
998         file and line.
999         * selftest.h (selftest::location): New struct.
1000         (SELFTEST_LOCATION): New macro.
1001         (selftest::pass): Accept a const location & rather than file
1002         and line.
1003         (selftest::fail): Likewise.
1004         (selftest::fail_formatted): Likewise.
1005         (selftest::assert_streq): Likewise.
1006         (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
1007         (ASSERT_FALSE): Likewise.
1008         (ASSERT_EQ): Likewise.
1009         (ASSERT_NE): Likewise.
1010         (ASSERT_STREQ): Likewise.
1011         (ASSERT_PRED1): Likewise.
1012         (ASSERT_STREQ_AT): New macro.
1013
1014 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
1015
1016         * selftest.c (selftest::fail_formatted): New function.
1017         (selftest::assert_streq): New function.
1018         * selftest.h (selftests::fail_formatted): New decl.
1019         (selftest::assert_streq): New decl.
1020         (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq.
1021
1022 2016-06-13  Jeff Law  <law@redhat.com>
1023
1024         PR tree-optimization/71403
1025         * tree-ssa-threadbackward.c
1026         (convert_and_register_jump_thread_path): No longer accept reference
1027         to path.  Do not pop items off the path anymore.
1028         (fsm_find_control_statement_thread_paths): Do not allow threading
1029         to a deeper loop nest.  Pop the last item off the path here rather
1030         than in convert_and_register_jump_thread_path.
1031
1032 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
1033             Wilco Dijkstra  <Wilco.Dijkstra@arm.com>
1034
1035         [AArch64] Emit division using the Newton series
1036
1037         * config/aarch64/aarch64-protos.h
1038         (cpu_approx_modes): Add new member "division".
1039         (aarch64_emit_approx_div): Declare new function.
1040         * config/aarch64/aarch64.c
1041         (generic_approx_modes): New member "division".
1042         (exynosm1_approx_modes): Likewise.
1043         (xgene1_approx_modes): Likewise.
1044         (aarch64_emit_approx_div): Define new function.
1045         * config/aarch64/aarch64.md ("div<mode>3"): New expansion.
1046         * config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise.
1047         * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option.
1048         * doc/invoke.texi (-mlow-precision-div): Describe new option.
1049
1050 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
1051             Wilco Dijkstra  <wilco.dijkstra@arm.com>
1052
1053         [AArch64] Emit square root using the Newton series
1054
1055         * config/aarch64/aarch64-protos.h
1056         (aarch64_emit_approx_rsqrt): Replace with new function
1057         "aarch64_emit_approx_sqrt".
1058         (cpu_approx_modes): New member "sqrt".
1059         * config/aarch64/aarch64.c
1060         (generic_approx_modes): New member "sqrt".
1061         (exynosm1_approx_modes): Likewise.
1062         (xgene1_approx_modes): Likewise.
1063         (aarch64_emit_approx_rsqrt): Replace with new function
1064         "aarch64_emit_approx_sqrt".
1065         (aarch64_override_options_after_change_1): Handle new option.
1066         * config/aarch64/aarch64-simd.md
1067         (rsqrt<mode>2): Use new function instead.
1068         (sqrt<mode>2): New expansion and insn definitions.
1069         * config/aarch64/aarch64.md: Likewise.
1070         * config/aarch64/aarch64.opt
1071         (mlow-precision-sqrt): Add new option description.
1072         * doc/invoke.texi (mlow-precision-sqrt): Likewise.
1073
1074 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
1075
1076         [AArch64] Add more choices for the reciprocal square root approximation
1077
1078         Allow a target to prefer such operation depending on the operation mode.
1079
1080         * config/aarch64/aarch64-protos.h
1081         (AARCH64_APPROX_MODE): New macro.
1082         (AARCH64_APPROX_{NONE,ALL}): Likewise.
1083         (cpu_approx_modes): New structure.
1084         (tune_params): New member "approx_modes".
1085         * config/aarch64/aarch64-tuning-flags.def
1086         (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
1087         * config/aarch64/aarch64.c
1088         (generic_approx_modes): New core "cpu_approx_modes" structure.
1089         (exynosm1_approx_modes): Likewise.
1090         (xgene1_approx_modes): Likewise.
1091         (generic_tunings): New member "approx_modes".
1092         (cortexa35_tunings): Likewise.
1093         (cortexa53_tunings): Likewise.
1094         (cortexa57_tunings): Likewise.
1095         (cortexa72_tunings): Likewise.
1096         (exynosm1_tunings): Likewise.
1097         (thunderx_tunings): Likewise.
1098         (xgene1_tunings): Likewise.
1099         (use_rsqrt_p): New argument for the mode and use new member from
1100         "tune_params".
1101         (aarch64_builtin_reciprocal): Devise mode from builtin.
1102         (aarch64_optab_supported_p): New argument for the mode.
1103         * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.
1104
1105 2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
1106
1107         * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
1108         RS6000_BTM_MODULO flag into the set of flags that are considered
1109         to be part of the common configuration.
1110
1111 2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
1112
1113         * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
1114         difference unsigned.
1115         (vec_absdb): New macro for vector absolute difference unsigned
1116         byte.
1117         (vec_absdh): New macro for vector absolute difference unsigned
1118         half-word.
1119         (vec_absdw): New macro for vector absolute difference unsigned word.
1120         * config/rs6000/altivec.md (UNSPEC_VADU): New value.
1121         (vadu<mode>3): New insn.
1122         (*p9_vadu<mode>3): New insn.
1123         * config/rs6000/rs6000-builtin.def (vadub): New built-in
1124         definition.
1125         (vaduh): New built-in definition.
1126         (vaduw): New built-in definition.
1127         (vadu): New overloaded built-in definition.
1128         (vadub): New overloaded built-in definition.
1129         (vaduh): New overloaded built-in definition.
1130         (vaduw): New overloaded built-in definition.
1131         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1132         overloaded vector absolute difference unsigned functions.
1133         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
1134         the ISA 3.0 vector absolute difference unsigned built-in functions.
1135
1136 2016-06-13  Eric Botcazou  <ebotcazou@adacore.com>
1137
1138         * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
1139         update shared_lookup_references only once after changing operands.
1140
1141 2016-06-13  Thomas Schwinge  <thomas@codesourcery.com>
1142
1143         PR middle-end/71373
1144         * tree-nested.c (convert_nonlocal_omp_clauses)
1145         (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
1146
1147         * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
1148         * tree.def (CASE_LABEL_EXPR): Likewise.
1149
1150 2016-06-13  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1151
1152         PR bootstrap/71481
1153         * input.c (test_builtins): Fix an assertion.
1154
1155 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
1156
1157         * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
1158         (paritysi2): Ditto.
1159         (isinfxf2): Ditto.
1160         (isinf<mode>2): Ditto.
1161
1162 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
1163
1164         * ggc-tests.c (test_finalization): Only test need_finalization_p
1165         for GCC_VERSION >= 4003.
1166
1167 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1168
1169         * config/s390/vecintrin.h: Fix file description in comment.
1170
1171 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1172
1173         * config/s390/s390-builtin-types.def: Change builtin type naming
1174         scheme to match builtin-types.def.
1175
1176 2016-06-13  Marc Glisse  <marc.glisse@inria.fr>
1177
1178         * fold-const.c (optimize_minmax_comparison): Remove.
1179         (fold_comparison): Remove call to the above.
1180         * match.pd (MIN (X, Y) == X, MIN (X, 5) == 0, MIN (X, C1) < C2):
1181         New transformations.
1182
1183 2016-06-13  Alan Hayward  <alan.hayward@arm.com>
1184
1185         PR tree-optimization/71416
1186         * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
1187         multiple entries
1188
1189 2016-06-13  Martin Liska  <mliska@suse.cz>
1190
1191         * predict.c (enum predictor_reason): Prefix enum with REASON_.
1192         (combine_predictions_for_insn): Likewise.
1193         (prune_predictions_for_bb): Likewise.
1194         (combine_predictions_for_bb): Likewise.
1195
1196 2016-06-13  Richard Biener  <rguenther@suse.de>
1197
1198         PR tree-optimization/71505
1199         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
1200         assert match comment.
1201
1202 2016-06-13  Marek Polacek  <polacek@redhat.com>
1203
1204         PR middle-end/71476
1205         * gimplify.c (maybe_warn_switch_unreachable): Factored out of
1206         gimplify_switch_expr.
1207         (warn_switch_unreachable_r): New function.
1208
1209 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
1210
1211         PR target/71379
1212         * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
1213         one.
1214
1215 2016-06-13  Richard Biener  <rguenther@suse.de>
1216
1217         PR middle-end/64516
1218         * fold-const.c (fold_unary_loc): Preserve alignment when
1219         folding a VIEW_CONVERT_EXPR into a MEM_REF.
1220
1221 2016-06-13  Martin Liska  <mliska@suse.cz>
1222
1223         PR sanitizer/71458
1224         * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
1225         w/ -fsanitize=bounds.
1226
1227 2016-06-12  Uros Bizjak  <ubizjak@gmail.com>
1228
1229         * config/i386/i386.c (ix86_init_builtins): Calculate
1230         FLOAT128_FTYPE_CONST_STRING function type only once.
1231         * doc/extend.texi (x86 Built-in Functions): Update text, __float128
1232         built-in functions are available for x86-32 and x86-64 targets.
1233
1234 2016-06-12  Uros Bizjak  <ubizjak@gmail.com>
1235
1236         PR target/71241
1237         * config/i386/i386.i386-builtin-types.def (CONST_STRING):
1238         New primitive type.
1239         (FLOAT128_FTYPE_CONST_STRING): New function type.
1240         * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_NANQ]: New.
1241         [IX86_BUILTIN_NANSQ]: Ditto.
1242         (ix86_fold_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
1243         (ix86_init_builtin_types): Declare const_string_type_node.
1244         (ix86_init_builtins): Add __builtin_nanq and __builtin_nansq
1245         builtin functions.
1246         (ix86_expand_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
1247         * doc/extend.texi (x86 Built-in Functions): Document
1248         __builtin_nanq and __builtin_nansq.
1249
1250 2016-06-11  Jiong Wang  <jiong.wang@arm.com>
1251
1252         PR target/71061
1253         * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration.
1254         * config/arm/arm.c (arm_attr_length_pop_multi): New function to return
1255         length for pop patterns.
1256         (arm_attr_length_push_multi): Update comments.
1257         * config/arm/arm.md (*load_multiple_with_writeback): Set "length"
1258         attribute.
1259         (*pop_multiple_with_writeback_and_return): Likewise.
1260         (*pop_multiple_with_return): Likewise.
1261
1262 2016-06-11  Segher Boessenkool  <segher@kernel.crashing.org>
1263
1264         PR middle-end/71310
1265         * fold-const.c (optimize_bit_field_compare): Don't try to use
1266         word_mode unconditionally for reading the bit field, look at
1267         DECL_BIT_FIELD_REPRESENTATIVE instead.
1268
1269 2016-06-11  Kugan Vivekanandarajah  <kuganv@linaro.org>
1270
1271         PR middle-end/71478
1272         * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
1273         vector integer type.
1274
1275 2016-06-10  Jakub Jelinek  <jakub@redhat.com>
1276
1277         PR middle-end/71494
1278         * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
1279         without LABEL_DECL, set *handled_ops_p to false instead of true.
1280
1281 2016-06-10  Martin Sebor  <msebor@redhat.com>
1282
1283         PR c/71392
1284         * builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro.
1285         (ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same.
1286         * builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use
1287         them.
1288         (BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same.
1289         (BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same.
1290         (BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same.
1291         (BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same.
1292         (BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
1293         (BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
1294         (BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
1295         (BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same.
1296
1297 2016-06-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1298
1299         * config/arm/arm.h (pool_vector_label,
1300         return_used_this_function): Remove.
1301
1302 2016-06-10  Jeff Law  <law@redhat.com>
1303
1304         PR tree-optimization/71335
1305         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Filter out
1306         zero length paths here.
1307         (convert_and_register_jump_thread_path): Remove hacks related to
1308         duplicated blocks in the jump thread path.
1309         (fsm_find_control_statement_thread_paths): Avoid putting the same
1310         block on the thread path twice, but ensure the thread path is
1311         unchanged from the caller's point of view.
1312
1313 2016-06-10  Jan Hubicka  <hubicka@ucw.cz>
1314
1315         * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
1316         * predict.def (PRED_LOOP_BRANCH): Remove.
1317
1318 2016-06-10  David Malcolm  <dmalcolm@redhat.com>
1319
1320         * Makefile.in (OBJS): Add ggc-tests.o.
1321         (GTFILES): Add ggc-tests.c.
1322         * ggc-tests.c: New file.
1323         * selftest-run-tests.c (selftest::run_tests): Call
1324         selftest::ggc_tests_c_tests.
1325         * selftest.h (selftest::ggc_tests_c_tests): New prototype.
1326
1327 2016-06-10  Alexander Monakov  <amonakov@ispras.ru>
1328
1329         * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
1330
1331 2016-06-10  Maxim Ostapenko  <m.ostapenko@samsung.com>
1332
1333         PR sanitizer/71480
1334         * varasm.c (place_block_symbol): Adjust alignment for asan protected
1335         STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
1336
1337 2016-06-10  Jan Hubicka  <hubicka@ucw.cz>
1338
1339         * profile.c: Include cfgloop.h.
1340         (branch_prob): Compute estimated number of iterations.
1341         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
1342         recompute estimate number of iterations from profile.
1343
1344 2016-06-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1345
1346         PR inline-asm/68843
1347         * reg-stack.c (check_asm_stack_operands): Explicit input arguments
1348         must be grouped on top of stack.  Don't force early clobber
1349         on ordinary reg outputs.
1350
1351 2016-06-10  Richard Biener  <rguenther@suse.de>
1352
1353         * targhooks.c (default_builtin_vectorization_cost): Adjust
1354         vec_construct cost.
1355
1356 2016-06-10  Richard Biener  <rguenther@suse.de>
1357
1358         * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
1359         to fold the RHS to a constant if possible.
1360
1361 2016-06-10  Thomas Schwinge  <thomas@codesourcery.com>
1362
1363         PR middle-end/71373
1364         * tree-nested.c (convert_nonlocal_omp_clauses)
1365         (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
1366         OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
1367         OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
1368
1369         * gimplify.c (gimplify_adjust_omp_clauses): Discard
1370         OMP_CLAUSE_TILE.
1371         * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
1372
1373         * omp-low.c (scan_sharing_clauses): Don't expect
1374         OMP_CLAUSE__CACHE_.
1375
1376 2016-06-10  Alan Hayward  <alan.hayward@arm.com>
1377
1378         PR tree-optimization/71407
1379         PR tree-optimization/71416
1380         * tree-vect-loop.c (vectorizable_live_operation): Use vectype for
1381         BIT_FIELD_REF type.
1382
1383 2016-06-10  Richard Biener  <rguenther@suse.de>
1384
1385         PR middle-end/71477
1386         * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
1387
1388 2016-06-09  Eric Botcazou  <ebotcazou@adacore.com>
1389
1390         * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
1391
1392 2016-06-09  Vladimir Makarov  <vmakarov@redhat.com>
1393             Jiong Wang  <jiong.wang@arm.com>
1394
1395         PR rtl-optimization/70751
1396         * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
1397         spilled into memory.
1398
1399 2016-06-09  Jonathan Yong  <10walls@gmail.com>
1400
1401         Revert:
1402         2015-09-21  Jonathan Yong  <10walls@gmail.com>
1403
1404         * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
1405         sysroot/usr/lib/32api for additional win32 libraries,
1406         fixes failing Cygwin bootstrapping.
1407
1408 2016-06-09  Marcin Baczyński  <marbacz@gmail.com>
1409
1410         * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
1411         Delete.
1412
1413 2016-06-09  David Malcolm  <dmalcolm@redhat.com>
1414
1415         PR bootstrap/71471
1416         * pretty-print.c (pp_indent): Specify that %p is printed in a
1417         host-dependent manner.
1418         (test_pp_format): Remove the test for %p.
1419
1420 2016-06-09  Maciej W. Rozycki  <macro@imgtec.com>
1421
1422         * config/mips/mips.c (mips_output_jump): Fix formatting.
1423
1424 2016-06-09  Richard Biener  <rguenther@suse.de>
1425
1426         PR tree-optimization/71462
1427         * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
1428         removed blocks.
1429
1430 2016-06-09  Martin Liska  <mliska@suse.cz>
1431
1432         * predict.c (dump_prediction): Add new argument.
1433         (enum predictor_reason): New enum.
1434         (struct predictor_hash): New struct.
1435         (predictor_hash::hash): New function.
1436         (predictor_hash::equal): Likewise.
1437         (not_removed_prediction_p): New function.
1438         (prune_predictions_for_bb): Likewise.
1439         (combine_predictions_for_bb): Prune predictions.
1440
1441 2016-06-09  Martin Liska  <mliska@suse.cz>
1442
1443         * predict.c (filter_predictions): New function.
1444         (remove_predictions_associated_with_edge): Use the filter
1445         function.
1446         (equal_edge_p): New function.
1447
1448 2016-06-09  Stefan Bruens  <stefan.bruens@rwth-aachen.de>
1449
1450         * doc/invoke.texi (ARM Options): Use lexicographical ordering.
1451         Correct usage of @samp vs @option, add @samp where appropriate.
1452         Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
1453         Add armv6s-m and document it, as it is no official ARM name.
1454
1455 2016-06-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1456
1457         * ifcvt.c (struct noce_if_info): Add transform_name field.
1458         (noce_try_move): Set if_info->transform_name to the function name.
1459         (noce_try_ifelse_collapse): Likewise.
1460         (noce_try_store_flag): Likewise.
1461         (noce_try_inverse_constants): Likewise.
1462         (noce_try_store_flag_constants): Likewise.
1463         (noce_try_addcc): Likewise.
1464         (noce_try_store_flag_mask): Likewise.
1465         (noce_try_cmove): Likewise.
1466         (noce_try_cmove_arith): Likewise.
1467         (noce_try_minmax): Likewise.
1468         (noce_try_abs): Likewise.
1469         (noce_try_sign_mask): Likewise.
1470         (noce_try_bitop): Likewise.
1471         (noce_convert_multiple_sets): Likewise.
1472         (noce_process_if_block): Print if_info->transform_name to
1473         dump_file if transformation succeeded.
1474
1475 2016-06-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1476
1477         * config/arm/cortex-a57.md (cortex_a57_alu):
1478         Handle csel type.
1479
1480 2016-06-08  Martin Sebor  <msebor@redhat.com>
1481             Jakub Jelinek  <jakub@redhat.com>
1482
1483         PR c++/70507
1484         PR c/68120
1485         * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
1486         BUILT_IN_MUL_OVERFLOW_P): New builtins.
1487         * builtins.c: Include gimple-fold.h.
1488         (fold_builtin_arith_overflow): Handle
1489         BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
1490         (fold_builtin_3): Likewise.
1491         * doc/extend.texi (Integer Overflow Builtins): Document
1492         __builtin_{add,sub,mul}_overflow_p.
1493
1494 2016-06-08  Jose E. Marchesi  <jose.marchesi@oracle.com>
1495
1496         * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
1497         SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
1498
1499 2016-06-08  Alan Lawrence  <alan.lawrence@arm.com>
1500
1501         * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
1502         Rewrite, looking one level down for records and arrays.
1503
1504 2016-06-08  David Malcolm  <dmalcolm@redhat.com>
1505
1506         * pretty-print.c: Include "selftest.h".
1507         (pp_format): Fix comment.
1508         (identifier_to_locale): Likewise.
1509         (selftest::test_basic_printing): New function.
1510         (selftest::assert_pp_format): New function.
1511         (selftest::test_pp_format): New function.
1512         (selftest::pretty_print_c_tests): New function.
1513         * selftest-run-tests.c (selftest::run_tests): Call
1514         selftest::pretty_print_c_tests.
1515         * selftest.h (pretty_print_c_tests): New declaration.
1516
1517 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
1518
1519         * invoke.texi (max-loop-headers-insns): Document.
1520         * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
1521         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
1522         (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
1523
1524 2016-06-08  Richard Biener  <rguenther@suse.de>
1525
1526         * tree-vect-stmts.c (vectorizable_load): Remove restrictions
1527         on strided SLP loads and fall back to scalar loads in case
1528         we can't chunk them.
1529
1530 2016-06-08  Richard Biener  <rguenther@suse.de>
1531
1532         PR tree-optimization/71452
1533         * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
1534         type used for the SSA rewrite has enough precision to cover
1535         the dynamic type of the location.
1536
1537 2016-06-08  Jakub Jelinek  <jakub@redhat.com>
1538             Richard Biener  <rguenther@suse.de>
1539
1540         PR c++/71448
1541         * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
1542         the same as DECL_P (base0) for indirect_base0.  Use equality_code
1543         in one further place.
1544
1545 2016-06-08  Richard Sandiford  <richard.sandiford@arm.com>
1546
1547         * expmed.c (store_bit_field_1): Do not restrict a multiword op0
1548         to one word if the field is known to overlap other words.
1549         (extract_bit_field_1): Likewise.
1550         (store_split_bit_field): Remove compensating code.
1551         (extract_split_bit_field): Likewise.
1552
1553 2016-06-08  Bernd Schmidt  <bschmidt@redhat.com>
1554
1555         PR debug/71432
1556         PR ada/71413
1557         * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
1558
1559 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1560
1561         * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
1562         VDQF.
1563         * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
1564         (arch64_addpv4sf): Delete.
1565         (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
1566         "gen_aarch64_addpv4sf".
1567         * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly.  Use
1568         builtin.
1569         (vpadds_f32): Likewise.
1570         (vpaddq_f32): Likewise.
1571         (vpaddq_f64): Likewise.
1572
1573 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1574
1575         * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
1576         VALLF.
1577         * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
1578         to VALLF.  Rename to "fabd<mode>3".
1579         "*fabd_scalar<mode>3): Delete.
1580         * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
1581         Use builtin.
1582         (vabdd_f64): Likewise.
1583         (vabd_f32): Likewise.
1584         (vabd_f64): Likewise.
1585         (vabdq_f32): Likewise.
1586         (vabdq_f64): Likewise.
1587
1588 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1589
1590         * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
1591         VALLF.
1592         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
1593         "aarch64_rsqrts<mode>".
1594         * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
1595         * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly.  Use
1596         builtin.
1597         (vrsqrtsd_f64): Likewise.
1598         (vrsqrts_f32): Likewise.
1599         (vrsqrts_f64): Likewise.
1600         (vrsqrtsq_f32): Likewise.
1601         (vrsqrtsq_f64): Likewise.
1602
1603 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1604
1605         * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
1606         VALLF.
1607         * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
1608         "aarch64_rsqrte<mode>".
1609         * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
1610         * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly.  Use
1611         builtin.
1612         (vrsqrted_f64): Likewise.
1613         (vrsqrte_f32): Likewise.
1614         (vrsqrte_f64): Likewise.
1615         (vrsqrteq_f32): Likewise.
1616         (vrsqrteq_f64): Likewise.
1617
1618 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1619
1620         * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
1621         (ucvtf): Likewise.
1622         (fcvtzs): Likewise.
1623         (fcvtzu): Likewise.
1624         * config/aarch64/aarch64-simd.md
1625         (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
1626         (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
1627         * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
1628         Use builtin.
1629         (vcvt_n_f32_u32): Likewise.
1630         (vcvt_n_s32_f32): Likewise.
1631         (vcvt_n_u32_f32): Likewise.
1632         (vcvtq_n_f32_s32): Likewise.
1633         (vcvtq_n_f32_u32): Likewise.
1634         (vcvtq_n_f64_s64): Likewise.
1635         (vcvtq_n_f64_u64): Likewise.
1636         (vcvtq_n_s32_f32): Likewise.
1637         (vcvtq_n_s64_f64): Likewise.
1638         (vcvtq_n_u32_f32): Likewise.
1639         (vcvtq_n_u64_f64): Likewise.
1640         * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
1641         (VSDQ_SDI): Likewise.
1642         (fcvt_target): Support V4DI, V4SI and V2SI.
1643         (FCVT_TARGET): Likewise.
1644
1645 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1646
1647         * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
1648         (TYPES_BINOP_SUS): Likewise.
1649         (aarch64_simd_builtin_data): Update include file name.
1650         (aarch64_builtins): Likewise.
1651         * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
1652         for conversion between scalar float-point and fixed-point.
1653         (ucvtf): Likewise.
1654         (fcvtzs): Likewise.
1655         (fcvtzu): Likewise.
1656         * config/aarch64/aarch64.md
1657         (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
1658         pattern for conversion between scalar float to fixed-pointer.
1659         (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
1660         (UNSPEC_FCVTZS): New UNSPEC enumeration.
1661         (UNSPEC_FCVTZU): Likewise.
1662         (UNSPEC_SCVTF): Likewise.
1663         (UNSPEC_UCVTF): Likewise.
1664         * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
1665         Use builtin.
1666         (vcvtd_n_f64_u64): Likewise.
1667         (vcvtd_n_s64_f64): Likewise.
1668         (vcvtd_n_u64_f64): Likewise.
1669         (vcvtd_n_f32_s32): Likewise.
1670         (vcvts_n_f32_u32): Likewise.
1671         (vcvtd_n_s32_f32): Likewise.
1672         (vcvts_n_u32_f32): Likewise.
1673         * config/aarch64/iterators.md (fcvt_target): Support integer to float
1674         mapping.
1675         (FCVT_TARGET): Likewise.
1676         (FCVT_FIXED2F): New iterator.
1677         (FCVT_F2FIXED): Likewise.
1678         (fcvt_fixed_insn): New define_int_attr.
1679
1680 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
1681
1682         * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
1683         some statements was removed.
1684
1685 2016-06-08  Alan Hayward  <alan.hayward@arm.com>
1686
1687         * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
1688         * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
1689         (vect_can_advance_ivs_p): likewise.
1690         (vect_update_ivs_after_vectorizer): likewise.
1691         * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
1692         (vect_analyze_scalar_cycles_1): likewise.
1693         (vect_analyze_loop_operations): likewise.
1694         (report_vect_op): likewise.
1695         (vect_is_slp_reduction): likewise.
1696         (vect_is_simple_reduction): likewise.
1697         (get_initial_def_for_induction): likewise.
1698         (vect_transform_loop): likewise.
1699         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
1700         (vect_recog_sad_pattern): likewise.
1701         (vect_recog_widen_sum_pattern): likewise.
1702         (vect_recog_widening_pattern): likewise.
1703         (vect_recog_divmod_pattern): likewise.
1704         * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
1705         (vect_analyze_slp_instance): likewise.
1706         (vect_transform_slp_perm_load): likewise.
1707         (vect_schedule_slp_instance): likewise.
1708
1709 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
1710
1711         * predict.c (predict_iv_comparison): Mention that heuristics is broken.
1712         (return_prediction): PRED_CONST_RETURN predict return as not taken.
1713         * predict.def (PRED_CONTINUE): Change hitrate 50->67
1714         (PRED_LOOP_BRANCH): Document predictor as broken.
1715         (PRED_LOOP_EXIT): Change hitrate 91->92.
1716         (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
1717         (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
1718         (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
1719         (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
1720         (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
1721         (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
1722         (PRED_CALL): Chane hitrate 71->67.
1723         (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
1724         (PRED_GOTO): Document as unused right now.
1725         (PRED_CONST_RETURN): Change hitrate 67->69
1726         (PRED_NEGATIVE_RETURN): Change hitrate 96->98
1727         (PRED_NULL_RETURN): Change hitrate 91->90.
1728         (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
1729         (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
1730         (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
1731
1732 2016-06-07  Bill Seurer  <seurer@linux.vnet.ibm.com>
1733
1734         * config/rs6000/altivec.h: Add __builtin_vec_mul.
1735         * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
1736         special case Altivec builtin.
1737         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
1738         VSX_BUILTIN_VEC_MUL (replaced with special case code).
1739         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
1740         code for ALTIVEC_BUILTIN_VEC_MUL.
1741         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
1742         for __builtin_vec_mul.
1743
1744 2016-06-07  Peter Bergner  <bergner@vnet.ibm.com>
1745
1746         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
1747         -mno-htm.
1748
1749 2016-06-07  David Malcolm  <dmalcolm@redhat.com>
1750
1751         * spellcheck.c (selftest::test_find_closest_string): New function.
1752         (spellcheck_c_tests): Call the above.
1753
1754 2016-06-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1755
1756         * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
1757
1758 2016-06-07  Jakub Jelinek  <jakub@redhat.com>
1759
1760         * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
1761         Yv=Yv,C alternatives.
1762
1763 2016-06-07  Richard Biener  <rguenther@suse.de>
1764
1765         PR c/61564
1766         * common.opt (ffast-math): Make Optimization.
1767
1768 2016-06-07  Simon Dardis  <simon.dardis@imgtec.com>
1769             Prachi Godbole  <prachi.godbole@imgtec.com>
1770
1771         * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
1772         `fabs' and `fneg' type attributes.
1773         (p5600_fpu_fabs): Add `fmove' to the comment.
1774
1775 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
1776
1777         * gimple.c: Include builtins.h
1778         (gimple_inexpensive_call_p): New function.
1779         * gimple.h (gimple_inexpensive_call_p): Declare.
1780         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
1781         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
1782         fix formatting.
1783
1784 2016-06-07  Paolo Carlini  <paolo.carlini@oracle.com>
1785
1786         * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
1787         (inform, inform_at_rich_loc, inform_n, warning, warning_at,
1788         warning_at_rich_loc, warning_n, pedwarn, permerror,
1789         permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
1790         sorry, fatal_error, internal_error, internal_error_no_backtrace):
1791         Use the above.
1792
1793 2016-06-07  Richard Biener  <rguenther@suse.de>
1794
1795         PR tree-optimization/71428
1796         * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
1797         BIT_FIELD_REF op vs. load.
1798
1799 2016-06-07  Richard Biener  <rguenther@suse.de>
1800
1801         PR middle-end/71423
1802         * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
1803         for signed ops.
1804
1805 2016-06-06  John David Anglin  <danglin@gcc.gnu.org>
1806
1807         * config/pa/pa.md (call): Generate indirect long calls to non-local
1808         functions on TARGET_64BIT.
1809         (call_value): Likewise.
1810
1811 2016-06-06  John David Anglin  <danglin@gcc.gnu.org>
1812
1813         * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
1814         pattern and subsequent splitters.
1815         (call_val_reg_64bit_post_reload): Likewise.
1816
1817 2016-06-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
1818
1819         PR middle-end/71408
1820         * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
1821         propagate_op_to_single_use.
1822
1823 2016-06-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
1824
1825         PR middle-end/71281
1826         * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
1827
1828 2016-06-07  Uros Bizjak  <ubizjak@gmail.com>
1829
1830         * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
1831         (enum x86_dirflag_state): New enum.
1832         (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
1833         (machine_function): Remove needs_cld.
1834         (ix86_current_function_needs_cld): Remove.
1835         * config/i386/i386.c (ix86_set_func_type): Set
1836         ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
1837         (ix86_expand_prologue): Do not emit CLD here.
1838         (ix86_dirflag_mode_needed): New function.
1839         (ix86_dirflag_mode_entry): Ditto.
1840         (ix86_mode_needed): Handle X86_DIRFLAG entity.
1841         (ix86_mode_after): Ditto.
1842         (ix86_mode_entry): Ditto.
1843         (ix86_mode_exit): Ditto.
1844         (ix86_emit_mode_set): Ditto.
1845         * config/i386/i386.md (strmov_singleop): Set
1846         ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
1847         Do not set ix86_current_function_needs_cld.
1848         (rep_mov): Ditto.
1849         (strset_singleop): Ditto.
1850         (rep_stos): Ditto.
1851         (cmpstrnqi_nz_1): Ditto.
1852         (cmpstrnqi_1): Ditto.
1853         (strlenqi_1): Ditto.
1854
1855 2016-06-06  Jakub Jelinek  <jakub@redhat.com>
1856
1857         PR tree-optimization/71259
1858         * tree-vect-slp.c (vect_get_constant_vectors): For
1859         VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
1860         one for constant op, and use COND_EXPR for non-constant.
1861
1862 2016-06-06  David Malcolm  <dmalcolm@redhat.com>
1863
1864         * Makefile.in (OBJS): Add function-tests.o,
1865         hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
1866         selftest-run-tests.o.
1867         (OBJS-libcommon): Add selftest.o.
1868         (OBJS-libcommon-target): Add selftest.o.
1869         (all.internal): Add "selftest".
1870         (all.cross): Likewise.
1871         (selftest): New phony target.
1872         (s-selftest): New target.
1873         (selftest-gdb): New phony target.
1874         (COLLECT2_OBJS): Add selftest.o.
1875         * bitmap.c: Include "selftest.h".
1876         (selftest::test_gc_alloc): New function.
1877         (selftest::test_set_range): New function.
1878         (selftest::test_clear_bit_in_middle): New function.
1879         (selftest::test_copying): New function.
1880         (selftest::test_bitmap_single_bit_set_p): New function.
1881         (selftest::bitmap_c_tests): New function.
1882         * common.opt (fself-test): New.
1883         * diagnostic-show-locus.c: Include "selftest.h".
1884         (make_range): New function.
1885         (test_range_contains_point_for_single_point): New function.
1886         (test_range_contains_point_for_single_line): New function.
1887         (test_range_contains_point_for_multiple_lines): New function.
1888         (assert_eq): New function.
1889         (test_get_line_width_without_trailing_whitespace): New function.
1890         (selftest::diagnostic_show_locus_c_tests): New function.
1891         * et-forest.c: Include "selftest.h".
1892         (selftest::test_single_node): New function.
1893         (selftest::test_simple_tree): New function.
1894         (selftest::test_disconnected_nodes): New function.
1895         (selftest::et_forest_c_tests): New function.
1896         * fold-const.c: Include "selftest.h".
1897         (selftest::assert_binop_folds_to_const): New function.
1898         (selftest::assert_binop_folds_to_nonlvalue): New function.
1899         (selftest::test_arithmetic_folding): New function.
1900         (selftest::fold_const_c_tests): New function.
1901         * function-tests.c: New file.
1902         * gimple.c: Include "selftest.h".
1903         Include "gimple-pretty-print.h".
1904         (selftest::verify_gimple_pp): New function.
1905         (selftest::test_assign_single): New function.
1906         (selftest::test_assign_binop): New function.
1907         (selftest::test_nop_stmt): New function.
1908         (selftest::test_return_stmt): New function.
1909         (selftest::test_return_without_value): New function.
1910         (selftest::gimple_c_tests): New function.
1911         * hash-map-tests.c: New file.
1912         * hash-set-tests.c: New file.
1913         * input.c: Include "selftest.h".
1914         (selftest::assert_loceq): New function.
1915         (selftest::test_accessing_ordinary_linemaps): New function.
1916         (selftest::test_unknown_location): New function.
1917         (selftest::test_builtins): New function.
1918         (selftest::test_reading_source_line): New function.
1919         (selftest::input_c_tests): New function.
1920         * rtl-tests.c: New file.
1921         * selftest-run-tests.c: New file.
1922         * selftest.c: New file.
1923         * selftest.h: New file.
1924         * spellcheck.c: Include "selftest.h".
1925         (selftest::levenshtein_distance_unit_test_oneway): New function,
1926         adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
1927         (selftest::levenshtein_distance_unit_test): Likewise.
1928         (selftest::spellcheck_c_tests): Likewise.
1929         * toplev.c: Include selftest.h.
1930         (toplev::run_self_tests): New.
1931         (toplev::main): Handle -fself-test.
1932         * toplev.h (toplev::run_self_tests): New.
1933         * tree.c: Include "selftest.h".
1934         (selftest::test_integer_constants): New function.
1935         (selftest::test_identifiers): New function.
1936         (selftest::test_labels): New function.
1937         (selftest::tree_c_tests): New function.
1938         * tree-cfg.c: Include "selftest.h".
1939         (selftest::push_fndecl): New function.
1940         (selftest::test_linear_chain): New function.
1941         (selftest::test_diamond): New function.
1942         (selftest::test_fully_connected): New function.
1943         (selftest::tree_cfg_c_tests): New function.
1944         * vec.c: Include "selftest.h".
1945         (selftest::safe_push_range): New function.
1946         (selftest::test_quick_push): New function.
1947         (selftest::test_safe_push): New function.
1948         (selftest::test_truncate): New function.
1949         (selftest::test_safe_grow_cleared): New function.
1950         (selftest::test_pop): New function.
1951         (selftest::test_safe_insert): New function.
1952         (selftest::test_ordered_remove): New function.
1953         (selftest::test_unordered_remove): New function.
1954         (selftest::test_block_remove): New function.
1955         (selftest::reverse_cmp): New function.
1956         (selftest::test_qsort): New function.
1957         (selftest::vec_c_tests): New function.c.
1958         * wide-int.cc: Include selftest.h and wide-int-print.h.
1959         (selftest::from_int <wide_int>): New function.
1960         (selftest::from_int <offset_int>): New function.
1961         (selftest::from_int <widest_int>): New function.
1962         (selftest::assert_deceq): New function.
1963         (selftest::assert_hexeq): New function.
1964         (selftest::test_printing <VALUE_TYPE>): New function template.
1965         (selftest::test_ops <VALUE_TYPE>): New function template.
1966         (selftest::test_comparisons <VALUE_TYPE>): New function template.
1967         (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
1968         template.
1969         (selftest::wide_int_cc_tests): New function.
1970
1971 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1972
1973         PR middle-end/37780
1974         * ifcvt.c (noce_try_ifelse_collapse): New function.
1975         Declare prototype.
1976         (noce_process_if_block): Call noce_try_ifelse_collapse.
1977         * simplify-rtx.c (simplify_cond_clz_ctz): New function.
1978         (simplify_ternary_operation): Use the above to simplify
1979         conditional CLZ/CTZ expressions.
1980
1981 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1982
1983         PR middle-end/37780
1984         * config/aarch64/aarch64.md (ctz<mode>2): Convert to
1985         define_insn_and_split.
1986
1987 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1988
1989         PR middle-end/37780
1990         * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
1991
1992 2016-06-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1993
1994         PR c/24414
1995         * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
1996         Implicitly clobber memory for basic asm with non-empty assembler
1997         string.  Use targetm.md_asm_adjust also here.
1998         * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
1999         * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
2000         * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
2001         non-empty assembler string.
2002         * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
2003         * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
2004         (decode_asm_operands): Handle basic asm in PARALLEL block.
2005         (extract_insn): Handle basic asm in PARALLEL block.
2006         * doc/extend.texi: Mention new behavior of basic asm.
2007         * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
2008         * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
2009         branch_needs_nop_p): Use asm_noperands.
2010
2011 2016-06-06  Jose E. Marchesi  <jose.marchesi@oracle.com>
2012
2013         * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
2014         Include the M7 SPARC DFA scheduler.
2015         New attribute v3pipe.
2016         Annotate insns with v3pipe where appropriate.
2017         Define cpu_feature vis4.
2018         Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
2019         Add (V8QI "8") to vbits.
2020         Add insns {add,sub}v8qi3
2021         Add insns ss{add,sub}v8qi3
2022         Add insns us{add,sub}{v8qi,v4hi}3
2023         Add insns {min,max}{v8qi,v4hi,v2si}3
2024         Add insns {minu,maxu}{v8qi,v4hi,v2si}3
2025         Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
2026         * config/sparc/niagara4.md: Add a comment explaining the
2027         discrepancy between the documented latenty numbers and the
2028         implemented ones.
2029         * config/sparc/niagara7.md: New file.
2030         * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
2031         supports SPARC5 and VIS 4.0 instructions.
2032         * configure: Regenerate.
2033         * config.in: Likewise.
2034         * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
2035         * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
2036         TARGET_CPU_niagara7.
2037         (ASM_CPU64_DEFAULT_SPEC): Likewise.
2038         (CPP_CPU_SPEC): Handle niagara7.
2039         (ASM_CPU_SPEC): Likewise.
2040         * config/sparc/sparc-opts.h (processor_type): Add
2041         PROCESSOR_NIAGARA7.
2042         (mvis4): New option.
2043         * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
2044         (AS_NIAGARA7_FLAG): Define.
2045         (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
2046         (CPP_CPU64_DEFAULT_SPEC): Likewise.
2047         (CPP_CPU_SPEC): Handle niagara7.
2048         (ASM_CPU_SPEC): Likewise.
2049         * config/sparc/sparc.c (niagara7_costs): Define.
2050         (sparc_option_override): Handle niagara7 and adjust cache-related
2051         parameters with better values for niagara cpus.  Also support VIS4.
2052         (sparc32_initialize_trampoline): Likewise.
2053         (sparc_use_sched_lookahead): Likewise.
2054         (sparc_issue_rate): Likewise.
2055         (sparc_register_move_cost): Likewise.
2056         (dump_target_flag_bits): Support VIS4.
2057         (sparc_vis_init_builtins): Likewise.
2058         (sparc_builtins): Likewise.
2059         * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
2060         VIS4 4.0.
2061         * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
2062         UltraSparc M7.
2063         * config/sparc/sparc.opt (sparc_processor_type): New value
2064         niagara7.
2065         * config/sparc/visintrin.h (__attribute__): Prototypes for the
2066         VIS4 builtins.
2067         * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
2068         -mvis4.
2069         * doc/extend.texi (SPARC VIS Built-in Functions): Document the
2070         VIS4 builtins.
2071
2072 2016-06-06  Jonathan Wakely  <jwakely@redhat.com>
2073
2074         * doc/sourcebuild.texi (Directives): Remove extra closing braces.
2075
2076 2016-06-06  Richard Biener  <rguenther@suse.de>
2077
2078         PR tree-optimization/71398
2079         * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
2080         remove edges.
2081
2082 2016-06-05  James Bowman  <james.bowman@ftdichip.com>
2083
2084         * config/ft32/ft32.c (ft32_setup_incoming_varargs,
2085         ft32_expand_prolog, ft32_expand_epilogue):
2086         Handle pretend_args.
2087         * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
2088         * config/ft32/ft32.md: Add pretend_returner.
2089
2090 2016-06-06  Uros Bizjak  <ubizjak@gmail.com>
2091
2092         PR target/71389
2093         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
2094         Copy op1 RTX to avoid invalid sharing.
2095         (ix86_expand_vector_move_misalign): Ditto.
2096
2097 2016-06-05  John David Anglin  <danglin@gcc.gnu.org>
2098
2099         * expr.c (move_by_pieces_d::generate): Mark mode parameter with
2100         ATTRIBUTE_UNUSED.
2101
2102 2016-06-05  Jan Hubicka  <hubicka@ucw.cz>
2103
2104         * predict.c (predicted_by_loop_heuristics_p): New function.
2105         (predict_iv_comparison): Use it.
2106         (predict_loops): Walk from innermost loops; do not predict edges
2107         leaving multiple loops multiple times; implement
2108         PRED_LOOP_ITERATIONS_MAX heuristics.
2109         * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
2110
2111 2016-06-05  Jan Hubicka  <hubicka@ucw.cz>
2112
2113         * cfg.c (check_bb_profile): Do not report mismatched profiles when
2114         only edges out of BB are EH edges.
2115
2116 2016-06-04  Martin Sebor  <msebor@redhat.com>
2117             Marcin Baczyński  <marbacz@gmail.com>
2118
2119         PR c/48116
2120         * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
2121         a void expression in a void function.
2122
2123 2016-06-03  Jan Hubicka  <hubicka@ucw.cz>
2124
2125         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
2126         aux; dump reasons of decisions.
2127         (should_duplicate_loop_header_p): Likewise.
2128         (do_while_loop_p): Likewise.
2129         (ch_base::copy_headers): Dump asi num insns duplicated.
2130
2131 2016-06-04  Jakub Jelinek  <jakub@redhat.com>
2132
2133         PR tree-optimization/71405
2134         * tree-ssa.c (execute_update_addresses_taken): For clobber with
2135         incompatible type, build a new clobber with the right type instead
2136         of building a VIEW_CONVERT_EXPR around it.
2137
2138 2016-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
2139
2140         PR tree-optimization/52171
2141         * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
2142         by_pieces_ninsns instead of move_by_pieces_ninsns.
2143
2144 2016-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
2145
2146         * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
2147         for reg+reg addressing mode.
2148
2149 2016-06-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2150
2151         * rs6000-c.c (c/c-tree.h): Add #include.
2152         (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
2153         in C++ when found in the base position of vec_ld or vec_st.
2154
2155 2016-06-03  Jan Hubicka  <hubicka@ucw.cz>
2156
2157         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
2158         use of profile unless profile status is PROFILE_READ.
2159         * profile.c (compute_branch_probabilities): Set profile status
2160         only after reporting predictor hitrates.
2161
2162 2016-06-03  Joseph Myers  <joseph@codesourcery.com>
2163
2164         PR target/71276
2165         PR target/71277
2166         * common.opt (ffp-int-builtin-inexact): New option.
2167         * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
2168         * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
2169         (ceil@var{m}2): Document dependence on this option.
2170         * ipa-inline-transform.c (inline_call): Handle
2171         flag_fp_int_builtin_inexact.
2172         * ipa-inline.c (can_inline_edge_p): Likewise.
2173         * config/i386/i386.md (rintxf2): Do not test
2174         flag_unsafe_math_optimizations.
2175         (rint<mode>2_frndint): New define_insn.
2176         (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
2177         or !flag_trapping_math for SSE.  Just use gen_rint<mode>2_frndint
2178         for 387 instead of extending and truncating.
2179         (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
2180         !flag_trapping_math instead of flag_unsafe_math_optimizations.
2181         Change to frndint<mode>2_<rounding>.
2182         (frndintxf2_<rounding>_i387): Likewise.  Change to
2183         frndint<mode>2_<rounding>_i387.
2184         (<rounding_insn>xf2): Likewise.
2185         (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
2186         !flag_trapping_math instead of flag_unsafe_math_optimizations for
2187         x87.  Test TARGET_ROUND || !flag_trapping_math ||
2188         flag_fp_int_builtin_inexact instead of !flag_trapping_math for
2189         SSE.  Use ROUND_NO_EXC in constant operand of
2190         gen_sse4_1_round<mode>2.  Just use gen_frndint<mode>2_<rounding>
2191         for 387 instead of extending and truncating.
2192
2193 2016-06-03  H.J. Lu  <hongjiu.lu@intel.com>
2194             Julia Koval  <julia.koval@intel.com>
2195
2196         PR target/66960
2197         PR target/67630
2198         PR target/67634
2199         PR target/67841
2200         PR target/68037
2201         PR target/68618
2202         PR target/68661
2203         PR target/69575
2204         PR target/69596
2205         PR target/69734
2206         * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
2207         * config/i386/i386.c (ix86_conditional_register_usage): Preserve
2208         all registers, except for function return registers if there are
2209         no caller-saved registers.
2210         (ix86_set_func_type): New function.
2211         (ix86_set_current_function): Call ix86_set_func_type to set
2212         no_caller_saved_registers and func_type.  Call reinit_regs if
2213         caller-saved registers are changed.  Don't allow MPX, SSE, MMX
2214         nor x87 instructions in interrupt handler nor function with
2215         no_caller_saved_registers attribute.
2216         (ix86_function_ok_for_sibcall): Return false if there are no
2217         caller-saved registers.
2218         (type_natural_mode): Don't warn ABI change for MMX in interrupt
2219         handler.
2220         (ix86_function_arg_advance): Skip for callee in interrupt handler.
2221         (ix86_function_arg): Return special arguments in interrupt handler.
2222         (ix86_promote_function_mode): Promote pointer to word_mode only
2223         for normal functions.
2224         (ix86_can_use_return_insn_p): Don't use `ret' instruction in
2225         interrupt handler.
2226         (ix86_epilogue_uses): New function.
2227         (ix86_hard_regno_scratch_ok): Likewise.
2228         (ix86_save_reg): Preserve all registers in interrupt handler
2229         after reload.  Preserve all registers, except for function return
2230         registers, if there are no caller-saved registers after reload.
2231         (find_drap_reg): Always use callee-saved register if there are
2232         no caller-saved registers.
2233         (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
2234         for interrupt handler.
2235         (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
2236         Emit cld instruction if stringops are used in interrupt handler
2237         or interrupt handler isn't a leaf function.
2238         (ix86_expand_epilogue): Generate interrupt return for interrupt
2239         handler and pop the 'ERROR_CODE' off the stack before interrupt
2240         return in exception handler.
2241         (ix86_expand_call): Disallow calling interrupt handler directly.
2242         If there are no caller-saved registers, mark all registers that
2243         are clobbered by the call which returns as clobbered.
2244         (ix86_handle_no_caller_saved_registers_attribute): New function.
2245         (ix86_handle_interrupt_attribute): Likewise.
2246         (ix86_attribute_table): Add interrupt and no_caller_saved_registers
2247         attributes.
2248         (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
2249         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
2250         accumulation in interrupt function if stack may be realigned to
2251         avoid DRAP.
2252         (EPILOGUE_USES): New.
2253         (function_type): New enum.
2254         (machine_function): Add func_type and no_caller_saved_registers.
2255         * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
2256         (interrupt_return): New pattern.
2257         * doc/extend.texi: Document x86 interrupt and
2258         no_caller_saved_registers attributes.
2259
2260 2016-06-03  Bernd Schmidt  <bschmidt@redhat.com>
2261
2262         PR tree-optimization/52171
2263         * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
2264         (expand_builtin_memcmp): New arg RESULT_EQ.  All callers changed.
2265         Look for constant strings.  Move some code to emit_block_cmp_hints
2266         and use it.
2267         * builtins.def (BUILT_IN_MEMCMP_EQ): New.
2268         * defaults.h (COMPARE_MAX_PIECES): New macro.
2269         * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
2270         (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
2271         (clear_by_pieces_1): Don't declare.  Move definition before use.
2272         (can_do_by_pieces): New static function.
2273         (can_move_by_pieces): Use it.  Return bool.
2274         (by_pieces_ninsns): Renamed from move_by_pieces_ninsns.  New arg
2275         OP.  All callers changed.  Handle COMPARE_BY_PIECES.
2276         (class pieces_addr); New.
2277         (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
2278         pieces_addr::adjust, pieces_addr::increment_address,
2279         pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
2280         functions for it.
2281         (class op_by_pieces_d): New.
2282         (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
2283         functions for it.
2284         (class move_by_pieces_d, class compare_by_pieces_d,
2285         class store_by_pieces_d): New subclasses of op_by_pieces_d.
2286         (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
2287         move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
2288         store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
2289         compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
2290         compare_by_pieces_d::finish_mode): New member functions.
2291         (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
2292         functions.
2293         (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
2294         (emit_block_cmp_hints): New function.
2295         (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
2296         use the newly defined classes.
2297         * expr.h (by_pieces_constfn): New typedef.
2298         (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
2299         (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
2300         (move_by_pieces_ninsns): Don't declare.
2301         (can_move_by_pieces): Change return value to bool.
2302         * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
2303         (compare_by_pieces_branch_ratio): New hook.
2304         * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
2305         (by_pieces_ninsns): Declare.
2306         * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
2307         COMPARE_BY_PIECES.
2308         (default_compare_by_pieces_branch_ratio): New function.
2309         * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
2310         * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
2311         * doc/tm.texi: Regenerate.
2312         * tree-ssa-strlen.c: Include "builtins.h".
2313         (handle_builtin_memcmp): New static function.
2314         (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
2315         * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
2316
2317 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
2318
2319         * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
2320         relevant stmts which are simple and invariant.
2321         * tree-vect-loop.c (vectorizable_live_operation): Check relevance
2322         instead of simple and invariant
2323
2324 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
2325
2326         * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
2327         (vectorizable_reduction): Check for new relevant state.
2328         (vectorizable_live_operation): vectorize live stmts using
2329         BIT_FIELD_REF.  Remove special case for gimple assigns stmts.
2330         * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
2331         (vect_stmt_relevant_p): Check for stmts which are only used live.
2332         (process_use): Use of a stmt does not inherit it's live value.
2333         (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
2334         (vect_analyze_stmt): Check for new relevant state.
2335         * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
2336         outside the loop, but not inside it.
2337
2338 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
2339
2340         * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
2341         * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
2342         (vect_get_vec_def_for_operand): Split out code.
2343
2344 2016-06-03  Segher Boessenkool  <segher@kernel.crashing.org>
2345
2346         * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
2347
2348 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
2349
2350         * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
2351
2352 2016-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2353
2354         * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
2355
2356 2016-06-03  Jakub Jelinek  <jakub@redhat.com>
2357
2358         PR middle-end/71387
2359         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
2360         to noreturn e->callee->decl that has void return type and void
2361         arguments, adjust gimple_call_fntype and remove lhs even if it had
2362         previously addressable type.
2363
2364 2016-06-02  Jeff Law  <law@redhat.com>
2365
2366         PR tree-optimization/71328
2367         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
2368         error when checking for a jump back onto the copied path.
2369
2370 2016-06-02  David Malcolm  <dmalcolm@redhat.com>
2371
2372         * config/microblaze/microblaze.c (get_branch_target): Add return
2373         NULL_RTX for the non-CALL_P case.
2374         (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
2375         (insert_wic): Remove unused local "j".
2376
2377 2016-06-02  Martin Liska  <mliska@suse.cz>
2378
2379         * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
2380
2381 2016-06-02  H.J. Lu  <hongjiu.lu@intel.com>
2382             Julia Koval  <julia.koval@intel.com>
2383
2384         * function.c (assign_parm_setup_stack): Force source into a
2385         register if needed.
2386         * target.def (function_incoming_arg): Update documentation to
2387         allow arbitrary address computation based on hard register.
2388         * doc/tm.texi: Regenerated.
2389
2390 2016-06-02  Martin Liska  <mliska@suse.cz>
2391
2392         * predict.c (combine_predictions_for_bb): Fix first match in
2393         cases where a first predictor contains more than one occurence
2394         in list of predictors.  Take the best value in such case.
2395
2396 2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2397
2398         PR rtl-optimization/71295
2399         * rtlanal.c (subreg_get_info): If taking a subreg at the requested
2400         offset would go over the size of the inner mode reject it.
2401
2402 2016-06-02  Jakub Jelinek  <jakub@redhat.com>
2403
2404         * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
2405         x=x,x and v=v,m instead of x=x,m.
2406
2407         * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
2408         alternative.  Change x=x,x alternative to v=Yv,Yv and x=rm,C
2409         alternative to v=rm,C.
2410
2411         * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
2412         alternative.  Change x=xm,C alternative to v=vm,C, x=x,x alternative
2413         to v=Yv,Yv and x=x,m to v=v,m.  Use maybe_evex prefix attribute
2414         instead of vex for the last two above mentioned alternatives.
2415
2416 2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2417
2418         PR target/70830
2419         * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
2420
2421 2016-06-02  Segher Boessenkool  <segher@kernel.crashing.org>
2422
2423         * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
2424
2425 2016-06-01  David Malcolm  <dmalcolm@redhat.com>
2426
2427         * config/rl78/rl78.c (rl78_expand_prologue): Convert local
2428         from int to unsigned.
2429
2430 2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
2431
2432         * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
2433         alternatives, eliminating preferred register class.  Add support
2434         for the MTVSRDD instruction in ISA 3.0.
2435         (vsx_splat_v4si_internal): Use splat_input_operand instead of
2436         reg_or_indexed_operand.
2437         (vsx_splat_v4sf_internal): Likewise.
2438
2439 2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
2440
2441         PR target/71186
2442         * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
2443         for loading up all 0's or all 1's.
2444
2445 2016-06-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2446
2447         * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
2448
2449 2016-06-01  Eduard Sanou  <dhole@openmailbox.org>
2450
2451         * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
2452         extension.
2453         * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
2454         * gcc.c (set_source_date_epoch_envvar): New function, sets
2455         the SOURCE_DATE_EPOCH environment variable to the current time.
2456
2457 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
2458
2459         * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
2460         the factor for live Phi nodes.
2461
2462 2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
2463
2464         * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
2465         * tree-parloops.c (parallelize_loops): likewise.
2466         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
2467         tree_unswitch_outer_loop): likewise.
2468
2469 2016-06-01  Jakub Jelinek  <jakub@redhat.com>
2470
2471         PR middle-end/71371
2472         * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
2473         around creation of the temporary.
2474
2475 2016-06-01  Richard Biener  <rguenther@suse.de>
2476
2477         PR tree-optimization/71366
2478         * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
2479         (unloop_loops): Move removing edges here ...
2480         (try_unroll_loop_completely): ... from here.
2481         (try_peel_loop): ... and here.
2482         (tree_unroll_loops_completely_1): Track parent loops via
2483         bitmap of header BBs.
2484         (tree_unroll_loops_completely): Adjust for that.
2485
2486 2016-06-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2487
2488         * config/rs6000/altivec.h (vec_slv): New macro.
2489         (vec_srv): New macro.
2490         * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
2491         (UNSPEC_VSRV): New value.
2492         (vslv): New insn.
2493         (vsrv): New insn.
2494         * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
2495         (vsrv): New builtin definition.
2496         * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
2497         define argument types for new builtin.
2498         (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
2499         new builtin.
2500         * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
2501         functions.
2502
2503 2016-06-01  Uros Bizjak  <ubizjak@gmail.com>
2504             Jocelyn Mayer  <l_indien@magic.fr>
2505
2506         PR target/67310
2507         * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
2508         detect processor family for signature_CENTAUR_ebx.
2509         <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
2510         signature_CENTAUR_ebx.
2511         <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
2512         <default>: Pass x86-64 for has_longmode.
2513
2514 2016-06-01  Nathan Sidwell  <nathan@acm.org>
2515
2516         * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
2517         undefined weak.
2518
2519 2016-06-01  Richard Biener  <rguenther@suse.de>
2520
2521         PR tree-optimization/71261
2522         * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
2523         of stmts successfully put in the bool pattern.  Remove
2524         single-use restriction.
2525         (adjust_bool_pattern_cast): Add cast at the use site via the
2526         pattern def sequence.
2527         (adjust_bool_pattern): Remove recursion, maintain a hash-map
2528         of patterned defs.  Use the pattern def seqence instead of
2529         multiple independent patterns.
2530         (sort_after_uid): New qsort compare function.
2531         (adjust_bool_stmts): New function to process stmts in the bool
2532         pattern in IL order.
2533         (vect_recog_bool_pattern): Adjust.
2534         * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
2535         (ifcvt_walk_pattern_tree): Likewise.
2536         (stmt_is_root_of_bool_pattern): Likewise.
2537         (ifcvt_repair_bool_pattern): Likewise.
2538         (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
2539
2540 2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
2541
2542         * loop-unroll.c (decide_unroll_constant_iterations,
2543         decide_unroll_runtime_iterations, decide_unroll_stupid): Use
2544         likely upper bounds.
2545         * loop-iv.c (find_simple_exit): Dump likely upper bounds.
2546
2547 2016-06-01  Thomas Schwinge  <thomas@codesourcery.com>
2548
2549         * tree-core.h (enum omp_clause_code): Remove
2550         OMP_CLAUSE_DEVICE_RESIDENT.  Adjust all users.
2551
2552 2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2553
2554         * config/arm/sync.md (arm_store_exclusive<mode>):
2555         Use 'H' output modifier on operands[2] rather than creating a new
2556         entry in out-of-bounds memory of the operands array.
2557         (arm_store_release_exclusivedi): Likewise.
2558
2559 2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2560
2561         * config/arm/arm.c (arm_fusion_enabled_p): New function.
2562         * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
2563         * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
2564         Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.
2565
2566 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
2567
2568         * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
2569         into account live statements for mask producers.
2570
2571 2016-06-01  Richard Biener  <rguenther@suse.de>
2572
2573         PR tree-optimization/71311
2574         * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
2575         restrict to non-INTEGER_CST @0.
2576
2577 2016-06-01  Richard Biener  <rguenther@suse.de>
2578
2579         * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
2580         (relational patterns): Use :c to avoid pattern duplications.
2581
2582 2016-06-01  Richard Biener  <rguenther@suse.de>
2583
2584         * genmatch.c (comparison_code_p): New predicate.
2585         (swap_tree_comparison): New function.
2586         (commutate): Add for_vec parameter to append new for entries.
2587         Support commutating relational operators by swapping it alongside
2588         operands.
2589         (lower_commutative): Adjust.
2590         (dt_simplify::gen): Do not pass artificial operators to gen
2591         functions.
2592         (decision_tree::gen): Do not add artificial operators as parameters.
2593         (parser::parse_expr): Verify operator commutativity when :c is
2594         applied.  Allow :C to override this.
2595         * match.pd: Adjust patterns to use :C instead of :c where required.
2596
2597 2016-06-01  Patrick Palka  <ppalka@gcc.gnu.org>
2598
2599         PR tree-optimization/71077
2600         * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
2601         the combining step, use boolean_false_node and boolean_true_node
2602         as the designated false/true return values.
2603
2604 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
2605
2606         * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
2607         * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
2608         (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
2609         PRED_LOOP_EXIT.
2610
2611 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
2612
2613         * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
2614         of flags impliying the register renaming.
2615         * toplev.c (process_options): Do not imply flag_rename_registers with
2616         loop peeling.
2617
2618 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
2619
2620         * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
2621         default implementation.
2622
2623 2016-05-31  Nathan Sidwell  <nathan@acm.org>
2624
2625         * dwarf2out.c (cur_line_info_table): Add GTY marker.
2626
2627 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
2628
2629         * config/sh/constraints.md (b): Remove constraint.
2630         * config/sh/predicates.md (arith_reg_operand): Remove
2631         TARGET_REGISTER_P.
2632         * config/sh/sh-modes.def (PDI): Remove.
2633         * config/sh/sh.c (sh_target_reg_class,
2634         sh_optimize_target_register_callee_saved): Remove functions.
2635         (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
2636         (sh_expand_epilogue): Update comment.
2637         (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
2638         sh_secondary_reload): Remove TARGET_REGS related code.
2639         * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
2640         TARGET_REGISTER_P): Remove macros.
2641         (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
2642         * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
2643         TR1_REG, TR2_REG): Remove constants.
2644         * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
2645
2646 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
2647
2648         * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
2649         define_expand patterns.
2650         (adddi3_compact): Rename to adddi3.
2651         (subdi3_compact): Rename to subdi3.
2652         (*negdi2): Rename to negdi2.
2653         (*abs<mode>2): Rename to abs<mode>2.
2654
2655 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
2656
2657         * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
2658         (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
2659         (atomic_sub_fetchsi): ... this new pattern.
2660         (mvtc): Add CC_REG clobber.
2661
2662 2016-05-31  Marek Polacek  <polacek@redhat.com>
2663
2664         * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
2665
2666 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2667
2668         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
2669         aarch64_fusion_enabled_p to check for fusion capabilities.
2670
2671 2016-05-31  Richard Biener  <rguenther@suse.de>
2672
2673         PR tree-optimization/71352
2674         * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
2675         minus one and a negate.
2676
2677 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2678
2679         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
2680         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
2681         Delete prototype.
2682         * config/aarch64/iterators.md (insn_count): Add descriptive comment.
2683         * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
2684         Remove use of aarch64_simd_attr_length_move, set length attribute
2685         directly.
2686         (*aarch64_be_movoi): Likewise.
2687         (*aarch64_be_movci): Likewise.
2688         (*aarch64_be_movxi): Likewise.
2689
2690 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
2691
2692         * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
2693         It no longer does that.
2694         * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
2695
2696 2016-05-31  Wladimir J. van der Laan  <laanwj@gmail.com>
2697
2698         * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
2699         attribute __unused__.
2700
2701 2016-05-31  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2702
2703         * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
2704         * config/arm/arm.c (arm_arch_thumb1): Define.
2705         (arm_option_override): Initialize arm_arch_thumb1.
2706         * config/arm/arm.h (arm_arch_thumb1): Declare.
2707         (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
2708         support Thumb-1 ISA.
2709
2710 2016-05-31  Kirill Yukhin  <kirill.yukhin@intel.com>
2711
2712         PR target/71346
2713         * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
2714         `Yv' for scalar operand.
2715
2716 2016-05-31  Tom de Vries  <tom@codesourcery.com>
2717
2718         PR tree-optimization/69068
2719         * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
2720         phis with more than two args.
2721
2722 2016-05-30  Andreas Tobler  <andreast@gcc.gnu.org>
2723
2724         * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
2725         armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
2726         target.
2727
2728 2016-05-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
2729
2730         * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
2731         tune_64.
2732         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
2733         support on SPARC.
2734         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
2735         cpu_32, cpu_64, tune_32 and tune_64.
2736         * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
2737
2738 2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
2739
2740         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
2741
2742 2016-05-30  Andi Kleen  <ak@linux.intel.com>
2743
2744         * auto-profile.c (read_profile): Replace asserts with errors
2745         when file does not exist.
2746         * gcov-io.c (gcov_read_words): Dito.
2747
2748 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
2749
2750         * tree-cfg.c (print_loop): Print likely upper bounds.
2751
2752 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
2753
2754         * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
2755         * opts.c (default_options): Enable peel loops at -O3.
2756         * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
2757         (try_peel_loop): Do not re-peel already peeled loops;
2758         use likely upper bounds; fix profile updating.
2759         (pass_complete_unroll::execute): Initialize peeled_loops.
2760
2761 2016-05-30  Martin Liska  <mliska@suse.cz>
2762
2763         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
2764         computed costs by frequency of BB they belong to.
2765         (get_scaled_computation_cost_at): New function.
2766
2767 2016-05-30  Alexander Monakov  <amonakov@ispras.ru>
2768             Marc Glisse  <marc.glisse@inria.fr>
2769
2770         PR tree-optimization/71289
2771         * match.pd (-1 / B < A, A > -1 / B): New transformations.
2772
2773 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
2774
2775         * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
2776
2777 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
2778
2779         * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
2780         for peeled copies; avoid underflow when updating estimates; correctly
2781         scale loop profile.
2782
2783 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
2784
2785         * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
2786         r236875. Corrected oe3 to oe2 as obvious.
2787
2788 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
2789
2790         PR middle-end/71269
2791         PR middle-end/71252
2792         * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
2793         that inserted stmt will not dominate stmts that defines its operand.
2794         (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
2795         (rewrite_expr_tree_parallel): Likewise.
2796
2797 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
2798
2799         PR middle-end/71252
2800         * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
2801         all fields including stmt_to_insert are swapped.
2802
2803 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
2804
2805         * predict.h (force_edge_cold): Declare.
2806         * predict.c (force_edge_cold): New function.
2807         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
2808         updating.
2809         (canonicalize_loop_induction_variables): Fix formating.
2810
2811 2016-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2812
2813         * config/visium/visium.c (visium_split_double_add): Minor tweaks.
2814         (visium_expand_copysign): Use gen_int_mode directly.
2815         (visium_compute_frame_size): Minor tweaks.
2816
2817 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
2818
2819         * tree-vect-loop.c (vect_analyze_loop_2): Use
2820         likely_max_stmt_executions_int.
2821
2822 2016-05-30  Tom de Vries  <tom@codesourcery.com>
2823
2824         PR tree-optimization/69067
2825         * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
2826
2827 2016-05-29  Uros Bizjak  <ubizjak@gmail.com>
2828
2829         PR target/71245
2830         * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
2831         New peepholes to remove unneeded fild/fistp pairs.
2832         (define_peephole2 atomic_loaddi_fpu): Ditto.
2833
2834 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2835
2836         * predict.c (maybe_hot_frequency_p): Avoid division.
2837
2838 2016-05-28  Gerald Pfeifer  <gerald@pfeifer.com>
2839
2840         * doc/install.texi: Use https for shop.fsf.org.
2841
2842 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2843
2844         * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
2845         likely_max_stmt_executions_int.
2846
2847 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2848
2849         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
2850         likely_max_stmt_executions_int.
2851
2852 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2853
2854         * profile.c (compute_branch_probabilities): Do not report hitrates
2855         here.
2856         (branch_prob): Report hitrates here.
2857         * predict.c (gimple_predict_edge): Do not assert profile status;
2858         fix formatting issues.
2859
2860 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2861
2862         * predict.c (edge_predicted_by_p): New function.
2863         (predict_paths_for_bb): Do not put multiple predictions of the same type
2864         on one edge.
2865
2866 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2867
2868         * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
2869         commit.
2870
2871 2016-05-28  Alan Modra  <amodra@gmail.com>
2872
2873         * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
2874
2875 2016-05-28  Alan Modra  <amodra@gmail.com>
2876
2877         PR rtl-optimization/71275
2878         * ira.c (ira): Free dominance info.
2879
2880 2016-05-27  Gerald Pfeifer  <gerald@pfeifer.com>
2881
2882         * doc/sourcebuild.texi: New address for upstream Go repository.
2883
2884 2016-05-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2885
2886         * config/arm/arm.h (TARGET_ARM_V6M): Remove.
2887         (TARGET_ARM_V7M): Likewise.
2888
2889 2016-05-26  Jeff Law  <law@redhat.com>
2890
2891         * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
2892         (thread_across_edge): Remove calls to find_jump_threads_backwards.
2893         * passes.def: Add jump threading passes before DOM/VRP.
2894         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
2895         argument to a basic block from an edge.  Remove tests which are
2896         handled elsewhere.
2897         (pass_data_thread_jumps, class pass_thread_jumps): New.
2898         (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
2899         (make_pass_thread_jumps): Likewise.
2900         * tree-pass.h (make_pass_thread_jumps): Declare.
2901
2902 2016-05-27  Eric Botcazou  <ebotcazou@adacore.com>
2903
2904         * config/visium/visium-protos.h (split_double_move): Rename into...
2905         (visium_split_double_move): ...this.
2906         (visium_split_double_add): Declare.
2907         * config/visium/visium.c (split_double_move): Rename into...
2908         (visium_split_double_move): ...this.
2909         (visium_split_double_add): New function.
2910         (visium_expand_copysign): Renumber operands for consistency.
2911         * config/visium/visium.md (DImode move splitter): Adjust to renaming.
2912         (DFmode move splitter): Likewise.
2913         (*addi3_insn): Split by means of visium_split_double_add.
2914         (*adddi3_insn_flags): Delete.
2915         (*plus_plus_sltu<subst_arith>): New insn.
2916         (*subdi3_insn): Split by means of visium_split_double_add.
2917         (subdi3_insn_flags): Delete.
2918         (*minus_minus_sltu<subst_arith>): New insn.
2919         (*negdi2_insn): Split by means of visium_split_double_add.
2920         (*negdi2_insn_flags): Delete.
2921
2922 2016-05-27  Ulrich Weigand  <uweigand@de.ibm.com>
2923
2924         * configure.ac: Treat a --with-headers option without argument
2925         the same as the default (i.e. consult sys-include directory).
2926         * configure: Regenerate.
2927
2928 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2929
2930         * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
2931         * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
2932         prototype.
2933         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
2934         Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.
2935
2936 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
2937
2938         PR target/63596
2939         * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
2940         tree-stdarg analysis results.
2941         (aarch64_setup_incoming_varargs): Likewise.
2942
2943 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
2944
2945         * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
2946         va_list_gpr_counter_field and va_list_fpr_counter_field.
2947
2948 2016-05-27  Wilco Dijkstra  <wdijkstr@arm.com>
2949
2950         PR67609
2951         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
2952         * config/aarch64/aarch64.c
2953         (aarch64_cannot_change_mode_class): Remove function.
2954         * config/aarch64/aarch64-protos.h
2955         (aarch64_cannot_change_mode_class): Remove.
2956
2957 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2958
2959         * cfgloop.c (record_niter_bound): Record likely upper bounds.
2960         (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
2961         get_likely_max_loop_iterations_int): New.
2962         * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
2963         any_likely_upper_bound.
2964         (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
2965         Declare.
2966         * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
2967         * loop-unroll.c (unroll_loop_constant_iterations): Update likely
2968         upper bound.
2969         (unroll_loop_constant_iterations): Likewise.
2970         (unroll_loop_runtime_iterations): Likewise.
2971         * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
2972         * lto-streamer-out.c (output_cfg): Likewise.
2973         * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
2974         bounds.
2975         (canonicalize_loop_induction_variables): Dump likely upper bounds.
2976         * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
2977         (likely_max_loop_iterations): New.
2978         (likely_max_loop_iterations_int): New.
2979         (likely_max_stmt_executions): New.
2980         * tree-ssa-loop-niter.h (likely_max_loop_iterations,
2981         likely_max_loop_iterations_int, likely_max_stmt_executions_int,
2982         likely_max_stmt_executions): Declare.
2983
2984 2016-05-27  Marek Polacek  <polacek@redhat.com>
2985
2986         PR middle-end/71308
2987         * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
2988
2989 2016-05-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2990
2991         * config/s390/s390.md (2x risbg splitters): Use
2992         reg_overlap_mentioned_p instead of rtx_equal_p.
2993
2994 2016-05-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
2995
2996         * combine.c (make_compound_operation): Take known zero bits into
2997         account when checking for possible zero_extend.
2998
2999 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3000
3001         * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
3002         Use const_int_operand for operand 2 predicate.  Simplify expand code
3003         as a result.
3004
3005 2016-05-27  Ilya Enkovich  <ilya.enkovich@intel.com>
3006
3007         PR middle-end/71279
3008         * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
3009         into comparison.
3010
3011 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3012
3013         * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
3014         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
3015         that returns CC_SESWPmode and CC_ZESWPmode.
3016         (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
3017         and CC_SESWPmode.
3018         (aarch64_rtx_costs): Likewise.
3019
3020 2016-05-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
3021
3022         * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
3023         for ISA 3.0 min/max support.
3024         (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
3025         conditional move support.
3026         (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
3027         rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
3028         available.
3029         * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
3030         conditional moves where the comparison type is different from move
3031         type.
3032         (fp_minmax): New code iterator for smin/smax.
3033         (minmax): New code attributes for min/max.
3034         (SMINMAX): Likewise.
3035         (smax<mode>3): Combine min, max insns into one insn using the
3036         fp_minmax code iterator.  Add support for ISA 3.0 min/max
3037         instructions that don't need -ffast-math.
3038         (s<minmax><mode>3): Likewise.
3039         (smax<mode>3_vsx): Likewise.
3040         (smin<mode>3): Likewise.
3041         (s<minmax><mode>3_vsx): Likewise.
3042         (smin<mode>3_vsx): Likewise.
3043         (pre-VSX min/max splitters): Likewise.
3044         (s<minmax><mode>3_fpr): Likewise.
3045         (movsfcc): Rewrite floating point conditional moves to combine
3046         SFmode/DFmode into a single insn.
3047         (mov<mode>cc): Likewise.
3048         (movdfcc): Likewise.
3049         (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
3050         SFDF2 iterators to handle all combinations.
3051         (fseldfsf4): Likewise.
3052         (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
3053         (fseldfdf4): Likewise.
3054         (fselsfdf4): Likewise.
3055         (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
3056         comparison instructions that set a 0/-1 mask, and use it for
3057         floating point conditional move via XXSEL.
3058         (fpmask<mode>): Likewise.
3059         (xxsel<mode>): Likewise.
3060         * config/rs6000/predicates.md (min_max_operator): Delete, no
3061         longer used.
3062         (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
3063         instructions that generate a 0/-1 mask for use with XXSEL.
3064         * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
3065         say whether floating point min/max is available, either through
3066         FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
3067         (TARGET_MINMAX_DF): Likewise.
3068
3069 2016-05-27  Alan Modra  <amodra@gmail.com>
3070
3071         PR rtl-optimization/71275
3072         * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
3073         for update_equiv_regs and combine_and_move_insns.
3074
3075 2016-05-26  Uros Bizjak  <ubizjak@gmail.com>
3076
3077         * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
3078         if_then_else or cond RTXes to calculate attribute value.
3079         * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
3080         <attr "length_immediate>: Ditto.
3081         (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
3082         * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
3083         (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
3084         <attr "type">: Ditto.
3085         <attr "prefix_data16">: Ditto.
3086         <attr "prefix_extra">: Ditto.
3087         <attr "length_immediate">: Ditto.
3088         <attr "prefix">: Ditto.
3089         (vec_set<mode>_0) <attr "isa">: Ditto.
3090         <attr "prefix_extra">: Ditto.
3091         <attr "length_immediate">: Ditto.
3092         <attr "prefix">: Ditto.
3093         (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
3094         (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
3095         (sse2_storelpd) <attr "prefix_data16">: Ditto.
3096         (sse2_loadhpd) <attr "prefix_data16">: Ditto.
3097         (sse2_loadlpd) <attr "prefix_data16">: Ditto.
3098         <attr "length_immediate">: Ditto.
3099         <attr "prefix">: Ditto.
3100         (sse2_movsd) <attr "length_immediate">: Ditto.
3101         <attr "prefix">: Ditto.
3102         (vec_concatv2df)  <attr "isa">: Ditto.
3103         <attr "prefix">: Ditto.
3104         (*vec_extractv4si) <attr "prefix_extra">: Ditto.
3105         (*vec_extractv2di_1) <attr "isa">: Ditto.
3106         <attr "type">: Ditto.
3107         <attr "length_immediate">: Ditto.
3108         <attr "prefix_rex">: Ditto.
3109         <attr "prefix_extra">: Ditto.
3110         (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
3111         <attr "prefix_extra">: Ditto.
3112         <attr "length_immediate">: Ditto.
3113         (vec_concatv2di) <attr "isa">: Ditto.
3114         <attr "prefix_extra">: Ditto.
3115         <attr "length_immediate">: Ditto.
3116         <attr "prefix">: Ditto.
3117
3118 2016-05-26  Martin Liska  <mliska@suse.cz>
3119
3120         * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
3121         function.
3122         (operator+): Likewise.
3123         (operator-): Likewise.
3124         (comp_cost::operator+=): Likewise.
3125         (comp_cost::operator-=): Likewise.
3126         (comp_cost::operator/=): Likewise.
3127         (comp_cost::operator*=): Likewise.
3128         (operator<): Likewise.
3129         (operator==): Likewise.
3130         (operator<=): Likewise.
3131         (new_cost): Remove.
3132         (infinite_cost_p): Likewise.
3133         (add_costs): Likewise.
3134         (sub_costs): Likewise.
3135         (compare_costs): Likewise.
3136         (set_group_iv_cost): Use the newly introduced functions.
3137         (get_address_cost): Likewise.
3138         (get_shiftadd_cost): Likewise.
3139         (force_expr_to_var_cost): Likewise.
3140         (split_address_cost): Likewise.
3141         (ptr_difference_cost): Likewise.
3142         (difference_cost): Likewise.
3143         (get_computation_cost_at): Likewise.
3144         (determine_group_iv_cost_generic): Likewise.
3145         (determine_group_iv_cost_address): Likewise.
3146         (determine_group_iv_cost_cond): Likewise.
3147         (autoinc_possible_for_pair): Likewise.
3148         (determine_group_iv_costs): Likewise.
3149         (cheaper_cost_pair): Likewise.
3150         (iv_ca_recount_cost): Likewise.
3151         (iv_ca_set_no_cp): Likewise.
3152         (iv_ca_set_cp): Likewise.
3153         (iv_ca_cost): Likewise.
3154         (iv_ca_new): Likewise.
3155         (iv_ca_dump): Likewise.
3156         (iv_ca_narrow): Likewise.
3157         (iv_ca_prune): Likewise.
3158         (iv_ca_replace): Likewise.
3159         (try_add_cand_for): Likewise.
3160         (try_improve_iv_set): Likewise.
3161         (find_optimal_iv_set): Likewise.
3162
3163 2016-05-26  Richard Sandiford  <richard.sandiford@arm.com>
3164
3165         * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
3166         that internal functions will clobber all caller-saved registers.
3167
3168 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
3169
3170         * config/aarch64/aarch64.c (aarch64_case_values_threshold):
3171         Return a better case_values_threshold when optimizing.
3172
3173 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
3174
3175         * config/aarch64/aarch64-simd.md (aarch64_combinez):
3176         Add ? to integer variant.
3177         (aarch64_combinez_be): Likewise.
3178
3179 2016-05-26  Jakub Jelinek  <jakub@redhat.com>
3180
3181         * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
3182         instead of x constraint.
3183         (vcvtps2ph256<mask_name>): Likewise.
3184
3185         * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
3186         alternative.  Formatting fix.
3187
3188         * config/i386/sse.md
3189         (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
3190         to ...
3191         (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
3192         (*avx_vperm_broadcast_v4sf): Use v constraint instead of x.  Use
3193         maybe_evex prefix instead of vex.
3194         (*avx_vperm_broadcast_<mode>): Use v constraint instead of x.  Handle
3195         EXT_REX_SSE_REG_P (op0) case in the splitter.
3196
3197 2016-05-25  Jeff Law  <law@redhat.com>
3198
3199         PR tree-optimization/71272
3200         * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
3201         Update comments.  Add test for empty path.
3202
3203 2016-05-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
3204
3205         * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
3206         * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
3207         special case builtin.
3208         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
3209         code for ALTIVEC_BUILTIN_VEC_CMPNE.
3210         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
3211         for __builtin_vec_cmpne.
3212
3213 2016-05-25  Eric Botcazou  <ebotcazou@adacore.com>
3214
3215         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
3216         redundant test and bail out if the type of the new operand is not
3217         a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
3218
3219 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
3220
3221         * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
3222         (x_ix86_target_flags_explicit): Remove.
3223         * config/i386/i386.c (ix86_function_specific_save): Do not copy
3224         x_ix86_target_flags_explicit.
3225         (ix86_function_specific_restore): Ditto.
3226
3227 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
3228             H.J. Lu  <hongjiu.lu@intel.com>
3229
3230         PR target/70738
3231         * common/config/i386/i386-common.c
3232         (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
3233         (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
3234         MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
3235         * config/i386/i386.opt (ix86_target_flags): Add new Variable.
3236         (-mgeneral-regs-only): Add new option.
3237         * config/i386/i386.c (ix86_option_override_internal): Don't enable
3238         x87 instructions if only general registers are allowed.
3239         (ix86_target_string): Add ix86_flags argument. Handle additional
3240         flags options through ix86_flags argument.  Update all callers.
3241         * doc/invoke.texi (x86 Options): Document -mgeneral-regs-only.
3242
3243 2016-05-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3244
3245         PR rtl-optimization/66940
3246         * ifcvt.c (noce_get_alt_condition): Check that incrementing or
3247         decrementing desired_val will not overflow before performing these
3248         operations.
3249
3250 2016-05-25  Ilya Verbin  <ilya.verbin@intel.com>
3251
3252         * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
3253         V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
3254         * config/i386/i386.c (enum ix86_builtins): Add
3255         IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
3256         IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
3257         IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
3258         IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
3259         IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
3260         IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
3261         (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
3262         __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
3263         __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
3264         __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
3265         __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
3266         __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
3267         Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
3268         __builtin_ia32_cvtps2dq512_mask.
3269         (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
3270         V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
3271         (ix86_builtin_vectorized_function): Handle builtins mentioned above.
3272         * config/i386/sse.md
3273         (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
3274         Rename to ...
3275         (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
3276         (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
3277         to ...
3278         (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
3279         (avx512f_vec_pack_sfix_v8df): New define_expand.
3280         (avx512f_roundpd512): Rename to ...
3281         (avx512f_round<castmode>512): ... this.  Change iterator.
3282         (avx512f_roundps512_sfix): New define_expand.
3283         (round<mode>2_sfix): Change iterator.
3284
3285 2016-05-25  Nick Clifton  <nickc@redhat.com>
3286
3287         * config/msp430/msp430.c (msp430_attr): Produce an error if a
3288         static interrupt handler is detected.
3289         * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
3290         default linker script.
3291         * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
3292         the low part of a symbolic pointer.
3293
3294 2016-05-25  Richard Biener  <rguenther@suse.de>
3295
3296         PR tree-optimization/71261
3297         * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
3298         interesting stmt instead of immediate uses when looking
3299         for the use operand to replace.
3300
3301 2016-05-25  Martin Liska  <mliska@suse.cz>
3302
3303         * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
3304
3305 2016-05-25  Richard Biener  <rguenther@suse.de>
3306
3307         PR tree-optimization/71264
3308         * tree-vect-stmts.c (vect_init_vector): Properly deal with
3309         vector type val.
3310
3311 2016-05-25  Martin Liska  <mliska@suse.cz>
3312
3313         PR tree-optimization/71239
3314         * tree.c (array_at_struct_end_p): Do not call operand_equal_p
3315         if DECL_SIZE is NULL.
3316
3317 2016-05-25  Richard Biener  <rguenther@suse.de>
3318
3319         * timevar.def (TV_TREE_LOOP_IFCVT): Add.
3320         * tree-if-conv.c (pass_data_if_conversion): Use it.
3321
3322 2016-05-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3323
3324         * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
3325         * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
3326         * varpool.c (varpool_node::get_availability): Likewise.
3327
3328 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
3329
3330         * config/rs6000/altivec.md (VNEG iterator): New iterator for
3331         VNEGW/VNEGD instructions.
3332         (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
3333         (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
3334         support for ISA 3.0 VNEGW/VNEGD instructions.
3335
3336 2016-05-24  Cesar Philippidis  <cesar@codesourcery.com>
3337
3338         * gimplify.c (omp_notice_variable): Use zero-length arrays for data
3339         pointers inside OACC_DATA regions.
3340         (gimplify_scan_omp_clauses): Prune firstprivate clause associated
3341         with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
3342         (gimplify_adjust_omp_clauses): Fix typo in comment.
3343
3344 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
3345
3346         * config/rs6000/altivec.md (VParity): New mode iterator for vector
3347         parity built-in functions.
3348         (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
3349         zeros.
3350         (p9v_parity<mode>2): Likewise.
3351         * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
3352         parity.
3353         (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
3354         (parity<mode>2): ISA 3.0 expander for vector parity.
3355         * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
3356         power9 built-ins.
3357         (BU_P9_64BIT_MISC_0): Likewise.
3358         (BU_P9_MISC_0): Likewise.
3359         (BU_P9V_AV_1): Likewise.
3360         (BU_P9V_AV_2): Likewise.
3361         (BU_P9V_AV_3): Likewise.
3362         (BU_P9V_AV_P): Likewise.
3363         (BU_P9V_VSX_1): Likewise.
3364         (BU_P9V_OVERLOAD_1): Likewise.
3365         (BU_P9V_OVERLOAD_2): Likewise.
3366         (BU_P9V_OVERLOAD_3): Likewise.
3367         (VCTZB): Add vector count trailing zeros support.
3368         (VCTZH): Likewise.
3369         (VCTZW): Likewise.
3370         (VCTZD): Likewise.
3371         (VPRTYBD): Add vector parity support.
3372         (VPRTYBQ): Likewise.
3373         (VPRTYBW): Likewise.
3374         (VCTZ): Add overloaded vector count trailing zeros support.
3375         (VPRTYB): Add overloaded vector parity support.
3376         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3377         overloaded vector count trailing zeros and parity instructions.
3378         * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
3379         vector parity support.
3380         * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
3381         trailing zeros support.
3382         (vec_cntlz): Likewise.
3383         (vec_vctzb): Likewise.
3384         (vec_vctzd): Likewise.
3385         (vec_vctzh): Likewise.
3386         (vec_vctzw): Likewise.
3387         (vec_vprtyb): Add ISA 3.0 vector parity support.
3388         (vec_vprtybd): Likewise.
3389         (vec_vprtybw): Likewise.
3390         (vec_vprtybq): Likewise.
3391         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
3392         the ISA 3.0 vector count trailing zeros and vector parity built-in
3393         functions.
3394
3395 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
3396
3397         * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
3398         when there is stmt_to_insert.
3399
3400 2016-05-24  Martin Sebor  <msebor@redhat.com>
3401
3402         PR c++/71147
3403         * tree.h (complete_or_array_type_p): New inline function.
3404
3405 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
3406
3407         * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
3408         * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
3409         rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
3410
3411         * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
3412         Limit 1st alternative to noavx isa, split 2nd alternative into one
3413         noavx and one avx alternative, use *x and Bm in the former and
3414         x and m in the latter.
3415
3416         * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
3417         of sse4 for the first alternative, drop %v from the template
3418         and d operand modifier.  Split second alternative into one sse4_noavx
3419         and one avx alternative, use *x instead of *v in the former and v
3420         instead of *v in the latter.
3421         (*sse4_1_extractps): Use noavx isa instead of * for the first
3422         alternative, drop %v from the template.  Split second alternative into
3423         one noavx and one avx alternative, use *x instead of *v in the
3424         former and v instead of *v in the latter.
3425         (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
3426         with noavx and the last one with avx.
3427         (sse4_1_phminposuw): Guard first alternative with noavx isa,
3428         split the second one into one noavx and one avx alternative,
3429         use *x and Bm in the former and x and m in the latter one.
3430         (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
3431         alternatives.
3432
3433         * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
3434         first two alternatives to noavx, use *x instead of *v in the second
3435         one, add avx alternative without *.
3436         (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
3437         sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
3438         sse4_1_<code>v2siv2di2<mask_name>): Likewise.
3439
3440 2016-05-24  Jeff Law  <law@redhat.com>
3441
3442         * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
3443         New function, extracted from...
3444         (fsm_find_control_statement_thread_paths): Here.  Use the new function.
3445         Allow simple copies and constant initializations in the SSA chain.
3446
3447 2016-05-24  Marek Polacek  <polacek@redhat.com>
3448
3449         PR c/71249
3450         * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
3451         scope.
3452
3453 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
3454
3455         PR c++/71257
3456         * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
3457         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
3458         SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.  Add
3459         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
3460         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
3461
3462 2016-05-24  Richard Biener  <rguenther@suse.de>
3463
3464         PR tree-optimization/71240
3465         * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
3466         has integral type.
3467
3468 2016-05-24  Richard Biener  <rguenther@suse.de>
3469
3470         PR tree-optimization/71230
3471         * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
3472
3473 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
3474
3475         * tree-vectorizer.h (vectorizable_comparison): Delete.
3476         * tree-vect-loop.c (vectorizable_reduction): Remove redundant
3477         PURE_SLP_STMT check.
3478         * tree-vect-stmts.c (vectorizable_call): Likewise.
3479         (vectorizable_simd_clone_call): Likewise.
3480         (vectorizable_conversion): Likewise.
3481         (vectorizable_assignment): Likewise.
3482         (vectorizable_shift): Likewise.
3483         (vectorizable_operation): Likewise.
3484         (vectorizable_load): Likewise.
3485         (vectorizable_condition): Likewise.
3486         (vectorizable_store): Likewise.  Assert that we don't have
3487         hybrid SLP.
3488         (vectorizable_comparison): Make static.  Remove redundant
3489         PURE_SLP_STMT check.
3490         (vect_transform_stmt): Assert that we always have an slp_node
3491         if PURE_SLP_STMT.
3492
3493 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3494
3495         * config/arm/neon.md (ashldi3_neon):  Replace comparison of INTVAL of
3496         operands[2] against 1 with comparison against CONST1_RTX.
3497         (<shift>di3_neon): Likewise.
3498         * config/arm/predicates.md (const0_operand): Replace with comparison
3499         against CONST0_RTX.
3500
3501 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3502
3503         * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
3504         operands[2] against 1 with comparison against CONST1_RTX.
3505         (ashrdi3): Likewise.
3506         (lshrdi3): Likewise.
3507         (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
3508         UINTVAL.
3509         (ashrsi3): Likewise.
3510         (lshrsi3): Likewise.
3511         (rotrsi3): Likewise.
3512         (define_split above *compareqi_eq0): Likewise.
3513         (define_split above "prologue"): Likewise.
3514         * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
3515         * config/arm/predicates.md (shift_operator): Likewise.
3516         (shift_nomul_operator): Likewise.
3517         (sat_shift_operator): Likewise.
3518         (thumb1_cmp_operand): Likewise.
3519         (const_neon_scalar_shift_amount_operand): Replace manual range
3520         check with IN_RANGE.
3521         * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
3522         Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
3523
3524 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3525
3526         * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
3527         with HOST_WIDE_INT_1.
3528         (insv): Likewise.
3529         * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
3530         1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
3531         (arm_canonicalize_comparison): Likewise.
3532         (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
3533         HOST_WIDE_INT_1.
3534         (thumb1_size_rtx_costs): Likewise.
3535         (vfp_const_double_index): Replace cast of 1 to unsigned
3536         HOST_WIDE_INT with HOST_WIDE_INT_1U.
3537         (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
3538         HOST_WIDE_INT_1.
3539         (arm_asan_shadow_offset): Replace cast of 1 to unsigned
3540         HOST_WIDE_INT with HOST_WIDE_INT_1U.
3541         * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
3542         HOST_WIDE_INT with HOST_WIDE_INT_1.
3543
3544 2016-05-24  Marek Polacek  <polacek@redhat.com>
3545
3546         * tree-cfg.h (should_remove_lhs_p): New predicate.
3547         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
3548         * gimplify.c (gimplify_modify_expr): Likewise.
3549         * tree-cfg.c (verify_gimple_call): Likewise.
3550         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
3551         * gimple-fold.c: Include "tree-cfg.h".
3552         (gimple_fold_call): Use should_remove_lhs_p.
3553
3554 2016-05-24  Richard Biener  <rguenther@suse.de>
3555
3556         PR tree-optimization/71253
3557         * cfganal.h (control_dependences): Make robust against edge
3558         and BB removal.
3559         (control_dependences::control_dependences): Remove edge_list argument.
3560         (control_dependences::get_edge): Remove.
3561         (control_dependences::get_edge_src): Add.
3562         (control_dependences::get_edge_dest): Likewise.
3563         (control_dependences::m_el): Make a vector of edge src/dest index.
3564         * cfganal.c (control_dependences::find_control_dependence): Adjust.
3565         (control_dependences::control_dependences): Likewise.
3566         (control_dependences::~control_dependence): Likewise.
3567         (control_dependences::get_edge): Remove.
3568         (control_dependences::get_edge_src): Add.
3569         (control_dependences::get_edge_dest): Likewise.
3570         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
3571         get_edge_src.
3572         (perform_tree_ssa_dce): Adjust.
3573         * tree-loop-distribution.c (create_edge_for_control_dependence): Use
3574         get_edge_src.
3575         (pass_loop_distribution::execute): Adjust.  Do loop destroying
3576         conditional on changed.
3577
3578 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3579
3580         PR target/69857
3581         * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
3582         return.  Reindent transformation comment and mention the ARM state
3583         behavior.
3584
3585 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
3586
3587         PR middle-end/71252
3588         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
3589         after build_and_add_sum creates new use stmt.
3590
3591 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
3592
3593         * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
3594         load_lanes/grouped_load classification comes first.  Don't check
3595         whether the vectorization factor is a multiple of the group size
3596         for load_lanes.
3597
3598 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
3599
3600         * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
3601         GROUP_GAP for single-element interleaving.
3602         * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
3603         variable.
3604
3605 2016-05-24  Richard Biener  <rguenther@suse.de>
3606
3607         PR middle-end/70434
3608         PR c/69504
3609         * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
3610         bases which are accessed with non-invariant indices.
3611         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
3612         constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
3613
3614 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
3615
3616         PR middle-end/71170
3617         * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
3618         (add_to_ops_vec): Add stmt_to_insert.
3619         (add_repeat_to_ops_vec): Init stmt_to_insert.
3620         (insert_stmt_before_use): New.
3621         (transform_add_to_multiply): Remove mult_stmt insertion and add it
3622         to ops vector.
3623         (get_ops): Init stmt_to_insert.
3624         (maybe_optimize_range_tests): Likewise.
3625         (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
3626         (rewrite_expr_tree_parallel): Likewise.
3627         (reassociate_bb): Likewise.
3628
3629 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
3630
3631         PR target/71201
3632         * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
3633         ISA 3.0 xxperm fusion alternative.
3634         (altivec_vperm_v8hiv16qi): Likewise.
3635         (altivec_vperm_<mode>_uns_internal): Likewise.
3636         (vperm_v8hiv4si): Likewise.
3637         (vperm_v16qiv8hi): Likewise.
3638
3639 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
3640             Kelvin Nilsen  <kelvin@gcc.gnu.org>
3641
3642         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
3643         vpermr/xxpermr on ISA 3.0.
3644         (altivec_expand_vec_perm_le): Likewise.
3645         * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
3646         (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
3647         ISA 3.0.
3648
3649 2016-05-23  Uros Bizjak  <ubizjak@gmail.com>
3650
3651         * config/i386/i386.h (IS_STACK_MODE): Enable for
3652         TARGET_MIX_SSE_I387.  Rewrite using X87_FLOAT_MODE_P and
3653         SSE_FLOAT_MODE_P macros.
3654         * config/i386/i386.c (ix86_preferred_reload_class): Use
3655         IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
3656         Cleanup regclass processing for CONST_DOUBLE_P.
3657         (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
3658         (ix86_rtx_costs): Remove redundant TARGET_80387 check
3659         with IS_STACK_MODE macro.
3660         * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
3661         with TARGET_SSE2.
3662         (*movdf_internal): Use IS_STACK_MODE macro.
3663         (*movsf_internal): Ditto.
3664
3665 2016-05-23  Marc Glisse  <marc.glisse@inria.fr>
3666
3667         * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
3668         ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
3669
3670 2016-05-23  Jeff Law  <law@redhat.com>
3671
3672         * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
3673         extracted from ...
3674         (fsm_find_control_statement_thread_paths): Call it.
3675
3676 2016-05-23  Martin Jambor  <mjambor@suse.cz>
3677
3678         PR ipa/71234
3679         * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
3680         from_global_constant if t is not NULL.
3681
3682 2016-05-23  Marek Polacek  <polacek@redhat.com>
3683
3684         PR c/49859
3685         * common.opt (Wswitch-unreachable): New option.
3686         * doc/invoke.texi: Document -Wswitch-unreachable.
3687         * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
3688         warning.
3689
3690 2016-05-23  Bin Cheng  <bin.cheng@arm.com>
3691
3692         * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
3693         TMR_INDEX is non-NULL.
3694
3695 2016-05-23  Richard Biener  <rguenther@suse.de>
3696
3697         PR tree-optimization/71230
3698         * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
3699         (try_special_add_to_ops): ... here.  Always test for single-use.
3700
3701 2016-05-23  Martin Jambor  <mjambor@suse.cz>
3702
3703         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
3704         default block if a PHI node in the original one would be resized.
3705
3706 2016-05-23  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
3707
3708         PR tree-optimization/58135
3709         * tree-vect-slp.c: When group size is not multiple
3710         of vector size, allow splitting of store group at
3711         vector boundary.
3712
3713 2016-05-23  Christophe Lyon  <christophe.lyon@linaro.org>
3714
3715         * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
3716
3717 2016-05-22  Jakub Jelinek  <jakub@redhat.com>
3718
3719         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
3720         vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
3721         condition.  For !TARGET_AVX512DQ, emit 32x4 instruction instead
3722         of 64x2.
3723
3724         * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
3725         vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
3726         v constraint instead of x and vinserti32x4 insn.
3727
3728         * config/i386/sse.md (i128vldq): New mode iterator.
3729         (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
3730         avx512dq and avx512vl alternatives.
3731
3732         * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
3733         constraint, use maybe_evex prefix instead of vex.
3734         (vec_dupv4sf): Use v constraint instead of x for output
3735         operand except for noavx alternative, use Yv constraint
3736         instead of x for input.  Use maybe_evex prefix instead of vex.
3737         (*vec_dupv4si): Likewise.
3738         (*vec_dupv2di): Likewise.
3739
3740 2016-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
3741
3742         PR middle-end/40921
3743         * tree-ssa-reassoc.c (try_special_add_to_ops): New.
3744         (linearize_expr_tree): Call try_special_add_to_ops.
3745         (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
3746
3747 2016-05-21  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
3748
3749         * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
3750         to computed stack_usage.
3751
3752 2016-05-21  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
3753
3754         PR target/71103
3755         * config/avr/avr.md (define_expand "mov<mode>"): If the source
3756         operand is subreg (symbol_ref) then move the symbol ref to register.
3757
3758 2016-05-21  Jan Hubicka  <hubicka@ucw.cz>
3759
3760         * tree.c (array_at_struct_end_p): Look through MEM_REF.
3761
3762 2016-05-21  Kugan Vivekanandarajah  <kuganv@linaro.org>
3763
3764         PR middle-end/71179
3765         * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
3766         VECTOR type.
3767
3768 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
3769
3770         * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
3771         ranges by calling get_single_symbol and tidy up.  Look more closely
3772         into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
3773
3774 2016-05-20  Jeff Law  <law@redhat.com>
3775
3776         * bitmap.c (bitmap_find_bit): Remove useless test.
3777
3778 2016-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
3779
3780         * function.c (thread_prologue_and_epilogue_insns): Commit the
3781         insertion of the epilogue.
3782
3783 2016-05-20  Martin Jambor  <mjambor@suse.cz>
3784
3785         PR tree-optimization/70884
3786         * tree-sra.c (initialize_constant_pool_replacements): Do not check
3787         should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
3788         (sort_and_splice_var_accesses): Do not consider multiple scalar reads
3789         of constant pool data as a reason for scalarization.
3790
3791 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
3792
3793         * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
3794         for naked functions.
3795         (thumb1_expand_prologue): Likewise.
3796
3797 2016-05-20  Nathan Sidwell  <nathan@acm.org>
3798
3799         * config/nvptx/nptx.c (nvptx_option_override): Only set
3800         flag_toplevel_reorder, if not explicitly specified.  Set
3801         flag_no_common, unless explicitly specified.
3802
3803 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
3804
3805         * calls.c (can_implement_as_sibling_call_p): Mark param
3806         reg_parm_stack_space with ATTRIBUTE_UNUSED.
3807
3808 2016-05-20  Uros Bizjak  <ubizjak@gmail.com>
3809
3810         * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
3811         Use IS_STACK_MODE when calculating cost of standard 80387 constants.
3812         Fallthru to CONST_VECTOR case to calculate cost of standard SSE
3813         constants.
3814         <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
3815         (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
3816         and CASE_CONST_ANY.
3817
3818 2016-05-20  Cesar Philippidis  <cesar@codesourcery.com>
3819
3820         * config/nvptx/nvptx.md (sincossf3): New pattern.
3821
3822 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
3823
3824         * calls.c (maybe_complain_about_tail_call): New function.
3825         (initialize_argument_information): Call
3826         maybe_complain_about_tail_call when clearing *may_tailcall.
3827         (can_implement_as_sibling_call_p): Call
3828         maybe_complain_about_tail_call when returning false.
3829         (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
3830         ensure try_tail_call is set.  Call maybe_complain_about_tail_call
3831         if tail-call optimization fails.
3832         * cfgexpand.c (expand_call_stmt): Initialize
3833         CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
3834         * gimple-pretty-print.c (dump_gimple_call): Dump
3835         gimple_call_must_tail_p.
3836         * gimple.c (gimple_build_call_from_tree): Call
3837         gimple_call_set_must_tail with the value of
3838         CALL_EXPR_MUST_TAIL_CALL.
3839         * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
3840         (gimple_call_set_must_tail): New function.
3841         (gimple_call_must_tail_p): New function.
3842         * print-tree.c (print_node): Update printing of TREE_STATIC
3843         to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
3844         * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
3845         trailing comment listing applicable flags.
3846         * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
3847
3848 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
3849
3850         * calls.c (expand_call): Move "Rest of purposes for tail call
3851         optimizations to fail" to...
3852         (can_implement_as_sibling_call_p): ...this new function, and
3853         split into multiple "if" statements.
3854
3855 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
3856
3857         * cfgloop.h (expected_loop_iterations_unbounded,
3858         expected_loop_iterations): Unconstify.
3859         * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
3860         profile with known upper bound; return 3 when profile is absent.
3861         (expected_loop_iterations): Update.
3862
3863 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
3864
3865         * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
3866         and get_max_loop_iterations_int.
3867
3868 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
3869
3870         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
3871         realistic upper bounds here.
3872
3873 2016-05-20  Jakub Jelinek  <jakub@redhat.com>
3874
3875         PR c++/71210
3876         * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
3877         calls if the LHS is variable length or has addressable type.
3878         If targets[0]->decl is a noreturn call with void return type and
3879         zero arguments, adjust fntype and remove lhs in that case.
3880
3881 2016-05-20  Marc Glisse  <marc.glisse@inria.fr>
3882
3883         PR tree-optimization/71079
3884         PR tree-optimization/71206
3885         * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
3886
3887 2016-05-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3888
3889         * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
3890         (get_vec_alignment_for_array_decl): Likewise.
3891         (get_vec_alignment_for_record_decl): Likewise.
3892         (increase_alignment::execute): Move code to find alignment to
3893         get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
3894         (type_align_map): New hash_map.
3895
3896 2016-05-20  Richard Guenther  <rguenther@suse.de>
3897
3898         PR tree-optimization/29756
3899         * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
3900         * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
3901         * fold-const.c (operand_equal_p): Likewise.
3902         (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
3903         * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
3904         * tree-inline.c (estimate_operator_cost): Likewise.
3905         * tree-pretty-print.c (dump_generic_node): Likewise.
3906         * tree-ssa-operands.c (get_expr_operands): Likewise.
3907         * cfgexpand.c (expand_debug_expr): Likewise.
3908         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
3909         * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
3910         * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
3911         * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
3912         vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
3913         (execute_update_addresses_taken): Do it.
3914
3915 2016-05-20  Richard Biener  <rguenther@suse.de>
3916
3917         PR tree-optimization/71185
3918         * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
3919         register operations.
3920
3921 2016-05-20  Richard Biener  <rguenther@suse.de>
3922
3923         * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
3924         gimple_seq_add_seq_without_update.
3925         (release_bb_predicate): Assert we have no operands to free.
3926         (if_convertible_loop_p_1): Calculate post dominators later.
3927         Do not free BB predicates here.
3928         (combine_blocks): Do not recompute BB predicates.
3929         (version_loop_for_if_conversion): Save BB predicates around
3930         loop versioning.
3931
3932 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
3933
3934         * function.c (make_epilogue_seq): Remove epilogue_end parameter.
3935         (thread_prologue_and_epilogue_insns): Remove bb_flags.  Restructure
3936         code.  Ignore sibcalls on EDGE_IGNORE edges.
3937         * shrink-wrap.c (handle_simple_exit): New function.  Set EDGE_IGNORE
3938         on edges for sibcalls that run without prologue.  The rest of the
3939         function is combined from...
3940         (fix_fake_fallthrough_edge): ... this, and ...
3941         (try_shrink_wrapping): ... a part of this.  Remove the bb_with
3942         function argument, make it a local variable.
3943
3944 2016-05-19  Sandra Loosemore  <sandra@codesourcery.com>
3945
3946         * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
3947         --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
3948         for 32-bit mode and SEH for 64-bit.
3949         * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
3950         TARGET_64BIT_DEFAULT.
3951
3952 2016-05-19  Ryan Burn  <contact@rnburn.com>
3953
3954         * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
3955         * gengtype.c (open_base_files): Add cilk.h to ifiles.
3956
3957 2016-05-19  Uros Bizjak  <ubizjak@gmail.com>
3958
3959         * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
3960         force pending loads from memory.
3961
3962 2016-05-19  Kelvin Nilsen  <kelvin@gcc.gnu.org>
3963
3964         * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
3965         (UNSPEC_DARN_32): New unspec constant.
3966         (UNSPEC_DARN_RAW): New unspec constant.
3967         (darn_32): New instruction.
3968         (darn_raw): New instruction.
3969         (darn): New instruction.
3970         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
3971         support and documentation for this macro.
3972         (BU_P9_MISC_1): New macro definition.
3973         (BU_P9_64BIT_MISC_0): New macro definition.
3974         (BU_P9_MISC_0): New macro definition.
3975         (darn_32): New builtin definition.
3976         (darn_raw): New builtin definition.
3977         (darn): New builtin definition.
3978         * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
3979         RS6000_BUILTIN_0 directives to surround each occurrence of
3980         #include "rs6000-builtin.def".
3981         (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
3982         RS6000_BTM_64BIT flags to the returned mask, depending on
3983         configuration.
3984         (def_builtin): Correct an error in the assignments made to the
3985         debugging variable attr_string.
3986         (rs6000_expand_builtin): Add support for no-operand built-in
3987         functions.
3988         (builtin_function_type): Remove fatal_error assertion that is no
3989         longer valid.
3990         (rs6000_common_init_builtins): Add support for no-operand built-in
3991         functions.
3992         * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
3993         definition.
3994         (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
3995         definition.
3996         (RS6000_BTM_64BIT): New macro definition.
3997         * doc/extend.texi: Document __builtin_darn (void),
3998         __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
3999         functions.
4000
4001 2016-05-19  Jan Hubicka  <hubicka@ucw.cz>
4002
4003         * tree-vect-loop.c (vect_analyze_loop_2): Use also
4004         max_loop_iterations_int.
4005
4006 2016-05-19  Marek Polacek  <polacek@redhat.com>
4007
4008         PR tree-optimization/71031
4009         * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
4010         condition and adjust the code a bit.
4011
4012 2016-05-19  Martin Liska  <mliska@suse.cz>
4013
4014         * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
4015         auto_vec instead of vec.
4016
4017 2016-05-19  Martin Liska  <mliska@suse.cz>
4018
4019         * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
4020
4021 2016-05-19  Martin Liska  <mliska@suse.cz>
4022
4023         * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
4024
4025 2016-05-19  Martin Liska  <mliska@suse.cz>
4026
4027         * ipa-pure-const.c (set_function_state): Remove an existing
4028         funct_state.
4029         (remove_node_data): Do not free it as it's released
4030         in set_function_state.
4031
4032 2016-05-19  Martin Liska  <mliska@suse.cz>
4033
4034         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
4035         bitmap.
4036
4037 2016-05-19  Martin Liska  <mliska@suse.cz>
4038
4039         * omp-simd-clone.c (simd_clone_adjust): Release vector.
4040
4041 2016-05-19  Martin Liska  <mliska@suse.cz>
4042
4043         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
4044         an auto_vec instead of re-creating it.
4045
4046 2016-05-19  Martin Liska  <mliska@suse.cz>
4047
4048         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
4049         auto_vec instead of vec.
4050
4051 2016-05-19  Martin Liska  <mliska@suse.cz>
4052
4053         * lto-section-in.c (lto_get_section_data): Call
4054         lto_check_version with additional argument.
4055         * lto-streamer.c (lto_check_version): Add new argument.
4056         * lto-streamer.h (lto_check_version): Likewise.
4057
4058 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4059
4060         * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
4061         Don't add cost of inner memory when handling sign-extended loads.
4062
4063 2016-05-19  Ilya Enkovich  <ilya.enkovich@intel.com>
4064
4065         PR rtl-optimization/71148
4066         * cse.c (cse_main): Free dominance info.
4067         (rest_of_handle_cse): Don't free dominance info.
4068         (rest_of_handle_cse2): Likewise.
4069         (rest_of_handle_cse_after_global_opts): Likewise.
4070
4071 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4072
4073         PR target/71056
4074         * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
4075         NULL_TREE early if NEON is not available.  Remove now redundant check
4076         in ARM_CHECK_BUILTIN_MODE.
4077
4078 2016-05-19  Maxim Ostapenko  <m.ostapenko@samsung.com>
4079
4080         PR sanitizer/64354
4081         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
4082         builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
4083         * doc/cpp.texi: Document new macros.
4084
4085 2016-05-19 Bin Cheng  <bin.cheng@arm.com>
4086
4087         PR tree-optimization/69848
4088         * tree-vect-loop.c (vectorizable_reduction): Don't factor
4089         comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
4090
4091 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
4092
4093         * function.c (thread_prologue_and_epilogue_insn): Move the
4094         "goto epilogue_done" one block later.
4095
4096 2016-05-19  Richard Biener  <rguenther@suse.de>
4097
4098         PR tree-optimization/70729
4099         * passes.def: Move LIM pass before PRE.  Remove no longer
4100         required copyprop and move first DCE out of the loop pipeline.
4101
4102 2016-05-18  David Malcolm  <dmalcolm@redhat.com>
4103
4104         PR driver/69265
4105         * Makefile.in (GCC_OBJS): Move spellcheck.o to...
4106         (OBJS-libcommon-target): ...here.
4107         * opts-common.c: Include spellcheck.h.
4108         (cmdline_handle_error): Build a vec of valid options and use it
4109         to suggest provide hints for misspelled arguments.
4110
4111 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
4112
4113         PR c++/71100
4114         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
4115         lhs if it has TREE_ADDRESSABLE type.
4116
4117 2016-05-18  Uros Bizjak  <ubizjak@gmail.com>
4118
4119         PR target/71145
4120         * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
4121         (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
4122
4123 2016-05-18  Martin Jambor  <mjambor@suse.cz>
4124
4125         PR ipa/69708
4126         * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
4127         input for NOP_EXPR pass-through functions.
4128         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
4129         aggregate global constant VAR_DECLs in constant jump functions.
4130
4131 2016-05-18  Martin Jambor  <mjambor@suse.cz>
4132
4133         PR ipa/69708
4134         * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
4135         from TREE_READONLY parameters.
4136
4137 2016-05-18  Martin Jambor  <mjambor@suse.cz>
4138
4139         PR ipa/69708
4140         * cgraph.h (cgraph_indirect_call_info): New field
4141         guaranteed_unmodified.
4142         * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
4143         to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
4144         appropriate.
4145         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
4146         pass the parameter value to ipa_find_agg_cst_for_param.
4147         * ipa-prop.c (ipa_load_from_parm_agg): New parameter
4148         guaranteed_unmodified, store AA results there instead of bailing out
4149         if present.
4150         (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
4151         (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
4152         (find_constructor_constant_at_offset): New function.
4153         (ipa_find_agg_cst_from_init): Likewise.
4154         (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
4155         static initializers of contants, report back through a new paameter
4156         from_global_constant if that was the case.
4157         (try_make_edge_direct_simple_call): Also pass parameter value to
4158         ipa_find_agg_cst_for_param, check guaranteed_unmodified when
4159         appropriate.
4160         (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
4161         (ipa_read_indirect_edge_info): Likewise.
4162         * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
4163         (ipa_load_from_parm_agg): Likewise.
4164
4165 2016-05-18  Jiong Wang  <jiong.wang@arm.com>
4166
4167         PR rtl-optimization/71150
4168         * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
4169         check.
4170
4171 2016-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
4172
4173         PR target/70915
4174         * config/rs6000/constraints.md (wE constraint): New constraint
4175         for a vector constant that can be loaded with XXSPLTIB.
4176         (wM constraint): New constraint for a vector constant of a 1's.
4177         (wS constraint): New constraint for a vector constant that can be
4178         loaded with XXSPLTIB and a vector sign extend instruction.
4179         * config/rs6000/predicates.md (xxspltib_constant_split): New
4180         predicates for wE/wS constraints.
4181         (xxspltib_constant_nosplit): Likewise.
4182         (easy_vector_constant): Add support for constants that can be
4183         loaded via XXSPLTIB.
4184         (all_ones_constant): New predicate for vector constant with all
4185         1's set.
4186         (splat_input_operand): Add support for ISA 3.0 word splat operations.
4187         * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
4188         return if a constant can be loaded with the ISA 3.0 XXSPLTIB
4189         instruction and possibly with a sign extension.
4190         (output_vec_const_move): Add support for XXSPLTIB. If we are
4191         loading up 0/-1 into Altivec registers, prefer using VSPLTISW
4192         instead of XXLXOR/XXLORC.
4193         (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
4194         operations.
4195         (rs6000_legitimize_reload_address): Likewise.
4196         (rs6000_output_move_128bit): Use output_vec_const_move to emit
4197         constants.
4198         * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
4199         combine VSX_M and VSX_M2 into one iterator.
4200         (VSX_M2): Likewise.
4201         (VSINT_84): New iterators for loading constants with XXSPLTIB.
4202         (VSINT_842): Likewise.
4203         (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
4204         (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
4205         XXSPLTIB instruction.
4206         (xxspltib_<mode>_nosplit): Likewise.
4207         (xxspltib_<mode>_split): New insn to load up constants with
4208         XXSPLTIB and a sign extend instruction.
4209         (vsx_mov<mode>): Replace single move that handled all vector types
4210         with separate 32-bit and 64-bit moves.  Combine the movti_<bit>
4211         moves (when -mvsx-timode is in effect) into the main vector
4212         moves.  Eliminate separate moves for <VSr> <VSa>, where the
4213         preferred register class (<VSr>) is listed first, and the
4214         secondary register class (<VSa>) is listed second with a '?' to
4215         discourage use.  Prefer loading 0/-1 in any VSX register for ISA
4216         3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
4217         that if the register was involved in a slow operation, the
4218         clear/set operation does not wait for the slow operation to
4219         finish.  Adjust the length attributes for 32-bit mode.  Use
4220         rs6000_output_move_128bit and drop the use of the string
4221         instructions for 32-bit movti when -mvsx-timode is in effect.  Use
4222         spacing so that the alternatives and attributes don't generate
4223         long lines, and put things in columns, so that it is easier to
4224         match up the operands and attributes with the insn alternatives.
4225         (vsx_mov<mode>_64bit): Likewise.
4226         (vsx_mov<mode>_32bit): Likewise.
4227         (vsx_movti_64bit): Fold movti into normal vector moves.
4228         (vsx_movti_32bit): Likewise.
4229         (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
4230         splat instructions.
4231         (vsx_splat_v4si_internal): Likewise.
4232         (vsx_splat_v4sf_internal): Likewise.
4233         (vector fusion peepholes): Use VSX_M instead of VSX_M2.
4234         (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
4235         extend vector elements.
4236         (vsx_sign_extend_hi_<mode>): Likewise.
4237         (vsx_sign_extend_si_v2di): Likewise.
4238         * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
4239         declaration.
4240         * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
4241         constraints.  Add trailing period to wL documentation.
4242
4243 2016-05-18  Richard Sandiford  <richard.sandiford@arm.com>
4244
4245         PR middle-end/71020
4246         * tree-dfa.h (replace_abnormal_ssa_names): Declare.
4247         * tree-dfa.c (replace_abnormal_ssa_names): New function.
4248         * tree-call-cdce.c: Include tree-dfa.h.
4249         (can_guard_call_p): New function, extracted from...
4250         (can_use_internal_fn): ...here.
4251         (shrink_wrap_one_built_in_call_with_conds): Remove failure path
4252         and return void.
4253         (shrink_wrap_one_built_in_call): Likewise.
4254         (use_internal_fn): Likewise.
4255         (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
4256         and return void.  Call replace_abnormal_ssa_names.
4257         (pass_call_cdce::execute): Check can_guard_call_p during the
4258         initial walk.  Assume shrink_wrap_conditional_dead_built_in_calls
4259         will always change something.
4260
4261 2016-05-18  Martin Jambor  <mjambor@suse.cz>
4262
4263         PR ipa/70646
4264         * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
4265         if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
4266
4267 2016-05-18  Martin Jambor  <mjambor@suse.cz>
4268
4269         PR ipa/70646
4270         * ipa-inline.h (condition): New field size.
4271         * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
4272         for comaprison and store it into the new condition.
4273         (evaluate_conditions_for_known_args): Use condition size to check
4274         access sizes for all but CHANGED conditions.
4275         (unmodified_parm_1): New parameter size_p, store access size into it.
4276         (unmodified_parm): Likewise.
4277         (unmodified_parm_or_parm_agg_item): Likewise.
4278         (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
4279         (set_cond_stmt_execution_predicate): Extract access sizes and store
4280         them to conditions.
4281         (set_switch_stmt_execution_predicate): Likewise.
4282         (will_be_nonconstant_expr_predicate): Likewise.
4283         (will_be_nonconstant_predicate): Likewise.
4284         (inline_read_section): Stream condition size.
4285         (inline_write_summary): Likewise.
4286
4287 2016-05-18  Richard Biener  <rguenther@suse.de>
4288
4289         * tree-ssa-loop-im.c (determine_max_movement): Properly add
4290         condition cost to PHI cost instead of total_cost.
4291
4292 2016-05-18  Martin Liska  <mliska@suse.cz>
4293
4294         PR fortran/70856
4295         * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
4296         merged variables.
4297
4298 2016-05-18  Richard Biener  <rguenther@suse.de>
4299
4300         * lto-streamer.h (LTO_major_version): Bump to 6.
4301
4302 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
4303
4304         * function.c (make_split_prologue_seq, make_prologue_seq,
4305         make_epilogue_seq): New functions, factored out from...
4306         (thread_prologue_and_epilogue_insns): Here.
4307
4308 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
4309
4310         * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
4311         cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
4312         of before.  Add a comment.
4313
4314 2016-05-18 Bin Cheng  <bin.cheng@arm.com>
4315
4316         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
4317         expression pointer, not pointer to the pointer.
4318
4319 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
4320
4321         * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
4322         (avx2_pbroadcast<mode>): Add another alternative with v instead
4323         of x constraints in it, using <pbroadcast_evex_isa> isa.
4324         (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
4325
4326         * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
4327         constraint x instead of v in second alternative, add avx512bw
4328         alternative.
4329
4330         * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
4331         constraint x instead of v in second alternative, add avx512bw
4332         alternative.
4333
4334         * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
4335         constraint x instead of v in second alternative, add avx512bw
4336         alternative.
4337
4338         * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
4339         avx512bw alternative.
4340
4341 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
4342
4343         * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
4344         array to 128 chars.
4345         (define_insn "*andnottf3"): Ditto.
4346         (define_insn "*<code><mode>3"/any_logic): Ditto.
4347         (define_insn "*<code>tf3"/any_logic): Ditto.
4348         (define_insn "sse2_storehpd"): Use Yv constraint for scalar
4349         operand to block AVX-512VL insn variant emit when it is not enabled.
4350
4351 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
4352
4353         * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
4354         constraint fot SF mode.
4355
4356 2016-05-18  Petr Murzin  <petr.murzin@intel.com>
4357             Kirill Yukhin  <kirill.yukhin@intel.com>
4358
4359         * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
4360         modifiers.
4361         (define_insn "rsqrt14<mode>"): Ditto.
4362         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
4363         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
4364         (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
4365         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
4366         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
4367         Ditto.
4368         (define_insn "*avx512f_gatherdi<mode>"): Ditto.
4369         (define_insn "*avx512f_scatterdi<mode>"): Ditto.
4370         * config/i386/i386.c (ix86_print_operand): Expand check for size
4371         override codes for Intel syntax.
4372
4373 2016-05-18  Richard Biener  <rguenther@suse.de>
4374
4375         PR tree-optimization/71168
4376         * tree-loop-distribution.c (distribute_loop): Move *destroy_p
4377         initialization earlier.
4378
4379 2016-05-18  James Greenhalgh  <james.greenhalgh@arm.com>
4380
4381         * config/aarch64/aarch64-simd.md
4382         (aarch64_reduc_plus_internal<mode>): Rename to...
4383         (reduc_plus_scal): ...This, and remove previous implementation.
4384
4385 2016-05-18  Richard Biener  <rguenther@suse.de>
4386
4387         * passes.def: Put late dse and cd_dce in canonical order.
4388
4389 2016-05-17  Jan Hubicka  <hubicka@ucw.cz>
4390
4391         * ipa-inline-transform.c (preserve_function_body_p): Look for
4392         first non-thunk clone.
4393         (save_function_body): Save into first non-thunk.
4394         * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
4395         up call stmt id.
4396         (lto_output_node): Inline thunks don't need body in every
4397         partition.
4398         * lto-streamer-in.c: Do not fixup thunk clones.
4399         * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
4400         thunks.
4401         * tree-inline.c (copy_bb): Be prepared for target node to be new after
4402         folding suceeds.
4403
4404 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
4405
4406         PR middle-end/63586
4407         * tree-ssa-reassoc.c (transform_add_to_multiply): New.
4408         (reassociate_bb): Call transform_add_to_multiply.
4409
4410 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
4411
4412         * config/aarch64/aarch64.c (all_extensions): Removed unused
4413         static variable.
4414
4415 2016-05-17  Nathan Sidwell  <nathan@acm.org>
4416
4417         * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
4418         (TARGET_FUNCTION_ARG_BOUNDARY): Override.
4419
4420 2016-05-17  Mikhail Maltsev  <maltsevm@gmail.com>
4421
4422         PR tree-optimization/54579
4423         PR middle-end/55299
4424         * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
4425
4426 2016-05-17  Marek Polacek  <polacek@redhat.com>
4427
4428         PR ipa/71146
4429         * tree-inline.c (expand_call_inline): Call
4430         maybe_remove_unused_call_args.
4431
4432 2016-05-17  Jim Wilson  <jim.wilson@linaro.org>
4433
4434         * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
4435         * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
4436         * doc/md.texi (fmin@var{m}3): Likewise.
4437
4438 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
4439
4440         * match.pd (X & C): New transformation.
4441
4442 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
4443
4444         * match.pd (~X & Y): New transformation.
4445
4446 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
4447
4448         * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
4449         information for new SSA_NAME.
4450         (simplify_conversion_using_ranges): Get range through get_range_info
4451         instead of get_value_range.
4452
4453 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
4454
4455         * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
4456         Remove inline assembly.
4457         (vmvn_s16): Likewise.
4458         (vmvn_s32): Likewise.
4459         (vmvn_u8): Likewise.
4460         (vmvn_u16): Likewise.
4461         (vmvn_u32): Likewise.
4462         (vmvnq_s8): Likewise.
4463         (vmvnq_s16): Likewise.
4464         (vmvnq_s32): Likewise.
4465         (vmvnq_u8): Likewise.
4466         (vmvnq_u16): Likewise.
4467         (vmvnq_u32): Likewise.
4468         (vmvn_p8): Likewise.
4469         (vmvnq_p16): Likewise.
4470
4471 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
4472
4473         * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
4474         Use builtin.
4475         (vmul_n_s16): Likewise.
4476         (vmul_n_s32): Likewise.
4477         (vmul_n_u16): Likewise.
4478         (vmul_n_u32): Likewise.
4479         (vmulq_n_f32): Likewise.
4480         (vmulq_n_f64): Likewise.
4481         (vmulq_n_s16): Likewise.
4482         (vmulq_n_s32): Likewise.
4483         (vmulq_n_u16): Likewise.
4484         (vmulq_n_u32): Likewise.
4485
4486 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
4487
4488         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
4489         to all supported modes.  Rename to "*aarch64_mul3_elt_from_dup".
4490
4491 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
4492
4493         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
4494         to *aarch64_fma4_elt_from_dup<mode>.
4495         (*aarch64_fnma4_elt_to_128df): Rename to
4496         *aarch64_fnma4_elt_from_dup<mode>.
4497         * config/aarch64/arm_neon.h (vfma_n_f64): New.
4498         (vfms_n_f32): Likewise.
4499         (vfms_n_f64): Likewise.
4500         (vfmsq_n_f32): Likewise.
4501         (vfmsq_n_f64): Likewise.
4502
4503 2016-05-17  Gerald Pfeifer  <gerald@pfeifer.com>
4504
4505         * wide-int.h: Change fixed_wide_int_storage from class to struct.
4506
4507 2016-05-17  Richard Biener  <rguenther@suse.de>
4508
4509         PR tree-optimization/71132
4510         * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
4511         Only add control dependences for blocks in the loop.
4512         (build_rdg): Adjust.
4513         (generate_code_for_partition): Return whether loop should
4514         be destroyed and delay that.
4515         (distribute_loop): Likewise.
4516         (pass_loop_distribution::execute): Record loops to be destroyed
4517         and perform delayed destroying of loops.
4518
4519 2016-05-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4520
4521         PR target/70809
4522         * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
4523
4524 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
4525
4526         * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
4527
4528 2016-05-17  Ilya Enkovich  <ilya.enkovich@intel.com>
4529
4530         PR target/71114
4531         * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
4532         insertion point for instructions generated by validize_mem.
4533
4534 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
4535
4536         * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
4537         in brackets.
4538
4539 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
4540
4541         * config/aarch64/aarch64.c
4542         (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
4543         rather than a macro.
4544
4545 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
4546
4547         * doc/invoke.texi (AArch64 Options): Various updates.
4548
4549 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4550
4551         * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
4552         into instrumentation thunks.
4553         * cif-code.def (CIF_CHKP): New.
4554
4555 2016-05-16  Uros Bizjak  <ubizjak@gmail.com>
4556
4557         * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
4558
4559 2016-05-16  Martin Jambor  <mjambor@suse.cz>
4560
4561         * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
4562         (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
4563
4564 2016-05-16  Marek Polacek  <polacek@redhat.com>
4565
4566         * gimple.c (maybe_remove_unused_call_args): Fix typos in the
4567         commentary.
4568
4569 2016-05-16  Martin Jambor  <mjambor@suse.cz>
4570
4571         PR hsa/70857
4572         * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
4573         the outlined kernel function.
4574
4575 2016-05-16  Robert Suchanek  <robert.suchanek@imgtec.com>
4576
4577         * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
4578         (ISA_HAS_DLSA): Ditto.
4579
4580 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
4581
4582         * config/mips/m5100.md (m51_int_load): Update the latency to 2.
4583
4584 2016-05-16  Nathan Sidwell  <nathan@acm.org>
4585
4586         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
4587         (nvptx_name_replacement): Restore.  Add comment.
4588         (write_fn_proto, write_fn_proto_from_insn,
4589         nvptx_output_call_insn): Restore
4590         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
4591
4592 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
4593
4594         * config/aarch64/aarch64.md
4595         (add<mode>3_compareC_cconly_imm): Remove use of %w.
4596         (add<mode>3_compareC_imm): Likewise.
4597         (<optab>si3_uxtw): Split into register and immediate variants.
4598         (andsi3_compare0_uxtw): Likewise.
4599         (and<mode>3_compare0): Likewise.
4600         (and<mode>3nr_compare0): Likewise.
4601         (stack_protect_test_<mode>): Don't use %x for memory operands.
4602
4603 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
4604
4605         * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
4606
4607 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
4608
4609         * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
4610         Split integer shifts into shift_reg and bfm.
4611         (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
4612         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
4613         (ror<mode>3_insn): Likewise.
4614         (<optab>si3_insn_uxtw): Likewise.
4615         (<optab><mode>3_insn): Change to rotate_imm.
4616         (extr<mode>5_insn_alt): Likewise.
4617         (extrsi5_insn_uxtw): Likewise.
4618         (extrsi5_insn_uxtw_alt): Likewise.
4619
4620 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
4621
4622         * doc/tm.texi: Regenerate.
4623         * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
4624         (TARGET_INVALID_RETURN_TYPE): Remove.
4625         * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
4626         TARGET_INVALID_RETURN_TYPE.
4627         * target.def (invalid_parameter_type): Remove.
4628         (invalid_return_type): Remove.
4629
4630 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4631
4632         * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
4633         on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
4634         calls from thunk.
4635         * ipa-inline-transform.c (inline_call): When inlining into thunk produce
4636         gimple body.
4637         (preserve_function_body_p): No need to preserve function body
4638         * cif-codes.def (CIF_THUNK): Remove.
4639         * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
4640
4641 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4642
4643         * tree-inline.c (expand_call_inline): recurse after inlining thunk.
4644
4645 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4646
4647         * tree.c (free_lang_data_in_decl): Also set target/optimization flags
4648         for thunks.
4649
4650 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4651
4652         * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
4653         (inline_small_functions): Do not look for function symbol when
4654         resetting caches.
4655
4656 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4657
4658         * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
4659         of inline thunks
4660
4661 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
4662             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4663             Jiong Wang  <jiong.wang@arm.com>
4664
4665         * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
4666         for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
4667         Define __ARM_FP16_ARGS when appropriate.
4668         * config/arm/arm.c (arm_invalid_parameter_type): Remove
4669         declaration.
4670         (arm_invalid_return_type): Likewise.
4671         (TARGET_INVALID_PARAMETER_TYPE): Remove.
4672         (TARGET_INVALID_RETURN_TYPE): Remove.
4673         (aapcs_vfp_sub_candidate): Allow HFmode.
4674         (aapcs_vfp_allocate): Add comment.  Support HFmode.
4675         (aapcs_vfp_allocate_return_reg): Likewise.
4676         (struct aapcs_cp_arg_layout): Slightly reword comments for
4677         is_return_candidate and allocate_return_reg.
4678         (output_mov_vfp): Update assert.
4679         (arm_hard_regno_mode_ok): Remove comment, update HF-mode
4680         condition.
4681         (arm_invalid_parameter_type): Remove.
4682         (amr_invalid_return_type): Remove.
4683         * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
4684         * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
4685         * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
4686
4687 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
4688
4689         * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
4690         * config/aarch64/arch64-protos.h
4691         (aarch64_legitimize_reload_address): Remove.
4692         * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
4693         Remove.
4694
4695 2016-05-16  Eric Botcazou  <ebotcazou@adacore.com>
4696
4697         * configure.ac: Add ACX_NONCANONICAL_HOST.
4698         * configure: Regenerate.
4699         * Makefile.in: Set host_noncanonical.
4700
4701 2016-05-14  Uros Bizjak  <ubizjak@gmail.com>
4702
4703         PR target/71097
4704         * config/i386/i386.md (*movtf_internal): Before register allocation,
4705         do not allow FP constants for CM_MEDIUM memory model, allow only
4706         standard FP constants for CM_LARGE and CM_LARGE_PIC models.
4707         (*movxf_internal): Ditto.
4708         (*movdf_internal): Ditto.
4709         (*movsf_internal): Ditto.
4710
4711 2016-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
4712
4713         PR rtl-optimization/67483
4714         * combine.c (make_compound_operation): Don't call extract_left_shift
4715         with negative shift amounts.
4716
4717 2016-05-13  Jakub Jelinek  <jakub@redhat.com>
4718
4719         PR bootstrap/71071
4720         * fold-const.c (fold_checksum_tree): Allow modification
4721         of TYPE_ALIAS_SET during folding.
4722
4723         * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
4724         ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
4725         (ix86_split_to_parts): Likewise.  Fix up formatting.
4726
4727 2016-05-13  H.J. Lu  <hongjiu.lu@intel.com>
4728
4729         * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
4730         unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
4731         printf format.
4732
4733 2016-05-13  Nathan Sidwell  <nathan@acm.org>
4734
4735         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
4736         (nvptx_name_replacement): Delete.
4737         (write_fn_proto, write_fn_proto_from_insn,
4738         nvptx_output_call_insn): Remove nvptx_name_replacement call.
4739         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
4740         * langhooks.c (add_builtin_funcction_common): Call
4741         targetm.mangle_decl_assembler_name.
4742
4743         * config/nvptx/nvptx.c (write_fn_proto): Handle
4744         BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
4745
4746 2016-05-13  Martin Liska  <mliska@suse.cz>
4747
4748         * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
4749         and PRIu64 in printf format.
4750
4751 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4752
4753         * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
4754         comment.
4755
4756 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4757
4758         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
4759         Change --param max-completely-peeled-times to
4760         --param max-completely-peel-times in dump file printing.
4761
4762 2016-05-13  Richard Biener  <rguenther@suse.de>
4763
4764         PR tree-optimization/42587
4765         * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
4766         (find_bswap_or_nop_1): Likewise.
4767         (bswap_replace): Likewise.
4768
4769 2016-05-13  Martin Liska  <mliska@suse.cz>
4770
4771         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
4772         Initialize a variable with default value.
4773
4774 2016-05-13  Martin Liska  <mliska@suse.cz>
4775
4776         * doc/invoke.texi: Enhance explanation of error recovery
4777         of sanitizers.
4778
4779 2016-05-13  Martin Liska  <mliska@suse.cz>
4780
4781         * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
4782         (struct cost_pair): Change inv_expr_id (int) to inv_expr
4783         (iv_inv_expr_ent *).
4784         (struct iv_inv_expr_ent): Comment struct fields.
4785         (sort_iv_inv_expr_ent): New function.
4786         (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
4787         (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
4788         a hash_map between iv_inv_expr_ent and number of usages.
4789         (niter_for_exit): Fix coding style.
4790         (tree_ssa_iv_optimize_init): Use renamed variable.
4791         (determine_base_object): Fix coding style.
4792         (alloc_iv): Likewise.
4793         (find_interesting_uses_outside): Likewise.
4794         (add_candidate_1): Likewise.
4795         (add_standard_iv_candidates): Likewise.
4796         (set_group_iv_cost): Replace inv_expr_id with inv_expr.
4797         (prepare_decl_rtl): Fix coding style.
4798         (get_address_cost): Likewise.
4799         (get_shiftadd_cost): Likewise.
4800         (force_expr_to_var_cost): Likewise.
4801         (compare_aff_trees): Likewise.
4802         (get_expr_id): Restructure the function.
4803         (get_loop_invariant_expr_id): Renamed to
4804         get_loop_invariant_expr.
4805         (get_computation_cost_at): Replace usage of inv_expr_id with
4806         inv_expr.
4807         (get_computation_cost): Likewise.
4808         (determine_group_iv_cost_generic): Likewise.
4809         (determine_group_iv_cost_address): Likewise.
4810         (iv_period): Fix coding style.
4811         (iv_elimination_compare_lt): Likewise.
4812         (may_eliminate_iv): Likewise.
4813         (determine_group_iv_cost_cond):  Replace usage of inv_expr_id with
4814         inv_expr.
4815         (determine_group_iv_costs): Dump invariant expressions.
4816         (iv_ca_recount_cost): Use the newly added hash_map.
4817         (iv_ca_set_remove_invariants): Fix coding style.
4818         (iv_ca_set_add_invariants): Fix coding style.
4819         (iv_ca_set_no_cp): Utilize the newly added hash_map for used
4820         invariants.
4821         (iv_ca_set_cp): Likewise.
4822         (iv_ca_new): Initialize the newly added hash_map and remove
4823         initialization of fields.
4824         (iv_ca_free): Delete the hash_map.
4825         (iv_ca_dump): Dump invariant expressions.
4826         (iv_ca_extend): Fix coding style.
4827         (try_add_cand_for): Likewise.
4828         (create_new_ivs): Dump information about # of avg iterations and
4829         # of used invariant expressions.
4830         (rewrite_use_compare): Fix coding style.
4831         (free_loop_data): Set default value for max_inv_expr_id.
4832
4833 2016-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
4834
4835         * cse.c (rest_of_handle_cse): Use cleanup_cfg
4836         returned value cse_cfg_altered computation.
4837         (rest_of_handle_cse2): Likewise.
4838         (rest_of_handle_cse_after_global_opts): Likewise.
4839
4840 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4841
4842         PR target/53440
4843         * config/arm/arm.c (arm32_output_mi_thunk): New.
4844         (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
4845         to split Thumb1 vs TARGET_32BIT functionality.
4846         (arm_thumb1_mi_thunk): New.
4847
4848 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4849
4850         * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
4851         to true.
4852
4853 2016-05-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4854
4855         PR target/71080
4856         * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
4857
4858 2016-05-13  Eric Botcazou  <ebotcazou@adacore.com>
4859
4860         * builtins.c (expand_builtin_memcmp): Do not emit the call here.
4861         (expand_builtin_trap): Emit a regular call.
4862         (set_builtin_user_assembler_name): Remove obsolete cases.
4863         * dse.c (scan_insn): Adjust.
4864         * except.c: Include calls.h.
4865         (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
4866         emit a regular call to setjmp.
4867         * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
4868         (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
4869         (emit_block_move_via_libcall): Delete.
4870         (block_move_fn): Delete.
4871         (init_block_move_fn): Likewise.
4872         (emit_block_move_libcall_fn): Likewise.
4873         (emit_block_op_via_libcall): New function.
4874         (set_storage_via_libcall): Tidy up and use memset builtin.
4875         (block_clear_fn): Delete.
4876         (init_block_clear_fn): Likewise.
4877         (clear_storage_libcall_fn): Likewise.
4878         (expand_assignment): Call emit_block_move_via_libcall.
4879         Do not include gt-expr.h.
4880         * expr.h (emit_block_op_via_libcall): Declare.
4881         (emit_block_copy_via_libcall): New inline function.
4882         (emit_block_move_via_libcall): Likewise.
4883         (emit_block_comp_via_libcall): Likewise.
4884         (block_clear_fn): Delete.
4885         (init_block_move_fn): Likewise.
4886         (init_block_clear_fn): Likewise.
4887         (emit_block_move_via_libcall): Likewise.
4888         (set_storage_via_libcall): Add default parameter value.
4889         * libfuncs.h (enum libfunc_index): Remove obsolete values.
4890         (abort_libfunc): Delete.
4891         (memcpy_libfunc): Likewise.
4892         (memmove_libfunc): Likewise.
4893         (memcmp_libfunc): Likewise.
4894         (memset_libfunc): Likewise.
4895         (setbits_libfunc): Likewise.
4896         (setjmp_libfunc): Likewise.
4897         (longjmp_libfunc): Likewise.
4898         (profile_function_entry_libfunc): Likewise.
4899         (profile_function_exit_libfunc): Likewise.
4900         (gcov_flush_libfunc): Likewise.
4901         * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
4902         and DECL_VISIBILITY on the declaration.
4903         (init_optabs): Do not initialize obsolete libfuncs.
4904         * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
4905         * tree-core.h (ECF_RET1): Define.
4906         (ECF_TM_PURE): Adjust.
4907         (ECF_TM_BUILTIN): Likewise.
4908         * tree.c (set_call_expr_flags): Deal with ECF_RET1.
4909         (build_common_builtin_nodes): Initialize abort builtin.
4910         Add ECF_RET1 on memcpy, memmove and memset builtins.
4911         Pass final flags for alloca and alloca_with_align builtins.
4912         * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
4913         obsolete builtins.
4914         * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
4915         * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
4916         set_storage_via_libcall and call emit_block_copy_via_libcall.
4917
4918 2016-05-12  Uros Bizjak  <ubizjak@gmail.com>
4919
4920         * config/i386/i386.md (*call_got_x32): Change operand 0 to
4921         DImode before it is passed to ix86_output_call_operand.
4922         (*call_value_got_x32): Ditto for operand 1.
4923
4924 2016-05-12  Jiong Wang  <jiong.wang@arm.com>
4925
4926         PR rtl-optimization/70904
4927         * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
4928         reload for wide mode.
4929
4930 2016-05-12  Marek Polacek  <polacek@redhat.com>
4931
4932         PR c/70756
4933         * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
4934         * langhooks.c (lhd_incomplete_type_error): Add location parameter.
4935         * langhooks.h (incomplete_type_error): Likewise.
4936         * tree.c (size_in_bytes_loc): Renamed from size_in_bytes.  Add location
4937         parameter, pass it down to incomplete_type_error.
4938         * tree.h (size_in_bytes): New inline overload.
4939         (size_in_bytes_loc): Renamed from size_in_bytes.
4940
4941 2016-05-12  Richard Biener  <rguenther@suse.de>
4942
4943         PR tree-optimization/71059
4944         * tree-ssa-pre.c (phi_translate_1): Fully fold translated
4945         nary before looking up or entering the expression into the VN
4946         hashes.
4947         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
4948         Make sure to re-use NARYs without result as inserted by
4949         phi-translation.
4950
4951 2016-05-12  Richard Biener  <rguenther@suse.de>
4952
4953         PR tree-optimization/71062
4954         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
4955         field.
4956         * tree-ssa-structalias.c (set_uids_in_ptset): Set
4957         vars_contains_restrict if the var is a restrict tag.
4958         * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
4959         do not disambiguate pointers against it.
4960         (dump_points_to_solution): Re-structure and adjust for new
4961         vars_contains_restrict flag.
4962         * gimple-pretty-print.c (pp_points_to_solution): Likewise.
4963
4964 2016-05-12  Martin Liska  <mliska@suse.cz>
4965
4966         * doc/invoke.texi: Explain connection between
4967         -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
4968
4969 2016-05-12  Ilya Enkovich  <ilya.enkovich@intel.com>
4970
4971         PR tree-optimization/71006
4972         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
4973         consider COND_EXPR as a mask producer.
4974
4975 2016-05-12  Marek Polacek  <polacek@redhat.com>
4976
4977         PR driver/71063
4978         * opts.c (common_handle_option): Detect missing argument for --help^.
4979
4980 2016-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4981
4982         PR target/70830
4983         * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
4984         when popping the PC and within an interrupt handler routine.
4985         Add missing tab to output of "ldmfd".
4986         (output_return_instruction): Output LDMFD with SP update rather
4987         than POP when returning from interrupt handler.
4988
4989 2016-05-12  Jakub Jelinek  <jakub@redhat.com>
4990
4991         * config/i386/i386.md (isa): Add x64_avx512dq, enable if
4992         TARGET_64BIT && TARGET_AVX512DQ.
4993         * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
4994         (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
4995         (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
4996         *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
4997         (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
4998         (*vec_extractv4si_zext): Add avx512dq alternative.
4999         (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
5000         use v instead of x constraint in other alternatives where possible.
5001
5002         * config/i386/sse.md (sse2_loadld): Use v instead of x
5003         constraint in alternatives 0,1,4.
5004
5005         * config/i386/sse.md (pinsr_evex_isa): New mode attr.
5006         (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
5007         v constraints instead of x and <pinsr_evex_isa> isa attribute.
5008
5009         PR target/71019
5010         * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
5011         <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
5012         is not emitted unless TARGET_AVX512BW.
5013         (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
5014         Likewise.  For TARGET_AVX512BW, use "=v" constraint instead of "=x"
5015         for the result operand.
5016
5017         * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
5018         constraint instead of x in avx alternatives.  Use maybe_evex instead
5019         of vex prefix.
5020
5021         * config/i386/constraints.md (Yv): New constraint.
5022         * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
5023         TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
5024         * config/i386/i386.md (avx512fvecmode): New mode attr.
5025         (*pushtf): Use v constraint instead of x.
5026         (*movtf_internal): Likewise.  For TARGET_AVX512VL and
5027         xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
5028         (*absneg<mode>2): Use Yv constraint instead of x constraint.
5029         (*absnegtf2_sse): Likewise.
5030         (copysign<mode>3_const, copysign<mode>3_var): Likewise.
5031         * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
5032         avx512f alternatives.
5033         (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
5034
5035 2016-05-12  Richard Biener  <rguenther@suse.de>
5036
5037         PR tree-optimization/71060
5038         * tree-data-ref.c (initialize_data_dependence_relation): Do not
5039         require exact match of DR_BASE_OBJECT but only matching address and
5040         type.
5041
5042 2016-05-12  Richard Biener  <rguenther@suse.de>
5043
5044         PR tree-optimization/70986
5045         * cfganal.c: Include cfgloop.h.
5046         (dfs_find_deadend): Prefer to take edges exiting loops.
5047
5048 2016-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5049
5050         * gcc.target/powerpc/pr70963.c: Require at least power8 at both
5051         compile and run time.
5052
5053 2016-05-11  Mikhail Maltsev  <maltsevm@gmail.com>
5054
5055         PR c/43651
5056         * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
5057
5058 2016-05-11  Uros Bizjak  <ubizjak@gmail.com>
5059
5060         * config/i386/i386.c (legitimize_pic_address): Use
5061         copy_to_suggested_reg instead of gen_movsi.
5062
5063 2016-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
5064
5065         * config/rs6000/predicates.md (quad_memory_operand): Move most of
5066         the code into quad_address_p and call it to share code with
5067         vsx_quad_dform_memory_operand.
5068         (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
5069         d-form support.
5070         * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
5071         bit instead of being a separate word.  Split -mpower9-dform into
5072         two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
5073         * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
5074         for the register class supporting 128-bit quad word memory offsets.
5075         (mode_supports_vsx_dform_quad): Helper function to return if the
5076         register class uses quad word memory offsets.
5077         (rs6000_debug_addr_mask): Add support for quad word memory offsets.
5078         (rs6000_debug_reg_global): Always print if we are using LRA or not.
5079         (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
5080         instructions are enabled, set up the appropriate addr_masks for
5081         128-bit types.
5082         (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
5083         -mpower9-dform-scalar, instead of -mpower9-dform.
5084         (rs6000_option_override_internal): Split -mpower9-dform into two
5085         switches, -mpower9-dform-scalar and -mpower9-dform-vector.  The
5086         -mpower9-dform switch sets or clears both.  If we are not using
5087         the LRA register allocator, do not enable -mpower9-dform-vector by
5088         default.  If we are using LRA, enable -mpower9-dform-vector and
5089         -mvsx-timode if it is appropriate.  Issue a warning if either
5090         -mpower9-dform-vector or -mvsx-timode are explicitly used without
5091         enabling LRA.
5092         (quad_address_offset_p): New helper function to return if the
5093         offset is legal for quad word memory instructions.
5094         (quad_address_p): New function to determin if GPR or vector
5095         register quad word memory addresses are legal.
5096         (mem_operand_gpr): Validate quad word address offsets.
5097         (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
5098         d-form (register + offset) instructions.
5099         (offsettable_ok_by_alignment): Likewise.
5100         (rs6000_legitimate_offset_address_p): Likewise.
5101         (legitimate_lo_sum_address_p): Likewise.
5102         (rs6000_legitimize_address): Likewise.
5103         (rs6000_legitimize_reload_address): Add more debug statements for
5104         -mdebug=addr.
5105         (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
5106         d-form instructions.
5107         (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
5108         d-form instructions.  Distinguish different cases in debug
5109         output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
5110         d-form instructions.
5111         (rs6000_preferred_reload_class): Likewise.
5112         (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
5113         instructions.  If ISA 3.0 is available, generate lxvx/stxvx instead
5114         of the ISA 2.06 indexed memory instructions.
5115         (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
5116         use them to save/restore the saved vector registers instead of
5117         using Altivec instructions.
5118         (rs6000_emit_epilogue): Likewise.
5119         (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
5120         (rs6000_opt_masks): Split -mpower9-dform into
5121         -mpower9-dform-scalar and -mpower9-dform-vector.
5122         (rs6000_print_options_internal): Print -mno-<switch> if <switch>
5123         was not selected.
5124         * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
5125         ISA 3.0 vector indexed memory instructions, and fold the code into
5126         the normal mov<mode> patterns.
5127         (p9_vecstore_<mode>): Likewise.
5128         (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
5129         instructions.
5130         (vsx_movti_64bit): Likewise.
5131         (vsx_movti_32bit): Likewise.
5132         * config/rs6000/constraints.md (wO constraint): New constraint for
5133         ISA 3.0 vector d-form support.
5134         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
5135         -mpower9-dform-scalar instead of -mpower9-dform.  Add note not to
5136         include -mpower9-dform-vector until we switch over to LRA.
5137         (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
5138         switches, -mpower9-dform-scalar and -mpower9-dform-vector.
5139         * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
5140         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
5141         for -mpower9-dform and -mlra.
5142         * doc/md.texi (wO constraint): Document wO constraint.
5143
5144 2016-05-11  Alexander Monakov  <amonakov@ispras.ru>
5145
5146         * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
5147         'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
5148         * genautomata.c (output_internal_insn_code_evaluation): Simplify.
5149         Move handling of non-insn arguments inline into the sole user:
5150         (output_trans_func): ...here.
5151         (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
5152         in emitted function prototype.
5153         (output_internal_insn_latency_func): Ditto.  Simplify.
5154         (output_internal_maximal_insn_latency_func): Ditto.  Delete
5155         always-unused argument.
5156         (output_insn_latency_func): Ditto.
5157         (output_maximal_insn_latency_func): Ditto.
5158
5159 2016-05-11  Richard Biener  <rguenther@suse.de>
5160
5161         PR tree-optimization/71055
5162         * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
5163         sth with precision not equal to access size verify we don't chop
5164         off bits.
5165
5166 2016-05-11  Richard Biener  <rguenther@suse.de>
5167
5168         PR debug/71057
5169         * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
5170         (dwarf2out_finish): Move retry_incomplete_types call ...
5171         (dwarf2out_early_finish): ... here.
5172
5173 2016-05-11  Richard Biener  <rguenther@suse.de>
5174
5175         PR middle-end/71002
5176         * alias.c (reference_alias_ptr_type): Preserve alias-set zero
5177         if the langhook insists on it.
5178         * fold-const.c (make_bit_field_ref): Add arg for the original
5179         reference and preserve its alias-set.
5180         (decode_field_reference): Take exp by reference and adjust it
5181         to the original memory reference.
5182         (optimize_bit_field_compare): Adjust callers.
5183         (fold_truth_andor_1): Likewise.
5184         * gimplify.c (gimplify_expr): Adjust in-SSA form test.
5185
5186 2016-05-11  Ilya Enkovich  <ilya.enkovich@intel.com>
5187
5188         PR middle-end/70807
5189         * cfgrtl.h (delete_insn_and_edges): Now return bool.
5190         * cfgrtl.c (delete_insn_and_edges): Likewise.
5191         * config/i386/i386.c (convert_scalars_to_vector): Remove
5192         redundant code.
5193         * cse.c (cse_insn): Compute cse_cfg_altered.
5194         (delete_trivially_dead_insns): Likewise.
5195         (cse_cc_succs): Likewise.
5196         (rest_of_handle_cse): Free dominance info if required.
5197         (rest_of_handle_cse2): Likewise.
5198         (rest_of_handle_cse_after_global_opts): Likewise.
5199
5200 2016-05-11  Alan Modra  <amodra@gmail.com>
5201
5202         * config/rs6000/rs6000.c (is_complex_IBM_long_double,
5203         abi_v4_pass_in_fpr): New functions.
5204         (rs6000_function_arg_boundary): Exclude complex IBM long double
5205         from 64-bit alignment when ABI_V4.
5206         (rs6000_function_arg, rs6000_function_arg_advance_1,
5207         rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
5208
5209 2016-05-10  Segher Boessenkool  <segher@kernel.crashing.org>
5210
5211         PR rtl-optimization/71028
5212         * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
5213         jump with just a return in the fallthrough block if the branch
5214         block contains just a return as well.
5215
5216 2016-05-10  Marc Glisse  <marc.glisse@inria.fr>
5217
5218         * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
5219         * match.pd ((X & Y) ^ Y): ... this.
5220         ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
5221         | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
5222
5223 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
5224
5225         * read-md.c (require_char_ws): New function.
5226         (read_string): Simplify using require_char_ws.
5227         (handle_constants): Likewise.
5228         (handle_enum): Likewise.
5229         (handle_file): Likewise.
5230         * read-md.h (require_char_ws): New declaration.
5231         * read-rtl.c (read_conditions): Simplify using require_char_ws.
5232         (read_mapping): Likewise.
5233         (read_rtx_code): Likewise.
5234         (read_nested_rtx): Likewise.
5235
5236 2016-05-10  James Norris  <jnorris@codesourcery.com>
5237
5238         * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
5239         if offloading is enabled and -fopenacc or -fopenmp is specified.
5240         (CRTOFFLOADEND): Likewise.
5241         (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
5242         (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
5243
5244 2016-05-10  Uros Bizjak  <ubizjak@gmail.com>
5245
5246         * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
5247         gotoff_operand code paths.  Use copy_to_suggested_regs and
5248         expand_simple_binop where appropriate.  Cleanup.
5249
5250 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
5251
5252         PR target/70799
5253         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
5254         integer constants.
5255         (dimode_scalar_chain::vector_const_cost): New.
5256         (dimode_scalar_chain::compute_convert_gain): Handle constants.
5257         (dimode_scalar_chain::convert_op): Likewise.
5258         (dimode_scalar_chain::convert_insn): Likewise.
5259
5260 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
5261
5262         * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
5263         unary operation, not a binary one.
5264
5265 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
5266
5267         PR middle-end/70877
5268         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
5269         calls with type casted fndecl.
5270
5271 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
5272
5273         PR tree-optimization/70786
5274         * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
5275         * calls.c (initialize_argument_information): Bind bounds
5276         with corresponding args passed by reference.
5277
5278 2016-05-10  Jakub Jelinek  <jakub@redhat.com>
5279
5280         PR target/70927
5281         * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
5282         *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
5283         use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
5284         accordingly.
5285
5286 2016-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5287
5288         PR target/70963
5289         * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
5290         code for a zero scale factor.
5291         (vsx_xvcvdpuxds_scale): Likewise.
5292
5293 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
5294
5295         * diagnostic-show-locus.c (layout::layout): Call show_ruler
5296         if show_ruler_p was set on the context.
5297         (layout::show_ruler): New method.
5298         * diagnostic.h (struct diagnostic_context): Add field
5299         "show_ruler_p".
5300
5301 2016-05-10  Richard Biener  <rguenther@suse.de>
5302
5303         PR tree-optimization/71039
5304         * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
5305         (chk_uses): New function.
5306         (propagate_with_phi): Verify we can safely replicate the lhs of an
5307         aggregate assignment on all incoming edges.
5308
5309 2016-05-10  Oleg Endo  <olegendo@gcc.gnu.org>
5310
5311         * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
5312         Forward declare.
5313         (rx_atomic_sequence): New class.
5314         * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
5315         (is_interrupt_func, is_fast_interrupt_func): Make non-static and
5316         non-inline.
5317         (rx_atomic_sequence::rx_atomic_sequence,
5318         rx_atomic_sequence::~rx_atomic_sequence): New functions.
5319         * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
5320         CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
5321         CTRLREG_INTB): New constants.
5322         (FETCHOP): New code iterator.
5323         (fethcop_name, fetchop_name2): New iterator code attributes.
5324         (QIHI): New mode iterator.
5325         (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
5326         atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
5327         atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
5328
5329 2016-05-10  Martin Liska  <mliska@suse.cz>
5330
5331         * tree-inline.c (remap_dependence_clique): Do not remap
5332         debugging statements.
5333
5334 2016-05-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5335
5336         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
5337         ("*fixuns_truncdfdi2_z13")
5338         ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
5339         ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
5340         ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
5341
5342 2016-05-10  Richard Biener  <rguenther@suse.de>
5343
5344         PR tree-optimization/70497
5345         PR tree-optimization/28367
5346         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
5347         split out from ...
5348         (visit_reference_op_load): ... here.
5349         (vn_reference_lookup_3): Use it to handle subreg-like accesses
5350         with simplified BIT_FIELD_REFs.
5351         * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
5352         * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
5353         correctly.
5354
5355 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
5356
5357         * dwarf2out.c (add_abstract_origin_attribute): Adjust
5358         documentation comment.  For BLOCK nodes, add a
5359         DW_AT_abstract_origin attribute that points to the DIE generated
5360         for the origin BLOCK.
5361         (gen_lexical_block_die): Call add_abstract_origin_attribute for
5362         blocks from inlined functions.
5363
5364 2016-05-10  Alan Modra  <amodra@gmail.com>
5365
5366         PR target/70947
5367         * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
5368         regrename modifying insns saving lr before __morestack call.
5369         * config/rs6000/rs6000.md (split_stack_return): Similarly for
5370         insns restoring lr after __morestack call.
5371
5372 2016-05-09  Jakub Jelinek  <jakub@redhat.com>
5373
5374         * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
5375         lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
5376         expanders.
5377         * config/i386/sse.md (vec_interleave_high<mode>,
5378         vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
5379         <avx512>_vpermt2var<mode>3_maskz): Likewise.
5380
5381 2016-05-04  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
5382
5383         * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
5384         function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
5385         parallel reassociation for power8 and forward.
5386
5387 2016-05-09  Uros Bizjak  <ubizjak@gmail.com>
5388
5389         * config/i386/i386.md (absneg splitters with general regs): Use
5390         general_reg_operand predicate.
5391         (btsq peephole2): Use x86_64_immediate_operand to check if new
5392         value is suitable for immediate operand.  Generate emitted insn
5393         using RTL expressions.
5394         (btcq peephole2): Ditto.
5395         (btrq peephole2): Ditto.  Generate correct immediate operand
5396         for AND masking.
5397
5398 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
5399
5400         * cfgexpand.c (expand_debug_expr): Fix address offset for negative
5401         bitpos.
5402
5403 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
5404
5405         * tree-affine.c (wide_int_constant_multiple_p): Add missing
5406         pointer dereference.
5407
5408 2016-05-09  Richard Biener  <rguenther@suse.de>
5409
5410         PR tree-optimization/70985
5411         * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
5412         op0 isn't a gimple register.
5413
5414 2016-05-09  Prachi Godbole  <prachi.godbole@imgtec.com>
5415
5416         * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
5417         (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
5418         (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
5419         (i6400_fpu_mult): New cpu units.
5420         (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
5421         (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
5422         (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
5423         (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
5424         (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
5425         (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
5426         (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
5427         (i6400_msa_long_float4, i6400_msa_long_float5)
5428         (i6400_msa_long_float8, i6400_msa_fdiv_df)
5429         (i6400_msa_fdiv_sf): New reservations.
5430         * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
5431         (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
5432         (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
5433         (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
5434         (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
5435         (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
5436         (msa_short_cmp, msa_short_float2, msa_short_logic3)
5437         (msa_short_store4, msa_long_load, msa_short_store)
5438         (msa_long_logic, msa_long_float2, msa_long_float4)
5439         (msa_long_float5, msa_long_float8, msa_long_mult)
5440         (msa_long_fdiv, msa_long_div): New reservations.
5441
5442 2016-05-09  Robert Suchanek  <robert.suchanek@imgtec.com>
5443             Sameera Deshpande  <sameera.deshpande@imgtec.com>
5444             Matthew Fortune  <matthew.fortune@imgtec.com>
5445             Graham Stott  <graham.stott@imgtec.com>
5446             Chao-ying Fu  <chao-ying.fu@imgtec.com>
5447
5448         * config.gcc: Add MSA header file for mips*-*-* target.
5449         * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
5450         (Ubv8i, Urv8):  New constraints.
5451         * config/mips/mips-ftypes.def: Add function types for MSA
5452         builtins.
5453         * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
5454         (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
5455         * config/mips/mips-msa.md: New file.
5456         * config/mips/mips-protos.h
5457         (mips_split_128bit_const_insns): New prototype.
5458         (mips_msa_idiv_insns): Likewise.
5459         (mips_split_128bit_move): Likewise.
5460         (mips_split_128bit_move_p): Likewise.
5461         (mips_split_msa_copy_d): Likewise.
5462         (mips_split_msa_insert_d): Likewise.
5463         (mips_split_msa_fill_d): Likewise.
5464         (mips_expand_msa_branch): Likewise.
5465         (mips_const_vector_same_val_p): Likewise.
5466         (mips_const_vector_same_bytes_p): Likewise.
5467         (mips_const_vector_same_int_p): Likewise.
5468         (mips_const_vector_shuffle_set_p): Likewise.
5469         (mips_const_vector_bitimm_set_p): Likewise.
5470         (mips_const_vector_bitimm_clr_p): Likewise.
5471         (mips_msa_vec_parallel_const_half): Likewise.
5472         (mips_msa_output_division): Likewise.
5473         (mips_ldst_scaled_shift): Likewise.
5474         (mips_expand_vec_cond_expr): Likewise.
5475         * config/mips/mips.c (enum mips_builtin_type): Add
5476         MIPS_BUILTIN_MSA_TEST_BRANCH.
5477         (mips_gen_const_int_vector_shuffle): New prototype.
5478         (mips_const_vector_bitimm_set_p): New function.
5479         (mips_const_vector_bitimm_clr_p): Likewise.
5480         (mips_const_vector_same_val_p): Likewise.
5481         (mips_const_vector_same_bytes_p): Likewise.
5482         (mips_const_vector_same_int_p): Likewise.
5483         (mips_const_vector_shuffle_set_p): Likewise.
5484         (mips_symbol_insns): Forbid loading symbols via immediate for
5485         MSA.
5486         (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
5487         stores.
5488         (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
5489         MSA.
5490         (mips_lx_address_p): Add support load indexed address for MSA.
5491         (mips_address_insns): Add calculation of instructions needed for
5492         stores and loads for MSA.
5493         (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR.  Handle
5494         CONST_VECTOR for MSA and let it fall through.
5495         (mips_ldst_scaled_shift): New function.
5496         (mips_subword_at_byte): Likewise.
5497         (mips_msa_idiv_insns): Likewise.
5498         (mips_legitimize_move): Validate MSA moves.
5499         (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases.  Add
5500         calculation of costs for MSA division.
5501         (mips_split_move_p): Check if MSA moves need splitting.
5502         (mips_split_move): Split MSA moves if necessary.
5503         (mips_split_128bit_move_p): New function.
5504         (mips_split_128bit_move): Likewise.
5505         (mips_split_msa_copy_d): Likewise.
5506         (mips_split_msa_insert_d): Likewise.
5507         (mips_split_msa_fill_d): Likewise.
5508         (mips_output_move): Handle MSA moves.
5509         (mips_expand_msa_branch): New function.
5510         (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
5511         Reinstate 'y' modifier.
5512         (mips_file_start): Add MSA .gnu_attribute.
5513         (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
5514         FPRs.
5515         (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
5516         (mips_class_max_nregs): Add register size for MSA supported mode.
5517         (mips_cannot_change_mode_class): Allow conversion between MSA
5518         vector modes and TImode.
5519         (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
5520         instruction.
5521         (mips_secondary_reload_class): Force MSA loads/stores via memory.
5522         (mips_preferred_simd_mode): Add preffered modes for MSA.
5523         (mips_vector_mode_supported_p): Add MSA supported modes.
5524         (mips_autovectorize_vector_sizes): New function.
5525         (mips_msa_output_division): Likewise.
5526         (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
5527         (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
5528         (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
5529         (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
5530         (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
5531         (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
5532         (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
5533         (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
5534         (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
5535         (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
5536         (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
5537         (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
5538         (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
5539         (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
5540         (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
5541         (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
5542         (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
5543         (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
5544         (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
5545         (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
5546         (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
5547         (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
5548         (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
5549         (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
5550         (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
5551         (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
5552         (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
5553         (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
5554         (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
5555         (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
5556         (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
5557         (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
5558         (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
5559         (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
5560         (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
5561         (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
5562         (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
5563         (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
5564         (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
5565         (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
5566         (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
5567         (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
5568         (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
5569         (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
5570         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
5571         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
5572         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
5573         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
5574         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
5575         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
5576         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
5577         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
5578         (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
5579         (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
5580         (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
5581         (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
5582         (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
5583         (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
5584         (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
5585         (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
5586         (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
5587         (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
5588         (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
5589         (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
5590         (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
5591         (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
5592         (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
5593         (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
5594         (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
5595         (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
5596         (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
5597         (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
5598         (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
5599         (CODE_FOR_msa_ldi_d): New code_aliasing macros.
5600         (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
5601         slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
5602         srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
5603         srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
5604         srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
5605         srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
5606         bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
5607         bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
5608         bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
5609         binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
5610         binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
5611         binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
5612         addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
5613         subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
5614         max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
5615         max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
5616         maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
5617         mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
5618         mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
5619         min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
5620         ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
5621         clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
5622         clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
5623         clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
5624         clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
5625         clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
5626         st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
5627         sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
5628         adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
5629         adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
5630         ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
5631         aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
5632         aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
5633         subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
5634         subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
5635         subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
5636         asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
5637         maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
5638         msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
5639         div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
5640         hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
5641         hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
5642         mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
5643         dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
5644         dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
5645         dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
5646         sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
5647         splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
5648         pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
5649         ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
5650         ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
5651         ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
5652         ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
5653         bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
5654         fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
5655         pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
5656         nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
5657         copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
5658         insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
5659         bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
5660         fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
5661         fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
5662         fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
5663         fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
5664         fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
5665         fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
5666         fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
5667         fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
5668         fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
5669         fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
5670         mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
5671         msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
5672         fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
5673         flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
5674         ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
5675         ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
5676         ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
5677         move_v builtins.
5678         (mips_get_builtin_decl_index): New array.
5679         (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
5680         (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
5681         (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
5682         (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
5683         (mips_init_builtins): Initialize mips_get_builtin_decl_index
5684         array.
5685         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
5686         hook.
5687         (mips_expand_builtin_insn): Prepare operands for
5688         CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
5689         CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
5690         CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
5691         CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
5692         CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
5693         CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
5694         CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
5695         CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
5696         CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
5697         CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
5698         CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
5699         CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
5700         CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
5701         CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
5702         CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
5703         CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
5704         CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
5705         CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
5706         CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
5707         CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
5708         CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
5709         CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
5710         CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
5711         CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
5712         CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
5713         CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
5714         CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
5715         CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
5716         CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
5717         CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
5718         CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
5719         CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
5720         CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
5721         CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
5722         CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
5723         CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
5724         CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
5725         CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
5726         CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
5727         CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
5728         CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
5729         (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
5730         (mips_set_compression_mode): Disallow MSA with MIPS16 code.
5731         (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
5732         These are set implicitly and an error is reported if overridden.
5733         (mips_expand_builtin_msa_test_branch): New function.
5734         (mips_expand_msa_shuffle): Likewise.
5735         (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
5736         (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
5737         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
5738         (mips_expand_vec_unpack): Add support for MSA.
5739         (mips_expand_vector_init): Likewise.
5740         (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
5741         instead of const0_rtx.
5742         (mips_msa_vec_parallel_const_half): New function.
5743         (mips_gen_const_int_vector): Likewise.
5744         (mips_gen_const_int_vector_shuffle): Likewise.
5745         (mips_expand_msa_cmp): Likewise.
5746         (mips_expand_vec_cond_expr): Likewise.
5747         * config/mips/mips.h
5748         (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
5749         (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
5750         specified.
5751         (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
5752         (ISA_HAS_MSA): New macro.
5753         (UNITS_PER_MSA_REG): Likewise.
5754         (BITS_PER_MSA_REG): Likewise.
5755         (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
5756         (MSA_REG_FIRST): New macro.
5757         (MSA_REG_LAST): Likewise.
5758         (MSA_REG_NUM): Likewise.
5759         (MSA_REG_P): Likewise.
5760         (MSA_REG_RTX_P): Likewise.
5761         (MSA_SUPPORTED_MODE_P): Likewise.
5762         (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
5763         (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
5764         * config/mips/mips.md: Include mips-msa.md.
5765         (alu_type): Add simd_add.
5766         (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
5767         (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
5768         simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
5769         simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
5770         simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
5771         simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
5772         simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
5773         simd_move, simd_load, simd_store.  Choose "multi" for moves
5774         for "qword_mode".
5775         (qword_mode): New attribute.
5776         (insn_count): Add instruction count for quad moves.
5777         Increase the count for MIPS SIMD division.
5778         (UNITMODE): Add UNITMODEs for vector types.
5779         (addsub): New code iterator.
5780         * config/mips/mips.opt (mmsa): New option.
5781         * config/mips/msa.h: New file.
5782         * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
5783         specified.
5784         * config/mips/mti-linux.h: Likewise.
5785         * config/mips/predicates.md
5786         (const_msa_branch_operand): New constraint.
5787         (const_uimm3_operand): Likewise.
5788         (const_uimm4_operand): Likewise.
5789         (const_uimm5_operand): Likewise.
5790         (const_uimm8_operand): Likewise.
5791         (const_imm5_operand): Likewise.
5792         (aq10b_operand): Likewise.
5793         (aq10h_operand): Likewise.
5794         (aq10w_operand): Likewise.
5795         (aq10d_operand): Likewise.
5796         (const_m1_operand): Likewise.
5797         (reg_or_m1_operand): Likewise.
5798         (const_exp_2_operand): Likewise.
5799         (const_exp_4_operand): Likewise.
5800         (const_exp_8_operand): Likewise.
5801         (const_exp_16_operand): Likewise.
5802         (const_vector_same_val_operand): Likewise.
5803         (const_vector_same_simm5_operand): Likewise.
5804         (const_vector_same_uimm5_operand): Likewise.
5805         (const_vector_same_uimm6_operand): Likewise.
5806         (const_vector_same_uimm8_operand): Likewise.
5807         (par_const_vector_shf_set_operand): Likewise.
5808         (reg_or_vector_same_val_operand): Likewise.
5809         (reg_or_vector_same_simm5_operand): Likewise.
5810         (reg_or_vector_same_uimm6_operand): Likewise.
5811         * doc/extend.texi (MIPS SIMD Architecture Functions): New
5812         section.
5813         * doc/invoke.texi (-mmsa): Document new option.
5814
5815 2016-05-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5816
5817         * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
5818         * configure: Regenerate.
5819         * config.in: Regenerate.
5820         * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
5821         on -fvtable-verify.
5822         * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
5823         (ENDFILE_VTV_SPEC): Define.
5824
5825 2016-05-09  Kaushik Phatak  <kaushik.phatak@kpit.com>
5826
5827         * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
5828         registers in all interrupt handlers if necessary.
5829         (rl78_option_override): Add warning.
5830         (MUST_SAVE_MDUC_REGISTERS): New macro.
5831         (rl78_expand_epilogue): Restore the MDUC registers if necessary.
5832         * config/rl78/rl78.c (check_mduc_usage): New function.
5833         (mduc_regs): New structure to hold MDUC register data.
5834         * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
5835         (mulsi3_g13): Add is_g13_muldiv_insn attribute.
5836         (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
5837         (mulhi3_g13): Add is_g13_muldiv_insn attribute.
5838         * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
5839         * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
5840
5841 2016-05-09  Bin Cheng  <bin.cheng@arm.com>
5842
5843         * tree-if-conv.c (tree-ssa-loop.h): Include header file.
5844         (tree-ssa-loop-niter.h): Ditto.
5845         (idx_within_array_bound, ref_within_array_bound): New functions.
5846         (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
5847         Factor out check on writable base object to ...
5848         (base_object_writable): ... here.
5849
5850 2016-05-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5851
5852         * config/arm/arm.md (probe_stack): Add modes to set source
5853         and destination.
5854
5855 2016-05-09  Bernd Schmidt  <bschmidt@redhat.com>
5856
5857         * regrename.c (base_reg_class_for_rename): New static function.
5858         (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
5859
5860 2016-05-08  Jan Hubicka  <hubicka@ucw.cz>
5861
5862         * cgraph.c (thunk_adjust): Export.
5863         * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
5864         * cgraphunit.c (thunk_adjust): Export.
5865         (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
5866         thunks.
5867         * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
5868         inlinable.
5869         * tree-inline.c (expand_call_inline): Expand thunks inline.
5870
5871 2016-05-08  Uros Bizjak  <ubizjak@gmail.com>
5872
5873         PR target/70998
5874         * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
5875         (*sse2_vd_cvtss2sd): Ditto.
5876         * config/i386/i386.md
5877         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
5878         Generate *sse2_vd_cvtsd2ss pattern.
5879         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
5880         Generate *sse2_vd_cvtss2sd pattern.
5881
5882 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
5883
5884         * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
5885         * config/sh/sh.c (get_sh_arg_class): ... this new function.  Update its
5886         users.
5887
5888 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
5889
5890         * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
5891         * config/sh/sh.c: Define and declare variables on first use throughout
5892         the file.
5893         (current_function_interrupt): Change to bool type.
5894         (frame_insn): Rename to emit_frame_insn and update users.
5895         (push_regs): Use bool for 'interrupt_handler' argument.
5896         (save_schedule_s): Remove.
5897         (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
5898         (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
5899         targetm.asm_out.unaligned_op.di.
5900         (gen_far_branch): Remove redundant forward declaration.
5901         (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
5902         MAX_TEMPS, save_schedule_ssave_schedule): Remove.
5903         (sh_set_return_address, sh_function_ok_for_sibcall,
5904         scavenge_reg): Update comments.
5905         (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
5906         (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
5907         (sh_attr_renesas_p): Remove unnecessary parentheses.
5908         (branch_dest): Simplify.
5909         * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
5910         Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
5911         (CUMULATIVE_ARGS): Change macro to typedef.
5912         (current_function_interrupt): Change to bool type.
5913         (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
5914         Surround with __cplusplus ifdef.
5915         (sh_compare_op0, sh_compare_op1): Remove.
5916         (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
5917
5918 2016-05-07  Jim Wilson  <jim.wilson@linaro.org>
5919
5920         * config/arm/arm.md: (arch): Add neon.
5921         (arch_enabled): Return yes for arch neon when TARGET_NEON.
5922         * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3.  Add
5923         neon_move as type for alt 3.  Add arch attr enabling alt 3 for neon.
5924         Emit vmov.i64 for alt 3.  Renumber alternatives 3 to 8.  Adjust
5925         attributes for alt renumbering.  Mark alt 3 as non-predicable.
5926         (thumb2_movdf_vfp): Likewise.
5927
5928 2016-05-07  Uros Bizjak  <ubizjak@gmail.com>
5929
5930         * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
5931         to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
5932         (*andqi_1): Add preferred_for_speed attribute to disparage
5933         alternative 2 for TARGET_PARTIAL_REG_STALL targets.
5934         (*<code>qi_1): Ditto.
5935         (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
5936         alternative 1 for TARGET_PARTIAL_REG_STALL targets.
5937         (*ashlqi3_1): Ditto.
5938         (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
5939         Add preferred_for_size attribute to disparage alternative 0 and
5940         preferred_for_speed attribute to disparage alternative 1 for
5941         TARGET_PARTIAL_REG_STALL targets.
5942
5943 2016-05-07  Tom de Vries  <tom@codesourcery.com>
5944
5945         PR tree-optimization/70956
5946         * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
5947         def.
5948
5949 2016-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
5950
5951         * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
5952         * config/sh/sh.c (sh_cbranch_distance): Implement it.
5953         * config/sh/sh.md (branch_zero): Remove define_attr.
5954         (define_delay): Disable delay slot if branch distance is one insn.
5955
5956 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
5957
5958         * config/i386/i386.md (LEAMODE): New mode attribute.
5959         (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
5960         (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
5961         and LEAMODE mode attribute.  Use VOIDmode const_0_to_3_operand as
5962         operand 2 predicate.
5963         (*lea<mode>_general_2): Use VOIDmode for const248_operand.
5964         (*lea<mode>_general_3): Ditto.
5965         (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
5966
5967 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
5968
5969         * genmddump.c (main): Convert argv from char ** to const char **.
5970
5971 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
5972
5973         * coretypes.h (OVERRIDE): New macro.
5974         (FINAL): New macro.
5975
5976 2016-05-06  Eric Botcazou  <ebotcazou@adacore.com>
5977
5978         * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
5979         allow coalescing if the types are compatible.
5980
5981 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
5982
5983         * pass_manager.h (pass_manager::register_pass_name): New method.
5984         (pass_manager::get_pass_by_name): New method.
5985         (pass_manager::create_pass_tab): New method.
5986         (pass_manager::m_name_to_pass_map): New field.
5987         * passes.c (name_to_pass_map): Delete global in favor of field
5988         "m_name_to_pass_map" of pass_manager.
5989         (register_pass_name): Rename from a function to...
5990         (pass_manager::register_pass_name): ...this method, updating
5991         for renaming of global "name_to_pass_map" to field
5992         "m_name_to_pass_map".
5993         (create_pass_tab): Rename from a function to...
5994         (pass_manager::create_pass_tab): ...this method, updating
5995         for renaming of global "name_to_pass_map" to field.
5996         (get_pass_by_name): Rename from a function to...
5997         (pass_manager::get_pass_by_name): ...this method.
5998         (enable_disable_pass): Convert use of get_pass_by_name to
5999         a method call, locating the pass_manager singleton.
6000
6001 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
6002
6003         * genattr-common.c (main): Convert argv from char ** to const char **.
6004         * genattr.c (main): Likewise.
6005         * genattrtab.c (main): Likewise.
6006         * genautomata.c (initiate_automaton_gen): Likewise.
6007         (main): Likewise.
6008         * gencodes.c (main): Likewise.
6009         * genconditions.c (main): Likewise.
6010         * genconfig.c (main): Likewise.
6011         * genconstants.c (main): Likewise.
6012         * genemit.c (main): Likewise.
6013         * genenums.c (main): Likewise.
6014         * genextract.c (main): Likewise.
6015         * genflags.c (main): Likewise.
6016         * genmddeps.c (main): Likewise.
6017         * genopinit.c (main): Likewise.
6018         * genoutput.c (main): Likewise.
6019         * genpeep.c (main): Likewise.
6020         * genpreds.c (main): Likewise.
6021         * genrecog.c (main): Likewise.
6022         * gensupport.c (init_rtx_reader_args_cb): Likewise.
6023         (init_rtx_reader_args): Likewise.
6024         * gensupport.h (init_rtx_reader_args_cb): Likewise.
6025         (init_rtx_reader_args): Likewise.
6026         * gentarget-def.c (main): Likewise.
6027         * read-md.c (read_md_files): Likewise.
6028         * read-md.h (read_md_files): Likewise.
6029
6030 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
6031
6032         * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
6033         instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
6034         * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
6035         Remove unused predicate.
6036         (register_and_not_fp_reg_operand): Ditto.
6037
6038 2016-05-06  Martin Liska  <mliska@suse.cz>
6039
6040         * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
6041         instead of vec as the vector is local to the function.
6042
6043 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
6044
6045         * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
6046         avx512bw alternative.
6047
6048         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
6049         before the ashr<mode>3 pattern.
6050
6051         * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
6052         v instead of x in vex or maybe_vex alternatives, use
6053         maybe_evex instead of vex in prefix.
6054
6055         * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
6056         *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
6057         vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
6058         in vex or maybe_vex alternatives, use maybe_evex instead of vex
6059         in prefix.
6060
6061         * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
6062         v instead of x in vex or maybe_vex alternatives, use
6063         maybe_evex instead of vex in prefix.
6064
6065         * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
6066         sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
6067         sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
6068         sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
6069         alternatives, use maybe_evex instead of vex in prefix.
6070
6071         * config/i386/sse.md (vec_interleave_lowv4sf,
6072         *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
6073         v instead of x in vex or maybe_vex alternatives, use
6074         maybe_evex instead of vex in prefix.
6075
6076         * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
6077         v instead of x in vex or maybe_vex alternatives, use
6078         maybe_evex instead of vex in prefix.
6079
6080         * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
6081         v constraint instead of x.
6082
6083 2016-05-06  Nathan Sidwell  <nathan@codesourcery.com>
6084
6085         * gimple.c (gimple_call_same_target_p): Unique functions are eq.
6086         * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
6087         equality first.
6088
6089 2016-05-06  Richard Biener  <rguenther@suse.de>
6090
6091         PR tree-optimization/70948
6092         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
6093         Properly clobber all fields of va_list for __builtin_va_start.
6094
6095 2016-05-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
6096
6097         PR debug/70935
6098         * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
6099         loop latch destination.
6100
6101 2016-05-06  Martin Liska  <mliska@suse.cz>
6102
6103         * tree-ssa-uninit.c: Apply manual changes
6104         to the GNU coding style.
6105         (prune_uninit_phi_opnds): Rename from
6106         prune_uninit_phi_opnds_in_unrealizable_paths.
6107
6108 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
6109
6110         * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
6111         mspace): Remove deprecated options.
6112         * doc/invoke.texi (SH options): Remove -mspace.
6113
6114 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
6115
6116         * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
6117
6118 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
6119
6120         * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
6121         corresponding combine split pattern.
6122
6123 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
6124
6125         PR target/58219
6126         * config/sh/predicates.md (long_displacement_mem_operand): New.
6127         * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
6128         Add movi20, movi20s alternatives.  Adjust length attribute for
6129         alternatives.
6130         (movsi_ie): Allow for any FPU.  Adjust length attribute for
6131         alternatives.
6132         (movsi_i_lowpart): Add movi20, movi20s alternatives.  Adjust length
6133         attribute for alternatives.
6134         (*mov<mode>): Use long_displacement_mem_operand for length attribute.
6135         (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
6136         length attribute for alternatives.
6137
6138 2016-05-06  Richard Biener  <rguenther@suse.de>
6139
6140         PR tree-optimization/70960
6141         * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
6142
6143 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
6144
6145         PR target/52933
6146         * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
6147         * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
6148
6149 2016-05-06  Marek Polacek  <polacek@redhat.com>
6150
6151         PR sanitizer/70875
6152         * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
6153
6154 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
6155
6156         PR target/54089
6157         * config/sh/sh.md (*rotcr): Add another variant.
6158
6159 2016-05-06  Richard Biener  <rguenther@suse.de>
6160
6161         PR middle-end/70931
6162         * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
6163
6164 2016-05-06  Richard Biener  <rguenther@suse.de>
6165
6166         PR middle-end/70941
6167         * fold-const.c (split_tree): Always convert to the original type
6168         before negating.
6169
6170 2016-05-06  Richard Biener  <rguenther@suse.de>
6171
6172         * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
6173         (fwprop_addr): Likewise.
6174
6175 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
6176
6177         PR target/70873
6178         * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
6179         New prototype.
6180         * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
6181         * config/i386/i386.md (push mem splitter): Use find_constant_src in
6182         the splitter condition.
6183         (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
6184         the splitter condition.
6185         (FP float_extend load splitter): Ditto.
6186
6187 2016-05-05  Uros Bizjak  <ubizjak@gmail.com>
6188
6189         * config/i386/i386.md (peehole2 patterns): Change true_regnum
6190         to REGNO in all peephole2 patterns.
6191         (post-reload splitters): Change true_regnum to REGNO in
6192         post-reload splitters.
6193         (zero_extend splitters): Use general_reg_operand and
6194         nonimmediate_gr_operand predicates.
6195
6196 2016-05-05  Jakub Jelinek  <jakub@redhat.com>
6197
6198         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
6199         v constraint instead of x.
6200
6201 2016-05-05  Alan Modra  <amodra@gmail.com>
6202
6203         PR target/68662
6204         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
6205         set OPTION_MASK_RELOCATABLE when flag_pic == 2.  Set
6206         TARGET_NO_FP_IN_TOC for -mrelocatable.
6207         (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
6208         TARGET_RELOCATABLE test.
6209         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
6210         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
6211         * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
6212         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
6213         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
6214         * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
6215         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
6216         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
6217         * config/rs6000/predicates.md (easy_fp_constant): Likewise.
6218         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
6219         Likewise.
6220         (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
6221         (rs6000_stack_info): Likewise.
6222         (rs6000_elf_asm_out_constructor): Likewise.
6223         (rs6000_elf_asm_out_destructor): Likewise.
6224         (rs6000_elf_declare_function_name): Likewise.
6225         * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
6226         * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
6227         Don't define.
6228
6229 2016-05-05  Alan Modra  <amodra@gmail.com>
6230
6231         * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
6232
6233 2016-05-05  Alan Modra  <amodra@gmail.com>
6234
6235         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
6236         out-of-line gpr restore for one or two regs if that would add
6237         a save of lr.
6238
6239 2016-05-04  Uros Bizjak  <ubizjak@gmail.com>
6240
6241         PR target/70873
6242         * config/i386/i386.md
6243         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
6244         Change to post-epilogue_completed late splitter.  Use sse_reg_operand
6245         as operand 0 predicate.
6246         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
6247         Ditto.
6248         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
6249         Ditto.  Emit the pattern using RTX.
6250
6251         (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
6252         Use sse_reg_opreand as operand 0 predicate.  Do not use true_regnum in
6253         the post-reload splitter.  Use lowpart_subreg instead of gen_rtx_REG.
6254         (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
6255         Ditto.
6256         (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
6257         sse_reg_operand as operand 0 predicate.
6258
6259         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
6260         Use sse_reg_opreand as operand 0 predicate.  Use lowpart_subreg
6261         instead of gen_rtx_REG.
6262         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
6263         Ditto.
6264
6265 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
6266
6267         * function.c (emit_use_return_register_into_block): Delete.
6268         (gen_return_pattern): Delete.
6269         (emit_return_into_block): Delete.
6270         (active_insn_between): Delete.
6271         (convert_jumps_to_returns): Delete.
6272         (emit_return_for_exit): Delete.
6273         (thread_prologue_and_epilogue_insns): Delete all code dealing with
6274         simple_return for shrink-wrapped blocks.
6275         * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
6276         end of blocks that need one.
6277         (get_unconverted_simple_return): Delete.
6278         (convert_to_simple_return): Delete.
6279         * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
6280         (convert_to_simple_return): Ditto.
6281
6282 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
6283
6284         * cfgcleanup.c (bb_is_just_return): New function.
6285         (try_optimize_cfg): Simplify jumps to return, branches to return,
6286         and branches around return.
6287
6288 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
6289
6290         * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
6291         branch to a return.
6292
6293 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
6294
6295         PR c++/70906
6296         PR c++/70933
6297         * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
6298         * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
6299         assert flags & OEP_HASH_CHECK, instead of asserting it
6300         never happens.  Handle TARGET_EXPR.
6301         * fold-const.c (operand_equal_p): For hash verification,
6302         or in OEP_HASH_CHECK into flags.
6303
6304 2016-05-04  Eric Botcazou  <ebotcazou@adacore.com>
6305
6306         * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
6307         comment.
6308         (compute_samebase_partition_bases): Fix typo.
6309
6310 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
6311
6312         * config/i386/sse.md (vec_interleave_highv8sf,
6313         vec_interleave_lowv8sf, vec_interleave_highv4df,
6314         vec_interleave_lowv4df): Remove constraints from expanders.
6315
6316         * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
6317
6318 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
6319
6320         * tree-inline.c (expand_call_inline): Fix path dealing with
6321         making lhs of call statement undefined.
6322
6323 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
6324
6325         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
6326         Check availability on NODE, too.
6327         * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
6328         (cgraph_node::call_for_symbol_and_aliases): Likewise.
6329         (varpool_node::call_for_symbol_and_aliase): Likewise.
6330         * ipa-pure-const.c (add_new_function): Analyze all bodies.
6331         (propagate_pure_const): Propagate across interposable functions, too.
6332         (skip_function_for_local_pure_const): Do not skip interposable bodies
6333         with aliases.
6334         (pass_local_pure_const::execute): Update.
6335
6336 2016-05-04  Marek Polacek  <polacek@redhat.com>
6337
6338         * doc/invoke.texi: Document -Wdangling-else.
6339
6340 2016-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
6341
6342         * config.gcc: Error out when conflicting multilib is detected.  Do not
6343         loop over multilibs since no combination is legal.
6344
6345 2016-05-04  Alan Modra  <amodra@gmail.com>
6346
6347         * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
6348         * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
6349         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
6350         Align .toc.
6351
6352 2016-05-04  Matthew Fortune  <matthew.fortune@imgtec.com>
6353
6354         * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
6355         Clean up p5600 comments.
6356
6357 2016-05-04  Richard Biener  <rguenther@suse.de>
6358
6359         * match.pd: Add BIT_FIELD_REF canonicalizations and vector
6360         constructor simplifications.
6361         * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
6362
6363 2016-05-04  Oleg Endo  <olegendo@gcc.gnu.org>
6364
6365         * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
6366         * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
6367         result.set_rtx is null instead of aborting.
6368         * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
6369         Always enable.
6370         (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
6371         * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
6372         *mov<mode>_store_postinc): New patterns.
6373
6374 2016-05-04  Marc Glisse  <marc.glisse@inria.fr>
6375
6376         * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR.  Mark
6377         as commutative.  Check both conversions are NOP.
6378         ((A & B) OP (C & B)): Remove.
6379
6380 2016-05-04  Alan Modra  <amodra@gmail.com>
6381
6382         * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
6383
6384 2016-05-04  Alan Modra  <amodra@gmail.com>
6385
6386         PR target/70866
6387         * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
6388         when cr2,3,4 are all fixed regs.
6389
6390 2016-05-04  Bernd Schmidt  <bschmidt@redhat.com>
6391
6392         PR rtl-optimization/57193
6393         * opts.c (default_options_table): Revert OPT_frename_registers change.
6394         * doc/invoke.texi (-frename-registers, -O2): Likewise.
6395
6396 2016-05-03  Martin Sebor  <msebor@redhat.com>
6397
6398         PR c++/66561
6399         * builtins.c (fold_builtin_FILE): New function.
6400         (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
6401         (fold_builtin_0): Call them.
6402         * gimplify.c (gimplify_call_expr): Remove the handling of
6403         BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
6404
6405         PR c++/66561
6406         * doc/extend.texi (Other Builtins): Update __builtin_FILE,
6407         __builtin_FUNCTION, and __builtin_LINE to reflect they yield
6408         constants.
6409
6410         PR c++/66639
6411         * doc/extend.texi (Function Names as Strings): Update __func__,
6412         __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
6413         constants.
6414
6415 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
6416             Richard Biener  <rguenther@suse.de>
6417
6418         PR tree-optimization/70916
6419         * tree-if-conv.c: Include cfganal.h.
6420         (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
6421         and remove_fake_exit_edges around the optimization pass.
6422
6423 2016-05-03  Jan Hubicka  <hubicka@ucw.cz>
6424
6425         * cgraph.c (symbol_table::create_edge): Set inline_failed.
6426         (cgraph_edge::make_direct): Likewise.
6427         (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
6428         * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
6429         * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
6430         (CIF_THUNK): New code.
6431         * ipa-inline-analysis.c (initialize_inline_failed): Preserve
6432         CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
6433         (compute_inline_parameters): Set inline_failed for thunks.
6434         (inline_analyze_function): Cleanup.
6435         * ipa-inline.c (can_inline_edge_p): Do not deal with
6436         call_stmt_cannot_inline_p.
6437         (can_early_inline_edge_p): Likewise.
6438         (early_inliner): Initialize inline_failed.
6439         * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
6440
6441 2016-05-03  Uros Bizjak  <ubizjak@gmail.com>
6442
6443         * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
6444         from nonimm_ssenomem_operand.
6445         (nonimm_ssenomem_operand): New predicate.
6446         * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
6447         as operand 0 predicate.
6448         (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
6449         Disable unsupported alternatives using "enabled" attribute.
6450         Use register_ssemem_operand as operand 0 predicate.
6451         (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
6452
6453 2016-05-03  Marek Polacek  <polacek@redhat.com>
6454
6455         PR c/70859
6456         * input.c (expansion_point_location): New function.
6457         * input.h (expansion_point_location): Declare.
6458
6459 2016-05-03  Pierre-Marie de Rodat  <derodat@adacore.com>
6460
6461         * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
6462         occurence with frame_offset_ ones.
6463
6464 2016-05-03  Alan Modra  <amodra@gmail.com>
6465
6466         PR rtl-optimization/70890
6467         * ira.c (combine_and_move_insns): When moving def_insn, remove
6468         equivs on use_insn.
6469
6470 2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
6471
6472         * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
6473         ("*r<noxa>sbg_<mode>_srl"): New define_insns.
6474         ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
6475         ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
6476
6477 2016-05-03  Alan Modra  <amodra@gmail.com>
6478
6479         * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
6480         for SAVE_MULTIPLE/STORE_MULTIPLE.
6481
6482 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
6483
6484         * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
6485         *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
6486
6487 2016-05-03  Richard Biener  <rguenther@suse.de>
6488
6489         * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
6490         default true.
6491         (gimplify_arg): Likewise.
6492         * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
6493         re-writing the result to a decl if required.
6494         (internal_get_tmp_var): Add allow_ssa parameter
6495         and override into_ssa with it.
6496         (get_formal_tmp_var): Adjust.
6497         (get_initialized_tmp_var): Add allow_ssa parameter.
6498         (gimplify_arg): Add allow_ssa parameter and avoid generating
6499         SSA names for the result false.
6500         (gimplify_call_expr): If the call may return twice do not
6501         gimplify parameters into SSA.
6502         (prepare_gimple_addressable): Do not allow an SSA name as temporary.
6503         (gimplify_modify_expr): Adjust assert.  For noreturn calls
6504         with a SSA name LHS adjust its def.
6505         (gimplify_save_expr): Do not allow an SSA name as save-expr result.
6506         (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
6507         (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
6508         (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
6509         an SSA name.  Likewise for OMP_CLAUSE_REDUCTION operands.
6510         (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL.  Likewise
6511         for OMP_FOR_COND,  OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
6512         (optimize_target_teams): Do not allow SSA names for clause operands.
6513         (gimplify_expr): Likewise for where we mark the result addressable.
6514         * passes.def (pass_init_datastructures): Remove.
6515         * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
6516         (rewrite_stmt): Likewise.
6517         * tree-inline.c (initialize_cfun): Properly transfer SSA state.
6518         (replace_locals_op): Replace SSA names.
6519         (copy_gimple_seq_and_replace_locals): Init src_cfun.
6520         * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
6521         * cgraph.c (release_function_body): Free CFG annotations only
6522         when we have a CFG.  Simplify.
6523         * gimple-fold.c (gimplify_and_update_call_from_tree): Use
6524         force_gimple_operand instead of get_initialized_tmp_var.
6525         * tree-pass.h (make_pass_init_datastructures): Remove.
6526         * tree-ssa.c (execute_init_datastructures): Remove.
6527         (pass_data_init_datastructures): Likewise.
6528         (class pass_init_datastructures): Likewise.
6529         (make_pass_init_datastructures): Likewise.
6530         * omp-low.c (create_omp_child_function): Init SSA data structures.
6531         (grid_expand_target_grid_body): Likewise.
6532         * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
6533         name before adding it to names_to_release.
6534         (remove_bb): Always release SSA defs.
6535         * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
6536         before dereferencing it.
6537         * cgraphunit.c (init_lowered_empty_function): Always
6538         int SSA data structures.
6539         * tree-ssanames.c (release_defs): Remove assert that we are in
6540         SSA form.
6541         * trans-mem.c (diagnose_tm_1): Handle SSA name function.
6542
6543 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
6544             Uros Bizjak  <ubizjak@gmail.com>
6545
6546         PR rtl-optimization/70467
6547         * config/i386/predicates.md (x86_64_hilo_int_operand,
6548         x86_64_hilo_general_operand): New predicates.
6549         * config/i386/constraints.md (Wd): New constraint.
6550         * config/i386/i386.md (mode attr di): Use Wd instead of e.
6551         (general_hilo_operand): New mode attr.
6552         (add<mode>3, sub<mode>3): Use <general_hilo_operand>
6553         instead of <general_operand>.
6554         (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
6555         x86_64_hilo_general_operand instead of <general_operand>.
6556
6557 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
6558
6559         PR tree-optimization/70916
6560         * tree-if-conv.c (constant_or_ssa_name): Removed.
6561         (fold_build_cond_expr): Use is_gimple_val instead of
6562         constant_or_ssa_name.
6563
6564         PR tree-optimization/70916
6565         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
6566         if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
6567
6568         PR target/49244
6569         * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
6570         (optimize_atomic_bit_test_and): New function.
6571         (pass_fold_builtins::execute): Use it.
6572         * optabs.def (atomic_bit_test_and_set_optab,
6573         atomic_bit_test_and_complement_optab,
6574         atomic_bit_test_and_reset_optab): New optabs.
6575         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
6576         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
6577         * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
6578         * builtins.c (expand_ifn_atomic_bit_test_and): New function.
6579         * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
6580         expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
6581         expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
6582         * doc/md.texi (atomic_bit_test_and_set@var{mode},
6583         atomic_bit_test_and_complement@var{mode},
6584         atomic_bit_test_and_reset@var{mode}): Document.
6585         * config/i386/sync.md (atomic_bit_test_and_set<mode>,
6586         atomic_bit_test_and_complement<mode>,
6587         atomic_bit_test_and_reset<mode>): New expanders.
6588         (atomic_bit_test_and_set<mode>_1,
6589         atomic_bit_test_and_complement<mode>_1,
6590         atomic_bit_test_and_reset<mode>_1): New insns.
6591
6592 2016-05-03  Richard Sandiford  <richard.sandiford@arm.com>
6593
6594         PR rtl-optimization/70687
6595         * combine.c (change_zero_ext): Check for scalar modes.  Use wide_int
6596         instead of unsigned HOST_WIDE_INT.
6597
6598 2016-05-03  Bernd Schmidt  <bschmidt@redhat.com>
6599
6600         PR rtl-optimization/44281
6601         * hard-reg-set.h (struct target_hard_regs): New field
6602         x_fixed_nonglobal_reg_set.
6603         (fixed_nonglobal_reg_set): New macro.
6604         * reginfo.c (init_reg_sets_1): Initialize it.
6605         * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
6606         of fixed_reg_set.
6607         * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
6608
6609 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
6610
6611         PR tree-optimization/56541
6612         * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
6613         * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
6614         * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
6615         (any_complicated_phi): new static variable.
6616         (aggressive_if_conv): delete.
6617         (if_convertible_phi_p): support phis with more than two arguments.
6618         (if_convertible_bb_p): remvoe check on aggressive_if_conv and
6619         critical pred edges.
6620         (ifcvt_split_critical_edges): support phis with more than two
6621         arguments by checking new parameter.  only split critical edges
6622         if needed.
6623         (tree_if_conversion): handle simd pragma marked loop using new
6624         local variable aggressive_if_conv.  check any_complicated_phi.
6625
6626 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
6627
6628         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
6629         before using it.
6630
6631 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
6632
6633         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
6634         cbase.
6635
6636 2016-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
6637
6638         * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
6639         (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
6640         define_insn_and_split.
6641         (mulsi3_i): New define_insn_and_split.
6642         (mulsi3_call): Convert to define_insn.
6643         (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
6644         Remove constraints.
6645
6646 2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
6647
6648         * machmode.h (mode_complex): Add support to give the complex mode
6649         for a given mode.
6650         (GET_MODE_COMPLEX_MODE): Likewise.
6651         * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
6652         stored by build_complex_type and gfc_build_complex_type instead of
6653         trying to figure out the appropriate mode based on the size. Raise
6654         an assertion error, if the type was not set.
6655         * genmodes.c (struct mode_data): Add field for the complex type of
6656         the given type.
6657         (blank_mode): Likewise.
6658         (make_complex_modes): Remember the complex mode created in the
6659         base type.
6660         (emit_mode_complex): Write out the mode_complex array to map a
6661         type mode to the complex version.
6662         (emit_insn_modes_c): Likewise.
6663         * tree.c (build_complex_type): Set the complex type to use before
6664         calling layout_type.
6665         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
6666         support for __float128 complex datatypes.
6667         (rs6000_hard_regno_mode_ok): Likewise.
6668         (rs6000_setup_reg_addr_masks): Likewise.
6669         (rs6000_complex_function_value): Likewise.
6670         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
6671         __float128 and __ibm128 complex.
6672         (FLOAT128_IBM_P): Likewise.
6673         (ALTIVEC_ARG_MAX_RETURN): Likewise.
6674         * doc/extend.texi (Additional Floating Types): Document that
6675         -mfloat128 must be used to enable __float128.  Document complex
6676         __float128 and __ibm128 support.
6677
6678 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
6679
6680         PR target/49244
6681         * gimple.c (gimple_builtin_call_types_compatible_p): Allow
6682         char/short arguments promoted to int because of promote_prototypes.
6683
6684 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
6685
6686         * config/i386/predicates.md (register_ssemem_operand): New predicate.
6687         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
6688         *cmpi<FPCMP:unord><MODEF:mode>_mixed and
6689         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.  Disable unsupported
6690         alternatives using "enabled" attribute.  Use register_ssemem_operand
6691         as operand 1 predicate.
6692         (*cmpi<unord>xf_i387): Split XFmode pattern from
6693         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
6694         (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
6695         *absneg<mode>2_i387.  Disable unsupported alternatives using
6696         "enabled" attribute.
6697         (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
6698
6699 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
6700
6701         * omp-low.c (lower_oacc_head_tail): Assert there is at least one
6702         marker.
6703         (oacc_loop_process): Check mask for loop termination.
6704
6705 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
6706
6707         * cif-code.def (CIF_THUNK): Add.
6708         * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
6709         accidental change.
6710
6711 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
6712
6713         * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
6714         (dump_inline_summary): Dump it.
6715         (fp_expression_p): New predicate.
6716         (estimate_function_body_sizes): Use it.
6717         (inline_merge_summary): Merge fp_expressions.
6718         (inline_read_section): Read fp_expressions.
6719         (inline_write_summary): Write fp_expressions.
6720         * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
6721         codegen boundary if either caller or callee is !fp_expressions.
6722         * ipa-inline.h (inline_summary): Add fp_expressions.
6723         * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
6724         to fp_expressions be sure the fp generation flags are updated.
6725
6726 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
6727
6728         PR rtl-optimization/70467
6729         * cse.c (cse_insn): Handle no-op MEM moves after folding.
6730
6731         PR rtl-optimization/70467
6732         * ipa-pure-const.c (check_call): Handle internal calls even in
6733         ipa mode like in local mode.
6734
6735 2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6736
6737         * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
6738
6739 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
6740
6741         * match.pd (X u< X, X u> X): New transformations.
6742
6743 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
6744
6745         * flag-types.h (enum warn_strict_overflow_code): Move ...
6746         * coretypes.h: ... here.
6747         * fold-const.h (fold_overflow_warning): Declare.
6748         * fold-const.c (fold_overflow_warning): Make non-static.
6749         (fold_comparison): Move the transformation of X +- C1 CMP C2
6750         into X CMP C2 -+ C1 ...
6751         * match.pd: ... here.
6752         * gimple-fold.c (fold_stmt_1): Protect with
6753         fold_defer_overflow_warnings.
6754
6755 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
6756
6757         * omp-low.c (struct oacc_loop): Add 'inner' field.
6758         (new_oacc_loop_raw): Initialize it to zero.
6759         (oacc_loop_fixed_partitions): Initialize it.
6760         (oacc_loop_auto_partitions): Partition outermost loop to outermost
6761         available partitioning.
6762
6763 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
6764
6765         * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
6766         register_operand.
6767         (umulsidi3): Likewise.
6768         (indirect_jump): Fix jump instruction assembly patterns.
6769
6770 2016-05-02  Thomas Schwinge  <thomas@codesourcery.com>
6771
6772         PR target/70860
6773         * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
6774         (nvptx_function_value): Assert non-NULL cfun.
6775
6776 2016-05-02  Eric Botcazou  <ebotcazou@adacore.com>
6777
6778         PR rtl-optimization/70886
6779         * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
6780
6781         * cselib.h (rtx_equal_for_cselib_1): Declare.
6782         (rtx_equal_for_cselib_p: New inline function.
6783         * cselib.c (rtx_equal_for_cselib_p): Delete.
6784         (rtx_equal_for_cselib_1): Make public.
6785
6786 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
6787
6788         * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
6789         (register_mixssei387nonimm_operand): Remove predicate.
6790         * config/i386/i386.md (*fop_<mode>_comm): Merge from
6791         *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387.  Disable unsupported
6792         alternatives using "enabled" attribute.  Also check X87_ENABLE_ARITH
6793         for TARGET_MIX_SSE_I387 alternatives.
6794         (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
6795         Disable unsupported alternatives using "enabled" attribute.  Use
6796         nonimm_ssenomem_operand as operand 1 predicate.  Also check
6797         X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
6798
6799 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
6800
6801         * tree.c (cst_and_fits_in_hwi): Simplify.
6802
6803 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
6804
6805         * tree.h (wi::to_wide): New function.
6806         * expr.c (expand_expr_real_1): Use wi::to_wide.
6807         * fold-const.c (int_const_binop_1): Likewise.
6808         (extract_muldiv_1): Likewise.
6809
6810 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
6811
6812         * wide-int.h: Update offset_int and widest_int documentation.
6813         (WI_SIGNED_SHIFT_RESULT): New macro.
6814         (wi::binary_shift): Define signed_shift_result_type for
6815         shifts on offset_int- and widest_int-like types.
6816         (generic_wide_int): Support <<= and >>= if << and >> are supported.
6817         * tree.h (int_bit_position): Use shift operators instead of wi::
6818          shifts.
6819         * alias.c (adjust_offset_for_component_ref): Likewise.
6820         * expr.c (get_inner_reference): Likewise.
6821         * fold-const.c (fold_comparison): Likewise.
6822         * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
6823         * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
6824         * tree-dfa.c (get_ref_base_and_extent): Likewise.
6825         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
6826         (stmt_kills_ref_p): Likewise.
6827         * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
6828         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
6829         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
6830         (ao_ref_init_from_vn_reference): Likewise.
6831
6832 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
6833
6834         * wide-int.h: Update offset_int and widest_int documentation.
6835         (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
6836         (wi::binary_traits): Allow ordered comparisons between offset_int and
6837         offset_int, between widest_int and widest_int, and between either
6838         of these types and basic C types.
6839         (operator <, <=, >, >=): Define for the same combinations.
6840         * tree.h (tree_int_cst_lt): Use comparison operators instead
6841         of wi:: comparisons.
6842         (tree_int_cst_le): Likewise.
6843         * gimple-fold.c (fold_array_ctor_reference): Likewise.
6844         (fold_nonarray_ctor_reference): Likewise.
6845         * gimple-ssa-strength-reduction.c (record_increment): Likewise.
6846         * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
6847         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
6848         * tree-sra.c (completely_scalarize): Likewise.
6849         * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
6850         * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
6851         * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
6852         (check_for_binary_op_overflow): Likewise.
6853         (search_for_addr_array): Likewise.
6854         * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
6855
6856 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
6857
6858         * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
6859         (arc_save_restore): Likewise.
6860         (arc_dwarf_register_span): Likewise.
6861         (arc_output_pic_addr_const): Initialize suffix variable.
6862
6863 2016-05-02  Martin Liska  <mliska@suse.cz>
6864
6865         * symbol-summary.h (function_summary::function_summary):
6866         Remove checking assert for all cgraph nodes.
6867         (function_summary::get): Check summary_uid.
6868         (symtab_insertion): Check summary_uid.
6869
6870 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
6871
6872         * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
6873         * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
6874         bmaskn instruction.
6875         (arc_dwarf_register_span): Remove enum keyword.
6876         (compact_memory_operand_p): New function.
6877         * config/arc/arc.h (reg_class): Add code density register classes.
6878         (REG_CLASS_NAMES): Likewise.
6879         (REG_CLASS_CONTENTS): Likewise.
6880         * config/arc/arc.md (*movqi_insn): Add code density instructions.
6881         (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
6882         (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
6883         (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
6884         * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
6885         constraints.
6886         (h, Rcd, Rsd, Rzd): New register constraints.
6887         (T): Use compact_memory_operand_p function.
6888         * config/arc/predicates.md (compact_load_memory_operand): Remove.
6889
6890 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
6891
6892         * config/sh/sh.md (*negnegt, *movtt): Remove.
6893
6894 2016-05-02  Marek Polacek  <polacek@redhat.com>
6895             Tom de Vries  <tom@codesourcery.com>
6896
6897         PR tree-optimization/70700
6898         * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
6899         bigger than FIRST_REF_NODE.
6900
6901 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
6902
6903         PR target/52898
6904         * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
6905         TARGET_CMPEQDI_T.
6906         (prepare_cbranch_operands): Don't use scratch register.  Assume that
6907         function is used when pseudos can be created.
6908         (expand_cbranchdi4): Likewise.  Remove unused TARGET_CMPEQDI_T paths.
6909         * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
6910         (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
6911         define_expand.  Allow it only when pseudos can be created.
6912         * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
6913
6914 2016-05-01  Uros Bizjak  <ubizjak@gmail.com>
6915
6916         * config/i386/constraints.md (BC): Only allow -1 operands.
6917         * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
6918         Add "enabled" attribute.  Update XI mode attribute calculation.
6919         * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
6920         (*movoi_internal_avx): Update XI mode attribute calculation.
6921         (*movti_internal): Ditto.
6922
6923 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
6924
6925         * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
6926         cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
6927
6928 2016-05-01  Eric Botcazou  <ebotcazou@adacore.com>
6929
6930         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
6931         statement on instruction code.  Remove trailing spaces.
6932         (altivec_expand_stv_builtin): Likewise.
6933
6934 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
6935
6936         * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
6937         (TARGET_FPU_DOUBLE): Simplify.
6938         (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
6939         'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
6940         * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
6941         with 'TARGET_FPU_DOUBLE'.
6942         * config/sh/sh.md: Likewise.
6943
6944 2016-05-01  Yoshinori Sato  <ysato@users.sourceforge.jp>
6945
6946         * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
6947         SH_DIV_STR_FOR_SIZE): Remove.
6948         * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
6949         SH_DIV_STR_FOR_SIZE): Remove.
6950
6951 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
6952
6953         * config/sh/predicates.md (any_register_operand, zero_extend_operand,
6954         logical_reg_operand): Delete.
6955         (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
6956         arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
6957         logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
6958         match_operand and match_test.
6959         (sh_const_vec, sh_1el_vec): Remove redundant checks.  Declare local
6960         variables on their first use.  Return bool values.
6961         * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
6962         * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
6963         arith_reg_operand for input operand.  Remove empty constraints.
6964         (xorsi3): Delete.
6965         (*xorsi3_compact): Rename to xorsi3.
6966         (zero_extend<mode>si2): Use arith_reg_operand for input operand.
6967         (*zero_extend<mode>si2_disp_mem): Update comment.
6968         (mov_nop): Delete.
6969
6970 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
6971
6972         * config/sh/t-sh: Remove SH5 support.
6973         * config.gcc: Likewise.
6974         * configure: Likewise.
6975
6976 2016-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6977
6978         * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
6979
6980 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
6981
6982         * config/sh/sh.c (register_sh_passes, sh_option_override,
6983         sh_print_operand, prepare_move_operands,
6984         sh_can_follow_jump): Remove TARGET_SH1 checks.
6985         * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
6986         PROMOTE_MODE): Likewise.
6987         * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
6988         movdi): Likewise.
6989
6990 2016-04-30  Alan Modra  <amodra@gmail.com>
6991
6992         * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
6993         restoring when fixed_reg_p, but allow out-of-line or stmw save.
6994         Check for user regs later to avoid unnecessary looping over regs.
6995         Merge user reg check with non-saved reg check.  Don't force
6996         inline VR restore when static chain used.
6997         (rs6000_frame_related): Omit eh_frame info for user regs when
6998         saving.
6999         (fixed_regs_p): Delete.
7000
7001 2016-04-30  Alan Modra  <amodra@gmail.com>
7002
7003         * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
7004         (SAVE_STRATEGY, REST_STRATEGY): ..this.  Renumber and sort enum.
7005         Update all uses.
7006
7007 2016-04-30  Alan Modra  <amodra@gmail.com>
7008
7009         PR target/69645
7010         * config/rs6000/rs6000.c (fixed_reg_p): New function.
7011         (fixed_regs_p): Rename from global_regs_p.  Call fixed_reg_p.
7012         Update all uses.
7013
7014 2016-04-30  Alan Modra  <amodra@gmail.com>
7015
7016         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
7017         Remove redundant PIC_OFFSET_TABLE_REGNUM test.  Replace with
7018         flag_pic test for Darwin.
7019
7020 2016-04-30  Alan Modra  <amodra@gmail.com>
7021
7022         * regs.h (struct reg_info_t): Delete freq_calls_crossed and
7023         throw_calls_crossed.
7024         (REG_FREQ_CALLS_CROSSED): Delete.
7025         (REG_N_THROWING_CALLS_CROSSED): Delete.
7026         * regstat.c (regstat_bb_compute_ri): Don't calculate
7027         REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
7028         (dump_reg_info): Don't print call cross frequency.
7029         * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
7030         and REG_N_THROWING_CALLS_CROSSED.
7031
7032 2016-04-30  Alan Modra  <amodra@gmail.com>
7033
7034         * regs.h (struct reg_info_t): Delete live_length.
7035         (REG_LIVE_LENGTH): Delete macro.
7036         * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
7037         local_live, local_processed and local_live_last_luid params.
7038         Replace bb_index param with bb.  Don't set REG_LIVE_LENGTH.
7039         Formatting fixes.
7040         (regstat_compute_ri): Adjust for above.  Don't set
7041         REG_LIVE_LENGTH.
7042         (dump_reg_info): Don't print live length.
7043         * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
7044         with test of setjmp_crosses.  Don't set REG_LIVE_LENGTH.
7045         Localize loop_depth var.
7046
7047 2016-04-30  Alan Modra  <amodra@gmail.com>
7048
7049         * ira.c (enum valid_equiv): New.
7050         (validate_equiv_mem): Return enum.
7051         (update_equiv_mem): Create replacement in more cases.
7052         (add_store_equivs): Update validate_equiv_mem call.
7053
7054 2016-04-30  Alan Modra  <amodra@gmail.com>
7055
7056         * ira.c (combine_and_move_insns): Rather than scanning insns,
7057         use DF infrastucture to find use and def insns.
7058
7059 2016-04-30  Alan Modra  <amodra@gmail.com>
7060
7061         ira.c (combine_and_move_insns): Move invariant conditions..
7062         (ira.c): ..to here.  Call combine_and_move_insns before
7063         add_store_equivs.  Call grow_reg_equivs later.  Allocate
7064         req_equiv later using max_reg_num() rather than global max_regno.
7065         (contains_replace_regs): Delete.
7066         (add_store_equivs): Remove contains_replace_regs test.
7067
7068 2016-04-30  Alan Modra  <amodra@gmail.com>
7069
7070         * ira.c (struct equiv_mem_data): New.
7071         (equiv_mem, equiv_mem_modified): Delete static vars.
7072         (validate_equiv_mem_from_store): Use "data" param to communicate..
7073         (validate_equiv_mem): ..from here.
7074
7075 2016-04-30  Alan Modra  <amodra@gmail.com>
7076
7077         * ira.c (add_store_equivs, combine_and_move_insns): New functions,
7078         split out from..
7079         (update_reg_equivs): ..here.  Move allocation and freeing of
7080         reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
7081         end_alias_analysis to..
7082         (ira): ..here.
7083
7084 2016-04-30  Alan Modra  <amodra@gmail.com>
7085
7086         * ira.c (pdx_subregs): Delete.
7087         (struct equivalence): Add pdx_subregs field.
7088         (set_paradoxical_subreg): Remove pdx_subregs param.  Update
7089         pdx_subregs access.
7090         (update_equiv_regs): Don't create or free pdx_subregs.  Update
7091         pdx_subregs access.
7092
7093 2016-04-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7094
7095         * config/rs6000/altivec.h: Change definitions of vec_xl and
7096         vec_xst.
7097         * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
7098         (LD_ELEMREV_V2DI): New.
7099         (LD_ELEMREV_V4SF): New.
7100         (LD_ELEMREV_V4SI): New.
7101         (LD_ELEMREV_V8HI): New.
7102         (LD_ELEMREV_V16QI): New.
7103         (ST_ELEMREV_V2DF): New.
7104         (ST_ELEMREV_V2DI): New.
7105         (ST_ELEMREV_V4SF): New.
7106         (ST_ELEMREV_V4SI): New.
7107         (ST_ELEMREV_V8HI): New.
7108         (ST_ELEMREV_V16QI): New.
7109         (XL): New.
7110         (XST): New.
7111         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7112         descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
7113         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
7114         TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
7115         (altivec_expand_builtin): Add handling for
7116         VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
7117         (rs6000_invalid_builtin): Add error-checking for
7118         RS6000_BTM_P9_VECTOR.
7119         (altivec_init_builtins): Define builtins used to implement vec_xl
7120         and vec_xst.
7121         (rs6000_builtin_mask_names): Define power9-vector.
7122         * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
7123         (RS6000_BTM_P9_VECTOR): Define.
7124         (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
7125         * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
7126         (vsx_ld_elemrev_v2df): Likewise.
7127         (vsx_ld_elemrev_v4sf): Likewise.
7128         (vsx_ld_elemrev_v4si): Likewise.
7129         (vsx_ld_elemrev_v8hi): Likewise.
7130         (vsx_ld_elemrev_v16qi): Likewise.
7131         (vsx_st_elemrev_v2df): Likewise.
7132         (vsx_st_elemrev_v2di): Likewise.
7133         (vsx_st_elemrev_v4sf): Likewise.
7134         (vsx_st_elemrev_v4si): Likewise.
7135         (vsx_st_elemrev_v8hi): Likewise.
7136         (vsx_st_elemrev_v16qi): Likewise.
7137         * doc/extend.texi: Add prototypes for vec_xl and vec_xst.  Correct
7138         grammar.
7139
7140 2016-04-29  Patrick Palka  <ppalka@gcc.gnu.org>
7141
7142         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
7143         out into ...
7144         (simplify_control_stmt_condition_1): ... here.  Recurse into
7145         BIT_AND_EXPRs and BIT_IOR_EXPRs.
7146
7147 2016-04-29  David Edelsohn  <dje.gcc@gmail.com>
7148
7149         PR target/69810
7150         * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
7151         (zero_extendqi<mode>2_dot): Revert earlier conversion from
7152         define_insn_and_split to define_insn.
7153         (zero_extendqi<mode>2_dot2): Same.
7154         (extendqi<mode>2_dot): Same.
7155         (extendqi<mode>2_dot2): Same.
7156
7157 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
7158
7159         * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
7160         (probe_stack): New expander.
7161         (probe_stack_<mode>): New insn pattern.
7162
7163 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
7164
7165         * config/i386/i386.md
7166         (operations with memory inputs setting flags peephole2):
7167         Remove uneeded REG_P checks.  Cleanup pattern generation.
7168
7169 2016-04-29  Ilya Enkovich  <ilya.enkovich@intel.com>
7170
7171         * tree-vect-loop.c (vect_transform_loop): Fix
7172         nb_iterations_upper_bound computation for vectorized loop.
7173
7174 2016-04-29  Marek Polacek  <polacek@redhat.com>
7175             Jakub Jelinek  <jakub@redhat.com>
7176
7177         PR sanitizer/70342
7178         * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
7179         TARGET_EXPR_SLOT as a base.
7180
7181 2016-04-29  Andrew Burgess  <andrew.burgess@embecosm.com>
7182
7183         * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
7184         with 'rCm2' constraints to limit possible immediate size.
7185         (*load_zeroextendqisi_update): Likewise.
7186         (*load_signextendqisi_update): Likewise.
7187         (*loadhi_update): Likewise.
7188         (*load_zeroextendhisi_update): Likewise.
7189         (*load_signextendhisi_update): Likewise.
7190         (*loadsi_update): Likewise.
7191         (*loadsf_update): Likewise.
7192
7193 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
7194
7195         * config/i386/predicates.md (constm1_operand): Fix comparison.
7196
7197 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
7198
7199         * testsuite/gcc.target/arc/ieee_eq.c: New test.
7200
7201 2016-04-29  Oleg Endo  <olegendo@gcc.gnu.org>
7202
7203         * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
7204         remaining SH5 related settings.
7205         * config/sh/sh-protos.h (shmedia_cleanup_truncate,
7206         shmedia_prepare_call_address): Delete.
7207         * config/sh/sh.c (sh_print_operand, output_stack_adjust,
7208         DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
7209         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
7210         UNSUPPORTED_SH2A): Remove m5 checks.
7211         (sh_divide_strategy_e): Remove SH5 division strategies.
7212         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
7213         * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
7214
7215 2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7216
7217         * config/s390/s390.c (s390_rtx_costs): Update documentation.
7218
7219 2016-04-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7220
7221         * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
7222         * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
7223         Change lder to ldr.
7224         * config/s390/vector.md ("mov<mode>"): Likewise.
7225
7226 2016-04-29  Ulrich Weigand  <uweigand@de.ibm.com>
7227
7228         * config/s390/constraints.md ("U", "W"): Invoke
7229         s390_mem_constraint with "ZR" and "ZT".
7230         * config/s390/s390.c (s390_check_qrst_address): Reject invalid
7231         addresses when using LRA.  Accept also short displacements for S
7232         and T constraints.  Do not check for long displacement target for
7233         S and T constraints.
7234         (s390_mem_constraint): Remove handling of U and W constraints.
7235         * config/s390/s390.md (various patterns): Remove the short
7236         displacement constraints (Q and R) if a long displacement
7237         constraint is present.  Add longdisp as required CPU capability.
7238         * config/s390/vector.md: Likewise.
7239         * config/s390/vx-builtins.md: Likewise.
7240
7241 2016-04-29  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
7242
7243         PR target/60040
7244         * reload1.c (reload): Call finish_spills before
7245         restarting reload loop. Skip select_reload_regs
7246         if update_eliminables_and_spill returns true.
7247
7248 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
7249
7250         * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
7251         * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
7252         (umulhisi3_imm): Update predicates and constraint letters.
7253         (umulhisi3_reg): Declare instruction as commutative.
7254         * config/arc/constraints.md (J12, J16): New constraints.
7255         * config/arc/predicates.md (short_unsigned_const_operand): New
7256         predicate.
7257         (arc_short_operand): Likewise.
7258         * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
7259
7260 2016-04-29  Richard Biener  <rguenther@suse.de>
7261
7262         PR tree-optimization/13962
7263         PR tree-optimization/65686
7264         * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
7265         * tree-ssa-alias.c (ptrs_compare_unequal): New function
7266         using PTA to compare pointers.
7267         * match.pd: Add pattern for pointer equality compare simplification
7268         using ptrs_compare_unequal.
7269
7270 2016-04-29  Richard Biener  <rguenther@suse.de>
7271
7272         * stor-layout.c (layout_type): Do not build a pointer-to-element
7273         type for arrays.
7274
7275 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
7276
7277         * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
7278         Use SWI mode iterator.  Use general_reg_operand predicate.
7279         (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
7280         peephole to MMX and SSE part.  Use mmx_reg_operand and sse_reg_operand
7281         predicates.
7282
7283 2016-04-29  Jakub Jelinek  <jakub@redhat.com>
7284
7285         PR middle-end/70843
7286         * fold-const.c (operand_equal_p): Don't verify hash value equality
7287         if arg0 == arg1.
7288         * tree.c (inchash::add_expr): Handle STATEMENT_LIST.  Ignore BLOCK
7289         and OMP_CLAUSE.
7290
7291 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
7292
7293         PR target/70858
7294         * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
7295         to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
7296         (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
7297         __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
7298         __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
7299
7300 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
7301
7302         * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
7303         to info.  Don't initialize separate fields to 0.  Clean up
7304         formatting a bit.
7305
7306 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
7307
7308         * config/i386/i386.md (peephole2s for operations with memory inputs):
7309         Use SWI mode iterator.
7310         (peephole2s for operations with memory outputs): Ditto.
7311         Do not check for stack checking probe.
7312
7313         (probe_stack): Remove expander.
7314
7315 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
7316             Andrew Burgess  <andrew.burgess@embecosm.com>
7317
7318         * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
7319         operands as 32-bits.
7320
7321 2016-04-28  Jason Merrill  <jason@redhat.com>
7322
7323         * gdbinit.in: Skip line-map.h.
7324
7325 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
7326             Andrew Burgess  <andrew.burgess@embecosm.com>
7327
7328         * config/arc/arc.c (arc_conditional_register_usage): Take
7329         TARGET_RRQ_CLASS into account.
7330         (arc_print_operand): Support printing 'p' and 's' operands.
7331         * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
7332         as 0.
7333         (TARGET_RRQ_CLASS): Define.
7334         (IS_POWEROF2_OR_0_P): Define.
7335         * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
7336         alternatives.
7337         (*tst_movb): New define_insn.
7338         (*tst): Avoid recognition if it could prevent '*tst_movb'
7339         combination; replace c/CnL with c/Chs alternative.
7340         (*tst_bitfield_tst): New define_insn.
7341         (*tst_bitfield_asr): New define_insn.
7342         (*tst_bitfield): New define_insn.
7343         (andsi3_i): Add Rrq variant.
7344         (extzv): New define_expand.
7345         (insv): New define_expand.
7346         (*insv_i): New define_insn.
7347         (*movb): New define_insn.
7348         (*movb_signed): New define_insn.
7349         (*movb_high): New define_insn.
7350         (*movb_high_signed): New define_insn.
7351         (*movb_high_signed + 1): New define_split pattern.
7352         (*mrgb): New define_insn.
7353         (*mrgb + 1): New define_peephole2 pattern.
7354         (*mrgb + 2): New define_peephole2 pattern.
7355         * config/arc/arc.opt (mbitops): New option for nps400, uses
7356         TARGET_NPS_BITOPS_DEFAULT.
7357         * config/arc/constraints.md (q): Make register class conditional.
7358         (Rrq): New register constraint.
7359         (Chs): New constraint.
7360         (Clo): New constraint.
7361         (Chi): New constraint.
7362         (Cbf): New constraint.
7363         (Cbn): New constraint.
7364         (C18): New constraint.
7365         (Cbi): New constraint.
7366
7367 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
7368
7369         * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
7370         dst->popcount.
7371         (bitmap_intersection_of_preds): Ditto.
7372         (bitmap_union_of_succs): Ditto.
7373         (bitmap_union_of_preds): Ditto.
7374         * sbitmap.c (do_popcount): Delete.
7375         (BITMAP_DEBUGGING): Delete.
7376         (sbitmap_verify_popcount): Delete.
7377         (sbitmap_alloc): Don't initialize the popcount field.
7378         (sbitmap_alloc_with_popcount): Delete.
7379         (sbitmap_resize): Don't resize the popcount array.
7380         (sbitmap_vector_alloc): Don't initialize the popcount field.
7381         (bitmap_copy): Don't copy the popcount array.
7382         (bitmap_clear): Don't clear the popcount array.
7383         (bitmap_clear): Delete the popcount array handling.
7384         (bitmap_ior_and_compl): Delete the popcount assert.
7385         (bitmap_not): Ditto.
7386         (bitmap_and_compl): Ditto.
7387         (bitmap_and): Delete the popcount array handling.
7388         (bitmap_xor): Ditto.
7389         (bitmap_ior): Ditto.
7390         (bitmap_or_and): Delete the popcount assert.
7391         (bitmap_and_or): Ditto.
7392         (popcount_table): Delete.
7393         (sbitmap_elt_popcount): Delete.
7394         * sbitmap.h (simple_bitmap_def): Delete the popcount field.
7395         (bitmap_set_bit): Delete the popcount assert.
7396         (bitmap_clear_bit): Ditto.
7397         (sbitmap_free): Don't free the popcount array.
7398         (sbitmap_alloc_with_popcount): Delete declaration.
7399         (sbitmap_popcount): Ditto.
7400
7401 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
7402             Andrew Burgess  <andrew.burgess@embecosm.com>
7403
7404         * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
7405         (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
7406         * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
7407         (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
7408         * config/arc/arc.opt (mcmem): New option.
7409         * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
7410         supply length for r/m alternative.
7411         (*extendqisi2_ac): Likewise.
7412         (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
7413         r/Uex alternative.
7414         (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
7415         (movhi_insn): Likewise.
7416         (movsi_insn): Add r/Ucm,Ucm/w alternatives.
7417         (*zero_extendqihi2_i): Add r/Ucm alternative.
7418         (*zero_extendqisi2_ac): Likewise.
7419         (*zero_extendhisi2_i): Likewise.
7420         * config/arc/constraints.md (Uex): New memory constraint.
7421         (Ucm): New define_constraint.
7422         * config/arc/predicates.md (long_immediate_loadstore_operand):
7423         Return 0 for MEM with cmem_address address.
7424         (cmem_address_0): New predicates.
7425         (cmem_address_1): Likewise.
7426         (cmem_address_2): Likewise.
7427         (cmem_address): Likewise.
7428
7429 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
7430
7431         * config/rs6000/rs6000.c (machine_function): Rename
7432         insn_chain_scanned_p to spe_insn_chain_scanned_p.
7433         (rs6000_stack_info): Adjust.
7434
7435 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
7436             Andrew Burgess  <andrew.burgess@embecosm.com>
7437
7438         * config/arc/constraints.md (Usd): Convert to define_constraint.
7439         (Us<): Likewise.
7440         (Us>): Likewise.
7441
7442 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
7443
7444         PR target/70821
7445         * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
7446         Add new peephole2 where the first insn is *mov<mode>_or instead of
7447         *mov<mode>_internal.
7448
7449 2016-04-28  Segher Boesssenkool  <segher@kernel.crashing.org>
7450
7451         * tracer.c (bb_seen): Make static.
7452
7453 2016-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>
7454
7455         * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
7456         support, setup defaults.
7457         * config/arc/arc-opts.h (enum processor_type): Add NPS400.
7458         * config/arc/arc.c (arc_init): Add NPS400 support.
7459         * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
7460         (TARGET_ARC700): NPS400 is also an ARC700.
7461         * config/arc/arc.opt: Add NPS400 options to -mcpu=.
7462
7463 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
7464
7465         PR target/70668
7466         * config/nds32/nds32.md (casesi): Don't access the operands array
7467         out of bounds.
7468
7469 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
7470
7471         * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
7472         (or $-1,reg peephole2): Ditto.
7473         (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
7474
7475 2016-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
7476
7477         * doc/extend.texi (Common Function Attributes) [optimize]:
7478         Discourage use of the optimize attribute.
7479
7480 2016-04-28  Bill Seurer  <seurer@linux.vnet.ibm.com>
7481
7482         * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
7483         special case builtin.
7484         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
7485         ALTIVEC_BUILTIN_VEC_ADDE.
7486         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
7487         support for ALTIVEC_BUILTIN_VEC_ADDE.
7488         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
7489         for __builtin_vec_adde.
7490
7491 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
7492
7493         * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
7494         * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
7495
7496 2016-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7497
7498         PR testsuite/70595
7499         * doc/sourcebuild.texi (Effective-Target Keywords, Other
7500         attributes): Document cilkplus_runtime.
7501
7502 2016-04-28  Martin Jambor  <mjambor@suse.cz>
7503
7504         * tree-cfg.c (verify_expr): Verify that local declarations belong to
7505         this function.  Call verify_expr on MEM_REFs and bases of other
7506         handled_components.
7507
7508 2016-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7509
7510         * internal-fn.c (expand_arith_overflow): Convert preprocessor check
7511         for WORD_REGISTER_OPERATIONS to runtime check.
7512
7513 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
7514
7515         * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
7516
7517 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
7518
7519         * config/arc/arc.c (arc_process_double_reg_moves): Fix for
7520         big-endian compilation.
7521         * config/arc/arc.md (addf3): Likewise.
7522         (subdf3): Likewise.
7523         (muldf3): Likewise.
7524
7525 2016-04-28  Richard Biener  <rguenther@suse.de>
7526
7527         PR tree-optimization/70840
7528         * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
7529         Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
7530         Mark x * pow(x,c) -> pow(x,c+1) commutative.
7531         Add powi(x,y) * powi(z,y) -> powi(x*z,y).
7532
7533 2015-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7534
7535         * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
7536         and explain why in a comment.
7537
7538 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
7539
7540         * config/arc/arc.md (cpu_facility): Add fpx variant.
7541         (subdf3): Prohibit use reverse sub when assist operations option
7542         is enabled.
7543         * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
7544         instructions only when FPX is enabled.
7545         * testsuite/gcc.target/arc/trsub.c: New test.
7546
7547 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
7548
7549         * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
7550         mult_operator when calculating "type" attribute.
7551         (*fop_<mode>_1_i387): Ditto.
7552         (*fop_xf_1_i387): Ditto.
7553         (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
7554         Use std::swap to swap operands.  Use RTL expressions to generate
7555         converted pattern.
7556
7557 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
7558             Joern Rennecke  <joern.rennecke@embecosm.com>
7559
7560         * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
7561         declaration.
7562         (emit_pic_move): Remove.
7563         (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
7564         * config/arc/arc.c (emit_pic_move): Removed.
7565         (TARGET_HAVE_TLS): Define.
7566         (arc_conditional_register_usage): Test for arc_tp_regno.
7567         (arc_print_operand, arc_print_operand_address): Handle TLS
7568         unspecs.
7569         (arc_needs_pcl_p): New function.
7570         (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
7571         (arc_legitimate_pic_addr_p): Handle TLS unspecs.
7572         (arc_raw_symbolic_reference_mentioned_p): Likewise.
7573         (arc_get_tp, arc_emit_call_tls_get_addr): New function.
7574         (arc_legitimize_tls_address): Likewise.
7575         (DTPOFF_ZERO_SYM): Define.
7576         (arc_legitimize_pic_address): Make it static, handle TLS cases.
7577         (arc_output_pic_addr_const): Print TLS unspecs.
7578         (prepare_pic_move): New function, replaces emit_pic_move.
7579         (arc_legitimate_constant_p): Handle TLS unspecs.
7580         (arc_legitimate_address_p): Likewise.
7581         (arc_rewrite_small_data_p): Use assert for TLS constants.
7582         (prepare_move_operands): Use prepare_pic_move.
7583         (arc_legitimize_address): Legitimize tls addresses.
7584         (arc_epilogue_uses): Check for arc_tp_regno.
7585         (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
7586         * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
7587         Define.
7588         [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
7589         Likewise.
7590         [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
7591         %(arc_tls_extra_start_spec).
7592         (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
7593         (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
7594         (EH_USES): Define.
7595         (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
7596         * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
7597         (UNSPEC_TLS_OFF): Add.
7598         (R10_REG): Define.
7599         (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
7600         (get_thread_pointersi): New patterns.
7601         * config/arc/arc.opt (mtp-regno): New option.
7602         * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
7603         (move_dest_operand): Likewise.
7604         * configure: Regenerate.
7605         * configure.ac: Add arc*-*-* case to test for tls.
7606         * doc/invoke.texi (ARC options): Document mtp-regno.
7607
7608 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
7609
7610         * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
7611         the new ARC HS SIMD instructions.
7612         (arc_preferred_simd_mode): New function.
7613         (arc_autovectorize_vector_sizes): Likewise.
7614         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
7615         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
7616         (arc_init_reg_tables): Accept new ARC HS SIMD modes.
7617         (arc_init_builtins): Add new SIMD builtin types.
7618         (arc_split_move): Handle 64 bit vector moves.
7619         * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
7620         (TARGET_PLUS_QMACW): Define.
7621         * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
7622         (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
7623         (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
7624         (VSUBADD4H): New builtins.
7625         * config/arc/simdext.md: Add new ARC HS SIMD instructions.
7626         * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
7627
7628 2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
7629             Matthias Klose  <doko@debian.org>
7630
7631         * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
7632
7633 2016-04-28  Richard Biener  <rguenther@suse.de>
7634
7635         PR middle-end/70777
7636         * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
7637         canonicalization.
7638
7639 2016-04-28  Oleg Endo  <olegendo@gcc.gnu.org>
7640
7641         * common/config/sh/sh-common.c: Remove SH5 support.
7642         * config/sh/constraints.md: Likewise.
7643         * config/sh/config/sh/elf.h: Likewise.
7644         * config/sh/linux.h: Likewise.
7645         * config/sh/netbsd-elf.h: Likewise.
7646         * config/sh/predicates.md: Likewise.
7647         * config/sh/sh-c.c: Likewise.
7648         * config/sh/sh-protos.h: Likewise.
7649         * config/sh/sh.c: Likewise.
7650         * config/sh/sh.h: Likewise.
7651         * config/sh/sh.md: Likewise.
7652         * config/sh/sh.opt: Likewise.
7653         * config/sh/sync.md: Likewise.
7654         * config/sh/sh64.h: Delete.
7655         * config/sh/shmedia.h: Likewise.
7656         * config/sh/shmedia.md: Likewise.
7657         * config/sh/sshmedia.h: Likewise.
7658         * config/sh/t-netbsd-sh5-64: Likewise.
7659         * config/sh/t-sh64: Likewise.
7660         * config/sh/ushmedia.h: Likewise.
7661
7662 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
7663
7664         * config/i386/i386.md (sign_extend to memory peephole2s): Use
7665         general_reg_operand instead of register_operand predicate.
7666
7667 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7668
7669         * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
7670
7671 2016-04-27  Marc Glisse  <marc.glisse@inria.fr>
7672
7673         * match.pd (A - B > A, A + B < A): New transformations.
7674
7675 2016-04-27  Patrick Palka  <ppalka@gcc.gnu.org>
7676
7677         * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
7678         which defaults to true.  Emit an outer pair of parentheses only if
7679         EMIT_PARENS.  When continuing a chain of && or || (or & or |),
7680         don't emit parentheses for the right-hand operand.
7681
7682 2016-04-27  Jeff Law  <law@redhat.com>
7683
7684         * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
7685
7686 2016-04-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7687
7688         * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
7689         (altivec_lvx_<mode>_internal): Document.
7690         (altivec_lvx_<mode>_2op): New define_insn.
7691         (altivec_lvx_<mode>_1op): Likewise.
7692         (altivec_lvx_<mode>_2op_si): Likewise.
7693         (altivec_lvx_<mode>_1op_si): Likewise.
7694         (altivec_stvx_<mode>): Remove.
7695         (altivec_stvx_<mode>_internal): Document.
7696         (altivec_stvx_<mode>_2op): New define_insn.
7697         (altivec_stvx_<mode>_1op): Likewise.
7698         (altivec_stvx_<mode>_2op_si): Likewise.
7699         (altivec_stvx_<mode>_1op_si): Likewise.
7700         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7701         Expand vec_ld and vec_st during parsing.
7702         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
7703         changes.
7704         (altivec_expand_stvx_be): Likewise.
7705         (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
7706         address-masking behavior in RTL.
7707         (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
7708         address-masking behavior in RTL.
7709         (altivec_expand_builtin): Change builtin code arguments for calls
7710         to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
7711         (insn_is_swappable_p): Avoid incorrect swap optimization in the
7712         presence of lvx/stvx patterns.
7713         (alignment_with_canonical_addr): New function.
7714         (alignment_mask): Likewise.
7715         (find_alignment_op): Likewise.
7716         (recombine_lvx_pattern): Likewise.
7717         (recombine_stvx_pattern): Likewise.
7718         (recombine_lvx_stvx_patterns): Likewise.
7719         (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
7720         stvx patterns from expand.
7721         * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
7722         expansions.
7723         (vector_altivec_store_<mode>): Likewise.
7724
7725 2016-04-26  Evandro Menezes  <e.menezes@samsung.com>
7726
7727         * config/aarch64/aarch64.md
7728         (*movhf_aarch64): Add "movi %0, #0" to zero up register and
7729         remove the "fp" attributes.
7730         (*movsf_aarch64): Add "movi %0, #0" to zero up register and
7731         add the "simd" attributes.
7732         (*movdf_aarch64): Likewise.
7733         (*movtf_aarch64): Remove the "fp" attributes.
7734         * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
7735         * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
7736
7737 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
7738
7739         * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
7740         rtx to rtx_code_label *.
7741         * rtl.h (maybe_set_first_label_num): Likewise.
7742
7743 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
7744
7745         * df-core.c (df_add_problem): Make the problem param be const.
7746         (df_remove_problem): Make local "problem" be const.
7747         * df-problems.c (problem_RD): Make const.
7748         (problem_LR): Likewise.
7749         (problem_LIVE): Likewise.
7750         (problem_MIR): Likewise.
7751         (problem_CHAIN): Likewise.
7752         (problem_WORD_LR): Likewise.
7753         (problem_NOTE): Likewise.
7754         (problem_MD): Likewise.
7755         * df-scan.c (problem_SCAN): Likewise.
7756         * df.h (struct df_problem): Make field "dependent_problem" be
7757         const.
7758         (struct dataflow): Likewise for field "problem".
7759         (df_add_problem): Make param const.
7760
7761 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
7762
7763         * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
7764         inter-unit moves to/from vector registers are enabled.  Do not disable
7765         for TARGET_MMX.
7766
7767 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
7768
7769         * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
7770         DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
7771         #define to...
7772         (enum df_problem_id): ...this new enum.
7773         (struct df_problem): Convert field "id" from "int" to
7774         enum df_problem_id.
7775
7776 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
7777
7778         * rtl.def: Update comment for "things in the instruction chain" to
7779         reflect the removal of the leading "i" field for INSN_UID in
7780         r210360.  Fix bogus apostrophe.
7781
7782 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
7783
7784         * config/i386/i386.md
7785         (lea arith with mem operand + setcc peephole2): Set operator mode.
7786
7787 2016-04-27  H.J. Lu  <hongjiu.lu@intel.com>
7788
7789         PR target/70155
7790         * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
7791         (dimode_scalar_to_vector_candidate_p): This.
7792         (timode_scalar_to_vector_candidate_p): New function.
7793         (scalar_to_vector_candidate_p): Likewise.
7794         (timode_check_non_convertible_regs): Likewise.
7795         (timode_remove_non_convertible_regs): Likewise.
7796         (remove_non_convertible_regs): Likewise.
7797         (remove_non_convertible_regs): Renamed to ...
7798         (dimode_remove_non_convertible_regs): This.
7799         (scalar_chain::~scalar_chain): Make it virtual.
7800         (scalar_chain::compute_convert_gain): Make it pure virtual.
7801         (scalar_chain::mark_dual_mode_def): Likewise.
7802         (scalar_chain::convert_insn): Likewise.
7803         (scalar_chain::convert_registers): Likewise.
7804         (scalar_chain::add_to_queue): Make it protected.
7805         (scalar_chain::emit_conversion_insns): Likewise.
7806         (scalar_chain::replace_with_subreg): Likewise.
7807         (scalar_chain::replace_with_subreg_in_insn): Likewise.
7808         (scalar_chain::convert_op): Likewise.
7809         (scalar_chain::convert_reg): Likewise.
7810         (scalar_chain::make_vector_copies): Likewise.
7811         (scalar_chain::convert_registers): New pure virtual function.
7812         (class dimode_scalar_chain): New class.
7813         (class timode_scalar_chain): Likewise.
7814         (scalar_chain::mark_dual_mode_def): Renamed to ...
7815         (dimode_scalar_chain::mark_dual_mode_def): This.
7816         (timode_scalar_chain::mark_dual_mode_def): New function.
7817         (timode_scalar_chain::convert_insn): Likewise.
7818         (dimode_scalar_chain::convert_registers): Likewise.
7819         (scalar_chain::compute_convert_gain): Renamed to ...
7820         (dimode_scalar_chain::compute_convert_gain): This.
7821         (scalar_chain::replace_with_subreg): Renamed to ...
7822         (dimode_scalar_chain::replace_with_subreg): This.
7823         (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
7824         (dimode_scalar_chain::replace_with_subreg_in_insn): This.
7825         (scalar_chain::make_vector_copies): Renamed to ...
7826         (dimode_scalar_chain::make_vector_copies): This.
7827         (scalar_chain::convert_reg): Renamed to ...
7828         (dimode_scalar_chain::convert_reg ): This.
7829         (scalar_chain::convert_op): Renamed to ...
7830         (dimode_scalar_chain::convert_op): This.
7831         (scalar_chain::convert_insn): Renamed to ...
7832         (dimode_scalar_chain::convert_insn): This.
7833         (scalar_chain::convert): Call convert_registers.
7834         (convert_scalars_to_vector): Change to scalar_chain pointer to
7835         use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
7836         in 32-bit mode.  Delete scalar_chain pointer.  Call
7837         free_dominance_info in 64-bit mode.
7838         (pass_stv::gate): Remove TARGET_64BIT check.
7839         (ix86_option_override): Put the 64-bit STV pass before the CSE
7840         pass.
7841
7842 2016-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>
7843
7844         * dwarf2out.h (struct dw_loc_descr_node): Remove the
7845         dw_loc_frame_offset field.
7846         * dwarf2out.c (new_loc_descr): Likewise.
7847         (resolve_args_picking_1): Turn the VISITED hash set into a
7848         FRAME_OFFSET hash map. Use it to associate a frame offset to
7849         visited nodes. Remove uses of the CHECKING_P macro.
7850         (resolve_args_picking): Update call to resolve_args_picking_1.
7851
7852 2016-04-27  Martin Liska  <mliska@suse.cz>
7853
7854         * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
7855         (free_loop_data): Release vuses of groups.
7856
7857 2016-04-27  Bin Cheng  <bin.cheng@arm.com>
7858
7859         * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
7860         instead of redundant use_id and boolean have_use_for.
7861         (struct iv_use): Change sub_id into group_id.  Remove field next.
7862         Move fields: related_cands, n_map_members, cost_map and selected
7863         to ...
7864         (struct iv_group): ... here.  New structure.
7865         (struct iv_common_cand): Use structure declaration directly.
7866         (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
7867         (MAX_CONSIDERED_USES): Rename macro to ...
7868         (MAX_CONSIDERED_GROUPS): ... here.
7869         (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
7870         (dump_iv, dump_use, dump_cand): Refactor format of dump information.
7871         (dump_uses): Rename to ...
7872         (dump_groups): ... here.  Update all uses.
7873         (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
7874         (find_induction_variables): Refactor format of dump information.
7875         (record_sub_use): Delete.
7876         (record_use): Update all uses.
7877         (record_group): New function.
7878         (record_group_use, find_interesting_uses_op): Call above functions.
7879         Update all uses.
7880         (find_interesting_uses_cond): Ditto.
7881         (group_compare_offset): New function.
7882         (split_all_small_groups): Rename to ...
7883         (split_small_address_groups_p): ... here.  Update all uses.
7884         (split_address_groups):  Update all uses.
7885         (find_interesting_uses): Refactor format of dump information.
7886         (add_candidate_1): Update all uses.  Remove redundant check on iv,
7887         base and step.
7888         (add_candidate, record_common_cand): Remove redundant assert.
7889         (add_iv_candidate_for_biv): Update use.
7890         (add_iv_candidate_derived_from_uses): Update all uses.
7891         (add_iv_candidate_for_groups, record_important_candidates): Ditto.
7892         (alloc_use_cost_map): Ditto.
7893         (set_use_iv_cost, get_use_iv_cost): Rename to ...
7894         (set_group_iv_cost, get_group_iv_cost): ... here.  Update all uses.
7895         (determine_use_iv_cost_generic): Ditto.
7896         (determine_group_iv_cost_generic): Ditto.
7897         (determine_use_iv_cost_address): Ditto.
7898         (determine_group_iv_cost_address): Ditto.
7899         (determine_use_iv_cost_condition): Ditto.
7900         (determine_group_iv_cost_cond): Ditto.
7901         (determine_use_iv_cost): Ditto.
7902         (determine_group_iv_cost): Ditto.
7903         (set_autoinc_for_original_candidates): Update all uses.
7904         (find_iv_candidates): Update all uses.  Refactor dump information.
7905         (determine_use_iv_costs): Ditto.
7906         (determine_iv_costs): Ditto.
7907         (iv_ca_cand_for_use): Rename to ...
7908         (iv_ca_cand_for_group): ... here.  Update all uses.
7909         (iv_ca_add_use, iv_ca_add_group): Ditto.
7910         (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
7911         (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
7912         (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
7913         (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
7914         (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
7915         (create_new_iv, adjust_iv_update_pos): Ditto.
7916         (rewrite_use_address): Delete.
7917         (rewrite_use_address_1): Rename to ...
7918         (rewrite_use_address): ... here.
7919         (rewrite_use_compare): Update all uses.
7920         (rewrite_use): Delete.
7921         (rewrite_uses): Rename to ...
7922         (rewrite_groups): ... here.  Update all uses.
7923         (remove_unused_ivs, free_loop_data): Update all uses.
7924         (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
7925
7926 2016-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7927
7928         * rtlanal.c (nonzero_bits1): Convert preprocessor check
7929         for WORD_REGISTER_OPERATIONS to runtime check.
7930
7931 2016-04-27  Richard Biener  <rguenther@suse.de>
7932
7933         PR ipa/70760
7934         * tree-ssa-structalias.c (find_func_aliases_for_call): Use
7935         aggregate_value_p to determine if a function result is
7936         returned by reference.
7937         (ipa_pta_execute): Functions having their address taken are
7938         not automatically nonlocal.
7939
7940 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
7941
7942         PR sanitizer/70683
7943         * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
7944         * fold-const.c (operand_equal_p): If flag_checking and
7945         OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
7946         and if it returns non-zero, assert iterative_hash_expr on both
7947         args is the same.
7948
7949 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
7950
7951         * doc/invoke.texi (-frename-registers): Also enabled at -Os.
7952
7953 2016-04-27  Nick Clifton  <nickc@redhat.com>
7954
7955         PR middle-end/49889
7956         * varasm.c (merge_weak): Generate an error if an attempt is made
7957         to convert a non-weak static function into a weak, public function.
7958
7959 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7960
7961         * params.def (MAX_PARTITION_SIZE): New param.
7962         * doc/invoke.texi: Document lto-max-partition.
7963
7964 2016-04-27  Richard Biener  <rguenther@suse.de>
7965
7966         PR ipa/70785
7967         * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
7968         function cummulating used_from_other_partition, externally_visible
7969         and force_output from aliases.
7970         (refered_from_nonlocal_var): Likewise.
7971         (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
7972         node flags properly.
7973
7974 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
7975
7976         * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
7977         (-Wmemset-elt-size): New item.
7978
7979 2016-04-27  Eric Botcazou  <ebotcazou@adacore.com>
7980
7981         PR ada/70759
7982         * stor-layout.h (internal_reference_types): Delete.
7983         * stor-layout.c (reference_types_internal): Likewise.
7984         (internal_reference_types): Likewise.
7985         (layout_type) <REFERENCE_TYPE>: Adjust.
7986
7987 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
7988
7989         PR sanitizer/70683
7990         * tree.h (inchash::add_expr): Add FLAGS argument.
7991         * tree.c (inchash::add_expr): Likewise.  If not OEP_ADDRESS_OF,
7992         use STRIP_NOPS first.  For INTEGER_CST assert not OEP_ADDRESS_OF.
7993         For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
7994         Formatting fix.  Adjust recursive calls.  For tcc_comparison,
7995         if swap_tree_comparison (code) is smaller than code, hash that
7996         and arguments in the other order.  Hash CONVERT_EXPR the same
7997         as NOP_EXPR.  For OEP_ADDRESS_OF hash MEM_REF with 0 offset
7998         of ADDR_EXPR of decl as the decl itself.  Add or remove
7999         OEP_ADDRESS_OF from recursive flags as needed.  For
8000         FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
8001         operands commutatively and only the third one normally.
8002         For internal CALL_EXPR hash in CALL_EXPR_IFN.
8003
8004 2016-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
8005
8006         * config/rtems.h (LIB_SPEC): Add -latomic.
8007
8008 2016-04-27  Joel Sherrill  <joel@rtems.org>
8009
8010         * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
8011         xilink.ld and flags not relevant to RTEMS.
8012
8013 2016-04-26  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
8014
8015         * toplev.c (backend_init_target): Avoid calling init_reload when using
8016         LRA.
8017
8018 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
8019
8020         * reorg.c (try_merge_delay_insns): Declare i and j inside the
8021         for loops rather than one for the whole function.
8022
8023 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
8024
8025         * match.pd (X + CST CMP X): New transformation.
8026
8027 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
8028
8029         * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
8030         * fold-const.c (fold_binary_loc): Remove 2 transformations
8031         superseded by match.pd.
8032         * match.pd (x+x -> x*2): Generalize to integers.
8033
8034 2016-04-26  Bernd Schmidt  <bschmidt@redhat.com>
8035
8036         * config/i386/i386.md (operation on memory peephole): Duplicate an
8037         existing peephole and adapt it to match lea rather than an operation
8038         that clobbers CC.
8039
8040         PR rtl-optimization/57193
8041         * opts.c (default_options_table): Add OPT_frename_registers at -O2
8042         and above.
8043         * doc/invoke.texi (-frename-registers, -O2): Update documentation.
8044
8045 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
8046
8047         * tree-if-conv.c (any_pred_load_store): New static variable.
8048         (if_convertible_gimple_assign_stmt_p): Remove parameter.  Use
8049         any_pred_load_store instead of and_mask_load_store.
8050         (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
8051         (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
8052         (combine_blocks, tree_if_conversion): Ditto.
8053
8054 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
8055
8056         PR tree-optimization/70771
8057         PR tree-optimization/70775
8058         * tree-if-conv.c (if_convertible_phi_p): Remove check on special
8059         virtual PHI nodes.  Delete parameter.
8060         (if_convertible_loop_p_1): Delete argument to above function.
8061         (predicate_all_scalar_phis): Delete code handling single-argument
8062         PHIs.
8063         (tree_if_conversion): Mark and update virtual SSA.
8064
8065 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8066
8067         PR target/61821
8068         * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
8069         (x86_elf_aligned_common): Rename to ...
8070         (x86_elf_aligned_decl_common): ... this.
8071         Add decl arg.  Switch to .lbss for largecomm object.  Use
8072         LARGECOMM_SECTION_ASM_OP.
8073         * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
8074         renaming.
8075         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
8076         (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
8077         Pass new decl arg.
8078         * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
8079         [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
8080
8081 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8082
8083         PR target/59407
8084         * config/i386/i386.c (SECTION_LARGE): Define.
8085         (x86_64_elf_select_section): Set it for large data/bss sections.
8086         Only clear SECTION_WRITE for .lrodata.
8087         (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
8088         data/bss sections.
8089         * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
8090         * varasm.c (default_elf_asm_named_section): Grow flagchars.
8091         [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
8092         SECTION_MACH_DEP.
8093         * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
8094         * doc/tm.texi: Regenerate.
8095
8096 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
8097
8098         PR bootstrap/70704
8099         * configure.ac (--enable-checking): Document extra flag, for
8100         non-release builds default to --enable-checking=yes,extra.
8101         If misc checking and extra checking, define CHECKING_P to 2 instead
8102         of 1.
8103         * common.opt (fchecking=): Add.
8104         * doc/invoke.texi (-fchecking=): Document.
8105         * doc/install.texi: Document --enable-checking changes.
8106         * configure: Regenerated.
8107         * config.in: Regenerated.
8108
8109 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
8110
8111         * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
8112         attribute instead of which_alternative.
8113         * config/i386/sse.md (*mov<mode>_internal): Ditto.
8114         Use EXT_REX_SSE_REG_P where appropriate.
8115
8116 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
8117
8118         * config/i386/predicates.md (const0_operand): Do not match
8119         const_wide_int code.
8120         (const1_operand): Ditto.
8121
8122 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
8123
8124         * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
8125         for SSE constm1 operands and TARGET_AVX512VL.
8126         (*movti_internal): Ditto.
8127         (*mov<mode>_or): Use constm1_operand predicate.
8128         * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
8129         for SSE vector_all_ones operands and TARGET_AVX512VL.
8130         * config/i386/predicates.md (constm1_operand): New predicate.
8131         * config/i386/i386.c (standard_sse_constant_opcode): Simplify
8132         emission of constant -1 load.
8133
8134 2016-04-25  Jason Merrill  <jason@redhat.com>
8135
8136         * gdbinit.in: Skip is-a.h.
8137
8138         * attribs.c (register_scoped_attributes): Fix logic.
8139         * attribs.h: Declare register_scoped_attributes.
8140
8141 2016-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8142
8143         * config/rs6000/rs6000-builtin.def: Correct pasto error for
8144         stxvd2x and stxvw4x built-in functions.
8145
8146 2016-04-25  DJ Delorie  <dj@redhat.com>
8147
8148         * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
8149         (ashrhi3): Likewise.
8150         (lshrhi3): Likewise.
8151
8152 2016-04-25  Richard Biener  <rguenther@suse.de>
8153
8154         PR tree-optimization/70780
8155         * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
8156         wasn't visited yet.
8157         (compute_antic): Mark blocks with abnormal preds as visited as
8158         they have a final empty antic-in solution already.
8159
8160 2016-04-25  Michael Collison  <michael.collison@linaro.org>
8161
8162         * ChangeLog(2016-04-25): Fix ChangeLog formatting.
8163
8164 2016-04-25  Michael Collison  <michael.collison@linaro.org>
8165
8166         * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
8167         mode is VQI to improve mixed mode vectorization.
8168         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
8169         define_insn to match low half of signed vaddw.
8170         * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
8171         define_insn to match high half of signed vaddw.
8172         * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
8173         define_insn to match low half of unsigned vaddw.
8174         * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
8175         define_insn to match high half of unsigned vaddw.
8176         * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
8177         (arm_simd_check_vect_par_cnst_half_p): Likewise.
8178         * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
8179         for new function.
8180         (arm_simd_check_vect_par_cnst_half_p): Likewise.
8181         * config/arm/predicates.md (vect_par_constant_high): Support
8182         big endian and simplify by calling
8183         arm_simd_check_vect_par_cnst_half
8184         (vect_par_constant_low): Likewise.
8185
8186 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
8187
8188         * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
8189         predicate for operand 2.
8190
8191 2016-04-24  Uros Bizjak  <ubizjak@gmail.com>
8192             H.J. Lu  <hongjiu.lu@intel.com>
8193
8194         * config/i386/i386-protos.h (standard_sse_constant_p): Add
8195         machine_mode argument.
8196         * config/i386/i386.c (standard_sse_constant_p): Return 2 for
8197         constm1_rtx operands.  For VOIDmode constants, get mode from
8198         pred_mode.  Check mode size if the mode is supported by ABI.
8199         (standard_sse_constant_opcode): Do not use standard_constant_p.
8200         Strictly check ABI support for all-ones operands.
8201         (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
8202         immediates. Update calls to standard_sse_constant_p.
8203         (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
8204         (ix86_rtx_costs): Ditto.
8205         * config/i386/i386.md (*movxi_internal_avx512f): Use
8206         nonimmediate_or_sse_const_operand instead of vector_move_operand.
8207         Use (v,BC) alternative instead of (v,C). Use register_operand
8208         checks instead of MEM_P.
8209         (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
8210         of vector_move_operand.  Add (v,BC) alternative and corresponding avx2
8211         isa attribute.  Use register_operand checks instead of MEM_P.
8212         (*movti_internal): Use nonimmediate_or_sse_const_operand for
8213         TARGET_SSE.  Improve TARGET_SSE insn constraint.  Add (v,BC)
8214         alternative and corresponding sse2 isa attribute.
8215         (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
8216         to standard_sse_constant_p.
8217         (FP constant splitters): Ditto.
8218         * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
8219         (C): Ditto.
8220         * config/i386/predicates.md (constm1_operand): Remove.
8221         (nonimmediate_or_sse_const_operand): Rewrite using RTX.
8222         * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
8223         vector_all_ones_operand instead of constm1_operand.
8224
8225 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8226
8227         * print-rtl.c (print_rtx_insn_vec): New function.
8228         * print-rtl.h: New prototype.
8229         * store-motion.c (struct st_expr): Make avail_stores a vector.
8230         (st_expr_entry): Adjust.
8231         (free_st_expr_entry): Likewise.
8232         (print_store_motion_mems): Likewise.
8233         (find_moveable_store): Likewise.
8234         (compute_store_table): Likewise.
8235         (delete_store): Likewise.
8236         (build_store_vectors): Likewise.
8237
8238 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8239
8240         * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
8241
8242 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8243
8244         * vec.h (vec_safe_contains): New function.
8245         (vec::contains): Likewise.
8246         (vec::begin): Likewise.
8247         (vec::end): Likewise.
8248
8249 2016-04-23  Jakub Jelinek  <jakub@redhat.com>
8250
8251         PR sanitizer/70712
8252         * cfgexpand.c (expand_stack_vars): Fix typo.
8253
8254 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
8255
8256         * system.h (list, map, set, vector): Include conditionally.
8257         * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
8258         * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
8259         * ipa-icf.c (INCLUDE_LIST): Define.
8260         * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
8261         * config/sh/sh.c (INCLUDE_VECTOR): Define.
8262         * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
8263         (INCLUDE_LIST, INCLUDE_VECTOR): Define.
8264         * cp/logic.cc (INCLUDE_LIST): Define.
8265         * fortran/trans-common.c (INCLUDE_MAP): Define.
8266
8267 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
8268
8269         * auto-profile.c: Remove <string.h> include.
8270         * ipa-icf-gimple.c: Remove <list> include.
8271         * diagnostic.c: Remove <new> include.
8272         * genmatch.c: Likewise.
8273         * pretty-print.c: Likewise.
8274         * toplev.c: Likewise
8275         * c/c-objc-common.c: Likewise.
8276         * cp/error.c: Likewise.
8277         * fortran/error.c: Likewise.
8278
8279 2016-04-22  Richard Biener  <rguenther@suse.de>
8280
8281         * lto-streamer-in.c (input_ssa_names): Do not allocate
8282         GIMPLE_NOP for all SSA names.
8283         * lto-streamer-out.c (output_ssa_names): Do not output
8284         SSA names that should have been released.
8285
8286 2016-04-22  Richard Biener  <rguenther@suse.de>
8287
8288         PR tree-optimization/70740
8289         * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
8290         VDEF.
8291
8292 2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
8293
8294         PR target/70750
8295         * config/i386/predicates.md (call_insn_operand): Replace
8296         sibcall_memory_operand with memory_operand.
8297
8298 2016-04-21  Patrick Palka  <ppalka@gcc.gnu.org>
8299
8300         * tree-vrp.c (register_edge_assert_for_2): Remove redundant
8301         has_single_use() tests.
8302         (register_edge_assert_for_1): Likewise.
8303         (find_assert_locations_1): Check the liveness bitmap instead of
8304         checking has_single_use().
8305
8306 2016-04-21  Kirill Yukhin  <kirill.yukhin@intel.com>
8307
8308         PR target/70728
8309         * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
8310         Extract AVX-512BW constraint from AVX.
8311
8312 2016-04-21  Richard Biener  <rguenther@suse.de>
8313
8314         PR tree-optimization/70725
8315         * tree-if-conv.c (if_convertible_phi_p): Adjust guard
8316         for phi_convertible_by_degenerating_args.
8317         (predicate_all_scalar_phis): Handle single-argument PHIs.
8318
8319 2016-04-21  Richard Biener  <rguenther@suse.de>
8320
8321         PR middle-end/70747
8322         * fold-const.c (fold_comparison): Return properly typed
8323         constant boolean.
8324
8325 2016-04-21  Bin Cheng  <bin.cheng@arm.com>
8326
8327         PR tree-optimization/70715
8328         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
8329         after expanding BASE using expand_simple_operations.
8330
8331 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
8332
8333         * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
8334         New transformations.
8335
8336 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
8337
8338         * match.pd (min(int_max, x), max(int_min, x)): New transformations.
8339
8340 2016-04-20  Jan Hubicka  <jh@suse.cz>
8341
8342         * ipa-inline.c (can_inline_edge_p): Pass caller info to
8343         ultiimate_alias_target.
8344         (update_callee_keys): Likewise.
8345         (lookup_recursive_calls): Likewise.
8346         (speculation_useful_p): Likewise.
8347
8348 2016-04-20  Jan Hubicka  <jh@suse.cz>
8349
8350         PR ipa/70018
8351         * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
8352         (set_nothrow_flag_1): ... this; handle interposition correctly;
8353         recurse on aliases and thunks.
8354         (cgraph_node::set_nothrow_flag): New.
8355         * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
8356         functions compiled with non-call exceptions that binds to current
8357         def.
8358         (propagate_nothrow): Be safe WRT interposition.
8359         * cgraph.h (set_nothrow_flag): Update prototype.
8360
8361 2016-04-18  Jan Hubicka  <jh@suse.cz>
8362
8363         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
8364         max_loop_iterations_int.
8365         (tree_unswitch_outer_loop): Likewise.
8366
8367 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
8368
8369         PR tree-optimization/69489
8370         * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
8371         (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
8372         Revise dump message.
8373         (if_convertible_bb_p): Remove check on edge count of basic block's
8374         predecessors.
8375
8376 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
8377
8378         PR tree-optimization/56625
8379         PR tree-optimization/69489
8380         * tree-data-ref.h (DR_INNERMOST): New macro.
8381         * tree-if-conv.c (innermost_loop_behavior_hash): New class for
8382         hashing struct innermost_loop_behavior.
8383         (ref_DR_map): Remove.
8384         (innermost_DR_map): New map.
8385         (baseref_DR_map): Revise comment.
8386         (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
8387         to innermost_DR_map accroding to its innermost loop behavior.
8388         (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
8389         to its innermost loop behavior.
8390         (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
8391         Add initialization for innermost_DR_map.  Record memory reference
8392         in DR_BASE_ADDRESS if the reference is compound one or it doesn't
8393         have innermost loop behavior.
8394         (if_convertible_loop_p): Remove release for ref_DR_map.  Release
8395         innermost_DR_map.
8396
8397 2016-04-20  Uros Bizjak  <ubizjak@gmail.com>
8398
8399         * config/i386/i386.md (*lea<mode>_general_1): Rename from
8400         *lea_general_1.  Use explicit SWI12 mode interator.
8401         (*lea<mode>_general_2): Rename from *lea_general_2.
8402         Use explicit SWI12 mode interator.
8403         (*lea<mode>_general_3): Rename from *lea_general_3.
8404         Use explicit SWI12 mode interator.
8405         (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
8406         Use explicit SWI12 mode interator.
8407         (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
8408         Use explicit SWI48 mode interator.
8409
8410 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
8411
8412         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
8413         Short-cut unaligned load and store cases.  Handle all integer
8414         vector modes.
8415         (ix86_expand_vector_move_misalign): Short-cut unaligned load
8416         and store cases.  Call ix86_avx256_split_vector_move_misalign
8417         directly without checking mode class.
8418
8419 2016-04-20  Andrew Pinski  <apinski@cavium.com>
8420             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8421
8422         PR target/64971
8423         * config/aarch64/aarch64.md (sibcall): Force call
8424         address to be DImode for ILP32.
8425         (sibcall_value): Likewise.
8426
8427 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
8428
8429         * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
8430
8431 2016-04-20  Richard Biener  <rguenther@suse.de>
8432
8433         * gimple-match.h (maybe_build_generic_op): Adjust prototype.
8434         * gimple-match-head.c (maybe_build_generic_op): Pass all ops
8435         by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
8436         (maybe_push_res_to_seq): Adjust.
8437         * gimple-fold.c (maybe_build_generic_op): Likewise.
8438
8439 2016-04-20  Marek Polacek  <polacek@redhat.com>
8440
8441         * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
8442         rather than true.
8443
8444 2016-04-20  Ilya Enkovich  <ilya.enkovich@intel.com>
8445
8446         * config/i386/sse.md (vec_unpacks_lo_hi): Always
8447         use kmovw to support AVX512F target.
8448
8449 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
8450
8451         * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
8452
8453 2016-04-20  Marek Polacek  <polacek@redhat.com>
8454
8455         PR tree-optimization/70725
8456         * tree-if-conv.c (is_false_predicate): New function.
8457         (predicate_mem_writes): Use it.
8458
8459 2016-04-20  Richard Biener  <rguenther@suse.de>
8460
8461         PR tree-optimization/70726
8462         * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
8463         shift amounts from a pattern stmt operand.
8464
8465 2016-04-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8466
8467         PR target/70674
8468         * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
8469         stack_restore_from_fpr pattern when restoring r15.
8470         (s390_optimize_prologue): Strip away the memory barrier in the
8471         parallel when trying to get rid of restore insns.
8472         * config/s390/s390.md ("stack_restore_from_fpr"): New insn
8473         definition for loading the stack pointer from an FPR.  Compared to
8474         the normal move insn this pattern includes a full memory barrier.
8475
8476 2016-04-19  Jakub Jelinek  <jakub@redhat.com>
8477
8478         PR middle-end/70680
8479         * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
8480         implicitly linear or lastprivate iterator on the outer context.
8481
8482 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
8483
8484         * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
8485         alignment check.
8486         * config/i386/i386.md (ssememalign): Removed.
8487         * config/i386/sse.md: Remove ssememalign attribute from patterns.
8488
8489 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
8490
8491         PR target/69201
8492         * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
8493         const short * to __builtin_ia32_loaddquhi512_mask.
8494         (_mm512_maskz_loadu_epi16): Likewise.
8495         (_mm512_mask_storeu_epi16): Pass short * to
8496         __builtin_ia32_storedquhi512_mask.
8497         (_mm512_mask_loadu_epi8): Pass const char * to
8498         __builtin_ia32_loaddquqi512_mask.
8499         (_mm512_maskz_loadu_epi8): Likewise.
8500         (_mm512_mask_storeu_epi8): Pass char * to
8501         __builtin_ia32_storedquqi512_mask.
8502         * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
8503         const double * to __builtin_ia32_loadupd512_mask.
8504         (_mm512_mask_loadu_pd): Likewise.
8505         (_mm512_maskz_loadu_pd): Likewise.
8506         (_mm512_storeu_pd): Pass double * to
8507         __builtin_ia32_storeupd512_mask.
8508         (_mm512_mask_storeu_pd): Likewise.
8509         (_mm512_loadu_ps): Pass const float * to
8510         __builtin_ia32_loadups512_mask.
8511         (_mm512_mask_loadu_ps): Likewise.
8512         (_mm512_maskz_loadu_ps): Likewise.
8513         (_mm512_storeu_ps): Pass float * to
8514         __builtin_ia32_storeups512_mask.
8515         (_mm512_mask_storeu_ps): Likewise.
8516         (_mm512_mask_loadu_epi64): Pass const long long * to
8517         __builtin_ia32_loaddqudi512_mask.
8518         (_mm512_maskz_loadu_epi64): Likewise.
8519         (_mm512_mask_storeu_epi64): Pass long long *
8520         to __builtin_ia32_storedqudi512_mask.
8521         (_mm512_loadu_si512): Pass const int * to
8522         __builtin_ia32_loaddqusi512_mask.
8523         (_mm512_mask_loadu_epi32): Likewise.
8524         (_mm512_maskz_loadu_epi32): Likewise.
8525         (_mm512_storeu_si512): Pass int * to
8526         __builtin_ia32_storedqusi512_mask.
8527         (_mm512_mask_storeu_epi32): Likewise.
8528         * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
8529         char * to __builtin_ia32_storedquqi256_mask.
8530         (_mm_mask_storeu_epi8): Likewise.
8531         (_mm256_mask_loadu_epi16): Pass const short * to
8532         __builtin_ia32_loaddquhi256_mask.
8533         (_mm256_maskz_loadu_epi16): Likewise.
8534         (_mm_mask_loadu_epi16): Pass const short * to
8535         __builtin_ia32_loaddquhi128_mask.
8536         (_mm_maskz_loadu_epi16): Likewise.
8537         (_mm256_mask_loadu_epi8): Pass const char * to
8538         __builtin_ia32_loaddquqi256_mask.
8539         (_mm256_maskz_loadu_epi8): Likewise.
8540         (_mm_mask_loadu_epi8): Pass const char * to
8541         __builtin_ia32_loaddquqi128_mask.
8542         (_mm_maskz_loadu_epi8): Likewise.
8543         (_mm256_mask_storeu_epi16): Pass short * to.
8544         __builtin_ia32_storedquhi256_mask.
8545         (_mm_mask_storeu_epi16): Pass short * to.
8546         __builtin_ia32_storedquhi128_mask.
8547         * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
8548         const double * to __builtin_ia32_loadupd256_mask.
8549         (_mm256_maskz_loadu_pd): Likewise.
8550         (_mm_mask_loadu_pd): Pass onst double * to
8551         __builtin_ia32_loadupd128_mask.
8552         (_mm_maskz_loadu_pd): Likewise.
8553         (_mm256_mask_storeu_pd): Pass double * to
8554         __builtin_ia32_storeupd256_mask.
8555         (_mm_mask_storeu_pd): Pass double * to
8556         __builtin_ia32_storeupd128_mask.
8557         (_mm256_mask_loadu_ps): Pass const float * to
8558         __builtin_ia32_loadups256_mask.
8559         (_mm256_maskz_loadu_ps): Likewise.
8560         (_mm_mask_loadu_ps): Pass const float * to
8561         __builtin_ia32_loadups128_mask.
8562         (_mm_maskz_loadu_ps): Likewise.
8563         (_mm256_mask_storeu_ps): Pass float * to
8564         __builtin_ia32_storeups256_mask.
8565         (_mm_mask_storeu_ps): ass float * to
8566         __builtin_ia32_storeups128_mask.
8567         (_mm256_mask_loadu_epi64): Pass const long long * to
8568         __builtin_ia32_loaddqudi256_mask.
8569         (_mm256_maskz_loadu_epi64): Likewise.
8570         (_mm_mask_loadu_epi64): Pass const long long * to
8571         __builtin_ia32_loaddqudi128_mask.
8572         (_mm_maskz_loadu_epi64): Likewise.
8573         (_mm256_mask_storeu_epi64): Pass long long * to
8574         __builtin_ia32_storedqudi256_mask.
8575         (_mm_mask_storeu_epi64): Pass long long * to
8576         __builtin_ia32_storedqudi128_mask.
8577         (_mm256_mask_loadu_epi32): Pass const int * to
8578         __builtin_ia32_loaddqusi256_mask.
8579         (_mm256_maskz_loadu_epi32): Likewise.
8580         (_mm_mask_loadu_epi32): Pass const int * to
8581         __builtin_ia32_loaddqusi128_mask.
8582         (_mm_maskz_loadu_epi32): Likewise.
8583         (_mm256_mask_storeu_epi32): Pass int * to
8584         __builtin_ia32_storedqusi256_mask.
8585         (_mm_mask_storeu_epi32): Pass int * to
8586         __builtin_ia32_storedqusi128_mask.
8587         * config/i386/i386-builtin-types.def (PCSHORT): New.
8588         (PINT64): Likewise.
8589         (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
8590         (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
8591         (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
8592         (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
8593         (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
8594         (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
8595         (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
8596         (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
8597         (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
8598         (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
8599         (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
8600         (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
8601         (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
8602         (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
8603         (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
8604         (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
8605         (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
8606         (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
8607         (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
8608         (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
8609         (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
8610         (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
8611         (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
8612         (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
8613         (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
8614         (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
8615         (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
8616         (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
8617         (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
8618         (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
8619         (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
8620         (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
8621         (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
8622         (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
8623         (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
8624         (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
8625         (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
8626         (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
8627         (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
8628         (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
8629         (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
8630         (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
8631         (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
8632         (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
8633         (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
8634         (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
8635         (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
8636         (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
8637         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
8638         use UNSPEC_STOREU.
8639         (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
8640         (ix86_avx256_split_vector_move_misalign): Don't use unaligned
8641         load nor store.
8642         (ix86_expand_vector_move_misalign): Likewise.
8643         (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
8644         to scalar function prototype for unaligned load/store builtins.
8645         (ix86_expand_special_args_builtin): Updated.
8646         * config/i386/sse.md (UNSPEC_LOADU): Removed.
8647         (UNSPEC_STOREU): Likewise.
8648         (VI_ULOADSTORE_BW_AVX512VL): Likewise.
8649         (VI_ULOADSTORE_F_AVX512VL): Likewise.
8650         (ssescalarsize): Handle V4TI, V2TI and V1TI.
8651         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
8652         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
8653         (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
8654         (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
8655         (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
8656         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
8657         (sse2_avx_avx512f>_storedqu<mode>): Likewise.
8658         (<avx512>_storedqu<mode>_mask): Likewise.
8659         (*sse4_2_pcmpestr_unaligned): Likewise.
8660         (*sse4_2_pcmpistr_unaligned): Likewise.
8661         (*mov<mode>_internal): Renamed to ...
8662         (mov<mode>_internal): This.  Remove check of AVX and IAMCU on
8663         misaligned operand.  Replace vmovdqu64 with vmovdqu<ssescalarsize>.
8664         (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
8665         (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
8666
8667 2016-04-19  Richard Biener  <rguenther@suse.de>
8668
8669         PR tree-optimization/70171
8670         * tree-ssa-phiprop.c: Include stor-layout.h.
8671         (phiprop_insert_phi): Handle the aggregate copy case.
8672         (propagate_with_phi): Likewise.
8673
8674 2016-04-19  Uros Bizjak  <ubizjak@gmail.com>
8675
8676         * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
8677         instead of simplify_gen_subreg (... , 0).
8678         (ix86_delegitimize_address): Ditto.
8679         (ix86_split_divmod): Ditto.
8680         (ix86_split_copysign_const): Ditto.
8681         (ix86_split_copysign_var): Ditto.
8682         (ix86_expand_args_builtin): Ditto.
8683         (ix86_expand_round_builtin): Ditto.
8684         (ix86_expand_special_args_builtin): Ditto.
8685         * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
8686         (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
8687         (udivmodqi4): Ditto.
8688         (absneg splitters): Ditto.
8689         (*jcc_bt<mode>_1): Ditto.
8690
8691 2016-04-19  Richard Biener  <rguenther@suse.de>
8692
8693         PR tree-optimization/70724
8694         * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
8695         restoring out from ...
8696         (free_scc_vn): ... here.
8697         * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
8698         * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
8699         tail merging.
8700         (pass_fre::execute): Restore SSA info.
8701
8702 2016-04-19  Richard Biener  <rguenther@suse.de>
8703
8704         * gimple-walk.h (struct walk_stmt_info): Add stmt member.
8705         * gimple-walk.c (walk_gimple_op): Initialize it.
8706         (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
8707         * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
8708         remapping SSA names of defs.
8709         (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
8710         adjustment.
8711
8712 2016-04-18  Vladimir Makarov  <vmakarov@redhat.com>
8713
8714         PR middle-end/70689
8715         * lra-constraints.c (equiv_substition_p): New.
8716         (process_alt_operands): Use it.
8717         (swap_operands): Swap it.
8718         (curr_insn_transform): Update it.
8719
8720 2016-04-18  Michael Matz  <matz@suse.de>
8721
8722         * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
8723         (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
8724         * tree-core.h (tree_type_common.align): Use bit-field.
8725         (tree_type_common.spare): New.
8726         (tree_decl_common.off_align): Make smaller.
8727         (tree_decl_common.align): Use bit-field.
8728
8729         * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
8730         * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
8731         (scan_sharing_clauses): Ditto.
8732         (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
8733         (omp_finish_file): Ditto.
8734         * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
8735         (layout_decl): Ditto.
8736         (relayout_decl): Ditto.
8737         (finalize_record_size): Use SET_TYPE_ALIGN.
8738         (finalize_type_size): Ditto.
8739         (finish_builtin_struct): Ditto.
8740         (layout_type): Ditto.
8741         (initialize_sizetypes): Ditto.
8742         * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
8743         * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
8744         (lookup_field_for_decl): Use SET_DECL_ALIGN.
8745         (get_chain_field): Ditto.
8746         (get_trampoline_type): Ditto.
8747         (get_nl_goto_field): Ditto.
8748         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
8749         SET_DECL_ALIGN.
8750         (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
8751         * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
8752         * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
8753         (build_qualified_type): Use SET_TYPE_ALIGN.
8754         (build_aligned_type, build_range_type_1): Ditto.
8755         (build_atomic_base): Ditto.
8756         (build_common_tree_nodes): Ditto.
8757         * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
8758         (expand_one_stack_var_at): Ditto.
8759         * coverage.c (build_var): Use SET_DECL_ALIGN.
8760         * except.c (init_eh): Ditto.
8761         * function.c (assign_parm_setup_block): Ditto.
8762         * symtab.c (increase_alignment_1): Ditto.
8763         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
8764         * tree-vect-stmts.c (ensure_base_align): Ditto.
8765         * varasm.c (align_variable): Ditto.
8766         (assemble_variable): Ditto.
8767         (build_constant_desc): Ditto.
8768         (output_constant_def_contents): Ditto.
8769
8770         * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
8771         * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
8772         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
8773         * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
8774         * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
8775
8776 2016-04-18  H.J. Lu  <hongjiu.lu@intel.com>
8777
8778         PR target/70708
8779         * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
8780         replace %vmovsd with "%vmovq".
8781         (vec_concatv2df): Likewise.
8782
8783 2016-04-18  Uros Bizjak  <ubizjak@gmail.com>
8784
8785         * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
8786         (*vec_extractv2si_0): Ditto.
8787         * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
8788         (zero_extended_scalar_load_operand splitters): Ditto.
8789         (vec_extract splitters): Ditto.
8790         (*vec_extractv4si_0_zext): Ditto.
8791         (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
8792         and lowpart_subreg.
8793         (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
8794         (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
8795         (*sse4_1_extractps): Use lowpart_subreg.
8796         * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
8797
8798 2016-04-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8799
8800         * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
8801         gld requirements.
8802         (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
8803         Mention Solaris 11 packaging changes.
8804         Update gas and gld requirements.
8805         Remove reference to pre-Solaris 10 bug.
8806         (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
8807         systems and bugs.
8808         (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
8809         with cc.
8810
8811 2016-04-17  Jan Hubicka  <jh@suse.cz>
8812
8813         * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
8814         max_loop_iterations_int.
8815
8816 2016-04-18  Richard Biener  <rguenther@suse.de>
8817
8818         PR tree-optimization/43434
8819         * tree-ssa-structalias.c (struct vls_data): New.
8820         (visit_loadstore): Handle all pointer-based accesses.
8821         (compute_dependence_clique): Compute a bitmap of restrict tags
8822         assigned bases and pass it to visit_loadstore.
8823
8824 2016-04-18  Matthew Wahab  <matthew.wahab@arm.com>
8825
8826         PR target/70711
8827         * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
8828         armv8.1-a and armv8.1-a+crc.
8829
8830 2016-04-18  Richard Biener  <rguenther@suse.de>
8831
8832         PR tree-optimization/70701
8833         * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
8834         references after translating through a memcpy.
8835
8836 2016-04-18  Richard Biener  <rguenther@suse.de>
8837
8838         * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
8839         (compute_antic): ... here.  For partial antic use regular
8840         postorder and scrap iteration.
8841         (compute_partial_antic_aux): Remove unused return value.
8842         (init_pre): Do not allocate postorder.
8843         (fini_pre): Do not free postorder.
8844
8845 2016-04-18  Richard Biener  <rguenther@suse.de>
8846
8847         PR middle-end/37870
8848         * expmed.c (extract_bit_field_1): Remove broken case
8849         using a wider MODE_INT mode.
8850
8851 2016-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
8852
8853         * has-brig.c (lendian16): Don't try to use __builtin_bswap16
8854         unless compiling with at least GCC-4.8.
8855
8856 2016-04-17  Jan Hubicka  <jh@suse.cz>
8857
8858         PR bootstrap/70706
8859         * graphite.c (graphite_finalize): Update call to
8860         tree_estimate_probability.
8861         * predict.h (tree_estimate_probability): Update prototype.
8862
8863 2016-04-17  Jan Hubicka  <jh@suse.cz>
8864
8865         * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
8866         (tree_estimate_probability): Likewise.
8867         (pass_profile::execute): Update.
8868         (report_predictor_hitrates): New function.
8869         * profile.c (compute_branch_probabilities): Use it.
8870         * predict.h (report_predictor_hitrates): Declare.
8871
8872 2016-04-17  Jan Hubicka  <jh@suse.cz>
8873
8874         PR ipa/70018
8875         * cgraph.h (cgraph_node::set_const_flag,
8876         cgraph_node::set_pure_flag): Update prototype to return bool;
8877         update comment.
8878         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
8879         of interposable symbol are interposable, too.
8880         (cgraph_set_const_flag_1): Rename to ...
8881         (set_const_flag_1): ... this one; change to self recursive function
8882         instead of call_for_symbol_thunks_and_aliases. Handle correctly
8883         clearnig the flag in all variants and also virtual thunks of const
8884         functions are pure; track if any change was done.
8885         (cgraph_node::set_const_flag): Update.
8886         (struct set_pure_flag_info): New struct.
8887         (cgraph_set_pure_flag_1): Rename to ...
8888         (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
8889         rather than pointer encoded flags; track if any changes was done;
8890         handle correctly clearning flag and setting flag of aliases already
8891         declared const.
8892         (cgraph_node::set_pure_flag): Update.
8893         (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
8894
8895 2016-04-17  Tom de Vries  <tom@codesourcery.com>
8896
8897         PR other/70433
8898         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
8899         backslash in label.
8900
8901 2016-04-17  Tom de Vries  <tom@codesourcery.com>
8902
8903         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
8904         '{}<> ' as escape-for-record.
8905
8906 2016-04-17  Tom de Vries  <tom@codesourcery.com>
8907
8908         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
8909         structure.
8910
8911 2016-04-17  Tom de Vries  <tom@codesourcery.com>
8912
8913         PR other/70185
8914         * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
8915         * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
8916         * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
8917         * passes.c (finish_optimization_passes): Only call
8918         finish_graph_dump_file if dfi->graph_dump_initialized.
8919         (execute_function_dump, pass_init_dump_file): Use
8920         dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
8921
8922 2016-04-17  Tom de Vries  <tom@codesourcery.com>
8923
8924         PR tree-optimization/70256
8925         * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
8926         (debug_varmap): New function.
8927
8928 2016-04-17  Tom de Vries  <tom@codesourcery.com>
8929
8930         PR other/70183
8931         * passes.c (pass_manager::register_pass): Propagate pflags.
8932
8933 2016-04-17  Tom de Vries  <tom@codesourcery.com>
8934
8935         PR other/68875
8936         * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
8937         * passes.c (pass_manager::pass_manager): Declare and init p_start in
8938         INSERT_PASSES_AFTER.  Add pass parameter to TERMINATE_PASS_LIST, and
8939         check if it's equal to p_start.
8940         * passes.def: Add arguments to TERMINATE_PASS_LISTs.
8941
8942 2016-04-15  Jan Hubicka  <jh@suse.cz>
8943
8944         PR ipa/70018
8945         * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
8946         function does not bind to current def.
8947         * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
8948         handle conservatively calls to functions that does not need to bind
8949         to current def.
8950         (check_call): Update call of worse_state.
8951         (ignore_edge_for_nothrow): Update.
8952         (ignore_edge_for_pure_const): Likewise.
8953         (propagate_pure_const): Update calls to worse_state.
8954         (skip_function_for_local_pure_const): Reformat comments.
8955
8956 2016-04-15  Jan Hubicka  <jh@suse.cz>
8957
8958         PR ipa/70018
8959         * cgraph.c (cgraph_node::get_availability): Add REF parameter.
8960         (cgraph_node::function_symbol): Likewise.
8961         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
8962         * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
8963         (symtab_node::ultimate_alias_target): Add REF parameter.
8964         (symtab_node::binds_to_current_def_p): Declare.
8965         (symtab_node;:ultimate_alias_target_1): Add REF parameter.
8966         (cgraph_node::function_symbol): Likewise.
8967         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
8968         (cgraph_node::get_availability): Likewise.
8969         (cgraph_edge::binds_to_current_def_p): New inline function.
8970         (varpool_node::get_availability): Add REF parameter.
8971         (varpool_node::ultimate_alias_target): Likewise.
8972         * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
8973         (symtab_node::binds_to_current_def_p): Likewise.
8974         * varpool.c (varpool_node::get_availability): Likewise.
8975
8976 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
8977
8978         PR target/70662
8979         * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
8980         Fix mode size check.
8981
8982 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
8983
8984         * BASE-VER: Set to 7.0.0.
8985
8986 2016-04-15  Alexander Monakov  <amonakov@ispras.ru>
8987
8988         * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
8989
8990 2016-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8991
8992         * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
8993         architecture revisions.
8994
8995 2016-04-15  Bernd Schmidt  <bschmidt@redhat.com>
8996
8997         * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
8998         * config/i386/i386.c (ix86_using_red_zone): No longer static.
8999         * config/i386/i386.md (stack decrement to push peepholes): Guard
9000         with !x86_using_red_zone ().
9001
9002 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
9003
9004         PR c++/70675
9005         * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
9006         to dump_generic_node.
9007         (NIY): Pass also flags to do_niy.
9008
9009 2016-04-15  Thomas Schwinge  <thomas@codesourcery.com>
9010
9011         * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
9012         (simd_clone_vector_of_formal_parm_types)
9013         (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
9014         (simd_clone_mangle, simd_clone_create)
9015         (simd_clone_adjust_return_type, create_tmp_simd_array)
9016         (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
9017         (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
9018         (ipa_simd_modify_function_body, simd_clone_linear_addend)
9019         (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
9020         (pass_data_omp_simd_clone, class pass_omp_simd_clone)
9021         (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
9022         * omp-simd-clone.c: ... this new file.
9023         (simd_clone_vector_of_formal_parm_types): Make it static.
9024         * Makefile.in (OBJS): Add omp-simd-clone.o.
9025
9026 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
9027
9028         PR target/70662
9029         * config/i386/sse.md: Use proper memory operand modifiers.
9030
9031
9032 2016-04-15  Richard Biener  <rguenther@suse.de>
9033         Alan Modra  <amodra@gmail.com>
9034
9035         PR tree-optimization/70130
9036         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
9037         when alignment stays not the same and no not use the realign
9038         scheme then.
9039
9040 2016-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
9041
9042         PR target/70669
9043         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
9044         direct move handlers for KFmode. Change TFmode handlers test from
9045         FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
9046
9047 2016-04-14  Jakub Jelinek  <jakub@redhat.com>
9048
9049         PR c++/70594
9050         * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
9051         * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
9052         (inlined_polymorphic_ctor_dtor_block_p): Use it.
9053         * tree-ssa-live.c (remove_unused_scope_block_p): When
9054         in_ctor_dtor_block, avoid discarding not just BLOCKs with
9055         BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
9056         block_ultimate_origin is FUNCTION_DECL.
9057         (remove_unused_locals): If current_function_decl is
9058         polymorphic_ctor_dtor_p, pass initial true to
9059         remove_unused_scope_block_p' is_ctor_dtor_block.
9060
9061 2016-04-14  Martin Sebor  <msebor@redhat.com>
9062
9063         PR c++/69517
9064         PR c++/70019
9065         PR c++/70588
9066         * doc/extend.texi (Variable Length): Revert.
9067
9068 2016-04-14  Marek Polacek  <polacek@redhat.com>
9069             Jan Hubicka  <hubicka@ucw.cz>
9070
9071         PR c++/70029
9072         * tree.c (verify_type): Disable the canonical type of main variant
9073         check.
9074
9075 2016-04-14  Jason Merrill  <jason@redhat.com>
9076
9077         * cfgexpand.c, expr.c: Revert previous change.
9078
9079 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
9080
9081         PR middle-end/70643
9082         * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
9083         when building a mem ref for the incoming reduction variable.
9084
9085 2016-04-14  Richard Biener  <rguenther@suse.de>
9086
9087         PR tree-optimization/70614
9088         * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
9089         loop if the evolution dropped to chrec_dont_know.
9090         (interpret_condition_phi): Likewise.
9091
9092 2016-04-14  Richard Biener  <rguenther@suse.de>
9093
9094         PR tree-optimization/70623
9095         * tree-ssa-pre.c (changed_blocks): Make global ...
9096         (compute_antic): ... local here.  Move and fix worklist
9097         handling here.  Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
9098         (compute_antic_aux): Add dumping for MAX assumed succs.  Remove
9099         worklist handling, dump when ANTIC_IN changed.
9100         (compute_partial_antic_aux): Remove worklist handling.
9101         (init_pre): Do not compute post dominators.  Add a comment about
9102         the CFG order chosen.
9103         (fini_pre): Do not free post dominators.
9104
9105 2016-04-13  Martin Sebor  <msebor@redhat.com>
9106
9107         PR c++/69517
9108         PR c++/70019
9109         PR c++/70588
9110         * doc/extend.texi (Variable Length): Document C++ specifics.
9111
9112 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
9113
9114         PR c++/70641
9115         * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
9116         on all recursive call stmts.  Return TODO_cleanup_cfg if any dead
9117         eh edges have been purged.
9118
9119         PR c++/70594
9120         * tree-sra.c (create_access_replacement,
9121         get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
9122         gets fancy name.
9123         * tree-pretty-print.c (dump_fancy_name): New function.
9124         (dump_decl_name, dump_generic_node): Use it.
9125
9126 2016-04-13  Jason Merrill  <jason@redhat.com>
9127
9128         * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
9129         * expr.c (expand_expr_real_1): Likewise.
9130
9131 2016-04-13  Ilya Enkovich  <ilya.enkovich@intel.com>
9132
9133         * config/i386/i386.md (kunpckhi): Swap operands.
9134         (kunpcksi): Likewise.
9135         (kunpckdi): Likewise.
9136         * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
9137         (vec_pack_trunc_<mode>): Likewise.
9138
9139 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
9140
9141         PR debug/70628
9142         * explow.c (convert_memory_address_addr_space_1): Formatting fix.
9143
9144         PR middle-end/70633
9145         * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
9146         gimplification turns some element into non-constant.
9147
9148         PR debug/70628
9149         * rtl.h (convert_memory_address_addr_space_1): New prototype.
9150         * explow.c (convert_memory_address_addr_space_1): No longer static,
9151         add NO_EMIT argument and don't call convert_modes if true, pass
9152         it down recursively, remove break after return.
9153         (convert_memory_address_addr_space): Adjust caller.
9154         * simplify-rtx.c (simplify_unary_operation_1): Call
9155         convert_memory_address_addr_space_1 instead of convert_memory_address,
9156         if it returns NULL, don't simplify.
9157
9158 2016-04-12  Eric Botcazou  <ebotcazou@adacore.com>
9159
9160         PR target/70630
9161         * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
9162
9163 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
9164
9165         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
9166         Bump the upper SIMDLEN limits, so that if the return type or
9167         characteristic type if the return type is void can be passed in
9168         all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
9169         allowed.
9170
9171 2016-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
9172
9173         PR target/70640
9174         * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
9175         Do not use "=" constraint on an input constraint.
9176         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
9177         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
9178         (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
9179         generates (neg (abs ...)) instead of (abs ...).
9180
9181 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
9182
9183         PR rtl-optimization/70596
9184         * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
9185         just invalidate LRA data and reset them.  Adjust dump wording.
9186
9187 2016-04-12  Martin Liska  <mliska@suse.cz>
9188
9189         Revert
9190         2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
9191
9192         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
9193         estimates here.
9194         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
9195         max_loop_iterations_int.
9196         (tree_unswitch_outer_loop): Likewise.
9197         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
9198         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
9199
9200 2016-04-12  Tom de Vries  <tom@codesourcery.com>
9201
9202         PR tree-optimization/68756
9203         * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
9204         instead of new_name.
9205
9206 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
9207
9208         PR tree-optimization/70602
9209         * tree-sra.c (generate_subtree_copies): Don't write anything into
9210         constant pool decls.
9211
9212         * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
9213         regardless whether there are depend clauses or not.
9214
9215 2016-04-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
9216
9217         PR target/70381
9218         * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
9219         target attribute and pragma from changing the -mfloat128
9220         and -mfloat128-hardware options.
9221
9222         * doc/extend.texi (Additional Floating Types): Document PowerPC
9223         __float128 restrictions.
9224
9225 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
9226
9227         PR target/70133
9228         * config/aarch64/driver-aarch64.c
9229         (aarch64_get_extension_string_for_isa_flags): New.
9230         (arch_extension): Rename to...
9231         (aarch64_arch_extension): ...This.
9232         (ext_to_feat_string): Rename to...
9233         (aarch64_extensions): ...This.
9234         (aarch64_core_data): Keep track of architecture extension flags.
9235         (cpu_data): Rename to...
9236         (aarch64_cpu_data): ...This.
9237         (aarch64_arch_driver_info): Keep track of architecture extension
9238         flags.
9239         (get_arch_name_from_id): Rename to...
9240         (get_arch_from_id): ...This, change return type.
9241         (host_detect_local_cpu): Update and reformat for renames, handle
9242         extensions through common infrastructure.
9243
9244 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
9245
9246         PR target/70133
9247         * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
9248         track of a canonical flag name.
9249         (all_extensions): Likewise.
9250         (arch_to_arch_name): Also track extension flags enabled by the arch.
9251         (all_architectures): Likewise.
9252         (aarch64_parse_extension): Move to here.
9253         (aarch64_get_extension_string_for_isa_flags): Take a new argument,
9254         rework.
9255         (aarch64_rewrite_selected_cpu): Update for above change.
9256         * config/aarch64/aarch64-option-extensions.def: Rework the way flags
9257         are handled, such that the single explicit value enabled by an
9258         extension is kept seperate from the implicit values it also enables.
9259         * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
9260         to here.
9261         (aarch64_parse_extension): New.
9262         * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
9263         here to config/aarch64/aarch64-protos.h.
9264         (aarch64_parse_extension): Move from here to
9265         common/config/aarch64/aarch64-common.c.
9266         (aarch64_option_print): Update.
9267         (aarch64_declare_function_name): Likewise.
9268         (aarch64_start_file): Likewise.
9269         * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
9270         the canonical flag for extensions.
9271         * config.gcc (aarch64*-*-*): Extend regex for capturing extension
9272         flags.
9273
9274 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
9275
9276         * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
9277         AARCH64_FL_CRC.
9278
9279 2016-04-09  Tom de Vries  <tom@codesourcery.com>
9280
9281         PR tree-optimization/68953
9282         * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
9283         first to last subscript.
9284
9285 2016-04-09  Jakub Jelinek  <jakub@redhat.com>
9286
9287         PR tree-optimization/70586
9288         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
9289         for any calls.
9290
9291 2016-04-08  Cesar Philippidis  <cesar@codesourcery.com>
9292
9293         PR lto/70289
9294         PR ipa/70348
9295         PR tree-optimization/70373
9296         PR middle-end/70533
9297         PR middle-end/70534
9298         PR middle-end/70535
9299         * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
9300         clauses for acc parallel reductions as necessary.  Error on those
9301         that are private.
9302         * omp-low.c (scan_sharing_clauses): Don't install variables which
9303         are used in acc parallel reductions.
9304         (lower_rec_input_clauses): Remove dead code.
9305         (lower_oacc_reductions): Add support for reference reductions.
9306         (lower_reduction_clauses): Remove dead code.
9307         (lower_omp_target): Don't remap variables appearing in acc parallel
9308         reductions.
9309         * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
9310
9311 2016-04-08  Jakub Jelinek  <jakub@redhat.com>
9312
9313         PR middle-end/70593
9314         * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
9315         with multiple SSA_NAME defs, force the outputs other than first
9316         to be live before calling live_track_process_def on each output.
9317
9318         PR rtl-optimization/70574
9319         * fwprop.c (forward_propagate_and_simplify): Don't add
9320         REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
9321         (try_fwprop_subst): Don't add REG_EQUAL note if there are any
9322         paradoxical subregs within *loc.
9323
9324 2016-04-08  Thomas Schwinge  <thomas@codesourcery.com>
9325
9326         * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
9327         -ftree-parallelize-loops={0,1}.
9328         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
9329         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
9330         * config/ia64/hpux.h (LIB_SPEC): Likewise.
9331         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
9332         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
9333
9334 2016-04-08  Maxim Ostapenko  <m.ostapenko@samsung.com>
9335
9336         PR sanitizer/70541
9337         * asan.c (instrument_derefs): If we get unknown location, extract it
9338         with EXPR_LOCATION.
9339         (maybe_instrument_call): Instrument gimple_call's arguments if needed.
9340
9341 2016-04-08  Tom de Vries  <tom@codesourcery.com>
9342
9343         * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
9344         implicit firstprivate clause.
9345
9346 2016-04-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9347
9348         PR target/70566
9349         * config/arm/thumb2.md (tst + branch-> lsls + branch
9350         peephole below *orsi_not_shiftsi_si): Require that condition
9351         register is dead after the peephole.
9352         (second peephole after the above): Likewise.
9353
9354 2016-04-08  Alan Modra  <amodra@gmail.com>
9355
9356         PR target/70117
9357         * builtins.c (fold_builtin_classify): For IBM extended precision,
9358         look at just the high-order double to test for NaN.
9359         (fold_builtin_interclass_mathfn): Similarly for Inf.  For isnormal
9360         test just the high double for Inf but both doubles for subnormal
9361         limit.
9362
9363 2016-04-07  Jakub Jelinek  <jakub@redhat.com>
9364
9365         * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
9366         * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
9367         node->simdclone->mask_mode != VOIDmode masks.
9368         (simd_clone_adjust_argument_types): Likewise.  Move sc var definition
9369         earlier, use it instead of node->simdclone.
9370         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
9371         Set clonei->mask_mode.
9372
9373 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
9374
9375         PR c/70436
9376         * parser.c (cp_parser_iteration_statement): New parameter IF_P.
9377         Pass it through to cp_parser_already_scoped_statement.
9378         (cp_parser_already_scoped_statement): New parameter IF_P.  Pass
9379         it through to cp_parser_statement.
9380         (cp_parser_statement): Pass IF_P through to
9381         cp_parser_iteration_statement.
9382         (cp_parser_pragma): Adjust call to
9383         cp_parser_iteration_statement.
9384
9385 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
9386
9387         PR c/70436
9388         * gimplify.c (gimplify_omp_ordered): Add explicit braces to
9389         resolve a future -Wparentheses warning.
9390         * omp-low.c (scan_sharing_clauses): Likewise.
9391         * tree-parloops.c (eliminate_local_variables): Likewise.
9392
9393 2016-04-06  Vladimir Makarov  <vmakarov@redhat.com>
9394
9395         PR rtl-optimization/70398
9396         * lra-constraints.c (process_address_1): Check zero scale and code
9397         for reloading with zero scale.
9398
9399 2016-04-06  Uros Bizjak  <ubizjak@gmail.com>
9400
9401         * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
9402         (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
9403
9404 2016-04-06  Jakub Jelinek  <jakub@redhat.com>
9405
9406         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
9407         Add support for AVX512F clones, include them by default for
9408         exported OpenMP declare simd functions.  For AVX2 allow simdlen 32
9409         and use it if charasteric type is 8-bit, for AVX512F allow simdlen
9410         up to 128.
9411
9412         PR middle-end/70550
9413         * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
9414         * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
9415         firstprivate clauses.
9416         * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
9417         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
9418         (lower_omp_target): Set TREE_NO_WARNING for
9419         non-addressable possibly uninitialized vars which are copied into
9420         addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
9421
9422 2016-04-05  John David Anglin  <danglin@gcc.gnu.org>
9423
9424         * config/pa/predicates.md (integer_store_memory_operand): Accept
9425         REG+D operands with a large offset when reload_in_progress is true.
9426         (floating_point_store_memory_operand): Likewise.
9427
9428 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
9429
9430         PR c++/70336
9431         * match.pd (nested int casts): Limit to GIMPLE.
9432
9433 2016-04-05  Jan Hubicka  <hubicka@ucw.cz>
9434
9435         PR ipa/66223
9436         * ipa-devirt.c (maybe_record_node): Fix comment; use
9437         SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
9438
9439 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
9440
9441         PR rtl-optimization/70542
9442         * ree.c (add_removable_extension): For VECTOR_MODE_P punt
9443         if there are any uses other than insn or debug insns.
9444
9445 2016-04-05  Marc Glisse  <marc.glisse@inria.fr>
9446             Jakub Jelinek  <jakub@redhat.com>
9447
9448         PR tree-optimization/70509
9449         * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
9450         Shift HOST_WIDE_INT_1U instead of 1.
9451
9452 2016-04-05  Zdenek Sojka  <zsojka@seznam.cz>
9453
9454         PR tree-optimization/70509
9455         * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
9456         of the vector base type for index.
9457
9458 2016-04-05  Uros Bizjak  <ubizjak@gmail.com>
9459
9460         PR target/70510
9461         * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
9462
9463 2016-04-05  Richard Biener  <rguenther@suse.de>
9464
9465         PR tree-optimization/70526
9466         * tree-sra.c (build_ref_for_offset): Use prev_base to
9467         extract the alias pointer type.
9468
9469 2016-04-05  Richard Biener  <rguenther@suse.de>
9470
9471         * dse.c (struct store_info): Remove alias_set member.
9472         (struct read_info_type): Likewise.
9473         (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
9474         spill_deleted, clear_alias_set_lookup): Remove.
9475         (get_group_info): Remove dead base == NULL_RTX case.
9476         (dse_step0): Remove initialization of removed variables.
9477         (delete_dead_store_insn): Reomve alias set dumping.
9478         (free_read_records): Remove alias_set handling.
9479         (canon_address): Remove alias_set_out parameter.
9480         (record_store): Remove spill_alias_set, it's always zero.
9481         (check_mem_read_rtx): Likewise.
9482         (dse_step2): Rename from ...
9483         (dse_step2_nospill): ... this.  Adjust.
9484         (scan_stores): Rename from ...
9485         (scan_stores_nospill): ... this.
9486         (scan_reads): Rename from ...
9487         (scan_reads_nospill): ... this.
9488         (scan_stores_spill, scan_reads_spill): Remove.
9489         (dse_step3_scan): Remove for_spills argument which is always false.
9490         (dse_step3): Likewise.
9491         (dse_step5): Rename from ...
9492         (dse_step5_nospill): ... this.  Remove alias_set handling.
9493         (rest_of_handle_dse): Adjust.
9494
9495 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
9496
9497         PR target/70525
9498         * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
9499         Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
9500         V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
9501         (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
9502
9503 2016-04-05  Richard Biener  <rguenther@suse.de>
9504
9505         PR middle-end/70499
9506         * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
9507         non-register type temporaries into SSA.
9508
9509 2016-04-04  Jan Hubicka  <hubicka@ucw.cz>
9510
9511         PR ipa/66223
9512         * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
9513         calls when sanitizing.
9514         (possible_polymorphic_call_target_p): Fix formatting.
9515
9516 2016-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9517             Jakub Jelinek <jakub@redhat.com>
9518
9519         PR middle-end/70457
9520         * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
9521         to ensure a call statement is compatible with a built-in's
9522         prototype.
9523         * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
9524         Likewise.
9525
9526 2016-04-04  Richard Biener  <rguenther@suse.de>
9527
9528         PR rtl-optimization/70484
9529         * rtl.h (canon_output_dependence): Declare.
9530         * alias.c (canon_output_dependence): New function.
9531         * dse.c (record_store): Use canon_output_dependence rather
9532         than canon_true_dependence.
9533
9534 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
9535
9536         PR ipa/68881
9537         * cgraph.h (symtab_node::copy_visibility_from): New function.
9538         * symtab.c (symtab_node::copy_visibility_from): New function.
9539         * ipa-visibility.c (optimize_weakref): New function.
9540         (function_and_variable_visibility): Use it.
9541
9542 2016-04-04  Martin Liska  <mliska@suse.cz>
9543
9544         PR hsa/70402
9545         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
9546         value that is really in range handled by SBR instruction.
9547         * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
9548         * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
9549         * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
9550
9551 2016-04-03  Oleg Endo  <olegendo@gcc.gnu.org>
9552
9553         PR target/70416
9554         PR target/67391
9555         * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
9556         set, but not for SP_REG operands.
9557
9558 2016-04-02  Martin Sebor  <msebor@redhat.com>
9559
9560         PR c++/67376
9561         * fold-const.c (maybe_nonzero_address): New function.
9562         (fold_comparison): Call it.  Fold equality and relational
9563         expressions involving null pointers.
9564         (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
9565
9566 2016-03-31  Evandro Menezes  <e.menezes@samsung.com>
9567
9568         Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
9569         the "Y" constraint (scalar FP 0.0 immediate).
9570
9571         * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
9572         Add the "const_double" to the list of operand constraints.
9573
9574 2016-04-01  Jakub Jelinek  <jakub@redhat.com>
9575
9576         PR rtl-optimization/70467
9577         * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
9578         If low word of the last operand is 0, just emit addition/subtraction
9579         for the high word.
9580
9581 2016-04-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9582
9583         PR target/70404
9584         * config/s390/s390.c (s390_expand_insv): Check for everything
9585         constant instead of just VOIDmode stuff.
9586
9587 2016-04-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9588
9589         PR target/70496
9590         * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
9591
9592 2016-04-01  Nathan Sidwell  <nathan@acm.org>
9593
9594         * tree.def (TRY_CATCH_EXPR): Correct documentation.
9595
9596 2016-03-31  Vladimir Makarov  <vmakarov@redhat.com>
9597
9598         PR rtl-optimization/70461
9599         * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
9600         is necessary.
9601
9602 2016-03-31  Martin Liska  <mliska@suse.cz>
9603
9604         PR hsa/70399
9605         * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
9606         a tree value or an immediate integer value to a buffer
9607         that is eventually copied to a BRIG section.
9608         (emit_immediate_operand): Call the function here.
9609         * hsa-dump.c (dump_hsa_immed): Remove checking assert.
9610         * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
9611         of class' fields that are removed.
9612         (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
9613         * hsa.h (class hsa_op_immed): Remove m_brig_repr and
9614         m_brig_repr_size fields.
9615
9616 2016-03-31  Martin Liska  <mliska@suse.cz>
9617
9618         PR hsa/70391
9619         * hsa-gen.c (hsa_function_representation::update_dominance): New
9620         function.
9621         (convert_addr_to_flat_segment): Likewise.
9622         (gen_hsa_memory_set): New alignment argument.
9623         (gen_hsa_ctor_assignment): Likewise.
9624         (gen_hsa_insns_for_single_assignment): Provide alignment
9625         to gen_hsa_ctor_assignment.
9626         (gen_hsa_insns_for_direct_call): Add new argument.
9627         (expand_lhs_of_string_op): New function.
9628         (expand_string_operation_builtin): Likewise.
9629         (expand_memory_copy): New function.
9630         (expand_memory_set): New function.
9631         (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
9632         (convert_switch_statements): Change signature.
9633         (generate_hsa): Use a return value of the function.
9634         (pass_gen_hsail::execute): Do not call
9635         convert_switch_statements here.
9636         * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
9637         * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
9638         (hsa_function_representation::update_dominance): New function.
9639
9640 2016-03-31  Martin Liska  <mliska@suse.cz>
9641
9642         PR hsa/70391
9643         * hsa-brig.c (emit_directive_variable): Emit alignment
9644         according to hsa_symbol::m_align.
9645         * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
9646         (dump_hsa_symbol): Dump alignment of HSA symbols.
9647         * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
9648         (gen_hsa_addr_with_align): New function.
9649         (hsa_bitmemref_alignment): Use newly added function.
9650         (gen_hsa_insns_for_load): Likewise.
9651         (gen_hsa_insns_for_store): Likewise.
9652         (gen_hsa_memory_copy): New argument added.
9653         (gen_hsa_insns_for_single_assignment): Respect
9654         alignment for assignments processed via gen_hsa_memory_copy.
9655         (gen_hsa_insns_for_direct_call): Likewise.
9656         (gen_hsa_insns_for_return): Likewise.
9657         (gen_function_def_parameters): Set default alignment.
9658         * hsa.c (hsa_object_alignment): New function.
9659         (hsa_byte_alignment): Pasted function.
9660         * hsa.h (hsa_symbol::m_align): New field.
9661
9662 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
9663
9664         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
9665         scratch field for goto case.
9666
9667 2016-03-31  James Greenhalgh  <james.greenhalgh@arm.com>
9668
9669         * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
9670
9671 2016-03-31  Ilya Enkovich  <enkovich.gnu@gmail.com>
9672
9673         PR target/70442
9674         * config/i386/i386.c (scalar_chain::convert_op): Fix description.
9675         (scalar_chain::convert_insn): Call convert_op for reg
9676         moves to handle undefined registers.
9677
9678 2016-03-31  Nathan Sidwell  <nathan@acm.org>
9679
9680         PR c++/70393
9681         * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
9682         Assert we don't want to move backwards.
9683
9684 2016-03-31  Kirill Yukhin  <kirill.yukhin@intel.com>
9685
9686         PR target/70453
9687         * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
9688
9689 2016-03-31  Jakub Jelinek  <jakub@redhat.com>
9690
9691         PR rtl-optimization/70460
9692         * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
9693         with operand from REG_LABEL_OPERAND, instead substitute
9694         SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
9695         Don't do anything for REG_NON_LOCAL_GOTO jumps.
9696
9697 2016-03-31  Martin Liska  <mliska@suse.cz>
9698
9699         * passes.c (execute_one_pass): Do not call
9700         todo_after for a discarded function.
9701
9702 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
9703
9704         * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
9705         (no_cost, infinite_cost): Initialize the new field.
9706         (get_computation_cost_at): Record setup cost.
9707         (determine_use_iv_cost_address): Skip cost computation for sub
9708         uses if we can estimate it without losing accuracy.
9709
9710 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
9711
9712         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
9713         estimates here.
9714         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
9715         max_loop_iterations_int.
9716         (tree_unswitch_outer_loop): Likewise.
9717         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
9718         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
9719
9720 2016-03-30  Richard Biener  <rguenther@suse.de>
9721
9722         PR middle-end/70450
9723         * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
9724
9725 2016-03-30  Jakub Jelinek  <jakub@redhat.com>
9726
9727         PR target/70421
9728         * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
9729         in gen_blendm expander.
9730
9731 2016-03-30  Nick Clifton  <nickc@redhat.com>
9732
9733         PR target/62254
9734         * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
9735         case where we are already provided with an SImode SUBREG.
9736
9737 2016-03-30  H.J. Lu  <hongjiu.lu@intel.com>
9738
9739         PR target/70439
9740         * config/i386/i386.c (ix86_expand_epilogue): Properly check
9741         conflict between DRAP register and __builtin_eh_return.
9742
9743 2016-03-30  Michael Matz  <matz@suse.de>
9744             Richard Biener  <rguenther@suse.de>
9745
9746         PR ipa/12392
9747         * ipa-polymorphic-call.c (struct type_change_info): Change
9748         speculative to an unsigned allowing to limit the work we do.
9749         (csftc_abort_walking_p): New inline function..
9750         (check_stmt_for_type_change): Limit the number of may-defs
9751         skipped for speculative devirtualization to
9752         max-speculative-devirt-maydefs.
9753         * params.def (max-speculative-devirt-maydefs): New param.
9754         * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
9755
9756 2016-03-30  Mike Stump  <mrs@gcc.gnu.org>
9757
9758         PR target/63890
9759         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
9760         and TARGET_MACHO.
9761
9762 2016-03-30  Patrick Palka  <ppalka@gcc.gnu.org>
9763
9764         PR tree-optimization/59124
9765         * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
9766         where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
9767
9768 2016-03-29  Jeff Law  <law@redhat.com>
9769
9770         * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
9771
9772 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
9773
9774         * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
9775         to HOST_WIDE_INT.
9776
9777 2016-03-29  Thomas Schwinge  <thomas@codesourcery.com>
9778
9779         * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
9780         * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
9781         gcrt0.o if linking dynamically.
9782
9783 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
9784
9785         PR ipa/70283
9786         * ipa-devirt.c (methods_equal_p): New function.
9787         (compare_virtual_tables): Use it.
9788         * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
9789         * cgraphclones.c (clone_function_name_1): Use
9790         symbol_table::symbol_suffix_separator.
9791         * coverage.c (build_var): Likewise.
9792         * symtab.c (symbol_table::symbol_suffix_separator): New.
9793
9794 2016-03-29  Jakub Jelinek  <jakub@redhat.com>
9795
9796         PR rtl-optimization/70429
9797         * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
9798         (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
9799         mode != result_mode.
9800
9801         PR c++/70353
9802         * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
9803
9804         PR tree-optimization/70405
9805         * ssa-iterators.h (num_imm_uses): Add missing braces.
9806
9807 2016-03-29  Vladimir Makarov  <vmakarov@redhat.com>
9808
9809         PR rtl-optimization/68695
9810         * ira-color.c (allocno_copy_cost_saving): New.
9811         (improve_allocation): Use it.
9812
9813 2016-03-29  Richard Henderson  <rth@redhat.com>
9814
9815         PR middle-end/70355
9816         * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
9817
9818 2016-03-29  Richard Biener  <rguenther@suse.de>
9819
9820         PR middle-end/70424
9821         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
9822         use alignment returned by get_pointer_alignment_1 if it is
9823         bigger than BITS_PER_UNIT.
9824         * builtins.c (get_pointer_alignment_1): Do not return true
9825         for alignment extracted from SSA info.
9826
9827 2016-03-28  James Bowman  <james.bowman@ftdichip.com>
9828
9829         * config/ft32/ft32.opt (mnodiv): New.
9830         * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
9831         * doc/invoke.texi (FT32 Options -mnodiv): New.
9832
9833 2016-03-28  Kirill Yukhin  <kirill.yukhin@intel.com>
9834
9835         PR target/70406
9836         * config/i386/i386.md (define_split, andn): Fix modes.
9837
9838 2016-03-26  Richard Biener  <rguenther@suse.de>
9839             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9840
9841         PR ipa/70366
9842         * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
9843         instead of
9844         TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
9845         as 2nd argument to cl_optimization_restore().
9846
9847 2016-03-25  Richard Henderson  <rth@redhat.com>
9848
9849         PR target/70120
9850         * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
9851         * config/aarch64/aarch64-protos.h: Declare it.
9852         * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
9853
9854 2016-03-25  Alan Modra  <amodra@gmail.com>
9855
9856         PR target/70052
9857         * config/rs6000/constraints.md (j): Simplify.
9858         * config/rs6000/predicates.md (easy_fp_constant): Exclude
9859         decimal float 0.D.
9860         * config/rs6000/rs6000.md (zero_fp): New mode_attr.
9861         (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
9862          mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
9863         in all constraint alternatives.
9864         (movtd_64bit_nodm): Delete "j" constraint alternative.
9865
9866 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
9867
9868         * tree-ssa-propagate.c: Enhance docs for
9869         SSA_PROP_NOT_INTERESTING.
9870
9871 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
9872
9873         * doc/extend.texi: Fix typo in documentation to pure attribute.
9874
9875 2016-03-24  John David Anglin  <danglin@gcc.gnu.org>
9876
9877         PR target/70319
9878         * config/pa/pa.md (bswapdi2): Use a scratch register.
9879
9880 2016-03-24  Richard Henderson  <rth@redhat.com>
9881
9882         PR middle-end/69845
9883         * fold-const.c (extract_muldiv_1): Correct test for multiplication
9884         overflow.
9885
9886 2016-03-24  Uros Bizjak  <ubizjak@gmail.com>
9887
9888         * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
9889         using ix86_expand_binary_operator instead of gen_andsi3.
9890
9891 2016-03-24  Richard Biener  <rguenther@suse.de>
9892
9893         PR tree-optimization/70396
9894         * tree-vect-stmts.c (vectorizable_comparison): Use
9895         get_vectype_for_scalar_type.
9896
9897 2016-03-24  Richard Biener  <rguenther@suse.de>
9898
9899         PR middle-end/70370
9900         * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
9901         with register bases.
9902
9903 2016-03-24  Richard Biener  <rguenther@suse.de>
9904
9905         PR tree-optimization/70372
9906         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
9907         build_all_ones_cst to also handle vector types correctly.
9908
9909 2016-03-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
9910
9911         PR target/70381
9912         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
9913         -mfloat128 here.
9914
9915 2016-03-23  Marek Polacek  <polacek@redhat.com>
9916
9917         PR c++/69884
9918         * doc/invoke.texi: Document -Wignored-attributes.
9919
9920 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
9921
9922         PR tree-optimization/69042
9923         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
9924         parameter from 30 to 40.
9925
9926 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
9927
9928         PR tree-optimization/69042
9929         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
9930         for use with constant offset stripped in base.
9931
9932 2016-03-23  Richard Biener  <rguenther@suse.de>
9933
9934         PR middle-end/70251
9935         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
9936         mode compatibility check.
9937         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
9938
9939 2016-03-23  Jeff Law  <law@redhat.com>
9940
9941         PR tree-optimization/64058
9942         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
9943         CONFLICT_COUNT.
9944         (struct ssa_conflicts): Move up earlier in the file.
9945         (conflicts_, var_map_): New static variables.
9946         (initialize_conflict_count): New function to initialize the
9947         CONFLICT_COUNT field for each conflict pair.
9948         (compare_pairs): Lazily initialize the conflict count and use it
9949         as the first tie-breaker.
9950         (sort_coalesce_list): Add new arguments conflicts, map.  Initialize
9951         and wipe conflicts_ and map_ around the call to qsort.  Remove
9952         special case for 2 coalesce pairs.
9953         * bitmap.c (bitmap_count_unique_bits): New function.
9954         (bitmap_count_bits_in_word): New function, extracted from
9955         bitmap_count_bits.
9956         (bitmap_count_bits): Use bitmap_count_bits_in_word.
9957         * bitmap.h (bitmap_count_unique_bits): Declare it.
9958
9959 2016-03-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
9960
9961         PR target/69917
9962         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
9963         transparent alias chain for decl assembler name.
9964         * config/sol2.c (solaris_assemble_visibility): Likewise.
9965
9966 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9967
9968         * config/arm/arm1020e.md (1020call_op): Reduce reservation
9969         duration.
9970         (v10_fdivs): Likewise.
9971         (v10_fdivd): Likewise.
9972
9973 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9974
9975         PR driver/70132
9976         * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
9977         to not call fclose twice on file.
9978
9979 2016-03-23  Jakub Jelinek  <jakub@redhat.com>
9980
9981         PR tree-optimization/70354
9982         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
9983         oprnd0 is wider than oprnd1 and there is a cast from the wider
9984         type to oprnd1, mask it with the mask of the narrower type.
9985
9986         PR target/70321
9987         * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
9988         Optimize TARGET_STV splitters, if high or low word of last argument
9989         is 0 or -1.
9990
9991 2016-03-22  Jeff Law  <law@redhat.com>
9992
9993         PR target/70232
9994         tree-ssa-threadbackward.c
9995         (fsm_find_control_statement_thread_paths): Correctly distinguish
9996         between old style jump threads vs FSM jump threads.
9997
9998 2016-03-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
9999
10000         PR target/70302
10001         * config/i386/i386.c (scalar_chain::convert_op): Support
10002         uninitialized register usage case.
10003
10004 2016-03-22  Richard Biener  <rguenther@suse.de>
10005
10006         PR middle-end/70251
10007         * genmatch.c (gen_transform): Adjust last parameter to a three-state
10008         int...
10009         (capture::gen_transform): ... to change behavior when substituting
10010         a condition into cond or not-cond expr context.
10011         (dt_simplify::gen_1): Adjust.
10012         * gimple-match-head.c: Include gimplify.h for unshare_expr.
10013         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
10014         last change and instead change to
10015         A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
10016         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
10017
10018 2016-03-22  Anthony Green  <green@moxielogic.com>
10019
10020         * config/moxie/moxiebox.h (CC1_SPEC): Define.  Fix endianness
10021         issue for moxiebox targets.
10022         (CC1PLUS_SPEC): Ditto.
10023
10024 2016-03-22  Richard Biener  <rguenther@suse.de>
10025
10026         PR middle-end/70333
10027         * fold-const.c (extract_muldiv_1): Properly perform multiplication
10028         in the wide type.
10029
10030 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
10031
10032         * config/i386/i386.c (def_builtin): Remove duplicated functionality.
10033
10034 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
10035
10036         PR target/70325
10037         * config/i386/i386.c (def_builtin): Handle
10038         OPTION_MASK_ISA_AVX512VL to be and-ed with other
10039         bits.
10040         (const struct builtin_description bdesc_special_args[]):
10041         Remove duplicate ISA bits.
10042
10043 2016-03-22  Jakub Jelinek  <jakub@redhat.com>
10044
10045         PR target/70329
10046         * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
10047         d.perm[i] for i >= d.nelt.  If not full_interleave, compute d.perm[i]
10048         in a way that works also for AVX512BW.
10049
10050         PR target/70300
10051         * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
10052         instead of source if operands[1] is xmm16 and above and
10053         !TARGET_AVX512VL.  Use avx512f_vec_dupv16sf_1 instead of
10054         vec_interleave_lowv4sf if we need to unpack xmm16 and above.
10055
10056         PR c++/70295
10057         * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
10058         on assign if (*from_p) is a comparison, set it to
10059         TREE_NO_WARNING (*from_p).
10060
10061 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
10062
10063         PR middle-end/70326
10064         * lra.c (restore_scratches): Ignore deleted insns.
10065
10066 2016-03-21  Marc Glisse  <marc.glisse@inria.fr>
10067             Jakub Jelinek  <jakub@redhat.com>
10068
10069         PR tree-optimization/70317
10070         * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
10071         to HONOR_NANS.
10072
10073 2016-03-21  Uros Bizjak  <ubizjak@gmail.com>
10074
10075         PR target/70327
10076         * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
10077         of ix86_expand_move.
10078         (movoi): Ditto.
10079         (movti): Use general_operand for operand 1 predicate.
10080
10081 2016-03-21  Martin Liska  <mliska@suse.cz>
10082
10083         * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
10084         insns.
10085         (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
10086
10087 2016-03-21  Martin Liska  <mliska@suse.cz>
10088
10089         PR ipa/70306
10090         * ipa-icf.c (sem_function::parse): Skip static
10091         constructors and destructors.
10092
10093 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
10094
10095         PR target/70296
10096         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
10097         function-like macro, peek following token(s) if it is followed
10098         by CPP_OPEN_PAREN token with optional padding in between, and
10099         if not, don't treat it like a macro.
10100
10101 2016-03-21  Thomas Schwinge  <thomas@codesourcery.com>
10102             Alexander Monakov  <amonakov@ispras.ru>
10103
10104         * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
10105         for the stabs debug format.
10106
10107 2016-03-21  Richard Biener  <rguenther@suse.de>
10108
10109         PR tree-optimization/70310
10110         * tree-vect-generic.c (expand_vector_condition): Fold the built
10111         condition.
10112
10113 2016-03-21  Kirill Yukhin  <kirill.yukhin@intel.com>
10114
10115         PR target/70293
10116         * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
10117         Block third alternative for AVX-512VL target,
10118
10119 2016-03-21  Martin Liska  <mliska@suse.cz>
10120
10121         PR hsa/70234
10122         * hsa-brig.c (emit_function_directives): Mark unemitted
10123         global variables for emission.
10124         * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
10125         (get_symbol_for_decl): Likewise.
10126         * hsa.h (struct hsa_symbol): New flag.
10127
10128 2016-03-21  Richard Biener  <rguenther@suse.de>
10129
10130         PR tree-optimization/70288
10131         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
10132         we do not estimate unsimplified all-constant conditionals or
10133         switches as optimized away.
10134
10135 2016-03-21  Andrey Belevantsev  <abel@ispras.ru>
10136
10137         PR rtl-optimization/69102
10138         * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
10139         when we have a readonly dependency context.
10140
10141 2016-03-18  Jeff Law  <law@redhat.com>
10142
10143         PR rtl-optimization/70263
10144         * ira.c (memref_used_between_p): Assert we found END in the insn chain.
10145         (update_equiv_regs): When trying to move a store to after the insn
10146         that sets the source of the store, make sure the store occurs after
10147         the insn that sets the source of the store.  When successful note
10148         the REG_EQUIV note created in the dump file.
10149
10150 2016-03-16  David Wohlferd  <dw@LimeGreenSocks.com>
10151             Bernd Schmidt  <bschmidt@redhat.com>
10152
10153         * doc/extend.texi: Document more potential problems with basic asms.
10154
10155 2016-03-18  Bernd Schmidt  <bschmidt@redhat.com>
10156
10157         PR rtl-optimization/70278
10158         * lra-constraints.c (split_reg): Handle the case where biggest_mode is
10159         VOIDmode.
10160
10161 2016-03-18  Jason Merrill  <jason@redhat.com>
10162
10163         * calls.c (load_register_parameters): Fix zero size sibcall logic.
10164
10165 2016-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
10166
10167         * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
10168         values to 128b regs.
10169
10170 2016-03-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
10171
10172         PR tree-optimization/70252
10173         * tree-vect-stmts.c (supportable_widening_operation): Check resulting
10174         boolean vector has a proper number of elements.
10175         (supportable_narrowing_operation): Likewise.
10176
10177 2016-03-18  Tom de Vries  <tom@codesourcery.com>
10178
10179         PR ipa/70269
10180         * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
10181
10182 2016-03-18  Jakub Jelinek  <jakub@redhat.com>
10183
10184         * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
10185         instead of replace_rtx for DEBUG_INSNs.
10186
10187 2016-03-18  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
10188
10189         * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
10190         load type reservations.
10191
10192 2016-03-17  John David Anglin  <danglin@gcc.gnu.org>
10193
10194         PR target/70188
10195         * config/pa/constraints.md: Revert 2015-02-13 change.  Use
10196         define_constraint for "Q" and "T" constraints.
10197
10198 2016-03-17  Evandro Menezes  <e.menezes@samsung.com>
10199
10200         Tweak the pipeline model for Exynos M1
10201
10202         * config/aarch64/aarch64.c (exynosm1_tunings):  Enable weak prefetching
10203         model.
10204
10205 2016-03-17  David Malcolm  <dmalcolm@redhat.com>
10206
10207         PR c/70264
10208         * diagnostic-show-locus.c (compatible_locations_p): Handle the case
10209         where one or both locations aren't within a line_map.
10210
10211 2016-03-17  H.J. Lu  <hongjiu.lu@intel.com>
10212
10213         PR driver/70192
10214         * opts.c (finish_options): Don't set flag_pie to the default if
10215         -fpic, -fPIC, -fno-pic or -fno-PIC is used.  Set flag_pic to 0
10216         if it is -1.
10217
10218 2016-03-17  Joern Rennecke  <joern.rennecke@embecosm.com>
10219
10220         * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
10221         true as ALL_REGS argument to replace_rtx.
10222
10223 2016-03-17  Richard Biener  <rguenther@suse.de>
10224
10225         PR debug/70271
10226         * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
10227         last.
10228
10229 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
10230
10231         PR target/70245
10232         * rtl.h (replace_rtx): Add ALL_REGS argument.
10233         * rtlanal.c (replace_rtx): Likewise.  If true, use REGNO
10234         equality and assert mode is the same, instead of just rtx pointer
10235         equality.
10236         * config/i386/i386.md (mov + arithmetics with load peephole): Pass
10237         true as ALL_REGS argument to replace_rtx.
10238
10239 2016-03-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
10240
10241         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
10242         for boolean vector with vector mode only.
10243         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
10244
10245 2016-03-17  Nick Clifton  <nickc@redhat.com>
10246
10247         PR target/70162
10248         * config/rx/rx.c (rx_print_integer): Print negative constants in
10249         decimal.
10250
10251 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
10252
10253         PR target/70261
10254         * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
10255
10256 2016-03-16  Richard Henderson  <rth@redhat.com>
10257             Richard Biener  <rguenth@suse.de>
10258
10259         PR middle-end/70240
10260         PR middle-end/68215
10261         PR tree-opt/68714
10262         * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
10263         first operand as is_gimple_condexpr.
10264
10265         PR middle-end/70240
10266         PR middle-end/68215
10267         Revert r231575
10268         2015-12-11  Eric Botcazou  <ebotcazou@adacore.com>
10269         * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
10270         Do not gimplify the result.
10271         (do_unop): Adjust call to tree_vec_extract.
10272         (do_binop): Likewise.
10273         (do_compare): Likewise.
10274         (do_plus_minus): Likewise.
10275         (do_negate): Likewise.
10276         (expand_vector_condition): Likewise.
10277         (do_cond): Likewise.
10278
10279 2016-03-16  Richard Henderson  <rth@redhat.com>
10280
10281         PR target/70048
10282         * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
10283         (aarch64_classify_address): Use it.
10284         (aarch64_legitimize_address): Force all subexpressions of PLUS
10285         into registers.  Simplify as (sfp+const)+reg or (reg+reg)+const.
10286
10287 2016-03-16  Jakub Jelinek  <jakub@redhat.com>
10288             Richard Biener  <rguenth@suse.de>
10289
10290         PR target/70245
10291         * rtlanal.c (replace_rtx): For REG, if from is a REG,
10292         return to even if only REGNO is equal, and assert
10293         mode is the same.
10294
10295 2016-03-11  Jeff Law  <law@redhat.com>
10296
10297         PR rtl-optimization/70224
10298         * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
10299
10300 2016-03-16  Richard Henderson  <rth@redhat.com>
10301
10302         PR middle-end/70199
10303         * function.h (struct function): Add has_forced_label_in_static.
10304         * gimplify.c (force_labels_r): Set it.
10305         * lto-streamer-in.c (input_struct_function_base): Read it.
10306         * lto-streamer-out.c (output_struct_function_base): Write it.
10307         * tree-inline.c (has_label_address_in_static_1): Remove.
10308         (copy_forbidden): Remove fndecl parameter; test
10309         has_forced_label_in_static.
10310         (inline_forbidden_p): Update call to copy_forbidden.
10311         (tree_versionable_function_p): Likewise.
10312         * ipa-chkp.c (chkp_instrumentable_p): Likewise.
10313         (chkp_versioning): Likewise.
10314         * tree-inline.h (copy_forbidden): Update decl.
10315
10316 2016-03-16  Marek Polacek  <polacek@redhat.com>
10317
10318         PR c/70093
10319         * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
10320         function being thunked if the result type doesn't have fixed size.
10321         * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
10322         doesn't have fixed size.
10323
10324 2016-03-16  Bin Cheng  <bin.cheng@arm.com>
10325
10326         * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
10327         reporting malformed loop nest.
10328
10329 2016-03-16  Tom de Vries  <tom@codesourcery.com>
10330
10331         PR lto/70187
10332         * ipa-devirt.c (possible_polymorphic_call_targets): Move
10333         nodes.length () == 1 test to before first nodes[0] access.
10334
10335 2016-03-16  Tom de Vries  <tom@codesourcery.com>
10336
10337         PR tree-optimization/68715
10338         * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
10339         single_pred_p test.
10340
10341 2016-03-16  Tom de Vries  <tom@codesourcery.com>
10342
10343         PR tree-optimization/68809
10344         * graphite-scop-detection.c (same_close_phi_node): Test if result types
10345         are the same.
10346
10347 2016-03-16  Carlos O'Donell  <carlos@redhat.com>
10348             Sandra Loosemore  <sandra@codesourcery.com>
10349
10350         * doc/extend.texi (Common Function Attributes): Describe ifunc impact
10351         on leaf attribute. Mention ELF interposition problems.
10352
10353 2016-03-16  Alan Modra  <amodra@gmail.com>
10354
10355         PR rtl-optimization/69195
10356         PR rtl-optimization/47992
10357         * ira.c (indirect_jump_optimize): Ignore artificial defs.
10358         Add comments.
10359
10360 2016-03-15  Eric Botcazou  <ebotcazou@adacore.com>
10361
10362         PR bootstrap/69513
10363         * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
10364
10365 2016-03-15  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
10366
10367         * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
10368
10369 2016-03-15  Jakub Jelinek  <jakub@redhat.com>
10370
10371         PR rtl-optimization/70222
10372         * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
10373         optimization if mode is different from result_mode, queue up masking
10374         of the result in outer_op.  Formatting fix.
10375
10376         PR middle-end/70239
10377         * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
10378         of safe_grow.
10379
10380 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
10381
10382         PR rtl-optimization/69032
10383         * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
10384         looping backwards over basic block insns.
10385
10386 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
10387
10388         PR target/66660
10389         * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
10390         to non-speculative when propagating trap bits.
10391
10392 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
10393
10394         PR rtl-optimization/63384
10395         * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
10396         DEBUG_INSN_P insns.
10397
10398 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
10399
10400         PR target/64411
10401         * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
10402         factored out from ...
10403         (sched_analyze_insn): ... here.
10404         * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
10405         * sel-sched-ir.c (setup_id_implicit_regs): New function, use
10406         get_implicit_reg_pending_clobbers in it.
10407         (setup_id_reg_sets): Use setup_id_implicit_regs.
10408         (deps_init_id): Ditto.
10409
10410 2016-03-15  Tom de Vries  <tom@codesourcery.com>
10411
10412         PR ipa/70161
10413         * cgraph.c (cgraph_node::get_body): Save, reset and restore
10414         dump_file_name.
10415         * passes.c (execute_one_ipa_transform_pass): Add missing argument to
10416         execute_function_dump.
10417         (execute_one_pass): Don't dump function if it will be dumped after ipa
10418         transform.
10419
10420 2016-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
10421
10422         * genrecog.c (match_pattern_2): If pred is NULL don't call
10423         safe_predicate_mode on it.
10424
10425 2016-03-14  Jakub Jelinek  <jakub@redhat.com>
10426
10427         PR middle-end/70219
10428         * lra-constraints.c (delete_move_and_clobber): Change assertion
10429         to also allow dregno == 0.
10430
10431 2016-03-14  Richard Henderson  <rth@redhat.com>
10432
10433         PR tree-opt/68714
10434         * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
10435         (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
10436         (reassociate_bb): Use optimize_vec_cond_expr; avoid
10437         optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
10438         on vectors.
10439
10440 2016-03-14  Bernd Schmidt  <bschmidt@redhat.com>
10441
10442         PR target/70083
10443         * lra-lives.c (process_bb_lives): Also update biggest mode for hard
10444         regs.
10445         (lra_create_live_ranges_1): initialize hard register biggest_mode to
10446         VOIDmode.
10447         * lra-constraints.c (split_reg): For hard regs, try to find the
10448         biggest single-register mode used in the function.
10449
10450 2016-03-14  Richard Biener  <rguenther@suse.de>
10451
10452         PR tree-optimization/56365
10453         * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
10454         constants to compare against.
10455
10456 2016-03-14  Segher Boessenkool  <segher@kernel.crashing.org>
10457
10458         PR target/70098
10459         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
10460         *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
10461         (define_split for the GPR case): Use int_reg_operand instead of
10462         gpc_reg_operand for the output.
10463
10464 2016-03-14  Tom de Vries  <tom@codesourcery.com>
10465
10466         PR tree-optimization/70045
10467         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
10468         create_empty_if_region_on_edge argument.
10469
10470 2016-03-13  Eric Botcazou  <ebotcazou@adacore.com>
10471
10472         * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
10473         (STACK_CHECK_PROTECT): Likewise.
10474         * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
10475         (STACK_CHECK_PROTECT): Likewise.
10476         * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
10477         (STACK_CHECK_PROTECT): Likewise.
10478         * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
10479         * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
10480         (STACK_CHECK_PROTECT): Likewise.
10481
10482 2016-03-12  Andrey Belevantsev  <abel@ispras.ru>
10483
10484         PR rtl-optimization/69307
10485         * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
10486         registers in modes that span more than one register.
10487
10488 2016-03-12  Vladimir Makarov  <vmakarov@redhat.com>
10489
10490         PR target/69614
10491         * lra-constraints.c (delete_move_and_clobber): New.
10492         (remove_inheritance_pseudos): Use it.
10493
10494 2016-03-12  Eric Botcazou  <ebotcazou@adacore.com>
10495
10496         PR ada/70017
10497         * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
10498         the libcall is LCT_THROW.
10499         * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
10500         for the checking routine.
10501
10502 2016-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
10503
10504         PR target/70131
10505         * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
10506         optimization if we have direct move.
10507         (roundu32<mode>2_fprs): Likewise.
10508
10509 2016-03-11  Bernd Schmidt  <bschmidt@redhat.com>
10510
10511         PR target/70123
10512         * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
10513         be rematerialized.
10514         (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
10515         Arguments swapped.  All callers changed.  Take reg_renumber into
10516         account, and Calculate and compare register ranges for hard regs.
10517
10518 2016-03-11  Jeff Law  <law@redhat.com>
10519
10520         PR tree-optimization/70190
10521         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
10522         Handle cases where we can not extract the taken edge, even though we
10523         found a constant value.
10524
10525         PR tree-optimization/64058
10526         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
10527         (num_coalesce_pairs): Move up earlier in file.
10528         (find_coalesce_pair): Initialize the INDEX field for each pair
10529         discovered.
10530         (compare_pairs): No longer sort on the elements in each pair.
10531         Instead break ties with the index of the coalesce pair.
10532
10533 2016-03-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10534
10535         PR target/70002
10536         * config/aarch64/aarch64-protos.h
10537         (aarch64_save_restore_target_globals): New prototype.
10538         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
10539         Call the above when popping pragma.
10540         * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
10541         New function.
10542         (aarch64_set_current_function): Rewrite using the above.
10543
10544 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
10545
10546         PR tree-optimization/70177
10547         * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
10548         (extract_ops_from_tree): ... this.  In the 2 argument
10549         overload remove _1 suffix.
10550         * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
10551         (extract_ops_from_tree): ... this.
10552         * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
10553         Adjust callers.
10554         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
10555         * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
10556         extract_ops_from_tree instead of 2 operand one.
10557
10558 2016-03-11  Alan Lawrence  <alan.lawrence@arm.com>
10559
10560         PR tree-optimization/70013
10561         * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
10562         for constant-pool entries.
10563
10564 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
10565
10566         PR rtl-optimization/70174
10567         * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
10568         followed by gen_lowpart on force_reg instead of just gen_lowpart.
10569
10570         PR tree-optimization/70169
10571         * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
10572         LABEL_DECL like VAR_DECL.  Emit nothing instead of gcc_unreachable
10573         for unknown codes.
10574
10575 2016-03-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
10576             Jakub Jelinek  <jakub@redhat.com>
10577
10578         PR target/70160
10579         * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
10580         of uninitialized values.
10581
10582 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10583
10584         * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
10585         define_expand.
10586         ("*trunctddd2"): New pattern definition.
10587         ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
10588         TD->DD truncation.
10589
10590 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10591
10592         * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
10593         definitions for BFP and DFP rounding modes.
10594         ("fixuns_truncdddi2", "fixuns_trunctddi2")
10595         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
10596         ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
10597         ("fix_trunctf<mode>2"): Use the new constants instead of magic
10598         numbers.
10599
10600 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10601
10602         * config/s390/constraints.md: Adjust comment.
10603         ("Y"): Adjust comment.  Rename s390_decompose_shift_count to
10604         s390_decompose_addrstyle_without_index.
10605         * config/s390/predicates.md (shift_count_or_setmem_operand):
10606         Rename to setmem_operand.
10607         * config/s390/s390-protos.h
10608         (s390_decompose_shift_count): Rename to
10609         s390_decompose_addrstyle_without_index.
10610         * config/s390/s390.c (s390_decompose_shift_count)
10611         (s390_mem_constraint, print_shift_count_operand)
10612         (print_operand_address, print_operand): Rename
10613         s390_decompose_shift_count to
10614         s390_decompose_addrstyle_without_index and rename
10615         print_shift_count_operand to print_addrstyle_operand troughout the
10616         file.
10617         * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
10618         ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
10619         Rename shift_count_or_setmem_operand to setmem_operand.
10620         * config/s390/vx-builtins.md ("vec_insert<mode>")
10621         ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
10622         nonmemory_operand.
10623
10624 2016-03-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10625
10626         PR target/70168
10627         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
10628         Handle overlapping retval and newval.
10629
10630 2016-03-10  Nick Clifton  <nickc@redhat.com>
10631
10632         PR target/7044
10633         * config/aarch64/aarch64.c
10634         (aarch64_override_options_after_change_1): When forcing
10635         flag_omit_frame_pointer to be true, use a special value that can
10636         be detected if this function is called again, thus preventing
10637         flag_omit_leaf_frame_pointer from being forced to be false.
10638
10639 2016-03-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10640
10641         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
10642         Set x_flag_omit_leaf_frame_pointer when handling
10643         -momit-leaf-frame-pointer.
10644
10645 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
10646
10647         PR lto/69589
10648         * cgraph.c (cgraph_node::dump): Dump split_part and
10649         indirect_call_target.
10650         * cgraph.h (cgraph_node): Add indirect_call_target flag.
10651         * ipa.c (has_addr_references_p): Cleanup.
10652         (is_indirect_call_target_p): New.
10653         (walk_polymorphic_call_targets): Do not mark virtuals that may be
10654         called indirectly as local.
10655         (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
10656
10657 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
10658
10659         PR ipa/69630
10660         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
10661         on cxa_pure_virtual.
10662
10663 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
10664
10665         PR lto/69589
10666         * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
10667
10668 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
10669
10670         PR lto/69589
10671         * tree.c (need_assembler_name_p): Only record main variant type names.
10672
10673 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
10674
10675         PR target/70113.
10676         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
10677         Always define to 0 or 1.
10678         (TARGET_FIX_ERR_A53_843419): New macro.
10679         * config/aarch64/aarch64-elf-raw.h
10680         (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
10681         * config/aarch64/aarch64-linux.h: Likewise.
10682         * config/aarch64/aarch64.c
10683         (aarch64_override_options_after_change_1): Do not default
10684         aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
10685         843419 is on.
10686         (aarch64_attributes): Handle fix-cortex-a53-843419.
10687         (aarch64_can_inline_p): Likewise.
10688         * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
10689
10690 2016-03-10  Alan Lawrence  <alan.lawrence@arm.com>
10691         Jakub Jelinek <jakub@redhat.com>
10692
10693         * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
10694         * tree.c (array_at_struct_end_p): Do not limit to size of decl for
10695         DECL_COMMONS if flag_unconstrained_commons is set.
10696         * tree-dfa.c (get_ref_base_and_extent): Likewise.
10697         * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
10698         (funconstrained-commons): Document.
10699
10700 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
10701
10702         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
10703         aarch64-fusion-pairs.def and aarch64-tuning-flags.def
10704
10705 2016-03-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
10706
10707         * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
10708         has a proper number of elements.
10709
10710 2016-03-10  Alan Modra  <amodra@gmail.com>
10711
10712         PR rtl-optimization/69195
10713         PR rtl-optimization/47992
10714         * ira.c (recorded_label_ref): Delete.
10715         (update_equiv_regs): Return void.
10716         (indirect_jump_optimize): New function.
10717         (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
10718         before regstat_compute_ri.  Don't rebuild_jump_labels here.
10719         Delete update_regstat.
10720
10721 2016-03-10  Richard Biener  <rguenther@suse.de>
10722
10723         PR tree-optimization/70128
10724         * tree-ssa-structalias.c (set_uids_in_ptset): Set
10725         vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
10726
10727 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
10728
10729         PR tree-optimization/70152
10730         * tree-sra.c (replace_removed_params_ssa_names): Copy over
10731         SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
10732
10733         PR target/70086
10734         * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
10735         instead of gen_sse2_loadlpd.
10736         * config/i386/sse.md (*vec_concatv2df): Rename to...
10737         (vec_concatv2df): ... this.
10738
10739         PR tree-optimization/70127
10740         * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
10741
10742 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
10743
10744         PR c/68473
10745         PR c++/70105
10746         * diagnostic-show-locus.c (compatible_locations_p): New function.
10747         (layout::layout): Sanitize ranges using compatible_locations_p.
10748
10749 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
10750
10751         PR c/68473
10752         PR c++/70105
10753         * diagnostic-show-locus.c (layout_range::layout_range): Replace
10754         location_range param with three const expanded_locations * and a
10755         bool.
10756         (layout::layout): Replace call to
10757         rich_location::lazily_expand_location with get_expanded_location.
10758         Extract the range and perform location expansion here, passing
10759         the results to the layout_range ctor.
10760         * diagnostic.c (source_range::debug): Delete.
10761         * diagnostic.h (diagnostic_expand_location): Reimplement in terms
10762         of rich_location::get_expanded_location.
10763         * gcc-rich-location.c (get_range_for_expr): Delete.
10764         (gcc_rich_location::add_expr): Reimplement to avoid the
10765         rich_location::add_range overload that took a location_range,
10766         passing a location_t instead.
10767
10768 2016-03-09  Richard Biener  <rguenther@suse.de>
10769         Jakub Jelinek  <jakub@redhat.com>
10770
10771         PR tree-optimization/70138
10772         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
10773         Also skip vect_double_reduction_def.
10774
10775 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
10776
10777         PR target/70049
10778         * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
10779         if the operand is "m".
10780
10781 2016-03-09  Nathan Sidwell  <nathan@acm.org>
10782
10783         * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
10784
10785 2016-03-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
10786
10787         * config/i386/i386.c (processor_target_table): Fix cost table
10788         intialization order for znver1.
10789
10790 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
10791
10792         * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
10793         - becuase -> because.
10794         * ipa-reference.c (ignore_module_statics): Likewise.
10795         * cgraph.c (cgraph_node::get_body): Likewise.
10796         * ipa-inline.c (early_inliner): Likewise.
10797         * ipa-devirt.c (types_same_for_odr): Likewise.
10798         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
10799         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
10800
10801 2016-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10802
10803         * tree-ssa-math-opts.c: Fix typo in comment.
10804
10805 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
10806
10807         PR target/70110
10808         * config/i386/i386.c (scalar_chain::make_vector_copies,
10809         scalar_chain::convert_reg): Call end_sequence in between
10810         get_insns and emit_conversion_insns rather than after both
10811         calls.
10812
10813 2016-03-07  Uros Bizjak  <ubizjak@gmail.com>
10814
10815         PR target/70064
10816         * config/i386/i386.h (machine_function): Add
10817         pc_thunk_call_expanded flag.
10818         (ix86_pc_thunk_call_expanded): New define.
10819         * config/i386/i386.md (set_got, set_got_labelled): New expanders.
10820         (*set_got): Rename insn pattern from set_got.
10821         (*set_got_labelled): Rename inst pattern from set_got_labelled.
10822         * config/i386/i386.c (ix86_compute_frame_layout): Use
10823         ix86_pc_thunk_call_expanded to prevent red-zone.
10824
10825 2016-03-07  Martin Jambor  <mjambor@suse.cz>
10826
10827         * hsa.h (hsa_get_ctor_statements): Declare.
10828         (hsa_get_dtor_statements): Likewise.
10829         (hsa_get_kernel_dispatch_type): Likewise.
10830         * hsa.c (hsa_get_ctor_statements): New function.
10831         (hsa_get_dtor_statements): Likewise.
10832         (hsa_get_kernel_dispatch_type): Likewise.
10833         * hsa-brig.c (hsa_cdtor_statements): Removed.
10834         (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
10835         hsa_get_dtor_statements.
10836         * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
10837         (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
10838
10839 2016-03-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>
10840
10841         * config/arm/arm-cores.def (cortex-r8): New.
10842         * config/arm/arm-tables.opt (cortex-r8): Regenerate.
10843         * config/arm/arm-tune.md: Likewise.
10844         * doc/invoke.texi: Add cortex-r8 to list of cpu values.
10845
10846 2016-03-07  Martin Sebor  <msebor@redhat.com>
10847
10848         PR rtl-optimization/19705
10849         * doc/invoke.texi (Options That Control Optimization): Clarify
10850         -fno-branch-count-reg.
10851
10852 2016-02-26  Richard Biener  <rguenther@suse.de>
10853             Jeff Law  <law@redhat.com>
10854
10855         PR tree-optimization/69740
10856         * cfghooks.c (remove_edge): Request loop fixups if we delete
10857         an edge that might turn an irreducible loop into a natural
10858         loop.
10859         * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
10860         Move after definition of loops_state_clear.
10861
10862 2016-03-07  Bin Cheng  <bin.cheng@arm.com>
10863
10864         PR rtl-optimization/69052
10865         * rtlanal.c (commutative_operand_precedence): Set higher precedence
10866         to CONST_WIDE_INT.
10867
10868 2016-03-07  Tom de Vries  <tom@codesourcery.com>
10869
10870         PR tree-optimization/70116
10871         * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
10872         is_tm_ending stmts and ubsan/asan internal functions.
10873         (find_duplicate): Use it.  Don't test is_tm_ending here.
10874
10875 2016-03-07  Richard Biener  <rguenther@suse.de>
10876
10877         PR tree-optimization/70115
10878         * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
10879         (propagate_constants_for_unrolling): Use replace_uses_by.
10880
10881 2016-03-07  Nathan Sidwell  <nathan@codesourcery.com>
10882
10883         PR middle-end/69916
10884         * omp-low.c (struct oacc_loop): Add ifns.
10885         (new_oacc_loop_raw): Initialize it.
10886         (finish_oacc_loop): Clear mask & flags if no ifns.
10887         (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
10888         (oacc_loop_xform_loop): Add ifns arg & adjust.
10889         (oacc_loop_process): Adjust oacc_loop_xform_loop call.
10890
10891 2016-03-07  Richard Henderson  <rth@redhat.com>
10892
10893         PR rtl-opt/70061
10894         * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
10895         (insert_value_copy_on_edge): Likewise.
10896
10897 2016-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10898
10899         * config/arm/arm_neon.h: Show error if using with soft-float ABI.
10900
10901 2016-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10902
10903         PR target/62281
10904         * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
10905
10906 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
10907
10908         * config/i386/i386.c (znver1_cost): Fix Multiply cost.
10909
10910 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
10911
10912         Fix sseimul type attribute.
10913         * config/i386/znver1.md
10914         (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
10915         znver1_sseimul_avx256_load) : Fix the type attribute.
10916         (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
10917         pipe usage and latency.
10918
10919 2016-03-05  Jakub Jelinek  <jakub@redhat.com>
10920
10921         PR c++/70084
10922         * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
10923         of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
10924         to the right type.
10925
10926 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
10927
10928         PR c/69973
10929         * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
10930
10931         PR rtl-optimization/69941
10932         * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
10933         the reg share its mode.
10934
10935 2016-03-04  Jeff Law  <law@redhat.com>
10936
10937         PR tree-optimization/69196
10938         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
10939         If the both SSA_NAMEs are anonymous, then consider them unassociated
10940         and include the PHI in the statement count.
10941
10942 2016-03-05  Tom de Vries  <tom@codesourcery.com>
10943
10944         * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
10945         construct in oacc routine.  Check for oacc region in oacc routine.
10946
10947 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
10948
10949         PR target/70062
10950         * config/i386/i386.c (decide_alg): Add RECUR argument.  Revert
10951         2016-02-22 changes, instead don't recurse if RECUR is already true.
10952         Don't change *dynamic_check if RECUR.  Adjust recursive caller
10953         to pass true to the new argument.
10954         (ix86_expand_set_or_movmem): Adjust decide_alg caller.
10955
10956         PR target/70059
10957         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
10958         <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
10959         fixes.
10960         (vec_set_hi_<mode><mask_name>): Likewise.  Swap VEC_CONCAT operands.
10961
10962 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
10963
10964         PR rtl-optimization/57676
10965         * lra-assigns.c (lra_assign): Guard test for maximum iterations
10966         with flag_checking.
10967
10968 2016-03-04  Ilya Enkovich  <enkovich.gnu@gmail.com>
10969
10970         * tree-vect-patterns.c (search_type_for_mask): Handle
10971         comparison of booleans.
10972
10973 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
10974
10975         * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
10976         Fix @xref usage.
10977
10978         PR debug/69947
10979         * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
10980         all other ops that have dw_val_class_die_ref operands,
10981         and DW_OP_GNU_entry_value.
10982
10983 2016-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10984
10985         PR rtl-optimization/69904
10986         * config/arm/arm.c (arm_cannot_copy_insn_p):
10987         Return true for load-exclusive instructions.
10988
10989 2016-03-03  Jakub Jelinek  <jakub@redhat.com>
10990
10991         PR target/70021
10992         * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
10993         argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
10994         the pattern no matter if it is used just by non-pattern, pattern
10995         or mix thereof.
10996         (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
10997         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
10998         oprnd1 def_stmt is in pattern, don't look through it.
10999
11000 2016-03-03  Marek Polacek  <polacek@redhat.com>
11001
11002         PR middle-end/70050
11003         * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
11004
11005 2016-03-03  Martin Liska  <mliska@suse.cz>
11006
11007         PR tree-optimization/70043
11008         * tree-vect-loop.c (optimize_mask_stores): Move iterator to
11009         previous statement if we see a debug statement.
11010
11011 2016-03-03  Richard Biener  <rguenther@suse.de>
11012
11013         PR tree-optimization/55936
11014         * tree-vrp.c (compare_name_with_value): Add use_equiv_p
11015         parameter and guard unsafe equivalence use.
11016         (vrp_evaluate_conditional_warnv_with_ops): Always use
11017         safe equivalences but not via the quadratic compare_names
11018         helper.
11019
11020 2016-03-03  Michael Collison  <michael.collison@linaro.org>
11021
11022         PR target/70014
11023         * config/arm/arm.md (*subsi3_carryin_const): Change predicate
11024         for operand 1 to s_register_operand. Change predicate for operand
11025         2 to arm_not_immediate_operand.
11026
11027 2016-03-02  H.J. Lu  <hongjiu.lu@intel.com>
11028
11029         * doc/tm.texi: Regenerated.
11030
11031 2016-03-02  Richard Henderson  <rth@redhat.com>
11032
11033         PR rtl-opt/67145
11034         * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
11035         simplification when all args are positive non-fixed registers.
11036
11037 2016-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
11038
11039         * target.def (lra_p): Specify that new ports should use LRA.
11040
11041 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
11042
11043         PR libgomp/69555
11044         * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
11045         gimplify_type_sizes the type they refer to.
11046         (omp_notice_variable): Handle reference vars to VLAs.
11047         * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
11048         reference to VLA decls in the second pass instead of first pass.
11049
11050 2016-03-02  Tom de Vries  <tom@codesourcery.com>
11051
11052         PR tree-optimization/68659
11053         * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
11054         new_expr == NULL_TREE.
11055         (get_new_name): Handle ADDR_EXPR.
11056
11057 2016-03-02  Bin Cheng  <bin.cheng@arm.com>
11058
11059         PR rtl-optimization/69052
11060         * loop-invariant.c (canonicalize_address): New function.
11061         (inv_can_prop_to_addr_use): Check validity of address expression
11062         which is canonicalized by above function.
11063
11064 2016-03-02  Alan Modra  <amodra@gmail.com>
11065
11066         PR ipa/69990
11067         * ipa-icf.c (sem_variable::merge): Do not merge an alias with
11068         larger alignment.
11069
11070 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
11071
11072         PR target/70028
11073         * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
11074         (*movhi_internal): Put mask moves from and to memory separately
11075         from moves from/to GPRs.
11076
11077 2016-03-02  Richard Biener  <rguenther@suse.de>
11078
11079         * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
11080         GENERIC expressions in GIMPLE.
11081
11082 2016-03-02  Richard Biener  <rguenther@suse.de>
11083
11084         * config/i386/i386.c (type_natural_mode): Fix typo.
11085
11086 2016-03-02  Nick Clifton  <nickc@redhat.com>
11087
11088         * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
11089
11090 2016-03-02  Richard Biener  <rguenther@suse.de>
11091             Uros Bizjak  <ubizjak@gmail.com>
11092
11093         PR target/67278
11094         * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
11095
11096 2016-03-02  Richard Biener  <rguenther@suse.de>
11097
11098         PR middle-end/67278
11099         * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
11100
11101 2016-03-02  Marek Polacek  <polacek@redhat.com>
11102
11103         PR c/67854
11104         * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
11105         "is promoted to" warning.
11106
11107 2016-03-01  DJ Delorie  <dj@redhat.com>
11108
11109         * config.gcc: Deprecate mep-*.
11110
11111 2016-03-01  Vladimir Makarov  <vmakarov@redhat.com>
11112
11113         PR middle-end/70025
11114         * lra-constraints.c (regno_val_use_in): New.
11115         (match_reload): Use it instead of regno_use_in.
11116
11117 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
11118
11119         PR rtl-optimization/70007
11120         * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
11121         references present in REG_EQUAL notes attached to non-SET patterns.
11122
11123 2016-03-01  Jeff Law  <law@redhat.com>
11124
11125         PR tree-optimization/69196
11126         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
11127         Appropriately clamp the number of statements to copy when the
11128         thread path does not traverse a loop backedge.
11129
11130         PR tree-optimization/69196
11131         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
11132         Do count some PHIs in the thread path against the insn count.  Decrease
11133         final statement count by one as the control statement in the last
11134         block will get removed.  Remove special cased code for handling PHIs
11135         in the last block.
11136
11137 2016-03-01  Uros Bizjak  <ubizjak@gmail.com>
11138
11139         PR target/70027
11140         * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
11141         asm dialect alternatives to explicit GOTPCREL calls.
11142
11143 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
11144
11145         PR ada/70017
11146         * ira.c (do_reload): Issue warning for generic stack checking here...
11147         * reload1.c (reload): ...instead of here and streamline it.
11148
11149 2016-03-01  Nick Clifton  <nickc@redhat.com>
11150
11151         * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
11152
11153 2016-03-01  Richard Biener  <rguenther@suse.de>
11154
11155         PR tree-optimization/69983
11156         * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
11157         types and fall back to operand_equal_p.
11158
11159 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11160
11161         Revert
11162         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11163
11164         * config/s390/constraints.md ("jm8"): New constraint.
11165         * config/s390/predicates.md ("const_int_8bitset_operand"): New
11166         predicate.
11167         * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
11168         into ...
11169         ("*setmem_long<setmem_and>"): New pattern.
11170         ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
11171         into ...
11172         ("*setmem_long_31z<setmem_and>"): New pattern.
11173         * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
11174         New substitution rules with the required attributes.
11175
11176
11177 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11178
11179         Revert
11180         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11181
11182         * gensupport.c (process_substs_on_one_elem): Split loop to
11183         complete mark_operands_used_in_match_dup on all expressions in the
11184         vector first.
11185         (adjust_operands_numbers): Inline into process_substs_on_one_elem
11186         and remove function.
11187
11188 2016-03-01  Richard Biener  <rguenther@suse.de>
11189
11190         PR middle-end/70022
11191         * fold-const.c (fold_indirect_ref_1): Fix range checking for
11192         vector BIT_FIELD_REF extract.
11193
11194 2016-03-01  Richard Biener  <rguenther@suse.de>
11195
11196         PR tree-optimization/69994
11197         * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
11198
11199 2016-03-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
11200
11201         PR tree-optimization/69956
11202         * tree-vect-stmts.c (supportable_widening_operation): Support
11203         multi-step conversion of boolean vectors.
11204         (supportable_narrowing_operation): Likewise.
11205
11206 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11207
11208         * config/s390/s390.c (s390_decompose_address): Don't accept SImode
11209         anymore.
11210
11211 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11212
11213         * config/s390/subst.md (DSI_VI): New mode iterator.
11214         ("addr_style_op_subst"): Use DSI_VI instead of DSI.
11215         * config/s390/vector.md ("vec_set<mode>"): Move expander before
11216         the insn definition.
11217         ("*vec_set<mode>"): Change predicate and add alternative to
11218         support only either register or const_int operands as element
11219         selector.
11220         ("*vec_set<mode>_plus"): New pattern to support reg + const_int
11221         operands.
11222         ("vec_extract<mode>"): New expander.
11223         ("*vec_extract<mode>"): New insn definition supporting reg and
11224         const_int element selectors.
11225         ("*vec_extract<mode>_plus"): New insn definition supporting
11226         reg+const_int element selectors.
11227         ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
11228         following expander+insn definition.
11229         ("<vec_shifts_name><mode>3"): New expander.
11230         ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
11231
11232 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11233
11234         * config/s390/s390.md ("*tabort_1"): Change predicate to
11235         nonmemory_operand.  Add a second alternative to cover
11236         register as well as const int operands.
11237         ("*tabort_1_plus"): New pattern definition.
11238
11239 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11240
11241         * config/s390/s390.md ("*ashrdi3_cc_31")
11242         ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
11243         ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
11244         Merge insn definitions into ...
11245         ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
11246         New pattern definition.
11247         ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
11248         ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
11249         ("*ashr<mode>3_and"): Merge insn definitions into ...
11250         ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
11251         New pattern definition.
11252         * config/s390/subst.md ("addr_style_op_cc_subst")
11253         ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
11254         substitutions patterns plus attributes.
11255         Add ashiftrt to SUBST iterator.
11256
11257 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11258
11259         * config/s390/s390.md ("<shift><mode>3"): Change predicate of
11260         op2 to nonmemory_operand.
11261         ("*<shift>di3_31", "*<shift>di3_31_and"):
11262         Merge into single pattern definition ...
11263         ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
11264         ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
11265         pattern definition ...
11266         ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
11267         * config/s390/subst.md: Add ashift and lshiftrt to SUBST
11268         iterator.
11269
11270 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11271
11272         * config/s390/predicates.md (const_int_6bitset_operand): New
11273         predicate.
11274         * config/s390/s390.md: Include subst.md.
11275         ("rotl<mode>3"): New expander.
11276         ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
11277         ...
11278         ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
11279         * config/s390/subst.md: New file.
11280
11281 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11282
11283         * config/s390/s390.md ("op_type", "atype", "length" attributes):
11284         Remove RRR type.  It doesn't really exist.
11285         ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
11286         attributes.
11287         ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
11288         ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
11289         ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
11290         ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
11291         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
11292         ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
11293         `enabled' attribute.
11294
11295 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11296
11297         * gensupport.c (process_substs_on_one_elem): Split loop to
11298         complete mark_operands_used_in_match_dup on all expressions in the
11299         vector first.
11300         (adjust_operands_numbers): Inline into process_substs_on_one_elem
11301         and remove function.
11302
11303 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
11304
11305         PR target/69706
11306         * config/sparc/sparc.c (NWORDS_UP): Rename to...
11307         (CEIL_NWORDS): ...this.  Use CEIL macro.
11308         (compute_fp_layout): Adjust to above renaming.
11309         (function_arg_union_value): Likewise.
11310         (sparc_arg_partial_bytes): Likewise.
11311         (sparc_function_arg_advance): Likewise.
11312
11313 2016-02-29  Jeff Law  <law@redhat.com>
11314
11315         PR tree-optimization/70005
11316         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
11317         where an object with a boolean range is compared against a value
11318         outside [0..1].
11319
11320         PR tree-optimization/69999
11321         * gimple-ssa-split-paths.c (split_paths): When duplicating a block
11322         with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
11323         loop cleanups.
11324
11325 2016-02-29  Richard Biener  <rguenther@suse.de>
11326
11327         PR tree-optimization/69994
11328         * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
11329         (get_unary_op): Look through nop conversions.
11330         (ops_equal_values_p): New function, look for equality diregarding
11331         nop conversions.
11332         (eliminate_plus_minus_pair): Use ops_equal_values_p
11333         (repropagate_negates): Do not use get_unary_op here.
11334
11335 2016-02-29  Martin Liska  <mliska@suse.cz>
11336
11337         * system.h: Poison ENABLE_CHECKING macro.
11338
11339 2016-02-29  Martin Liska  <mliska@suse.cz>
11340
11341         * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
11342         is presented in dump flags.
11343         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
11344         (hsa_regalloc): Likewise.
11345
11346 2016-02-19  Richard Biener  <rguenther@suse.de>
11347
11348         PR tree-optimization/69980
11349         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
11350         permutation of those we need to keep.
11351
11352 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
11353
11354         PR target/69706
11355         * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
11356         (NWORDS_UP): ...this
11357         (init_cumulative_args): Minor tweaks.
11358         (sparc_promote_function_mode): Likewise.
11359         (scan_record_type): Delete.
11360         (traverse_record_type): New function template.
11361         (classify_data_t): New structure type.
11362         (classify_registers): New inline function.
11363         (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
11364         exhausted.  Instantiate traverse_record_type on classify_registers and
11365         deal with the case of a structure passed in slot #15 with no FP field
11366         in the first word.
11367         (assign_data_t): New structure type.
11368         (compute_int_layout): New static function.
11369         (compute_fp_layout): Likewise.
11370         (count_registers): New inline function.
11371         (assign_int_registers): New static function.
11372         (assign_fp_registers): Likewise.
11373         (assign_registers): New inline function.
11374         (function_arg_record_value_1): Delete.
11375         (function_arg_record_value_2): Likewise.
11376         (function_arg_record_value_3): Likewise.
11377         (function_arg_record_value): Adjust to above changes.  Instantiate
11378         traverse_record_type on count_registers to first count the number of
11379         registers to be used and then on assign_registers to assign them.
11380         (function_arg_union_value): Adjust to above renaming.
11381         (sparc_function_arg_1); Minor tweaks.  Remove commented out code.
11382         (sparc_arg_partial_bytes): Adjust to above renaming.  Deal with the
11383         case of a structure passed in slot #15
11384         (sparc_function_arg_advance): Likewise.
11385         (function_arg_padding): Minor tweak.
11386
11387 2016-02-29  Richard Biener  <rguenther@suse.de>
11388
11389         PR tree-optimization/69720
11390         * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
11391         the adjustment_def path for possibly vectorized defs.
11392         (vect_create_epilog_for_reduction): Handle vectorized initial
11393         defs properly.
11394
11395 2016-02-28  Eric Botcazou  <ebotcazou@adacore.com>
11396
11397         * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
11398
11399 2016-02-27  Jeff Law  <law@redhat.com>
11400
11401         Revert
11402         2016-02-26  Richard Biener  <rguenther@suse.de>
11403                     Jeff Law  <law@redhat.com>
11404
11405         PR tree-optimization/69740
11406         * cfghooks.c (remove_edge): Request loop fixups if we delete
11407         an edge that might turn an irreducible loop into a natural
11408         loop.
11409
11410 2016-02-27  Jakub Jelinek  <jakub@redhat.com>
11411
11412         PR rtl-optimization/69896
11413         * tree-vect-generic.c (get_compute_type): Avoid single element
11414         vector types.
11415
11416 2016-02-26  Evandro Menezes  <e.menezes@samsung.com>
11417
11418         Rename the AArch64 tuning option and related functions to enable the
11419         Newton series for the reciprocal square root to reflect its
11420         approximative characteristic.
11421
11422         * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
11423         function to "aarch64_emit_approx_rsqrt".
11424         * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
11425         AARCH64_EXTRA_TUNE_APPROX_RSQRT.
11426         * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
11427         (xgene1_tunings): Likewise.
11428         (use_rsqrt_p): Likewise.
11429         (aarch64_emit_swrsqrt): Use new function name.
11430         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
11431         * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
11432         text explaining this option.
11433         * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
11434
11435 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
11436
11437         PR target/69969
11438         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
11439         complain about -mallow-movmisalign without -mvsx if
11440         TARGET_ALLOW_MOVMISALIGN was not set explicitly.
11441
11442 2016-02-26  Joel Sherrill  <joel@rtems.org>
11443
11444         * config.gcc: Add x86_64-*-rtems*.
11445         * config/i386/rtems-64.h: New file.
11446
11447 2016-02-26  Joel Sherrill  <joel@rtems.org>
11448
11449         * config.gcc: Add aarch64-*-rtems*.
11450         * config/aarch64/rtems.h: New file.
11451
11452 2016-02-26  Segher Boessenkool  <segher@kernel.crashing.org>
11453
11454         PR target/69946
11455         * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
11456         shift amount using %h.  Add comment.
11457
11458 2016-02-26  Richard Biener  <rguenther@suse.de>
11459             Jeff Law  <law@redhat.com>
11460
11461         PR tree-optimization/69740
11462         * cfghooks.c (remove_edge): Request loop fixups if we delete
11463         an edge that might turn an irreducible loop into a natural
11464         loop.
11465
11466 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11467
11468         PR middle-end/69920
11469         * tree-sra.c (sra_modify_assign): Do not remove loads of
11470         uninitialized aggregates to SSA_NAMEs.
11471
11472 2016-02-26  Richard Henderson  <rth@redhat.com>
11473
11474         PR target/69709
11475         * config/s390/s390.md (risbg and risbgn splitters): Allocate new
11476         pseudo in case the target rtx matches the source of the left
11477         shift.
11478
11479 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11480
11481         PR hsa/69568
11482         * hsa.h (hsa_type_packed_p): Declare.
11483         * hsa.c (hsa_type_packed_p): New function.
11484         * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
11485         loads.
11486         (gen_hsa_insns_for_store): Use hsa_type_packed_p.
11487         * hsa-brig.c (emit_basic_insn): Likewise.
11488
11489 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11490
11491         pr hsa/69674
11492         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
11493         pointers.
11494         (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
11495
11496 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11497
11498         * hsa.h (is_a_helper): New overload for hsa_op_immed for
11499         hsa_op_with_type operands.
11500         (hsa_unsigned_type_for_type): Declare.
11501         * hsa.c (hsa_unsigned_type_for_type): New function.
11502         * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
11503         (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
11504         the finalizer.  Do not emit extra move.
11505
11506 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11507
11508         * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
11509         atomic operations in private segment.
11510
11511 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11512
11513         * omp-low.c (grid_find_ungridifiable_statement): Store problematic
11514         statements to wi->info.  Also disallow omp simd constructs.
11515         (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
11516         for not gridifying.  Dump special string for omp_for.
11517
11518 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11519
11520         PR target/69245
11521         * config/aarch64/aarch64.c (aarch64_set_current_function):
11522         Save/restore target globals when switching to
11523         target_option_default_node.
11524
11525 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11526
11527         PR target/69613
11528         * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
11529         Return 0 if !SHIFT_COUNT_TRUNCATED.
11530
11531 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
11532             Eric Botcazou  <ebotcazou@adacore.com>
11533
11534         PR rtl-optimization/69891
11535         * dse.c (scan_insn): If we can't figure out memset arguments
11536         or they are non-constant, call clear_rhs_from_active_local_stores.
11537
11538 2016-02-26  Martin Liska  <mliska@suse.cz>
11539
11540         * doc/extend.texi: Mention clog10, clog10f an clog10l
11541         in Builtins section.
11542
11543 2016-02-26  Martin Liska  <mliska@suse.cz>
11544
11545         * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
11546         CHECKING_P.
11547         (resolve_args_picking_1): Likewise.
11548         * dwarf2out.h (struct GTY): Likewise.
11549
11550 2016-02-26  Martin Liska  <mliska@suse.cz>
11551
11552         * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
11553         with flag_checking.
11554         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
11555
11556 2016-02-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
11557             Martin Liska  <mliska@suse.cz>
11558
11559         * doc/install.texi: Mention --enable-valgrind-annotations.
11560
11561 2016-02-26  Richard Biener  <rguenther@suse.de>
11562
11563         PR tree-optimization/69551
11564         * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
11565         looking through aliases adjust DECL_PT_UID to refer to the
11566         ultimate alias target.
11567
11568 2016-02-25  Martin Liska  <mliska@suse.cz>
11569
11570         PR middle-end/69919
11571         * alloc-pool.c (after_memory_report): New variable.
11572         * alloc-pool.h (base_pool_allocator ::release): Do not use
11573         the infrastructure if after_memory_report.
11574         * toplev.c (toplev::main): Mark after memory report.
11575
11576 2016-02-25  Richard Biener  <rguenther@suse.de>
11577
11578         PR tree-optimization/48795
11579         * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
11580
11581 2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>
11582
11583         PR driver/68463
11584         * config/gnu-user.h (CRTOFFLOADBEGIN): Define.  Add crtoffloadbegin.o if
11585         offloading is enabled and -fopenacc or -fopenmp is specified.
11586         (CRTOFFLOADEND): Likewise.
11587         (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
11588         (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
11589         * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
11590         (offload_objects_file_name): New static var.
11591         (tool_cleanup): Remove offload_objects_file_name file.
11592         (find_offloadbeginend): Replace with ...
11593         (find_crtoffloadtable): ... this.
11594         (run_gcc): Remove offload_argc and offload_argv.
11595         Get offload_objects_file_name from -foffload-objects=... option.
11596         Read names of object files with offload from this file, pass them to
11597         compile_images_for_offload_targets.  Don't call find_offloadbeginend and
11598         don't pass offloadbegin and offloadend to the linker.  Don't pass
11599         offload non-LTO files to the linker, because now they're not claimed.
11600
11601 2016-02-25  Jan Hubicka  <hubicka@ucw.cz>
11602
11603         PR ipa/69630
11604         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
11605         on builtin_unreachable.
11606
11607 2016-02-25  Jakub Jelinek  <jakub@redhat.com>
11608
11609         PR rtl-optimization/69896
11610         * regcprop.c: Include cfgrtl.h.
11611         (copyprop_hardreg_forward_1): If noop_p insn uses narrower
11612         than remembered mode, either delete it (if noop_move_p), or
11613         treat like copy_p but not noop_p instruction.
11614
11615 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
11616
11617         PR debug/69705
11618         * dwarf2out.c (gen_variable_die): Work around buggy LTO
11619         - allow NULL decl for Fortran DW_TAG_common_block variables.
11620
11621 2016-02-24  Jason Merrill  <jason@redhat.com>
11622
11623         * common.opt (flifetime-dse): Add -flifetime-dse=1.
11624
11625 2016-02-24  Richard Biener  <rguenther@suse.de>
11626             Jakub Jelinek  <jakub@redhat.com>
11627
11628         PR middle-end/69760
11629         * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
11630         conditionally executed ops to well-defined overflow behavior.
11631
11632 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
11633
11634         PR middle-end/69915
11635         * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
11636         elements.
11637
11638 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11639
11640         PR rtl-optimization/69886
11641         * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
11642         argument.  Use it when checking validity of set instructions.
11643         (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
11644         (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
11645         callsite.
11646         * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
11647         * store-motion.c (find_moveable_store): Update
11648         can_assign_to_reg_without_clobbers_p callsite.
11649
11650 2016-02-24  Richard Biener  <rguenther@suse.de>
11651
11652         PR middle-end/68963
11653         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
11654         bogus check.
11655         (record_nonwrapping_iv): Do not fall back to the low/high bound
11656         for non-constant IV bases if the stmt is not always executed.
11657
11658 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11659
11660         * config/arm/arm-cores.def (cortex-a32): New entry.
11661         * config/arm/arm-tables.opt: Regenerate.
11662         * config/arm/arm-tune.md: Regenerate.
11663         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
11664         * config/arm/t-aprofile: Handle mcpu=cortex-a32.
11665         * doc/invoke.texi (ARM Options): Document cortex-a32 as value
11666         for -mcpu and -mtune.
11667
11668 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11669
11670         PR target/69875
11671         * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
11672         * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
11673         * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
11674         (atomic_loaddi_1): Delete.
11675         (atomic_loaddi): Rewrite expander using the above changes.
11676
11677 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
11678
11679         PR c/69918
11680         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
11681         2 to 3.
11682
11683 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
11684             Richard Biener  <rguenth@suse.de>
11685
11686         PR middle-end/69909
11687         * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
11688         set_mem_attributes if tem is SSA_NAME which got expanded
11689         as a MEM.
11690
11691 2016-02-24  Richard Biener  <rguenther@suse.de>
11692
11693         PR tree-optimization/69907
11694         * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
11695         end of permutations for BB vectorization.
11696
11697 2016-02-24  Christian Bruel  <christian.bruel@st.com>
11698
11699         * config/arm/arm-c.c (arm_option_override): Initialize
11700         target_option_current_node.
11701         * config/arm/arm.c (arm_pragma_target_parse): Replace
11702         build_target_option_node call by target_option_current_node.
11703         Set target_option_current_node.
11704         Fix comments.
11705
11706 2016-02-23  David Edelsohn  <dje.gcc@gmail.com>
11707
11708         PR target/69810
11709         * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
11710         define_insn_and_split to define_insn.
11711         (zero_extendqi<mode>2_dot2): Same.
11712         (extendqi<mode>2_dot): Same.
11713         (extendqi<mode>2_dot2): Same.
11714
11715 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
11716
11717         * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
11718         and add bypass for AES{D,E} and AESMC pairs.
11719         * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
11720         and AESMC pairs.
11721
11722 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
11723
11724         * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
11725         series for reciprocal square root in Exynos M1.
11726
11727 2016-02-23  Martin Sebor  <msebor@redhat.com>
11728
11729         PR c/69759
11730         * doc/extend.texi (Other Builtins): Document __builtin_alloca and
11731         __builtin_alloca_with_align.
11732
11733 2016-02-23  Richard Henderson  <rth@redhat.com>
11734
11735         * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
11736         (ix86_register_pragmas): Remove __seg_tls.
11737         * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
11738         * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
11739         (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
11740         (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
11741         (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
11742         * doc/extend.texi (__seg_tls): Remove item.
11743
11744 2016-02-23  Richard Biener  <rguenther@suse.de>
11745
11746         * alloc-pool.h (struct allocation_object): Make id member
11747         conditional on CHECKING_P again.
11748         (get_instance): Adjust.
11749         (base_pool_allocator): Likewise.
11750
11751 2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>
11752
11753         * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
11754         (parallelize_loops): In OpenACC kernels mode, set n_threads to
11755         zero.
11756         (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
11757         flag_openacc.
11758         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
11759
11760 2016-02-23  Richard Biener  <rguenther@suse.de>
11761
11762         * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
11763         * bitmap.h (struct bitmap_usage): Likewise.
11764         (bitmap_move): Declare.
11765         * bitmap.c (register_overhead): Take size_t argument.
11766         (bitmap_move): New function.
11767         * df-problems.c (df_rd_transfer_function): Use bitmap_move
11768         to properly account overhead.
11769         * tree.c (free_node): Use tree_size.
11770
11771 2016-02-23  Jakub Jelinek  <jakub@redhat.com>
11772
11773         PR c++/69902
11774         * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
11775         when inverting comparison.
11776
11777         PR c/69900
11778         * common.opt (Wunreachable-code): Add Warning flag.
11779
11780 2016-02-23  Mark Wielaard  <mjw@redhat.com>
11781             Jakub Jelinek  <jakub@redhat.com>
11782
11783         PR c/69911
11784         * cgraphunit.c (check_global_declaration): Check main_input_filename
11785         and DECL_SOURCE_FILE are not NULL.
11786
11787 2016-02-23  Martin Jambor  <mjambor@suse.cz>
11788
11789         PR tree-optimization/69666
11790         * tree-sra.c (sra_modify_assign): Do not attempt to create
11791         default_def replacements for unscalarizable regions.
11792
11793 2016-02-20  Mark Wielaard  <mjw@redhat.com>
11794
11795         PR c/28901
11796         * cgraphunit.c (check_global_declaration): Check level of
11797         warn_unused_const_variable and main_input_filename.
11798         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
11799         (-Wunused-variable): For C implies -Wunused-const-variable=1.
11800         (-Wunused-const-variable): Explain levels 1 and 2.
11801
11802 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
11803
11804         PR target/69888
11805         * config/i386/i386.c (decide_alg): Ensure we don't recurse with
11806         identical arguments.  Formatting and spelling fixes.
11807
11808         PR target/69885
11809         * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
11810         be specified.
11811
11812         PR target/69894
11813         PR target/69895
11814         * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
11815         and m68k-devices.def.
11816         * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
11817         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
11818
11819 2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>
11820
11821         * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
11822         and HImode registers.
11823
11824 2016-02-22  Richard Biener  <rguenther@suse.de>
11825
11826         PR tree-optimization/69882
11827         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
11828         preserve permutations present because of gaps.
11829         (vect_supported_load_permutation_p): Always continue checking
11830         permutations after vect_attempt_slp_rearrange_stmts.
11831
11832 2016-02-22  Bin Cheng  <bin.cheng@arm.com>
11833
11834         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
11835         min_profitable_estimate, rather than min_profitable_iters.
11836
11837 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
11838
11839         PR target/69885
11840         * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
11841         SImode for last match_operand.
11842
11843 2016-02-22  Martin Liska  <mliska@suse.cz>
11844
11845         * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
11846         return bitsize - 1 as the return value.
11847
11848 2016-02-22  Oleg Endo  <olegendo@gcc.gnu.org>
11849
11850         PR target/69806
11851         PR target/54089
11852         * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
11853         Handle negative shift counts.
11854         * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
11855         force_reg on the shift constant.
11856         (lshrsi3): Likewise.  Expand into lshrsi3_n* instead of lshrsi3_d.
11857         (lshrsi3_d): Handle negative shift counts.
11858
11859 2016-02-22  Richard Biener  <rguenther@suse.de>
11860             Tom de Vries  <tom@codesourcery.com>
11861
11862         * graph.c: Include dumpfile.h.
11863         (print_graph_cfg): Split into three overloads.
11864         * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
11865
11866 2016-02-22  Tom de Vries  <tom@codesourcery.com>
11867
11868         * gdbhooks.py (class DumpFn): Add and instantiate, adding command
11869         dump-fn.
11870
11871 2016-02-22  Richard Biener  <rguenther@suse.de>
11872
11873         PR ipa/37448
11874         * ipa-inline-transform.c (inline_call): When not updating
11875         overall summaries adjust self size by the growth estimate.
11876         * ipa-inline.c (inline_to_all_callers_1): Add to the callers
11877         hash-set, do not update overall summaries here.  Renamed from ...
11878         (inline_to_all_callers): ... this which is now wrapping the
11879         above and performing delayed overall summary update.
11880         (early_inline_small_functions): Delay updating of the overall
11881         summary.
11882
11883 2016-02-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
11884
11885         * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
11886         variable.
11887
11888 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
11889
11890         PR driver/69805
11891         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
11892         :%* in %:gt() argument.
11893         (greater_than_spec_func): Adjust for expecting only numbers,
11894         if there are more than two numbers, compare the last two.
11895
11896 2016-02-19  Jonathan Wakely  <jwakely@redhat.com>
11897
11898         * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
11899         -Wnarrowing with -std.
11900
11901 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
11902
11903         PR c++/69851
11904         * expr.c (store_field): Don't use bit-field path if exp is
11905         COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
11906         different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
11907         and the assignment can be performed by bitwise copy.  Formatting
11908         fix.
11909
11910         PR middle-end/69838
11911         * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
11912         call copy_reg_eh_region_note_forward on before and/or after sequences
11913         and remove note from insn if it no longer can throw.
11914
11915         PR target/69820
11916         * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
11917         if TARGET_AVX512BW.
11918
11919 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11920
11921         * config/s390/vector.md: Add missing commutative operand markers
11922         to the patterns which qualify for one.
11923         * config/s390/vx-builtins.md: Likewise.
11924
11925 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11926
11927         * config/s390/vector.md (VI, VI_QHS): Add single element vector
11928         types to mode iterators.
11929         (vec_double): ... and mode attribute.
11930         * config/s390/vx-builtins.md (non_vec_int): Likewise.
11931
11932 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11933
11934         * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
11935         Change the predicate of op2 from nonimmediate to general and let
11936         reload fix it if necessary.
11937
11938 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11939
11940         * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
11941
11942 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11943
11944         * config/s390/s390.c (s390_expand_vcond): Use the compare operand
11945         mode.
11946
11947 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11948
11949         * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
11950         * config/s390/s390.c (s390_expand_vec_movstr): New function.
11951         * config/s390/s390.md ("movstr<P:mode>"): Call
11952         s390_expand_vec_movstr.
11953
11954 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11955
11956         * config/s390/s390.md: Add missing output modifier for operand 1
11957         to print it as address properly.
11958
11959 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11960
11961         * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
11962         * config/s390/2964.md: New file.
11963         * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
11964         of insn grouping attributes depending on the CPU level.
11965         (s390_get_unit_mask): New function.
11966         (s390_sched_score): Remove the OOO from the scheduling macros.
11967         Add loop to calculate a score for the instruction mix.
11968         (s390_sched_reorder): Likewise plus improve debug output.
11969         (s390_sched_variable_issue): Rename macros as above.  Calculate
11970         the unit distances after actually scheduling an insn.  Improve
11971         debug output.
11972         (s390_sched_init): Clear last_scheduled_unit_distance array.
11973         * config/s390/s390.md: Include 2964.md.
11974
11975 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
11976
11977         PR target/69671
11978         * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
11979         *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
11980         *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
11981         *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
11982         *avx512f_<code>v8div16qi2_mask_1): New insns.
11983
11984 2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
11985
11986         PR target/68404
11987         * config/rs6000/predicates.md (fusion_gpr_addis): Revert
11988         2016-02-09 change.
11989
11990         * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
11991         earlyclobber from target.  Use wF constraint for fused memory
11992         address.
11993         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
11994
11995 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
11996             Martin Liska  <mliska@suse.cz>
11997
11998         PR sanitizer/69863
11999         * cfgexpand.c (asan_sanitize_stack_p): New function.
12000         (partition_stack_vars): Use the function.
12001         (expand_stack_vars): Likewise.
12002         (defer_stack_allocation): Likewise.
12003         (expand_used_vars): Likewise.
12004
12005 2016-02-18  Richard Biener  <rguenther@suse.de>
12006
12007         PR middle-end/69553
12008         * fold-const.c (operand_equal_p): Properly compare offsets for
12009         IMAGPART_EXPR and ARRAY_REF.
12010
12011 2016-02-18  Nick Clifton  <nickc@redhat.com>
12012
12013         PR target/62254
12014         PR target/69610
12015         * config/arm/arm.c (arm_option_override_internal): Disable
12016         interworking if the target does not support thumb instructions.
12017         (arm_reload_in_hi): Handle the case where a register to register
12018         move needs reloading because there is no simple pattern to handle
12019         it.
12020         (arm_reload_out_hi): Likewise.
12021
12022 2016-02-18  Richard Biener  <rguenther@suse.de>
12023
12024         PR middle-end/69854
12025         * match.pd: Don't use fold_binary or fold_unary for folding
12026         constants.
12027
12028 2016-02-17  Jakub Jelinek  <jakub@redhat.com>
12029
12030         PR c++/69850
12031         * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
12032         on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
12033         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
12034         warn on gimple_no_warning_p statements.
12035
12036 2016-02-17  Jonathan Wakely  <jwakely@redhat.com>
12037
12038         * doc/extend.texi (C++ Attributes): Correct description of
12039         warn_unused type attribute.
12040
12041 2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
12042
12043         * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
12044         correct instruction.
12045
12046 2016-02-17  Richard Biener  <rguenther@suse.de>
12047
12048         PR rtl-optimization/69609
12049         * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
12050         (find_traces_1_round): When ending a trace update cached priority
12051         of successors.
12052         (bb_to_key): Use cached priority when available.
12053         (copy_bb): Initialize cached priority.
12054         (reorder_basic_blocks_software_trace_cache): Likewise.
12055
12056 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12057
12058         PR target/69161
12059         * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
12060         New predicate.
12061         (aarch64_comparison_operator): Break overly long line into two.
12062         (aarch64_comparison_operation): Likewise.
12063         * config/aarch64/aarch64.md (cstorecc4): Use
12064         aarch64_comparison_operator_mode instead of
12065         aarch64_comparison_operator.
12066         (cstore<mode>4): Likewise.
12067         (aarch64_cstore<mode>): Likewise.
12068         (*cstoresi_insn_uxtw): Likewise.
12069         (cstore<mode>_neg): Likewise.
12070         (*cstoresi_neg_uxtw): Likewise.
12071
12072 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12073
12074         PR target/69161
12075         * config/arm/predicates.md (arm_comparison_operator_mode):
12076         New predicate.
12077         * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
12078         instead of arm_comparison_operator.
12079         (*mov_negscc): Likewise.
12080         (*mov_notscc): Likewise.
12081         * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
12082         (*thumb2_mov_negscc): Likewise.
12083         (*thumb2_mov_negscc_strict_it): Likewise.
12084         (*thumb2_mov_notscc): Likewise.
12085         (*thumb2_mov_notscc_strict_it): Likewise.
12086
12087 2016-02-17  Wilco Dijkstra  <wdijkstr@arm.com>
12088
12089         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
12090         Add missing return.
12091
12092 2016-02-17  Eric Botcazou  <ebotcazou@adacore.com>
12093
12094         * config/visium/visium.c (machine_libfunc_index): New enum.
12095         (machine_libfuncs): New structure.
12096         (visium_libfuncs): New static variable.
12097         (TARGET_INIT_LIBFUNCS): Define to...
12098         (visium_init_libfuncs): ...this.  New function.
12099         (expand_block_move_4): Use the appropriate libfunc.
12100         (expand_block_move_2): Likewise.
12101         (expand_block_move_1): Likewise.
12102         (expand_block_set_4): Likewise.
12103         (expand_block_set_2): Likewise.
12104         (expand_block_set_1): Likewise.
12105         (visium_trampoline_init): Likewise.
12106
12107 2016-02-17  Nick Clifton  <nickc@redhat.com>
12108
12109         * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
12110         TI's devices.csv file as of March 2016.
12111
12112 2016-02-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
12113
12114         PR Target/48344
12115         * opts-global.c (handle_common_deferred_options): Introduce and
12116         initialize two global variables to remember command-line options
12117         specifying a stack-limiting register.
12118         * opts.h: Add extern declarations of the two new global variables.
12119         * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
12120         variable based on the values of the two new global variables.
12121
12122 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
12123
12124         PR c/69835
12125         * common.opt (Wnonnull-compare): New warning.
12126         * doc/invoke.texi (-Wnonnull): Remove text about comparison
12127         of arguments against NULL.
12128         (-Wnonnull-compare): Document.
12129         * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
12130         * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
12131         * passes.def (pass_warn_nonnull_compare): Add.
12132         * gimple-ssa-nonnull-compare.c: New file.
12133
12134 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
12135
12136         * config/aarch64/aarch64.c (cortexa57_tunings): Remove
12137         AARCH64_EXTRA_TUNE_RECIP_SQRT.
12138
12139 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
12140
12141         * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
12142         reciprocal sqrt for -mlow-precision-recip-sqrt.
12143
12144 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
12145             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12146
12147         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
12148         always use lane loads to construct non-constant vectors.
12149
12150 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
12151
12152         * config/aarch64/aarch64.md
12153         (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
12154         constraints for operand 3.
12155         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
12156
12157 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
12158             Richard Biener  <rguenther@suse.de>
12159
12160         PR tree-optimization/69820
12161         * tree-vect-patterns.c (type_conversion_p): Return false if
12162         *orig_type is unsigned single precision or boolean.
12163         (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
12164         Formatting fix.
12165
12166 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
12167
12168         PR rtl-optimization/69764
12169         PR rtl-optimization/69771
12170         * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
12171         op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
12172
12173 2016-02-16  Richard Biener  <rguenther@suse.de>
12174
12175         PR tree-optimization/69776
12176         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
12177         sets from caller.
12178         (indirect_refs_may_alias_p): Likewise.
12179         (refs_may_alias_p_1): Pass alias sets as from ao_ref.
12180         * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
12181         according to tbaa_p.
12182         * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
12183         (optimize_stmt): For redundant store discovery do not allow tbaa.
12184
12185 2016-02-16  Bernd Schmidt  <bschmidt@redhat.com>
12186
12187         PR tree-optimization/69714
12188         * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
12189         Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
12190
12191 2016-02-16  Claudiu Zissulescu  <claziss@synopsys.com>
12192
12193         * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
12194         * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
12195         (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
12196         * config/arc/arc.c (arc_init): Check FPU options.
12197         (get_arc_condition_code): Handle new CC_FPU* modes.
12198         (arc_select_cc_mode): Likewise.
12199         (arc_conditional_register_usage): Allow 64 bit datum into even-odd
12200         register pair only. Allow access for ARCv2 accumulator.
12201         (gen_compare_reg): Whenever we have FPU support use FPU compare
12202         instructions.
12203         (arc_reorg): Don't generate brcc insns when FPU compare
12204         instructions are involved.
12205         * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
12206         (TARGET_OPTFPE): Add condition when ARC EM can use optimized
12207         floating point emulation.
12208         (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
12209         (REVERSE_CONDITION): Add new CC_FPU* modes.
12210         (TARGET_FP_SP_BASE): Define.
12211         (TARGET_FP_DP_BASE): Likewise.
12212         (TARGET_FP_SP_FUSED): Likewise.
12213         (TARGET_FP_DP_FUSED): Likewise.
12214         (TARGET_FP_SP_CONV): Likewise.
12215         (TARGET_FP_DP_CONV): Likewise.
12216         (TARGET_FP_SP_SQRT): Likewise.
12217         (TARGET_FP_DP_SQRT): Likewise.
12218         (TARGET_FP_DP_AX): Likewise.
12219         * config/arc/arc.md (ARCV2_ACC): New constant.
12220         (type): New fpu type attribute.
12221         (SDF): Conditional iterator.
12222         (cstore<mode>, cbranch<mode>): Change expand condition.
12223         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
12224         handles FPU/FPX cases as well.
12225         * config/arc/arc.opt (mfpu): New option.
12226         * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
12227         Renamed.
12228         (adddf3, muldf3, subdf3): Removed.
12229         * config/arc/predicates.md (proper_comparison_operator): Recognize
12230         CC_FPU* modes.
12231         * config/arc/fpu.md: New file.
12232         * doc/invoke.texi (ARC Options): Document mfpu option.
12233
12234 2016-02-16  Richard Biener  <rguenther@suse.de>
12235
12236         PR rtl-optimization/69291
12237         * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
12238         noce_operand_ok check.
12239
12240 2016-02-16  Tom de Vries  <tom@codesourcery.com>
12241
12242         PR lto/67709
12243         * omp-low.c (simd_clone_create): Remove call to
12244         symtab->call_cgraph_insertion_hooks.
12245
12246 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
12247
12248         PR tree-optimization/69802
12249         * tree-ssa-reassoc.c (update_range_test): If op is
12250         SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
12251         op == 1 test of precision 1 integral op, otherwise handle
12252         that case as op itself.  Fix up formatting.
12253         (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
12254         up formatting.
12255
12256 2016-02-16  Richard Biener  <rguenther@suse.de>
12257
12258         PR tree-optimization/69586
12259         * tree-vrp.c (register_edge_assert_for_2): Handle all integral
12260         types for conversion sources.
12261
12262 2016-02-16  Richard Biener  <rguenther@suse.de>
12263
12264         PR middle-end/69801
12265         * fold-const.c (operand_equal_p): For COND_EXPR zero operand
12266         mask OEP_ADDRESS_OF.
12267
12268 2016-02-16  Alan Modra  <amodra@gmail.com>
12269
12270         PR target/68973
12271         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
12272         (p8_mtvsrd_df, p8_mtvsrd_sf): New.
12273         (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
12274         (p8_mtvsrwz): New.
12275         (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
12276         (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
12277         (p8_fmrgow_<mode>): Likewise.
12278         (reload_vsx_from_gpr<mode>): Make clobber IF.  Adjust for above
12279         changes.
12280         (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
12281         (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
12282         to use movdi_internal64.  Remove op0_di.
12283         * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
12284
12285 2016-02-15  Evandro Menezes  <e.menezes@samsung.com>
12286
12287         Add support for the FCCMP insn types
12288
12289         * config/aarch64/aarch64.md (fccmp): Change insn type.
12290         (fccmpe): Likewise.
12291         * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
12292         * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
12293         * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
12294         * config/arm/xgene1.md (xgene1_fcmp): Likewise.
12295         * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
12296         * config/arm/types.md (fccmps): Add new insn type.
12297         (fccmpd): Likewise.
12298
12299 2016-02-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
12300
12301         * alias.c (get_alias_set): Fix a typo in comment.
12302
12303 2016-02-15  Richard Biener  <rguenther@suse.de>
12304
12305         PR tree-optimization/69595
12306         * match.pd: Complete range test simplification to true.
12307
12308 2016-02-15  Bernd Schmidt  <bschmidt@redhat.com>
12309
12310         PR rtl-optimization/69648
12311         * lra-constraints.c (update_ebb_live_info): Don't remove sets of
12312         pic_offset_table_rtx.
12313
12314         PR rtl-optimization/69752
12315         * ira.c (update_equiv_regs): When looking for more than a single SET,
12316         also take other side effects into account.
12317
12318 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
12319
12320         * config/s390/s390.c (s390_function_profiler): Add a new sequence
12321         for z900+ CPUs in 31-bit mode.
12322
12323 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
12324
12325         * common/config/s390/s390-common.c (s390_supports_split_stack):
12326         New function.
12327         (TARGET_SUPPORTS_SPLIT_STACK): New macro.
12328         * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
12329         * config/s390/s390.c (struct machine_function): New field
12330         split_stack_varargs_pointer.
12331         (s390_register_info): Mark r12 as clobbered if it'll be used as temp
12332         in s390_emit_prologue.
12333         (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
12334         vararg pointer.
12335         (morestack_ref): New global.
12336         (SPLIT_STACK_AVAILABLE): New macro.
12337         (s390_expand_split_stack_prologue): New function.
12338         (s390_live_on_entry): New function.
12339         (s390_va_start): Use split-stack vararg pointer if appropriate.
12340         (s390_asm_file_end): Emit the split-stack note sections.
12341         (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
12342         * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
12343         (UNSPECV_SPLIT_STACK_CALL): New unspec.
12344         (UNSPECV_SPLIT_STACK_DATA): New unspec.
12345         (split_stack_prologue): New expand.
12346         (split_stack_space_check): New expand.
12347         (split_stack_data): New insn.
12348         (split_stack_call): New expand.
12349         (split_stack_call_*): New insn.
12350         (split_stack_cond_call): New expand.
12351         (split_stack_cond_call_*): New insn.
12352
12353 2016-02-15  Richard Biener  <rguenther@suse.de>
12354
12355         PR tree-optimization/69783
12356         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
12357         Add trivially correct cases.
12358
12359 2016-02-15  Tom de Vries  <tom@codesourcery.com>
12360
12361         PR lto/69655
12362         * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
12363         do_force_output.
12364         * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
12365
12366 2016-02-15  Richard Biener  <rguenther@suse.de>
12367
12368         PR tree-optimization/69776
12369         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
12370         * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
12371         indicate whether we can use TBAA to disambiguate against stores.
12372         Use alias-set zero if not.
12373         (visit_reference_op_store): Do not use TBAA when looking up
12374         redundant stores.
12375         * tree-ssa-pre.c (compute_avail): Use TBAA here.
12376         (eliminate_dom_walker::before_dom_children): But not when looking
12377         up redundant stores.
12378
12379 2016-02-14  John David Anglin  <danglin@gcc.gnu.org>
12380
12381         * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
12382
12383 2016-02-14  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
12384
12385         *  config/i386/znver1.md
12386         (znver1_pop, znver1_pop_mem,
12387         znver1_load_imov_double_store,
12388         znver1_load_imov_direct_store,
12389         znver1_load_imov_direct_load,
12390         znver1_load_imov_double_load): Add new.
12391         (znver1_insn, znver1_insn_load): Add icmov type.
12392         (znver1_sseavx_fma,
12393         znver1_sseavx_fma_load,
12394         znver1_avx256_fma,
12395         znver1_avx256_fma_load): Fix pipe usage.
12396
12397 2016-02-14  Alan Modra  <amodra@gmail.com>
12398
12399         PR target/68973
12400         * reloads.c (find_reloads_address_1): For pre/post-inc/dec
12401         with an invalid hard reg, reload just the reg not the entire
12402         pre/post-inc/dec address expression.
12403
12404 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
12405
12406         PR target/67260
12407         * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
12408         fixed R1_REG scratch reg.
12409         (sibcall_value_pcrel_fdpic): Likewise.
12410
12411 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
12412
12413         PR target/67636
12414         PR target/64345
12415         * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
12416
12417 2016-02-12  Walter Lee  <walt@tilera.com>
12418
12419         * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
12420         * config/tilegx/t-tilegx: Likewise.
12421
12422 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
12423
12424         PR other/69554
12425         * diagnostic-show-locus.c (struct line_span): New struct.
12426         (layout::get_first_line): Delete.
12427         (layout::get_last_line): Delete.
12428         (layout::get_num_line_spans): New member function.
12429         (layout::get_line_span): Likewise.
12430         (layout::print_heading_for_line_span_index_p): Likewise.
12431         (layout::get_expanded_location): Likewise.
12432         (layout::calculate_line_spans): Likewise.
12433         (layout::m_first_line): Delete.
12434         (layout::m_last_line): Delete.
12435         (layout::m_line_spans): New field.
12436         (layout::layout): Update comment.  Replace m_first_line and
12437         m_last_line with m_line_spans, replacing their initialization
12438         with a call to calculate_line_spans.
12439         (diagnostic_show_locus): When printing source lines and
12440         annotations, rather than looping over a single span
12441         of lines, instead loop over each line_span within
12442         the layout, with an inner loop over the lines within them.
12443         Call the context's start_span callback when changing line spans.
12444         * diagnostic.c (diagnostic_initialize): Initialize start_span.
12445         (diagnostic_build_prefix): Break out the building of the location
12446         part of the string into...
12447         (diagnostic_get_location_text): ...this new function, rewriting
12448         it from nested ternary expressions to a sequence of "if"
12449         statements.
12450         (default_diagnostic_start_span_fn): New function.
12451         * diagnostic.h (diagnostic_start_span_fn): New typedef.
12452         (diagnostic_context::start_span): New field.
12453         (default_diagnostic_start_span_fn): New prototype.
12454
12455 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
12456
12457         PR driver/69779
12458         * gcc.c (driver::finalize): Fix cleanup of "specs".
12459
12460 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
12461
12462         PR driver/69265
12463         PR driver/69453
12464         * gcc.c (driver::driver): Initialize m_option_suggestions.
12465         (driver::~driver): Clean up m_option_suggestions.
12466         (suggest_option): Convert to...
12467         (driver::suggest_option): ...this, and split out into
12468         driver::build_option_suggestions and find_closest_string.
12469         (driver::build_option_suggestions): New function, from
12470         first half of suggest_option.  Special-case
12471         OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
12472         the sanitizer_opts array.  For options of enum types, add the
12473         various enum values to the candidate strings.
12474         (driver::handle_unrecognized_options): Remove "const".
12475         * gcc.h (driver::handle_unrecognized_options): Likewise.
12476         (driver::build_option_suggestions): New decl.
12477         (driver::suggest_option): New decl.
12478         (driver::m_option_suggestions): New field.
12479         * opts-common.c (add_misspelling_candidates): New function.
12480         * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
12481         and make non-static.
12482         * opts.h (sanitizer_opts): New array decl.
12483         (add_misspelling_candidates): New function decl.
12484         * spellcheck.c (find_closest_string): New function.
12485         * spellcheck.h (find_closest_string): New function decl.
12486
12487 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
12488
12489         PR rtl-optimization/69764
12490         PR rtl-optimization/69771
12491         * optabs.c (expand_binop_directly): For shift_optab_p, force
12492         convert_modes with VOIDmode if xop1 has VOIDmode.
12493
12494 2016-02-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
12495
12496         PR target/69729
12497         * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
12498         to correctly determine instrumentation thunks.
12499
12500 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
12501
12502         PR ipa/69241
12503         * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
12504         type by reference, force lhs on the call.
12505
12506         PR ipa/68672
12507         * ipa-split.c (split_function): Don't compute/use main_part_return_p.
12508         Compute retval and retbnd early in all cases if split_part_return_p
12509         and return_bb is not EXIT.  Remove all clobber stmts and reset
12510         all debug stmts that refer to SSA_NAMEs defined in split part,
12511         except if it is retval, in that case replace the old retval with the
12512         lhs of the call to the split part.
12513
12514 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
12515
12516         revert:
12517         2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
12518
12519         PR middle-end/66726
12520         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
12521         whose result is used in PHI.
12522         (maybe_optimize_range_tests): Likewise.
12523         (final_range_test_p): Likweise.
12524
12525 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
12526
12527         PR middle-end/66726
12528         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
12529         whose result is used in PHI.
12530         (maybe_optimize_range_tests): Likewise.
12531         (final_range_test_p): Likweise.
12532
12533 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
12534
12535         * cgraph.c: Spelling fixes - behaviour -> behavior and
12536         neighbour -> neighbor.
12537         * target.def: Likewise.
12538         * sel-sched.c: Likewise.
12539         * config/mips/mips.c: Likewise.
12540         * config/arc/arc.md: Likewise.
12541         * config/arm/cortex-a57.md: Likewise.
12542         * config/arm/arm.c: Likewise.
12543         * config/arm/neon.md: Likewise.
12544         * config/arm/arm-c.c: Likewise.
12545         * config/vms/vms-c.c: Likewise.
12546         * config/s390/s390.c: Likewise.
12547         * config/i386/znver1.md: Likewise.
12548         * config/i386/i386.c: Likewise.
12549         * config/ia64/hpux-unix2003.h: Likewise.
12550         * config/msp430/msp430.md: Likewise.
12551         * config/rx/rx.c: Likewise.
12552         * config/rx/rx.md: Likewise.
12553         * config/aarch64/aarch64-simd.md: Likewise.
12554         * config/aarch64/aarch64.c: Likewise.
12555         * config/nvptx/nvptx.c: Likewise.
12556         * config/bfin/bfin.c: Likewise.
12557         * config/cris/cris.opt: Likewise.
12558         * config/rs6000/rs6000.c: Likewise.
12559         * target.h: Likewise.
12560         * spellcheck.c: Likewise.
12561         * ira-build.c: Likewise.
12562         * tree-inline.c: Likewise.
12563         * builtins.c: Likewise.
12564         * lra-constraints.c: Likewise.
12565         * explow.c: Likewise.
12566         * hwint.h: Likewise.
12567         * targhooks.c: Likewise.
12568         * tree-vect-data-refs.c: Likewise.
12569         * expr.c: Likewise.
12570         * doc/tm.texi: Likewise.
12571         * doc/extend.texi: Likewise.
12572         * doc/install.texi: Likewise.
12573         * doc/md.texi: Likewise.
12574         * tree-ssa-tail-merge.c: Likewise.
12575         * sched-int.h: Likewise.
12576         * match.pd: Likewise.
12577         * sched-ebb.c: Likewise.
12578         * target.def (omit_struct_return_reg): Likewise.
12579         * gimple-ssa-isolate-paths.c: Likewise.
12580         (find_implicit_erroneous_behaviour): Renamed to...
12581         (find_implicit_erroneous_behavior): ... this.
12582         (find_explicit_erroneous_behaviour): Renamed to...
12583         (find_explicit_erroneous_behavior): ... this.
12584         (gimple_ssa_isolate_erroneous_paths): Adjust caller.
12585
12586 2016-02-11  Segher Boessenkool  <segher@kernel.crashing.org>
12587
12588         PR rtl-optimization/64682
12589         PR rtl-optimization/69567
12590         PR rtl-optimization/69737
12591         * combine.c (distribute_notes) <REG_DEAD>: If the register is set
12592         in I2 as well, just lose it.
12593
12594 2016-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12595
12596         * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
12597         New variable.
12598         (aarch64_last_printed_tune_string): Likewise.
12599         (aarch64_declare_function_name): Only output .arch assembler
12600         directive if it will be different from the previously output
12601         directive.  Same for .tune comment but only if -dA is set.
12602         (aarch64_start_file): New function.
12603         (TARGET_ASM_FILE_START): Define.
12604
12605 2016-02-11  David Malcolm  <dmalcolm@redhat.com>
12606
12607         PR plugins/69758
12608         * Makefile.in (PLUGIN_HEADERS): Add params.list.
12609
12610 2016-02-11  Jakub Jelinek  <jakub@redhat.com>
12611
12612         PR target/65313
12613         * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
12614         -Wmaybe-uninitialized warning.
12615
12616 2016-02-11  Oleg Endo  <olegendo@gcc.gnu.org>
12617
12618         PR target/69713
12619         * config/sh/sh.md (casesi_worker_0): Add T_REG use.
12620
12621 2016-02-11  Richard Biener  <rguenther@suse.de>
12622
12623         PR rtl-optimization/69291
12624         * ifcvt.c (noce_try_store_flag_constants): Do not allow
12625         subexpressions affected by changing the result.
12626
12627 2016-02-10  Vladimir Makarov  <vmakarov@redhat.com>
12628
12629         PR target/69148
12630         * lra-constraints.c (curr_insn_transform): Find in/out operands
12631         for secondary memory moves.  Update dups.
12632
12633 2016-02-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
12634
12635         PR tree-optimization/69652
12636         * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
12637         to nested loop, did source re-formatting, skip debug statements,
12638         add check on statement with volatile operand, remove dead scalar
12639         statements.
12640
12641 2016-02-10  Jakub Jelinek  <jakub@redhat.com>
12642             Patrick Palka  <ppalka@gcc.gnu.org>
12643
12644         PR ipa/69241
12645         PR c++/69649
12646         * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
12647         calls if the return type is TREE_ADDRESSABLE.
12648         * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
12649         * ipa-split.c (split_function): Fix doubled "we" in comment.
12650         Use void return type for the split part even if
12651         !split_point->split_part_set_retval.
12652
12653 2016-02-10  Bin Cheng  <bin.cheng@arm.com>
12654
12655         PR tree-optimization/68021
12656         * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
12657         when computing the value of biv cand by itself.
12658
12659 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
12660
12661         * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
12662         (cortexa57_tunings): Likewise.
12663         (cortexa72_tunings): Likewise.
12664         (arch_macro_fusion_pair_p): Add support for AES fusion.
12665         * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
12666         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
12667         Allow virtual registers before reload so early scheduling works.
12668         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
12669         correct latency and pipeline.
12670         (cortex_a57_crypto_complex): Likewise.
12671         (cortex_a57_crypto_xor): Likewise.
12672         (define_bypass): Add AES bypass.
12673
12674 2016-02-10  Richard Biener  <rguenther@suse.de>
12675
12676         PR tree-optimization/69726
12677         * passes.def: Add DCE pass before late uninit.
12678         * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
12679         really fixup if-conversions job.
12680
12681 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
12682
12683         * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
12684         (arm_cortex_a57_tune): Likewise.
12685         (aarch_macro_fusion_pair_p): Add support for AES fusion.
12686         * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
12687
12688 2016-02-10  Eric Botcazou  <ebotcazou@adacore.com>
12689
12690         * timevar.def (TV_PHASE_DBGINFO): Delete.
12691         (TV_PHASE_CHECK_DBGINFO): Likewise.
12692         * varpool.c (varpool_node::assemble_decl): Do not change timevar.
12693
12694 2016-02-10  Richard Biener  <rguenther@suse.de>
12695
12696         PR tree-optimization/69719
12697         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
12698         Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
12699
12700 2016-02-09  Andrew Pinski  <apinski@cavium.com>
12701
12702         PR tree-opt/69282
12703         * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
12704         get_vcond_mask_icode returns false.
12705
12706 2016-02-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
12707
12708         PR target/68404
12709         * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
12710         an ADDIS that adds a pointer to a large constant that sets the
12711         upper16 bits with a load operation.
12712
12713 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
12714
12715         PR target/68532
12716         * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
12717         order.
12718         * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
12719         endian.
12720         (vzipq_s16): Likewise.
12721         (vzipq_s32): Likewise.
12722         (vzipq_f32): Likewise.
12723         (vzipq_u8): Likewise.
12724         (vzipq_u16): Likewise.
12725         (vzipq_u32): Likewise.
12726         (vzipq_p8): Likewise.
12727         (vzipq_p16): Likewise.
12728
12729 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
12730
12731         PR target/68532
12732         * config/arm/arm.c (neon_endian_lane_map): New function.
12733         (neon_vector_pair_endian_lane_map): New function.
12734         (arm_evpc_neon_vuzp): Allow for big endian lane order.
12735         * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
12736         endian.
12737         (vuzpq_s16): Likewise.
12738         (vuzpq_s32): Likewise.
12739         (vuzpq_f32): Likewise.
12740         (vuzpq_u8): Likewise.
12741         (vuzpq_u16): Likewise.
12742         (vuzpq_u32): Likewise.
12743         (vuzpq_p8): Likewise.
12744         (vuzpq_p16): Likewise.
12745
12746 2016-02-11  Alexandre Oliva  <aoliva@redhat.com>
12747
12748         PR target/69634
12749         * regstat.c (regstat_bb_compute_calls_crossed): Disregard
12750         debug insns.
12751
12752 2016-02-09  Uros Bizjak  <ubizjak@gmail.com>
12753
12754         * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
12755         truncate const_int operand 1 to QImode.
12756
12757 2016-02-09  Eric Botcazou  <ebotcazou@adacore.com>
12758
12759         * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
12760         corresponding to an abnormal edge.
12761
12762 2016-02-09  Tom de Vries  <tom@codesourcery.com>
12763
12764         PR tree-optimization/69599
12765         * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
12766         function.
12767         (find_func_aliases_for_builtin_call, find_func_clobbers)
12768         (ipa_pta_execute):  Handle case that foo and foo._0 are not in same lto
12769         partition.
12770
12771 2016-02-09  Richard Biener  <rguenther@suse.de>
12772
12773         PR tree-optimization/69715
12774         * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
12775         LHS on calls as non-rewritable.
12776
12777 2016-02-09  Tom de Vries  <tom@codesourcery.com>
12778
12779         PR lto/69707
12780         * lto-wrapper.c (append_diag_options): New function.
12781         (compile_offload_image): Call append_diag_options.
12782
12783 2016-02-08  Sandra Loosemore  <sandra@codesourcery.com>
12784
12785         PR other/69722
12786         * doc/extend.texi (Flag Output Operands): Correct sectioning.
12787         Minor copy-edit to fix verb tenses.
12788
12789 2016-02-08  Jakub Jelinek  <jakub@redhat.com>
12790
12791         PR tree-optimization/69209
12792         * ipa-split.c (split_function): If split part is not
12793         returning retval, retval has gimple type but is not
12794         gimple value, force it into a SSA_NAME first.
12795
12796 2016-02-08  Nicklas Bo Jensen  <nbjensen@gmail.com>
12797
12798         * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
12799         outdated section.
12800
12801 2016-02-08  Jason Merrill  <jason@redhat.com>
12802
12803         PR c++/69631
12804         * convert.c (convert_to_integer_1): Check dofold on truncation
12805         distribution.
12806         (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
12807         (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
12808         Rename from *_nofold.
12809         * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
12810         (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
12811
12812 2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
12813
12814         PR target/60410
12815         * tree.c (build_common_tree_nodes): Remove short_double argument.
12816         All callers changed.
12817         * tree.h (build_common_tree_nodes): Adjust declaration.
12818         * doc/invoke.texi (-fshort-double): Remove documentation.
12819         * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
12820         MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
12821         * lto-wrapper.c (merge_and_complain, append_compiler_options)
12822         (append_linker_options): Don't handle OPT_fshort_double.
12823
12824         PR rtl-optimization/68730
12825         * lra-remat.c (insn_to_cand_activation): New static variable.
12826         (lra_remat): Allocate and free it.
12827         (create_cand): New arg activation. Initialize a field in
12828         insn_to_cand_activation if it is nonnull.
12829         (create_cands): Pass the activation insn to create_cand when making
12830         a candidate involving an output reload.  Reorganize code a little.
12831         (do_remat): Keep track of active status of candidates in a separate
12832         bitmap.
12833
12834 2016-02-08  Richard Biener  <rguenther@suse.de>
12835
12836         PR tree-optimization/69719
12837         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
12838         Properly use absolute of the difference of the two offsets to
12839         compare or adjust the segment length.
12840
12841 2016-02-08  Richard Biener  <rguenther@suse.de>
12842             Jeff Law  <law@redhat.com>
12843
12844         PR target/68273
12845         * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
12846         types for anonymous SSA names.
12847
12848 2016-02-08   Richard Biener  <rguenther@suse.de>
12849
12850         PR rtl-optimization/69274
12851         * ira.c (ira_setup_alts): Do not change recog_data.operand order.
12852
12853 2016-02-08  Jeff Law  <law@redhat.com>
12854
12855         PR tree-optimization/65917
12856         * tree-ssa-dom.c (record_temporary_equivalences): Record both
12857         equivalences from if (x == y) style conditionals.
12858         (loop_depth_of_name): Remove.
12859         (record_equality): Remove loop depth check.
12860         * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
12861         (const_and_copies::record_const_or_copy_raw): New member function.
12862         * tree-ssa-scopedtables.c
12863         (const_and_copies::record_const_or_copy_raw): New, factored out of
12864         (const_and_copies::record_const_or_copy): Call new member function.
12865
12866 2016-02-05  Jeff Law  <law@redhat.com>
12867
12868         PR tree-optimization/68541
12869         * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
12870         (count_stmts_in_block): New function.
12871         (poor_ifcvt_candidate_code): Likewise.
12872         (is_feasible_trace): Add some heuristics to determine when path
12873         splitting is profitable.
12874         (find_block_to_duplicate_for_splitting_paths): Make sure the graph
12875         is a diamond with a single exit.
12876
12877 2016-02-05  Martin Sebor  <msebor@redhat.com>
12878
12879         PR c++/69662
12880         * doc/invoke.texi: Update -Wplacement-new to take an optional
12881         argument.
12882
12883 2016-02-06  Richard Henderson  <rth@redhat.com>
12884
12885         PR c/69643
12886         * tree.c (tree_nop_conversion_p): Do not strip casts into or
12887         out of non-standard address spaces.
12888
12889 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
12890
12891         PR rtl-optimization/69691
12892         * lra-eliminations.c (move_plus_up): Don't add the addend twice.
12893
12894 2016-02-05  Pat Haugen  <pthaugen@us.ibm.com>
12895
12896         * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
12897         * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
12898         (*ieee128_mfvsrd_64bit): Likewise.
12899         (*ieee128_mfvsrd_32bit): Likewise.
12900
12901 2016-02-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
12902
12903         PR target/69369
12904         Revert r232560:
12905         2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
12906
12907         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
12908         instrumented_version.
12909
12910 2016-01-05  Jeremy Bennett  <jeremy.bennett@embecosm.com>
12911
12912         * doc/invoke.texi (Optimize Options): In table of --param options
12913         rename second occurrence of tracer-min-branch-ratio to
12914         tracer-min-branch-probability, rename
12915         tracer-min-branch-ratio-feedback to
12916         tracer-min-branch-probability-feedback and clarify description,
12917         rename sched-spec-state-edge-prob-cutoff to
12918         sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
12919         to selsched-insns-to-rename, rename lto-minpartition to
12920         lto-min-partition, delete reorder-blocks-duplicate and
12921         reorder-blocks-duplicate-feedback.
12922
12923 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12924
12925         * config/s390/s390.c (s390_register_info_set_ranges): Remove
12926         superfluous loops.
12927
12928 2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
12929
12930         * doc/extend.texi: S/390: Correct some typos.
12931
12932 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12933
12934         * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
12935
12936 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12937
12938         PR target/69625
12939         * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
12940         (s390_register_info_gprtofpr): Use new macros above.
12941         (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
12942         its name.
12943         (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
12944         its name.  Adjust restore and save gpr ranges.
12945         (s390_register_info_set_ranges): New function.
12946         (s390_register_info): Use new macros above.  Call
12947         s390_register_info_set_ranges.
12948         (s390_optimize_register_info): Likewise.
12949         (s390_hard_regno_rename_ok): Use new macros.
12950         (s390_hard_regno_scratch_ok): Likewise.
12951         (s390_emit_epilogue): Likewise.
12952         (s390_can_use_return_insn): Likewise.
12953         (s390_optimize_prologue): Likewise.
12954         * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
12955
12956 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
12957
12958         PR bootstrap/69677
12959         * config/i386/i386.c (convert_scalars_to_vector): Readd stack
12960         alignment fixes.
12961         (ix86_option_override_internal): Disable TARGET_STV even for
12962         -m{incoming,preferred}-stack-boundary=3.
12963
12964 2016-02-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12965
12966         * config.gcc: Mark deprecated rtems targets as obsolete.
12967
12968 2016-02-04  Segher Boessenkool  <segher@kernel.crashing.org>
12969
12970         PR rtl-optimization/64682
12971         PR rtl-optimization/69567
12972         * combine.c (distribute_notes) <REG_DEAD>: Place the death note
12973         before I2 only if the register is both used and set in I2.
12974
12975 2016-02-04  DJ Delorie  <dj@redhat.com>
12976
12977         * config/msp430/msp430.c (msp430_start_function): Add function type.
12978
12979 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
12980
12981         PR fortran/69368
12982         * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
12983
12984 2016-02-04  Uros Bizjak  <ubizjak@gmail.com>
12985
12986         PR rtl-optimization/69577
12987         Revert:
12988         2015-10-29  Richard Henderson  <rth@redhat.com>
12989
12990         PR target/68124
12991         PR rtl-opt/67609
12992         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
12993         sse check to the exact conditions of PR 67609.
12994
12995 2016-02-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
12996
12997         PR target/69667
12998         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
12999         instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
13000         not allowed into the traditional Altivec registers.
13001         (movtd_64bit_nodm): Likewise.
13002         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
13003
13004 2016-02-04  David Malcolm  <dmalcolm@redhat.com>
13005
13006         * config/aarch64/cortex-a57-fma-steering.c
13007         (aarch64_register_fma_steering): Remove "static" from arguments
13008         to register_pass.
13009
13010 2016-02-04  Wilco Dijkstra  <wdijkstr@arm.com>
13011
13012         PR target/69619
13013         * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
13014         twice when complex.
13015
13016 2016-02-04  Mike Frysinger  <vapier@gentoo.org>
13017
13018         * doc/invoke.texi: Delete -mno-fma4.
13019
13020 2016-02-04  Richard Sandiford  <richard.sandiford@arm.com>
13021
13022         PR rtl-optimization/69577
13023         * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
13024         (find_subregs_of_mode): Update accordingly.  Iterate over partial
13025         definitions.
13026
13027 2016-02-04  Alan Lawrence  <alan.lawrence@arm.com>
13028
13029         * config/arm/arm-protos.h (neon_reinterpret): Remove.
13030         * config/arm/arm.c (neon_reinterpret): Remove.
13031         * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
13032         vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
13033         vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
13034         vreinterpretti): Remove.
13035         * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
13036         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
13037         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
13038         neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
13039         neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
13040         neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
13041         * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
13042         vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
13043         vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
13044         vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
13045         vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
13046         vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
13047         vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
13048         vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
13049         vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
13050         vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
13051         vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
13052         vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
13053         vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
13054         vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
13055         vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
13056         vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
13057         vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
13058         vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
13059         vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
13060         vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
13061         vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
13062         vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
13063         vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
13064         vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
13065         vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
13066         vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
13067         vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
13068         vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
13069         vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
13070         vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
13071         vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
13072         vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
13073         vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
13074         vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
13075         vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
13076         vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
13077         vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
13078         vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
13079         vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
13080         vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
13081         vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
13082         vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
13083         vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
13084         vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
13085         vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
13086         vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
13087         vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
13088         vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
13089         vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
13090         vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
13091         vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
13092         vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
13093         vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
13094         vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
13095         vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
13096         vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
13097         vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
13098         vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
13099         vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
13100         vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
13101         vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
13102         vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
13103         vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
13104         vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
13105         vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
13106         vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
13107         vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
13108         vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
13109         vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
13110         vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
13111         vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
13112         vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
13113         vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
13114         vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
13115         vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
13116         vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
13117         vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
13118         vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
13119         vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
13120         vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
13121         vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
13122         vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
13123         vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
13124         vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
13125         vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
13126         vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
13127         vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
13128         vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
13129         vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
13130         vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
13131         vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
13132         vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
13133         vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
13134         vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
13135         vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
13136         vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
13137         vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
13138
13139 2016-02-04  Martin Liska  <mliska@suse.cz>
13140
13141         PR sanitizer/69276
13142         * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
13143         that are gimple_store_p.
13144         (maybe_instrument_call): Likewise.
13145
13146 2016-02-04  Bin Cheng  <bin.cheng@arm.com>
13147
13148         * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
13149         register scaling out of memory reference and comment why.
13150
13151 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13152
13153         PR target/65932
13154         PR target/67714
13155         * cse.c (cse_insn): Pass NULL to fold_rtx when initially
13156         folding the source of a SET.
13157
13158 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13159
13160         PR target/65932
13161         PR target/67714
13162         * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
13163         the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
13164
13165 2016-02-04  Jim Wilson  <jim.wilson@linaro.org>
13166
13167         PR target/65932
13168         PR target/67714
13169         * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
13170         HImode.
13171
13172 2016-02-04  Christian Bruel  <christian.bruel@st.com>
13173
13174         * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
13175         * config/arm/arm.c (arm_set_current_function): Likewise.
13176
13177 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
13178             Ilya Enkovich  <enkovich.gnu@gmail.com>
13179             H.J. Lu  <hongjiu.lu@intel.com>
13180
13181         PR target/69454
13182         * config/i386/i386.c (convert_scalars_to_vector): Remove
13183         stack alignment fixes.
13184         (ix86_option_override_internal): Disable TARGET_STV if stack
13185         might not be aligned enough.
13186         (ix86_minimum_alignment): Assert that TARGET_STV is false.
13187
13188 2016-02-04  Victoria Stepanyan  <victoria.stepanyan@amd.com>
13189
13190         * config/i386/x86-tune.def: Disable default prefetching
13191         for -march=znver1.
13192
13193 2016-02-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
13194             Vladimir Makarov  <vmakarov@redhat.com>
13195
13196         PR target/69461
13197         * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
13198         in validating fused toc addresses.
13199
13200 2016-02-03  Jakub Jelinek  <jakub@redhat.com>
13201
13202         PR c/69627
13203         * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
13204         range->m_caret fields if range->m_show_caret_p is false.
13205
13206         PR target/69644
13207         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
13208         Force oldval into register if it does not satisfy reg_or_short_operand
13209         predicate.  Fix up formatting.
13210
13211 2016-02-03  Vladimir Makarov  <vmakarov@redhat.com>
13212             Alexandre Oliva  <aoliva@redhat.com>
13213
13214         PR target/69461
13215         * lra-constraints.c (simplify_operand_subreg): Check additionally
13216         address validity after potential reloading.
13217         (process_address_1): Check insns validity.  In case of failure do
13218         nothing.
13219
13220 2016-02-03  Kirill Yukhin  <kirill.yukhin@intel.com>
13221
13222         PR target/69118
13223         * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
13224         Fix target.
13225
13226 2016-02-02  Jakub Jelinek  <jakub@redhat.com>
13227
13228         * wide-int.cc (canonize_uhwi): New function.
13229         (wi::divmod_internal): Use it.
13230
13231 2016-02-02  James Norris  <jnorris@codesourcery.com
13232
13233         * gimplify.c (omp_notice_variable): Add usage check.
13234
13235 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
13236
13237         * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
13238         like LE, GE, LT, GT when emitting relational operator.
13239
13240 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
13241
13242         * ira-costs.c (find_costs_and_classes): Add extra argument.
13243         * target.def (ira_change_pseudo_allocno_class): Add parameter.
13244         * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
13245         * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
13246         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
13247         Add best_class parameter, and return it if not ALL_REGS.
13248         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
13249         Add parameter.
13250         * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
13251         Update target hook.
13252
13253 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
13254
13255         * config/aarch64/aarch64.c
13256         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
13257         (aarch64_ira_change_pseudo_allocno_class): New function.
13258
13259 2016-02-02  Uros Bizjak  <ubizjak@gmail.com>
13260
13261         PR target/67032
13262         * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
13263
13264 2016-02-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
13265
13266         * config/avr/avr.c (avr_option_override): Set
13267         PARAM_ALLOW_STORE_DATA_RACES to 1.
13268
13269 2016-02-02  Richard Biener  <rguenther@suse.de>
13270
13271         PR tree-optimization/69595
13272         * match.pd: Add range test simplifications to true/false.
13273
13274 2016-02-02  Thomas Schwinge  <thomas@codesourcery.com>
13275
13276         * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
13277         * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
13278         instead.
13279
13280 2016-02-02  Richard Biener  <rguenther@suse.de>
13281
13282         PR tree-optimization/69606
13283         * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
13284         info on the result before moving a stmt.
13285
13286 2016-02-02  Yuri Rumyantsev  <ysrumyan@gmail.com>
13287
13288         PR middle-end/68542
13289         * config/i386/i386.c (ix86_expand_branch): Add support for conditional
13290         branch with vector comparison.
13291         * config/i386/sse.md (VI48_AVX): New mode iterator.
13292         (define_expand "cbranch<mode>4): Add support for conditional branch
13293         with vector comparison.
13294         * tree-vect-loop.c (optimize_mask_stores): New function.
13295         * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
13296         has_mask_store field of vect_info.
13297         * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
13298         vectorized loops having masked stores after vec_info destroy.
13299         * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
13300         correspondent macros.
13301         (optimize_mask_stores): Add prototype.
13302
13303 2016-02-02  Alan Modra  <amodra@gmail.com>
13304
13305         PR target/69548
13306         * config/rs6000/predicates.md (quad_int_reg_operand): Don't
13307         allow subregs.
13308
13309 2016-02-02  Alan Modra  <amodra@gmail.com>
13310
13311         PR target/68662
13312         * config/rs6000/rs6000.c (need_toc_init): New var, set it
13313         whenever toc_label_name used.
13314         (rs6000_file_start): Don't set up toc section here,
13315         (rs6000_output_function_epilogue): do so here instead,
13316         (rs6000_xcoff_file_start): and here.
13317         * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
13318         (load_toc_aix_di): Likewise.
13319
13320 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
13321
13322         PR rtl-optimization/69592
13323         * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
13324         (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
13325         (num_sign_bit_copies_binary_arith_p): New inline function.
13326         (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
13327
13328 2016-02-01  Jeff Law  <law@redhat.com>
13329
13330         PR tree-optimization/69580
13331         * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
13332         * tree-ssa-threadbackward.c
13333         (fsm_find_control_statement_thread_paths): Do not try to walk
13334         through large PHI nodes.
13335
13336 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
13337
13338         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
13339         when count is incremented above limit, don't analyze further
13340         insns afterwards.
13341
13342         * omp-low.c (oacc_parse_default_dims): Avoid
13343         -Wsign-compare warning, make sure value fits into int
13344         rather than just unsigned int.
13345
13346 2016-02-01  Bin Cheng  <bin.cheng@arm.com>
13347
13348         PR tree-optimization/67921
13349         * fold-const.c (split_tree): New parameters.  Convert pointer
13350         type variable part to proper type before negating.
13351         (fold_binary_loc): Pass new arguments to split_tree.
13352
13353 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
13354
13355         * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
13356         (nvptx_goacc_validate_dims): Extend to handle global defaults.
13357         * target.def (OACC_VALIDATE_DIMS): Extend documentation.
13358         * doc/tm.texti: Rebuilt.
13359         * doc/invoke.texi (fopenacc-dim): Document.
13360         * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
13361         (append_compiler_options): Likewise.
13362         * omp-low.c (oacc_default_dims, oacc_min_dims): New.
13363         (oacc_parse_default_dims): New.
13364         (oacc_validate_dims): Add USED arg.  Select non-unity default when
13365         possible.
13366         (oacc_loop_fixed_partitions): Return mask of used partitions.
13367         (oacc_loop_auto_partitions): Emit dump info.
13368         (oacc_loop_partition): Return mask of used partitions.
13369         (execute_oacc_device_lower): Parse default dimension arg.  Adjust
13370         loop partitioning and validation calls.
13371
13372 2016-02-01  Richard Biener  <rguenther@suse.de>
13373
13374         PR middle-end/69556
13375         * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
13376
13377 2016-02-01  Richard Biener  <rguenther@suse.de>
13378
13379         PR tree-optimization/69574
13380         * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
13381         of asserting return chrec_dont_know.
13382
13383 2016-02-01  Martin Liska  <mliska@suse.cz>
13384
13385         * mem-stats-traits.h: Add copyright header.
13386         * mem-stats.h: Likewise.
13387
13388 2016-02-01  Richard Biener  <rguenther@suse.de>
13389
13390         PR tree-optimization/69579
13391         * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
13392         Do not propagate through abnormal PHI results.
13393
13394 2016-02-01  Eric Botcazou  <ebotcazou@adacore.com>
13395
13396         * postreload.c (reload_cse_simplify): Remove dead code.
13397
13398 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
13399
13400         PR rtl-optimization/69570
13401         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
13402         if there is more than one set, not if there is a single set.
13403
13404 2016-02-01  Richard Henderson  <rth@redhat.com>
13405
13406         PR rtl-opt/69535
13407         * combine.c (make_compound_operation): When looking through a
13408         subreg, make sure to re-extend to the width of the outer mode.
13409
13410 2016-01-30  Jakub Jelinek  <jakub@redhat.com>
13411
13412         PR tree-optimization/69546
13413         * wide-int.cc (wi::divmod_internal): For unsigned division
13414         where both operands fit into uhwi, if o1 is 1 and o0 has
13415         msb set, if divident_prec is larger than bits per hwi,
13416         clear another quotient word and return 2 instead of 1.
13417         Similarly for remainder with msb in HWI set, if dividend_prec
13418         is larger than bits per hwi.
13419
13420 2016-01-29  Martin Jambor  <mjambor@suse.cz>
13421
13422         * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
13423         Use short lowercase names.
13424         (get_memory_order): Mask with MEMMODEL_BASE_MASK.  Support
13425         MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
13426         acq_rel one.  Protect warning agains segfaults if
13427         get_memory_order_name returns NULL.
13428         (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
13429         with release semantics.  Do not warn if get_memory_order already did.
13430         (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
13431         semantics.  Fix check for relaxed or acquire semantics.  Do not warn
13432         if get_memory_order already did.
13433
13434 2016-01-29  Sebastian Pop  <s.pop@samsung.com>
13435
13436         * doc/install.texi: Document that isl-0.16 is supported.
13437
13438 2016-01-29  Vladimir Makarov  <vmakarov@redhat.com>
13439
13440         PR target/69299
13441         * config/i386/constraints.md (Bm): Describe as special memory
13442         constraint.
13443         * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
13444         * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
13445         * genpreds.c (struct constraint_data): Add is_special_memory.
13446         (have_special_memory_constraints, special_memory_start): New
13447         static vars.
13448         (special_memory_end): Ditto.
13449         (add_constraint): Add new arg is_special_memory.  Add code to
13450         process its true value.  Update have_special_memory_constraints.
13451         (process_define_constraint): Pass the new arg.
13452         (process_define_register_constraint): Ditto.
13453         (choose_enum_order): Process special memory.
13454         (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
13455         function insn_extra_special_memory_constraint.
13456         (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
13457         * gensupport.c (process_rtx): Process
13458         DEFINE_SPECIAL_MEMORY_CONSTRAINT.
13459         * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
13460         * ira-lives.c (single_reg_class): Use
13461         insn_extra_special_memory_constraint.
13462         * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
13463         * lra-constraints.c (process_alt_operands): Ditto.
13464         (curr_insn_transform): Use insn_extra_special_memory_constraint.
13465         * recog.c (asm_operand_ok, preprocess_constraints): Process
13466         CT_SPECIAL_MEMORY.
13467         * reload.c (find_reloads): Ditto.
13468         * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
13469         * stmt.c (parse_input_constraint): Use
13470         insn_extra_special_memory_constraint.
13471
13472 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
13473
13474         PR target/69530
13475         * lra-splill.c (lra_final_code_change): Revert r229087 by
13476         removing all sub-registers.
13477
13478 2016-01-29  Steve Ellcey  <sellcey@imgtec.com>
13479
13480         PR target/65604
13481         * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
13482
13483 2016-01-29  Jakub Jelinek  <jakub@redhat.com>
13484
13485         PR target/69551
13486         * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
13487         SSE1, copy target into the temporary reg first before recursing
13488         on it.
13489
13490 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
13491
13492         * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
13493         with vm.
13494
13495 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
13496
13497         * ginclude/stdarg.h: Test __cplusplus instead of
13498         __GXX_EXPERIMENTAL_CXX0X__.
13499
13500 2016-01-29  Richard Biener  <rguenther@suse.de>
13501
13502         PR tree-optimization/69547
13503         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
13504         Do not mark clobbers necessary.
13505         (mark_all_reaching_defs_necessary_1): Likewise.
13506
13507 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
13508
13509         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
13510         declaration name with %qs and print it in both error messages.
13511         Also fix indentation.
13512
13513 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
13514
13515         PR other/69006
13516         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
13517         trailing blank line from error message.
13518
13519 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
13520
13521         PR c++/69462
13522         * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
13523         for C++-11.
13524
13525 2016-01-29  Richard Biener  <rguenther@suse.de>
13526
13527         PR middle-end/69537
13528         * match.pd: Allow all integral types when simplifying a
13529         widening or sign-changing conversion.
13530
13531 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
13532
13533         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
13534         back to setting codegen_error to fail codegen.
13535
13536 2016-01-28  Uros Bizjak  <ubizjak@gmail.com>
13537
13538         PR target/69459
13539         * config/i386/constraints.md (C): Only accept constant zero operand.
13540         (BC): New constraint.
13541         * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
13542         instead of C constraint.
13543         * doc/md.texi (Machine Constraints): Update description
13544         of C constraint.
13545
13546 2016-01-28  Steve Ellcey  <sellcey@imgtec.com>
13547
13548         PR target/68400
13549         * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
13550
13551 2016-01-28  Jakub Jelinek  <jakub@redhat.com>
13552
13553         PR middle-end/69542
13554         * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
13555         non-debug insns.
13556
13557 2016-01-28  Pat Haugen  <pthaugen@us.ibm.com>
13558
13559         * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
13560         branches if using guessed profile.
13561
13562 2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>
13563
13564         * graphite-optimize-isl.c (optimize_isl): Fix dump.
13565
13566 2016-01-28  Richard Henderson  <rth@redhat.com>
13567
13568         PR target/69305
13569         * config/aarch64/aarch64-modes.def (CC_Cmode): New
13570         * config/aarch64/aarch64-protos.h: Update.
13571         * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
13572         (aarch64_select_cc_mode): Add check for use of CC_Cmode.
13573         (aarch64_get_condition_code_1): Handle CC_Cmode.
13574         * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
13575         (*add<mode>3_compareC_cconly_imm): New.
13576         (*add<mode>3_compareC_cconly): New.
13577         (*add<mode>3_compareC_imm): New.
13578         (add<mode>3_compareC): New.
13579         (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
13580         to be first.  Use aarch64_carry_operation.
13581         (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
13582         (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
13583         (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
13584         (subti3): Use subdi3_compare1.
13585         (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
13586         (sub<mode>3_compare1): New.
13587         (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
13588         (*sub<mode>3_carryin): Use aarch64_borrow_operation.
13589         (*subsi3_carryin_uxtw): Likewise.
13590         (*ngc<mode>, *ngcsi_uxtw): Likewise.
13591         (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
13592         * config/aarch64/iterators.md (DWI): New.
13593         * config/aarch64/predicates.md (aarch64_carry_operation): New.
13594         (aarch64_borrow_operation): New.
13595
13596 2016-01-28  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
13597
13598         * graphite-optimize-isl.c (optimize_isl): Print a different debug
13599         message when isl does not return a valid schedule.
13600
13601 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
13602
13603         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
13604         Remove comments from class declarations: they are already in the code
13605         close by the defs.
13606
13607 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
13608
13609         * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
13610         codegen_error_p.
13611         (ternary_op_to_tree): Same.
13612         (unary_op_to_tree): Same.
13613         (nary_op_to_tree): Same.
13614         (gcc_expression_from_isl_expr_op): Same.
13615         (gcc_expression_from_isl_expression): Same.
13616         (graphite_create_new_loop): Same.
13617         (graphite_create_new_loop_guard): Same.
13618         (build_iv_mapping): Same.
13619         (graphite_create_new_guard): Same.
13620         (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
13621         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
13622
13623 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
13624
13625         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
13626         instead of setting codegen_error to fail codegen.
13627
13628 2016-01-28  Jason Merrill  <jason@redhat.com>
13629
13630         * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
13631
13632 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
13633
13634         * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
13635         Remove CONST_INT_P check in CCMP cost calculation.
13636
13637 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
13638
13639         * config/aarch64/aarch64.c (generic_vector_cost):
13640         Set vec_permute_cost.
13641         (cortexa57_vector_cost): Likewise.
13642         (exynosm1_vector_cost): Likewise.
13643         (xgene1_vector_cost): Likewise.
13644         (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
13645         * config/aarch64/aarch64-protos.h (cpu_vector_cost):
13646         Add vec_permute_cost entry.
13647
13648 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
13649
13650         * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
13651         immediate as %1.
13652         (add<mode>3_compare0): Likewise.
13653         (addsi3_compare0_uxtw): Likewise.
13654         (add<mode>3nr_compare0): Likewise.
13655         (compare_neg<mode>): Likewise.
13656         (<optab><mode>3): Likewise.
13657
13658 2016-01-28  Ilya Enkovich  <enkovich.gnu@gmail.com>
13659
13660         * tree-vect-stmts.c (vectorizable_comparison): Add
13661         NULL check for vectype.
13662
13663 2016-01-28  Richard Biener  <rguenther@suse.de>
13664
13665         PR tree-optimization/69466
13666         * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
13667         Account for PHIs we couldn't duplicate.
13668
13669 2016-01-28  Martin Liska  <mliska@suse.cz>
13670
13671         PR pch/68758
13672         * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
13673         instead of ENABLE_VALGRIND_CHECKING.
13674
13675 2016-01-27  Richard Henderson  <rth@redhat.com>
13676
13677         PR rtl-opt/69447
13678         * lra-remat.c (subreg_regs): New.
13679         (dump_candidates_and_remat_bb_data): Dump it.
13680         (operand_to_remat): Reject if operand in subreg_regs.
13681         (set_bb_regs): Collect subreg_regs.
13682         (lra_remat): Init and free subreg_regs.  Compute
13683         calculate_local_reg_remat_bb_data before create_cands.
13684
13685 2016-01-27  H.J. Lu  <hongjiu.lu@intel.com>
13686
13687         PR target/68986
13688         * config/i386/i386.c (ix86_update_stack_boundary): Don't
13689         change stack_alignment_needed for __tls_get_addr call.
13690
13691 2016-01-27  Segher Boessenkool  <segher@kernel.crashing.org>
13692
13693         * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
13694
13695 2016-01-27  Jeff Law  <law@redhat.com>
13696
13697         PR tree-optimization/68398
13698         PR tree-optimization/69196
13699         * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
13700         (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
13701         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
13702         Only count PHIs in the last block in the path.  The others will
13703         const/copy propagate away.  Add heuristic to allow more irreducible
13704         subloops to be created when it is likely profitable to do so.
13705
13706         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
13707         Fix typo in comment.  Use gsi_after_labels and remove the GIMPLE_LABEL
13708         check from within the loop.  Use gsi_next_nondebug rather than gsi_next.
13709
13710 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
13711
13712         PR lto/69254
13713         * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
13714         END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
13715         * asan.c (DEF_BUILTIN_STUB): Temporarily define.
13716         * tree-streamer-in.c: Include asan.h.
13717         (streamer_get_builtin_tree): For builtins in sanitizer
13718         range call initialize_sanitizer_builtins and retry.
13719
13720 2016-01-27  Ian Lance Taylor  <iant@google.com>
13721
13722         * common.opt (fkeep-gc-roots-live): New undocumented option.
13723         * tree-ssa-loop-ivopts.c (add_candidate_1): If
13724         -fkeep-gc-roots-live, skip pointers.
13725         (add_iv_candidate_for_biv): Handle add_candidate_1 returning
13726         NULL.
13727
13728 2016-01-27  Uros Bizjak  <ubizjak@gmail.com>
13729
13730         PR target/69512
13731         * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
13732         (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
13733
13734 2016-01-27  Thomas Klausner  <wiz@NetBSD.org>
13735
13736         PR target/68380
13737         * configure.ac: NetBSD provides SSP in its C library.
13738         * configure: Updated.
13739
13740 2016-01-27  Richard Biener  <rguenther@suse.de>
13741
13742         PR tree-optimization/69166
13743         * tree-vect-loop.c (vect_is_simple_reduction): Always check
13744         reduction code for commutativity / associativity.
13745
13746 2016-01-27  Martin Jambor  <mjambor@suse.cz>
13747
13748         PR tree-optimization/69355
13749         * tree-sra.c (analyze_access_subtree): Correct hole detection when
13750         total_scalarization fails.
13751
13752 2016-01-27  David Edelsohn  <dje.gcc@gmail.com>
13753
13754         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
13755         power9.
13756
13757 2016-01-27  Christian Bruel  <christian.bruel@st.com>
13758
13759         PR target/69245
13760         * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
13761         Move arm_reset_previous_fndecl and set_target_option_current_node in
13762         the conditional part.  Call save_restore_target_globals.
13763         * config/arm/arm.c (arm_set_current_function):
13764         Refactor to better support #pragma target and attribute mix.
13765         Call save_restore_target_globals.
13766         * config/arm/arm-protos.h (save_restore_target_globals): New function.
13767
13768 2016-01-27  Martin Liska  <mliska@suse.cz>
13769
13770         * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
13771         reference for an HSA kernel and its host function.
13772
13773 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
13774
13775         PR tree-optimization/69399
13776         * wide-int.h (wi::lrshift): For larger precisions, only
13777         use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
13778
13779 2016-01-27  Claudiu Zissulescu  <claziss@synopsys.com>
13780
13781         * config/arc/predicates.md (proper_comparison_operator): Reject
13782         constant-constant comparison.
13783
13784 2016-01-26  Tom de Vries  <tom@codesourcery.com>
13785
13786         PR tree-optimization/69110
13787         * tree-data-ref.c (initialize_data_dependence_relation): Handle
13788         DR_NUM_DIMENSIONS == 0.
13789
13790 2016-01-26  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
13791             Sebastian Pop  <s.pop@samsung.com>
13792
13793         * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
13794         isl_ast_op_cond and isl_ast_op_select.
13795         (gcc_expression_from_isl_expr_op): Same.
13796
13797 2016-01-26  Jason Merrill  <jason@redhat.com>
13798
13799         PR c++/68782
13800         * tree.c (recompute_constructor_flags): Split out from
13801         build_constructor.
13802         (verify_constructor_flags): New.
13803         * tree.h: Declare them.
13804
13805 2016-01-26  Iain Buclaw  <ibuclaw@gdcproject.org>
13806
13807         PR rtl-optimization/69217
13808         * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
13809         are no TYPE_FIELDS set for the record type.
13810
13811 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
13812
13813         PR target/68662
13814         * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
13815         toc_label_name unconditionally.
13816         (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
13817         SYMBOL_REF string.  Use toc_label_name instead of constructing
13818         LCTOC1.
13819         (rs6000_elf_declare_function_name): Use toc_label_name instead of
13820         constructing LCTOC1.
13821
13822 2016-01-26  Martin Sebor  <msebor@redhat.com>
13823
13824         PR other/69477
13825         * doc/extend.texi (Common Type Attributes): Move text that talks about
13826         attribute packed from attribute aligned to the section discussing
13827         the former attribute for clarity.
13828
13829 2016-01-26  Richard Henderson  <rth@redhat.com>
13830
13831         PR middle-end/60908
13832         * trans-mem.c (tm_region_init): Mark entry block as visited.
13833
13834 2016-01-26  David Malcolm  <dmalcolm@redhat.com>
13835
13836         PR other/69006
13837         * diagnostic-show-locus.c (layout::print_source_line): Replace
13838         call to pp_newline with call to layout::print_newline.
13839         (layout::print_annotation_line): Likewise.
13840         (layout::move_to_column): Likewise.
13841         (layout::print_any_fixits): After printing any fixits, print a
13842         trailing newline, if necessary.
13843         (layout::print_newline): New method, resetting any colorization
13844         before a newline.
13845         (diagnostic_show_locus): Move the pp_newline to before the
13846         early bailout.  Remove dummy block enclosing the layout instance.
13847         * diagnostic.c (default_diagnostic_finalizer): Replace invocation
13848         of pp_newline_and_flush with pp_flush.
13849         (diagnostic_append_note): Delete use of pp_newline.
13850         (diagnostic_append_note_at_rich_loc): Delete.
13851         * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
13852         * pretty-print.h (output_buffer_append_r): Reset buff->line_length
13853         when newline characters are added to the buffer.
13854
13855 2016-01-26  Michael Matz  <matz@suse.de>
13856
13857         * configure.ac (ac_cv_std_swap_in_utility): New test.
13858         * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
13859         * configure: Regenerate.
13860         * config.in: Regenerate.
13861
13862 2016-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
13863
13864         * config/arc/arc.md (cstoresi4): Force operand into register.
13865         (arcset<code>): Fix predicate.
13866         (arcsetltu): Likewise.
13867         (arcsetgeu): Likewise.
13868         (arcsethi): Likewise.
13869         (arcsetls): Likewise.
13870
13871 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
13872
13873         PR tree-optimization/69483
13874         * gimple-fold.c (canonicalize_constructor_val): Return NULL
13875         if base has error_mark_node type.
13876
13877 2016-01-26  Christophe Lyon  <christophe.lyon@linaro.org>
13878
13879         PR target/68620
13880         * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
13881         * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
13882         New helper macros.
13883         (vget_lane_f16): Handle big-endian.
13884         (vgetq_lane_f16): Likewise.
13885         (vset_lane_f16): Likewise.
13886         (vsetq_lane_f16): Likewise.
13887         * config/arm/iterators.md (VQXMOV): Add V8HF.
13888         (VDQ): Add V4HF and V8HF.
13889         (V_reg): Handle V4HF and V8HF.
13890         (Is_float_mode): Likewise.
13891         * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
13892         neon_vdup_nv8hf): New patterns.
13893         (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
13894         Use VD_LANE iterator.
13895         (neon_vld1_dup<mode>): Use VQ2 iterator.
13896
13897 2016-01-26  Nathan Sidwell  <nathan@acm.org>
13898
13899         * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
13900         (set_oacc_fn_attrib): Add IS_KERNEL arg.
13901         * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
13902         (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
13903         (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
13904         (oacc_validate_dims): Add LEVEL arg, don't return level.
13905         (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
13906         oacc_validate_dims.
13907         (execute_oacc_device_lower): Adjust, add more dump output.
13908         * tree-ssa-loop.c (gate_oacc_kernels): Use
13909         oacc_fn_attrib_kernels_p.
13910         * tree-parloops.c (create_parallel_loop): Adjust
13911         set_oacc_fn_attrib call.
13912
13913 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
13914
13915         PR lto/69254
13916         * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
13917         (append_compiler_options): Handle -fcilkplus.
13918         (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
13919
13920 2016-01-26  Nick Clifton  <nickc@redhat.com>
13921
13922         PR target/66655
13923         * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
13924         been marked as DECL_ONE_ONLY but we do not the means to make it
13925         so, then do not allow it to bind locally.
13926
13927 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
13928
13929         PR lto/69254
13930         * opts.h (parse_sanitizer_options): New prototype.
13931         * opts.c (sanitizer_opts): New array.
13932         (parse_sanitizer_options): New function.
13933         (common_handle_option): Use parse_sanitizer_options.
13934
13935 2016-01-26  H.J. Lu  <hongjiu.lu@intel.com>
13936
13937         PR target/68986
13938         * config/i386/i386.c (ix86_compute_frame_layout): Move stack
13939         alignment adjustment to ...
13940         (ix86_update_stack_boundary): Here.  Don't over-align stack for
13941         __tls_get_addr.
13942         (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
13943         if __tls_get_addr is called.
13944
13945 2016-01-26  Christian Bruel  <christian.bruel@st.com>
13946
13947         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
13948
13949 2016-01-26  Eric Botcazou  <ebotcazou@adacore.com>
13950
13951         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
13952
13953 2016-01-26  Richard Biener  <rguenther@suse.de>
13954
13955         PR middle-end/69467
13956         * match.pd: Guard X * CST CMP 0 pattern with single_use.
13957
13958 2016-01-26  Richard Biener  <rguenther@suse.de>
13959
13960         PR tree-optimization/69452
13961         * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
13962         (move_computations_dom_walker::before_dom_children): Rename
13963         to ...
13964         (move_computations_worker): This.
13965         (move_computations): Perform an RPO rather than a DOM walk.
13966
13967 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
13968
13969         PR target/69442
13970         * combine.c (combine_instructions): For REG_EQUAL note with
13971         SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
13972         to the underlying register.
13973         * doc/rtl.texi (REG_EQUAL): Document the behavior of
13974         REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
13975
13976 2016-01-26  Roger Ferrer Ibáñez  <rofirrim@gmail.com>
13977
13978         PR target/67896
13979         * config/aarch64/aarch64-builtins.c
13980         (aarch64_init_simd_builtin_types): Do not set structural
13981         equality to __Poly{8,16,64,128}_t types.
13982
13983 2016-01-26  Richard Sandiford  <richard.sandiford@arm.com>
13984
13985         PR tree-optimization/69400
13986         * wide-int.cc (wi_pack): Take the precision as argument and
13987         perform canonicalization here rather than in the callers.
13988         Use the main loop to handle all full-width HWIs.  Add a
13989         zero HWI if in_len isn't a full result.
13990         (wi::divmod_internal): Update accordingly.
13991         (wi::mul_internal): Likewise.  Simplify.
13992
13993 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
13994             Sebastian Pop  <s.pop@samsung.com>
13995
13996         * graphite-poly.c (apply_poly_transforms): Simplify.
13997         (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
13998         (print_isl_map): Same.
13999         (print_isl_union_map): Same.
14000         (print_isl_schedule): New.
14001         (debug_isl_schedule): New.
14002         * graphite-dependences.c (scop_get_reads): Do not call
14003         isl_union_map_add_map that is undocumented isl functionality.
14004         (scop_get_must_writes): Same.
14005         (scop_get_may_writes): Same.
14006         (scop_get_original_schedule): Remove.
14007         (scop_get_dependences): Do not call isl_union_map_compute_flow that
14008         is deprecated in isl 0.15.  Instead, use isl_union_access_* interface.
14009         (compute_deps): Remove.
14010         * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
14011         (debug_schedule_ast): New.
14012         (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
14013         set_separate_option.
14014         (graphite_regenerate_ast_isl): Add dump.
14015         (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
14016         from scop->transformed_schedule.
14017         (graphite_regenerate_ast_isl): Add more dump.
14018         * graphite-optimize-isl.c (optimize_isl): Set
14019         scop->transformed_schedule.  Check whether schedules are equal.
14020         (apply_poly_transforms): Move here.
14021         * graphite-poly.c (apply_poly_transforms): ... from here.
14022         (free_poly_bb): Static.
14023         (free_scop): Static.
14024         (pbb_number_of_iterations_at_time): Remove.
14025         (print_isl_ast): New.
14026         (debug_isl_ast): New.
14027         (debug_scop_pbb): New.
14028         * graphite-scop-detection.c (print_edge): Move.
14029         (print_sese): Move.
14030         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
14031         (build_scop_scattering): Remove.
14032         (create_pw_aff_from_tree): Assert instead of bailing out.
14033         (add_condition_to_pbb): Remove unused code, do not fail.
14034         (add_conditions_to_domain): Same.
14035         (add_conditions_to_constraints): Remove.
14036         (build_scop_context): New.
14037         (add_iter_domain_dimension): New.
14038         (build_iteration_domains): Initialize pbb->iterators.
14039         Call add_conditions_to_domain.
14040         (nested_in): New.
14041         (loop_at): New.
14042         (index_outermost_in_loop): New.
14043         (index_pbb_in_loop): New.
14044         (outermost_pbb_in): New.
14045         (add_in_sequence): New.
14046         (add_outer_projection): New.
14047         (outer_projection_mupa): New.
14048         (add_loop_schedule): New.
14049         (build_schedule_pbb): New.
14050         (build_schedule_loop): New.
14051         (embed_in_surrounding_loops): New.
14052         (build_schedule_loop_nest): New.
14053         (build_original_schedule): New.
14054         (build_poly_scop): Call build_original_schedule.
14055         * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
14056         (free_poly_dr): Remove.
14057         (struct poly_bb): Add iterators.  Remove schedule, transformed, saved.
14058         (free_poly_bb): Remove.
14059         (debug_loop_vec): Remove.
14060         (print_isl_ast): Declare.
14061         (debug_isl_ast): Declare.
14062         (scop_do_interchange): Remove.
14063         (scop_do_strip_mine): Remove.
14064         (scop_do_block): Remove.
14065         (flatten_all_loops): Remove.
14066         (optimize_isl): Remove.
14067         (pbb_number_of_iterations_at_time): Remove.
14068         (debug_scop_pbb): Declare.
14069         (print_schedule_ast): Declare.
14070         (debug_schedule_ast): Declare.
14071         (struct scop): Remove schedule.  Add original_schedule,
14072         transformed_schedule.
14073         (free_gimple_poly_bb): Remove.
14074         (print_generated_program): Remove.
14075         (debug_generated_program): Remove.
14076         (unify_scattering_dimensions): Remove.
14077         * sese.c (print_edge): ... here.
14078         (print_sese): ... here.
14079         (debug_edge): ... here.
14080         (debug_sese): ... here.
14081         * sese.h (print_edge): Declare.
14082         (print_sese): Declare.
14083         (dump_edge): Declare.
14084         (dump_sese): Declare.
14085
14086 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
14087             Sebastian Pop  <s.pop@samsung.com>
14088
14089         * Makefile.in: Set ISLVER in site.exp.
14090
14091 2016-01-25  Jakub Jelinek  <jakub@redhat.com>
14092
14093         * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
14094         DECL_VALUE_EXPR of new_var even for the non-array case.  Look
14095         through DECL_VALUE_EXPR for expansion.
14096
14097 2016-01-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14098
14099         * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
14100         the frame info after reload completed.
14101
14102 2016-01-25  Jeff Law  <law@redhat.com>
14103
14104         PR tree-optimization/69196
14105         PR tree-optimization/68398
14106         * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
14107         tree-ssa-threadupdate.c.
14108         (determine_bb_domination_status): Prototype
14109         * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
14110         (determine_bb_domination_status): No longer static.
14111         (valid_jump_thread_path): Remove code to detect characteristics
14112         of the jump thread path not associated with correctness.
14113         * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
14114         Correct test for thread path length.  Count PHIs for real operands as
14115         statements that need to be copied.  Do not count ASSERT_EXPRs.
14116         Look at all the blocks in the thread path.  Compute and selectively
14117         filter thread paths based on threading through the latch, threading
14118         a multiway branch or crossing a multiway branch.
14119
14120 2016-01-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14121
14122         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled):  Add
14123         decl with __attribute__ ((unused)) annotation.
14124
14125 2016-01-25  Ilya Enkovich  <enkovich.gnu@gmail.com>
14126
14127         PR target/69421
14128         * tree-vect-stmts.c (vectorizable_condition): Check vectype
14129         of operands is compatible with a statement vectype.
14130
14131 2016-01-25  Eric Botcazou  <ebotcazou@adacore.com>
14132
14133         * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
14134         improve wording for mixed storage order support.
14135
14136 2016-01-25  Bilyan Borisov  <bilyan.borisov@arm.com>
14137
14138         * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
14139         (vcvt_u64_f64): Likewise.
14140         (vcvta_s64_f64): Likewise.
14141         (vcvta_u64_f64): Likewise.
14142         (vcvtm_s64_f64): Likewise.
14143         (vcvtm_u64_f64): Likewise.
14144         (vcvtn_s64_f64): Likewise.
14145         (vcvtn_u64_f64): Likewise.
14146         (vcvtp_s64_f64): Likewise.
14147         (vcvtp_u64_f64): Likewise.
14148
14149 2016-01-25  Claudiu Zissulescu  <claziss@synopsys.com>
14150
14151         * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
14152         (arc_init): Check validity mll64 option.
14153         (arc_save_restore): Use double load/store instruction.
14154         (arc_expand_movmem): Likewise.
14155         (arc_split_move): Don't split if we have double load/store
14156         instructions. Returns a boolean.
14157         (arc_process_double_reg_moves): Change function to return boolean
14158         instead of a sequence of instructions.
14159         (arc_dwarf_register_span): New function.
14160         * config/arc/arc-protos.h (arc_split_move): Change prototype.
14161         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
14162         * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
14163         (*movdf_insn): Likewise.
14164         * config/arc/arc.opt (mll64): New option.
14165         * config/arc/predicates.md (even_register_operand): New predicate.
14166         * doc/invoke.texi (ARC Options): Add mll64 documentation.
14167
14168 2016-01-25  Richard Biener  <rguenther@suse.de>
14169
14170         PR lto/69393
14171         * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
14172         * tree-streamer-out.c (pack_ts_base_value_fields): Stream
14173         DECL_NAMELESS.
14174         * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
14175
14176 2016-01-25  Richard Biener  <rguenther@suse.de>
14177
14178         PR tree-optimization/69376
14179         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
14180         flag.
14181         (VN_INFO_ANTI_RANGE_P): New inline.
14182         (VN_INFO_RANGE_TYPE): Likewise.
14183         * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
14184         SSA_NAME_ANTI_RANGE_P.
14185         (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
14186         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
14187         Properly query VN_INFO_RANGE_TYPE.
14188
14189 2016-01-25  Nick Clifton  <nickc@redhat.com>
14190
14191         PR target/66655
14192         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
14193
14194 2016-01-23  Tom de Vries  <tom@codesourcery.com>
14195
14196         PR tree-optimization/69426
14197         * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
14198         removed clobber.
14199
14200 2016-01-23  Jakub Jelinek  <jakub@redhat.com>
14201
14202         * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
14203         "the the" with "the" in the comments.
14204         * ipa-devirt.c (build_type_inheritance_graph,
14205         update_type_inheritance_graph): Likewise.
14206         * tree.c (build_function_type_list_1): Likewise.
14207         * cfgloopmanip.c (scale_loop_profile): Likewise.
14208         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
14209         * gimple-ssa-split-paths.c
14210         (find_block_to_duplicate_for_splitting_paths): Likewise.
14211         * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
14212         * expr.c (convert_move): Likewise.
14213         * var-tracking.c (vt_stack_adjustments): Likewise.
14214         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
14215         * tree-vrp.c (test_for_singularity): Likewise.
14216
14217         * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
14218         directly instead of building a temporary tree.
14219
14220         PR bootstrap/69434
14221         * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
14222         remove <algorithm> include.
14223
14224 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
14225
14226         PR target/69432
14227         * config/i386/i386.c: Include dojump.h.
14228         (expand_small_movmem_or_setmem,
14229         expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
14230         fixes.
14231         (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
14232         if dynamic_check != -1.
14233
14234 2016-01-21  Jeff Law  <law@redhat.com>
14235
14236         PR middle-end/69347
14237         * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
14238         record_temporary_equivalences.  Rewritten to avoid unnecessary calls
14239         into dominated_by_p.
14240         (cprop_into_successor_phis): Avoid unnecessary tests.
14241
14242 2016-01-22  Richard Henderson  <rth@redhat.com>
14243
14244         PR target/69416
14245         * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
14246         (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
14247
14248 2016-01-22  Michael Matz  <matz@suse.de>
14249
14250         * system.h (string, algorithm): Include only conditionally.
14251         (new): Include always under C++.
14252         * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
14253         * final.c (toplevel): Ditto.
14254         * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
14255         * genconditions.c (write_header): Make gencondmd.c define
14256         INCLUDE_STRING.
14257         * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
14258
14259         * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
14260         * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
14261
14262 2016-01-22  Christian Bruel  <christian.bruel@st.com>
14263
14264         PR target/68674
14265         * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
14266
14267 2016-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14268
14269         PR target/69403
14270         * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
14271         define_insn_and_split.  Ensure operands[1] and operands[0] do not
14272         get assigned the same register.
14273
14274 2016-01-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
14275
14276         * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
14277
14278 2016-01-22  Christian Bruel  <christian.bruel@st.com>
14279
14280         * config/arm/arm-c.c (arm_pragma_target_parse):
14281         Remove warn_builtin_macro_redefined overwrite.
14282
14283 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
14284
14285         * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
14286         flag_non_call_exceptions compatibility.
14287
14288 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
14289
14290         PR debug/66668
14291         * dwarf2out.c (add_child_die_after): New function.
14292         (dwarf_qual_info_t): New type.
14293         (dwarf_qual_info): New variable.
14294         (qualified_die_p): New function.
14295         (modified_type_die): For -fdebug-types-section, ensure
14296         canonical order of qualifiers.  Put qualified DIEs adjacent
14297         to the corresponding non-qualified type DIE and search there
14298         for existing qualified DIEs.
14299
14300 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
14301
14302         * doc/extend.texi (scalar_storage_order type attribute): Document
14303         restriction on type punning and aliasing, and remove future tense.
14304
14305 2016-01-21  Roman Zhuykov  <zhroma@ispras.ru>
14306
14307         PR target/69252
14308         * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
14309         first stage.
14310
14311 2016-01-21  Jeff Law  <law@redhat.com>
14312
14313         PR middle-end/69347
14314         * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
14315         useless call to record_temporary_equivalences.
14316         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
14317         allocate 10 slots in the bb_path vector and let it grow as needed.
14318         (fsm_find_control_statement_thread_paths): Similarly for the next_path
14319         vector.
14320
14321 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
14322
14323         * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
14324         Detangle.
14325         * configure: Regenerate.
14326
14327 2016-01-21  Pat Haugen  <pthaugen@us.ibm.com>
14328
14329         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
14330         * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
14331
14332 2016-01-21  Bernd Schmidt  <bschmidt@redhat.com>
14333
14334         PR middle-end/66178
14335         * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
14336         drop EXPAND_INITIALIZER.
14337         * rtl.h (contains_symbolic_reference_p): Declare.
14338         * rtlanal.c (contains_symbolic_reference_p): New function.
14339         * simplify-rtx.c (simplify_binary_operation_1): Don't turn
14340         a subtraction into a NOT if symbolic constants are involved.
14341
14342 2016-01-21  Anton Blanchard  <anton@samba.org>
14343             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14344
14345         PR target/63354
14346         * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
14347         #define.
14348         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
14349         function.
14350
14351 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
14352
14353         * config/microblaze/microblaze.c
14354         (get_branch_target): New.
14355         (insert_wic_for_ilb_runout): New.
14356         (insert_wic): New.
14357         (microblaze_machine_dependent_reorg): New.
14358         (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
14359         * config/microblaze/microblaze.md
14360         (UNSPEC_IPREFETCH): Define.
14361         (iprefetch): New pattern
14362         * config/microblaze/microblaze.opt
14363         (mxl-prefetch): New flag.
14364
14365 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
14366
14367         * config/microblaze/microblaze.h
14368         (FIXED_REGISTERS): Update in macro.
14369         (CALL_USED_REGISTERS): Update in macro.
14370
14371 2016-01-21  Yuri Rumyantsev  <ysrumyan@gmail.com>
14372
14373         PR rtl-optimization/68920
14374         * ifcvt.c (cond_move_process_if_block): Limit number of conditional
14375         moves.
14376
14377 2016-01-21  Vladimir Makarov  <vmakarov@redhat.com>
14378
14379         PR rtl-optimization/68990
14380         * lra-coalesce.c (lra_coalesce): Invalidate value for the result
14381         pseudo instead of inheritance ones.
14382
14383 2016-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14384             Nick Clifton  <nickc@redhat.com>
14385
14386         PR target/69129
14387         PR target/69012
14388         * config/mips/mips.c (mips_compute_frame_info): Initialise
14389         args_size and hard_frame_pointer_offset fields of the frame
14390         structure before calling mips_global_pointer.
14391
14392 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
14393
14394         * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
14395         label reference.
14396         * configure: Regenerate.
14397
14398 2016-01-21  Richard Biener  <rguenther@suse.de>
14399
14400         * graphite-optimize-isl.c (get_schedule_map): Fix typo.
14401
14402 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
14403
14404         * config/s390/s390.c (s390_asm_declare_function_size): Add code
14405         to actually emit the .size directive.
14406
14407 2016-01-21   Stefan Sørensen  <stefan.sorensen@spectralink.com>
14408              Jakub Jelinek  <jakub@redhat.com>
14409
14410         PR target/69187
14411         PR target/65624
14412         * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
14413         args array size by one to avoid buffer overflow.
14414
14415 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
14416
14417         * config/s390/s390.md (pool_section_start): Use switch_to_section
14418         to select proper read-only data section instead of hardcoding
14419         .rodata.
14420         (pool_section_end): Use switch_to_section to match the above.
14421
14422 2016-01-21  Richard Biener  <rguenther@suse.de>
14423
14424         PR tree-optimization/69378
14425         * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
14426         (set_ssa_val_to): Use it for dominance checks taking into
14427         account not executable edges.
14428
14429 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
14430
14431         PR c++/69355
14432         * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
14433         for bitsize instead of GET_MODE_PRECISION (mode).
14434
14435 2016-01-20  Martin Sebor  <msebor@redhat.com>
14436
14437         PR c/52291
14438         * extend.texi (__sync Builtins): Clarify the semantics of
14439         __sync_fetch_and_OP built-ins on pointers.
14440         (__atomic Builtins): Same.
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 (enum phi_node_kind): New.
14446         (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
14447         (is_valid_rename): Same.
14448         (translate_isl_ast_to_gimple::get_rename): Same.
14449         (translate_isl_ast_to_gimple::rename_all_uses): Same.
14450         (translate_isl_ast_to_gimple::rename_uses): Same.
14451         (get_new_name): Check for close_phi nodes.
14452         (copy_loop_phi_args): Use phi_node_kind.
14453         (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
14454         (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
14455
14456 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14457             Sebastian Pop  <s.pop@samsung.com>
14458
14459         Revert commit r229783.
14460         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
14461         Remove use of parameter_rename_map.
14462         (copy_def): Remove.
14463         (copy_internal_parameters): Remove.
14464         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
14465         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
14466         (free_sese_info): Do not free parameter_rename_map.
14467         (set_rename): Do not use parameter_rename_map.
14468         (rename_uses): Update call to set_rename.
14469         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
14470         * sese.h (parameter_rename_map_t): Remove.
14471         (struct sese_info_t): Remove field parameter_rename_map.
14472
14473 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14474             Sebastian Pop  <s.pop@samsung.com>
14475
14476         * graphite-isl-ast-to-gimple.c: Fix comment.
14477         * graphite-scop-detection.c (defined_in_loop_p): New.
14478         (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
14479         names defined in loop.
14480
14481 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14482             Sebastian Pop  <s.pop@samsung.com>
14483
14484         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
14485         Discard unstructured if-then-else regions.
14486
14487 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14488             Sebastian Pop  <s.pop@samsung.com>
14489
14490         * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
14491         (cleanup_loop_iter_dom): Remove.
14492         (build_loop_iteration_domains): Remove.
14493         (build_scop_context): Remove.
14494         (build_scop_iteration_domain): Remove.
14495         (add_loop_constraints): New.
14496         (build_iteration_domains): New.
14497         (build_poly_scop): Call build_iteration_domains.
14498
14499 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14500             Sebastian Pop  <s.pop@samsung.com>
14501
14502         * graphite-scop-detection.c
14503         (scop_detection::harmful_loop_in_region): Free dom and loops.
14504         (scop_detection::loop_body_is_valid_scop): Free bbs.
14505
14506 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14507             Sebastian Pop  <s.pop@samsung.com>
14508
14509         * graphite-scop-detection.c (record_loop_in_sese): New.
14510         (gather_bbs::before_dom_children): Call record_loop_in_sese.
14511         (build_scops): Remove call to build_sese_loop_nests.
14512         * sese.c (sese_record_loop): Remove.
14513         (build_sese_loop_nests): Remove.
14514         (new_sese_info): Remove region->loops.
14515         (free_sese_info): Same.
14516         * sese.h (sese_contains_loop): Same.
14517         (build_sese_loop_nests): Remove.
14518         (sese_contains_loop): Remove.
14519
14520 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14521             Sebastian Pop  <s.pop@samsung.com>
14522
14523         * graphite-scop-detection.c (loop_is_valid_scop): Renamed
14524         loop_is_valid_in_scop.
14525         (scop_detection::harmful_stmt_in_region): Renamed
14526         harmful_loop_in_region.
14527         Call loop_is_valid_in_scop.
14528
14529 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14530             Sebastian Pop  <s.pop@samsung.com>
14531
14532         * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
14533         isl_ast_node_mark.
14534
14535 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14536             Sebastian Pop  <s.pop@samsung.com>
14537
14538         * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
14539         * graphite.h (struct poly_bb): Remove field is_reduction.
14540         (PBB_IS_REDUCTION): Remove.
14541
14542 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14543             Sebastian Pop  <s.pop@samsung.com>
14544
14545         * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
14546         (add_pdr_constraints): Same.
14547         (scop_get_reads): Same.
14548         (scop_get_must_writes): Same.
14549         (scop_get_may_writes): Same.
14550         (scop_get_original_schedule): Same.
14551         (extend_schedule): Same.
14552         (apply_schedule_on_deps): Same.
14553         (carries_deps): Same.
14554         (compute_deps): Same.
14555         (scop_get_dependences): Same.
14556         * graphite-isl-ast-to-gimple.c
14557         (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
14558         * graphite-optimize-isl.c (get_schedule_for_band): Same.
14559         (get_schedule_for_band_list): Same.
14560         (get_schedule_map): Same.
14561         (apply_schedule_map_to_scop): Same.
14562         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
14563         (build_loop_iteration_domains): Same.
14564         (add_condition_to_pbb): Same.
14565         (add_param_constraints): Same.
14566         (pdr_add_memory_accesses): Same.
14567         (pdr_add_data_dimensions): Same.
14568
14569 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
14570
14571         * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
14572         requirements.
14573
14574 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
14575
14576         * common.opt (feliminate-dwarf2-dups): Replace references to
14577         "DWARF 2" with just "DWARF".
14578         * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
14579         * doc/extend.texi: Likewise.
14580         * doc/cpp.texi: Likewise.
14581         * doc/invoke.texi: Likewise.
14582         (Option Summary): Add -gdwarf to list of Debugging Options.
14583         (Debugging Options): Document -gdwarf.
14584         * doc/contrib.texi: Spell "DWARF" like that.
14585
14586 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
14587
14588         * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
14589         warning.  Fix up formatting.
14590
14591         PR middle-end/67653
14592         * gimplify.c (gimplify_asm_expr): Warn if it is too late to
14593         attempt to mark memory input operand addressable and
14594         call prepare_gimple_addressable in that case.  Don't adjust
14595         input_location for diagnostics, use error_at instead.
14596
14597 2016-01-20  Peter Bergner  <bergner@vnet.ibm.com>
14598
14599         * config/rs6000/ppc-auxv.h: New file.
14600         * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
14601         (cpu_is): Likewise.
14602         (cpu_supports): Likewise.
14603         * config/rs6000/rs6000.c: include "ppc-auxv.h".
14604         (cpu_is_info): New variable.
14605         (cpu_supports_info): Likewise.
14606         (tcb_verification_symbol): Likewise.
14607         (cpu_builtin_p): Likewise.
14608         (cpu_expand_builtin): New function.
14609         (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
14610         (rs6000_init_builtins): Likewise.
14611         (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
14612         * config/rs6000/rs6000.h (TLS_REGNUM): New define.
14613         * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
14614         * configure: Regenerate.
14615         * config.in: Likewise.
14616         * doc/extend.texi (PowerPC Built-in Functions): Document
14617         __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
14618
14619 2016-01-20  David Edelsohn  <dje.gcc@gmail.com>
14620
14621         PR target/68609
14622         * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
14623         domain check.
14624         * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
14625         for V4SFmode.
14626
14627 2016-01-20  Richard Henderson  <rth@redhat.com>
14628
14629         PR bootstrap/69343
14630         PR bootstrap/69339
14631         PR tree-opt/68964
14632         Revert:
14633         * tree.c (tm_define_builtin): New.
14634         (find_tm_vector_type): New.
14635         (build_tm_vector_builtins): New.
14636         (build_common_builtin_nodes): Call it.
14637
14638 2016-01-20  Christophe Lyon  <christophe.lyon@linaro.org>
14639
14640         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
14641         (arm_fp_ok): Likewise.
14642         (arm_fp): Likewise.
14643         (arm_crypto): Likewise.
14644
14645 2016-01-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
14646             Richard Biener  <rguenther@suse.de>
14647
14648         PR tree-optimization/69328
14649         * tree-vect-stmts.c (vect_is_simple_cond): Check compared
14650         vectors have same number of elements.
14651         (vectorizable_condition): Fix masked version recognition.
14652
14653 2016-01-20  Richard Biener  <rguenther@suse.de>
14654
14655         PR tree-optimization/69345
14656         * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
14657         (VN_INFO_PTR_INFO): Likewise.
14658         * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
14659         info when it is equal between non-dominating SSA names.
14660         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
14661         Make sure to look at original SSA infos.
14662
14663 2016-01-20  Jeff Law  <law@redhat.com>
14664
14665         PR target/25114
14666         * config/m68k/predicates.md (pow2_m1_operand): New predicate
14667         extracted from ...
14668         (reg_or_pow2_m1_operand): Call pow2_m1_operand.
14669         (pc_or_label_operand): New predicate.
14670         * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
14671         tests for small integers that are 2^n - 1.
14672
14673 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
14674
14675         * doc/invoke.texi (Options Summary): Add '.' after @xref.
14676
14677 2016-01-19  Jeff Law  <law@redhat.com>
14678
14679         PR middle-end/69347
14680         * tree-ssa-threadbackwards.c
14681         (fsm_find_control_statement_thread_paths): Do not try to lookup
14682         FSM paths for SSA_NAMEs appearing in abnormal PHIs.
14683
14684 2016-01-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
14685
14686         * doc/lto.texi: Remove text that says only Gold has linker plugin
14687         support.
14688
14689 2016-01-19  Eric Botcazou  <ebotcazou@adacore.com>
14690
14691         * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
14692         (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
14693         the DIE accordingly.
14694         (modified_type_die): Add REVERSE parameter and pass it recursively,
14695         as well as to base_type_die.  Adjust presence check accordingly.
14696         (base_type_for_mode): Adjust call to modified_type_die.
14697         (add_type_attribute): Add REVERSE parameter and pass it to
14698         modified_type_die.
14699         (generic_parameter_die): Adjust call to add_type_attribute.
14700         (add_scalar_info): Likewise.
14701         (add_subscript_info): Likewise.
14702         (gen_array_type_die): Likewise.
14703         (gen_descr_array_type_die): Likewise.
14704         (gen_entry_point_die): Likewise.
14705         (gen_enumeration_type_die): Likewise.
14706         (gen_formal_parameter_die): Likewise.
14707         (gen_subprogram_die): Likewise.
14708         (gen_variable_die ): Likewise.
14709         (gen_const_die): Likewise.
14710         (gen_field_die): Likewise.
14711         (gen_pointer_type_die): Likewise.
14712         (gen_reference_type_die): Likewise.
14713         (gen_ptr_to_mbr_type_die): Likewise.
14714         (gen_inheritance_die): Likewise.
14715         (gen_subroutine_type_die): Likewise.
14716         (gen_typedef_die): Likewise.
14717         (force_type_die): Adjust call to modified_type_die.
14718
14719 2016-01-19  Sandra Loosemore  <sandra@codesourcery.com>
14720
14721         * doc/standards.texi: Copy-editing for grammar, markup, and sentence
14722         flow throughout the file.  Fix broken link to Objective-C 2.0
14723         documentation.
14724         * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
14725         errors.
14726
14727 2016-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
14728
14729         * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
14730
14731 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
14732
14733         PR ipa/66223
14734         * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
14735         (maybe_record_node): Record cxa_pure_virtual as the only possible
14736         target if there are not ohter candidates.
14737         (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
14738
14739 2016-01-19  Richard Biener  <rguenther@suse.de>
14740
14741         * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
14742         (get_memory_order): Likewise.
14743
14744 2016-01-19  Kirill Yukhin  <kirill.yukhin@intel.com>
14745
14746         * tree-vect-stmts.c (vectorizable_store): Check
14747         rhs vectype.
14748
14749 2016-01-19  David Malcolm  <dmalcolm@redhat.com>
14750
14751         PR jit/68446
14752         * gcc.c (driver::decode_argv): Add call to
14753         init_opts_obstack before init_options_struct.
14754         * opts.c (init_opts_obstack): Remove idempotency.
14755         (init_options_struct): Replace call to init_opts_obstack
14756         with a gcc_assert to verify that it has already been called.
14757         * toplev.c (toplev::main): Add call to init_opts_obstack before
14758         calls to init_options_struct.
14759         (toplev::finalize): Move cleanup of opts_obstack next to
14760         cleanup of save_decoded_options, clearing the latter, and
14761         save_decoded_options_count.
14762
14763 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14764
14765         PR target/69135
14766         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
14767         attribute to unconditional.  Remove %? from output template.
14768
14769 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
14770             Jiong Wang  <jiong.wang@arm.com>
14771
14772         * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
14773         generated from different expand order.
14774
14775 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
14776
14777         * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
14778         Add support for CCMP costing.
14779
14780 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
14781
14782         * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
14783         * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
14784         (fccmpe<mode>): Likewise.
14785         (fcmp): Rename to fcmp and globalize pattern.
14786         (fcmpe): Likewise.
14787         * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
14788         (aarch64_gen_ccmp_next): Add FP support.
14789
14790 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
14791
14792         * target.def (gen_ccmp_first): Update documentation.
14793         (gen_ccmp_next): Likewise.
14794         * doc/tm.texi (gen_ccmp_first): Update documentation.
14795         (gen_ccmp_next): Likewise.
14796         * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
14797         expand_ccmp_expr_1.  Improve comments.
14798         * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
14799         (ccmp_ior<mode>): Remove pattern.
14800         (cmp<mode>): Remove expand.
14801         (cmp): Globalize pattern.
14802         (cstorecc4): Use cc_register.
14803         (mov<mode>cc): Remove ccmp_cc_register check.
14804         * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
14805         Simplify after removal of CC_DNE/* modes.
14806         (aarch64_ccmp_mode_to_code): Remove.
14807         (aarch64_print_operand): Remove 'K' case.  Merge 'm' and 'M' cases.
14808         In 'k' case use integer as condition.
14809         (aarch64_nzcv_codes): Remove inverted cases.
14810         (aarch64_code_to_ccmode): Remove.
14811         (aarch64_gen_ccmp_first): Use cmp pattern directly.  Return the correct
14812         comparison with CC register to be used in folowing CCMP/branch/CSEL.
14813         (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
14814         pattern.  Return the comparison with CC register.  Invert conditions
14815         when bitcode is OR.
14816         * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
14817         * config/aarch64/predicates.md (ccmp_cc_register): Remove.
14818
14819 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
14820
14821         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
14822         instrumented_version.
14823
14824 2016-01-19  Richard Biener  <rguenther@suse.de>
14825
14826         PR tree-optimization/69336
14827         * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
14828         handled components with get_ref_base_and_extent.
14829         (equal_mem_array_ref_p): Adjust.
14830
14831 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
14832
14833         PR debug/65779
14834         * shrink-wrap.c: Include valtrack.h.
14835         (move_insn_for_shrink_wrap): Add DEBUG argument.  If
14836         MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
14837         in between insn and where it will be moved to.  Call
14838         dead_debug_insert_temp.
14839         (prepare_shrink_wrap): Adjust caller.  Call dead_debug_local_init
14840         first and dead_debug_local_finish at the end.
14841         For uses and defs bitmap, handle all regs in between REGNO and
14842         END_REGNO, not just the first one.
14843
14844 2016-01-19  Richard Biener  <rguenther@suse.de>
14845
14846         PR tree-optimization/69352
14847         * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
14848         (equal_mem_array_ref_p): Constrain size and max size properly.
14849         Compare the reverse flag.
14850
14851 2016-01-19  Bernd Schmidt  <bschmidt@redhat.com>
14852
14853         * ira.c (ira): Update regstat data if we deleted insns.
14854
14855 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
14856
14857         PR rtl-optimization/68955
14858         PR rtl-optimization/64557
14859         * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
14860         here.  Fix up formatting.
14861         * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
14862
14863 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
14864
14865         PR lto/69133
14866         * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
14867         assume that the node has body.
14868         * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
14869         check.
14870
14871 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
14872
14873         * lto-streamer-out.c (lto_output): Do not stream instrumentation
14874         thunks.
14875
14876 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
14877
14878         * symtab.c (symtab_node::asm_name): Do not call printable name directly.
14879         (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
14880
14881 2016-01-19  Martin Jambor  <mjambor@suse.cz>
14882             Martin Liska  <mliska@suse.cz>
14883             Michael Matz  <matz@suse.de>
14884
14885         * Makefile.in (OBJS): Add new source files.
14886         (GTFILES): Add hsa.c.
14887         * common.opt (disable_hsa): New variable.
14888         (-Whsa): New warning.
14889         * config.in (ENABLE_HSA): New.
14890         * configure.ac: Treat hsa differently from other accelerators.
14891         (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
14892         $enable_offloading.
14893         (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
14894         * doc/install.texi (Configuration): Document --with-hsa-runtime,
14895         --with-hsa-runtime-include, --with-hsa-runtime-lib and
14896         --with-hsa-kmt-lib.
14897         * doc/invoke.texi (-Whsa): Document.
14898         (hsa-gen-debug-stores): Likewise.
14899         * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
14900         to invoke offload compiler for hsa acclerator.
14901         * opts.c (common_handle_option): Determine whether HSA offloading
14902         should be performed.
14903         * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
14904         * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
14905         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
14906         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
14907         * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
14908         * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
14909         GF_OMP_FOR_KIND_GRID_LOOP.
14910         (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
14911         (pp_gimple_stmt_1): Likewise.
14912         * gimple-walk.c (walk_gimple_stmt): Likewise.
14913         * gimple.c (gimple_build_omp_grid_body): New function.
14914         (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
14915         * gimple.def (GIMPLE_OMP_GRID_BODY): New.
14916         * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
14917         GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
14918         GF_OMP_TEAMS_GRID_PHONY.
14919         (gimple_statement_omp_single_layout): Updated comments.
14920         (gimple_build_omp_grid_body): New function.
14921         (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
14922         (gimple_omp_for_grid_phony): New function.
14923         (gimple_omp_for_set_grid_phony): Likewise.
14924         (gimple_omp_parallel_grid_phony): Likewise.
14925         (gimple_omp_parallel_set_grid_phony): Likewise.
14926         (gimple_omp_teams_grid_phony): Likewise.
14927         (gimple_omp_teams_set_grid_phony): Likewise.
14928         (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
14929         * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
14930         (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
14931         (BUILT_IN_GOMP_TARGET): Updated type.
14932         * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
14933         (adjust_for_condition): New function.
14934         (get_omp_for_step_from_incr): Likewise.
14935         (extract_omp_for_data): Moved parts to adjust_for_condition and
14936         get_omp_for_step_from_incr.
14937         (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
14938         (fixup_child_record_type): Bail out if receiver_decl is NULL.
14939         (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
14940         (scan_omp_parallel): Do not create child functions for phony
14941         constructs.
14942         (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
14943         (scan_omp_1_op): Checking assert we are not remapping to
14944         ERROR_MARK.  Also also handle GIMPLE_OMP_GRID_BODY.
14945         (parallel_needs_hsa_kernel_p): New function.
14946         (expand_parallel_call): Register apprpriate parallel child
14947         functions as HSA kernels.
14948         (grid_launch_attributes_trees): New type.
14949         (grid_attr_trees): New variable.
14950         (grid_create_kernel_launch_attr_types): New function.
14951         (grid_insert_store_range_dim): Likewise.
14952         (grid_get_kernel_launch_attributes): Likewise.
14953         (get_target_argument_identifier_1): Likewise.
14954         (get_target_argument_identifier): Likewise.
14955         (get_target_argument_value): Likewise.
14956         (push_target_argument_according_to_value): Likewise.
14957         (get_target_arguments): Likewise.
14958         (expand_omp_target): Call get_target_arguments instead of looking
14959         up for teams and thread limit.
14960         (grid_expand_omp_for_loop): New function.
14961         (grid_arg_decl_map): New type.
14962         (grid_remap_kernel_arg_accesses): New function.
14963         (grid_expand_target_kernel_body): New function.
14964         (expand_omp): Call it.
14965         (lower_omp_for): Do not emit phony constructs.
14966         (lower_omp_taskreg): Do not emit phony constructs but create for them
14967         a temporary variable receiver_decl.
14968         (lower_omp_taskreg): Do not emit phony constructs.
14969         (lower_omp_teams): Likewise.
14970         (lower_omp_grid_body): New function.
14971         (lower_omp_1): Call it.
14972         (grid_reg_assignment_to_local_var_p): New function.
14973         (grid_seq_only_contains_local_assignments): Likewise.
14974         (grid_find_single_omp_among_assignments_1): Likewise.
14975         (grid_find_single_omp_among_assignments): Likewise.
14976         (grid_find_ungridifiable_statement): Likewise.
14977         (grid_target_follows_gridifiable_pattern): Likewise.
14978         (grid_remap_prebody_decls): Likewise.
14979         (grid_copy_leading_local_assignments): Likewise.
14980         (grid_process_kernel_body_copy): Likewise.
14981         (grid_attempt_target_gridification): Likewise.
14982         (grid_gridify_all_targets_stmt): Likewise.
14983         (grid_gridify_all_targets): Likewise.
14984         (execute_lower_omp): Call grid_gridify_all_targets.
14985         (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
14986         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
14987         (tree_omp_clause): Added union field dimension.
14988         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
14989         * tree.c (omp_clause_num_ops): Added number of arguments of
14990         OMP_CLAUSE__GRIDDIM_.
14991         (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
14992         (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
14993         * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
14994         (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
14995         (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
14996         (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
14997         * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
14998         * tree-pass.h (make_pass_gen_hsail): Declare.
14999         (make_pass_ipa_hsa): Likewise.
15000         * ipa-hsa.c: New file.
15001         * lto-section-in.c (lto_section_name): Add hsa section name.
15002         * lto-streamer.h (lto_section_type): Add hsa section.
15003         * timevar.def (TV_IPA_HSA): New.
15004         * hsa-brig-format.h: New file.
15005         * hsa-brig.c: New file.
15006         * hsa-dump.c: Likewise.
15007         * hsa-gen.c: Likewise.
15008         * hsa.c: Likewise.
15009         * hsa.h: Likewise.
15010         * toplev.c (compile_file): Call hsa_output_brig.
15011         * hsa-regalloc.c: New file.
15012
15013 2016-01-18  Jeff Law  <law@redhat.com>
15014
15015         PR tree-optimization/69320
15016         * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
15017         ranged object, do nothing if the RHS constant is not [0..1].
15018         (optimize_stmt): Comparing a boolean ranged object against a
15019         constant outside [0..1] results in a compile-time constant.
15020
15021         * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
15022         test.
15023
15024 2016-01-18  Sandra Loosemore  <sandra@codesourcery.com>
15025
15026         * doc/invoke.texi (Invoking GCC): Add new section to menu.
15027         (Option Summary): Update to reflect new section and moved options.
15028         (C++ Dialect Options): Move -fstats to new section.
15029         (Debugging Options): Move all dump, statistics, and other GCC
15030         developer options to new section.  Rewrite section introduction
15031         and re-order remaining options to put the more basic ones first.
15032         (Optimization Options): Move -fira-verbose and -flto-report* to
15033         new section.
15034         (Developer Options): New section incorporating moved options.
15035         * doc/cppopts.texi (-dM): Update cross-reference.
15036
15037 2016-01-18  Richard Henderson  <rth@redhat.com>
15038
15039         PR target/69176
15040         * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
15041         operands to pseudo only if CSE is expected.  Split long immediate
15042         operands only after reload, and for the stack pointer.
15043         (*add<GPI>3_pluslong): Remove.
15044         (*addsi3_aarch64, *adddi3_aarch64): Merge into...
15045         (*add<GPI>3_aarch64): ... here.  Add r/rk/Upl alternative.
15046         (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
15047         (*add<GPI>3 peepholes): New.
15048         (*add<GPI>3 splitters): New.
15049         * config/aarch64/constraints.md (Upl): New.
15050         * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
15051
15052 2016-01-18  Richard Biener  <rguenther@suse.de>
15053
15054         PR tree-optimization/69297
15055         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
15056         stmt at most once.
15057         (vect_bb_vectorization_profitable_p): Clear visited flag again.
15058
15059 2016-01-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
15060
15061         PR middle-end/68542
15062         * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
15063         of mixind vector and scalar types.
15064         (fold_relational_const): Add handling of vector
15065         comparison with boolean result.
15066         * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
15067         comparison of vector operands with boolean result for EQ/NE only.
15068         (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
15069         (verify_gimple_cond): Likewise.
15070         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
15071         valid type of VAL.
15072
15073 2016-01-18  Joseph Myers  <joseph@codesourcery.com>
15074
15075         * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
15076         !TARGET_OCTEON.
15077
15078 2016-01-18  Richard Biener  <rguenther@suse.de>
15079
15080         PR middle-end/69308
15081         * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
15082
15083 2016-01-18  Tom de Vries  <tom@codesourcery.com>
15084
15085         * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
15086
15087 2016-01-18  Tom de Vries  <tom@codesourcery.com>
15088
15089         * omp-low.c (set_oacc_fn_attrib): Make extern.
15090         * omp-low.h (set_oacc_fn_attrib): Declare.
15091         * tree-parloops.c (struct reduction_info): Add reduc_addr field.
15092         (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
15093         (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
15094         Add and handle function parameter oacc_kernels_p.
15095         (find_reduc_addr, get_omp_data_i_param): New function.
15096         (ref_conflicts_with_region, oacc_entry_exit_ok_1)
15097         (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
15098         (parallelize_loops): Add and handle function parameter oacc_kernels_p.
15099         Calculate dominance info.  Skip loops that are not in a kernels region
15100         in oacc_kernels_p mode.  Skip inner loops of parallelized loops.
15101         (pass_parallelize_loops::execute): Call parallelize_loops with
15102         oacc_kernels_p argument.
15103         (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
15104         New member function.
15105         (pass_parallelize_loops::bool oacc_kernels_p): New member var.
15106         * passes.def: Add argument to pass_parallelize_loops instantation.
15107
15108 2016-01-18  Tom de Vries  <tom@codesourcery.com>
15109
15110         * tree-parloops.c (pass_parallelize_loops::execute): Allow
15111         pass_parallelize_loops to be run outside the loop pipeline.
15112
15113 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
15114
15115         * tree-scalar-evolution.c (follow_copies_to_constant): New.
15116         (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
15117
15118 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
15119
15120         PR target/63679
15121         * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
15122         using get_ref_base_and_extent.
15123         (equal_mem_array_ref_p): New.
15124         (hashable_expr_equal_p): Add call to previous.
15125
15126 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
15127
15128         PR target/63679
15129         * tree-sra.c (disqualified_constants, constant_decl_p): New.
15130         (sra_initialize): Allocate disqualified_constants.
15131         (sra_deinitialize): Free disqualified_constants.
15132         (disqualify_candidate): Update disqualified_constants when appropriate.
15133         (create_access): Scan for constant-pool entries as we go along.
15134         (scalarizable_type_p): Add check against type_contains_placeholder_p.
15135         (maybe_add_sra_candidate): Allow constant-pool entries.
15136         (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
15137         (initialize_constant_pool_replacements): New.
15138         (sra_modify_assign): Avoid mangling assignments created by previous,
15139         and don't generate writes into constant pool.
15140         (sra_modify_function_body): Call initialize_constant_pool_replacements.
15141
15142 2016-01-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
15143
15144         * config/i386/i386.c (scalar_to_vector_candidate_p): Support
15145         andnot instruction.
15146         (scalar_chain::convert_op): Likewise.
15147         * config/i386/i386.md (*andndi3_doubleword): New.
15148
15149 2016-01-18  Richard Biener  <rguenther@suse.de>
15150
15151         PR tree-optimization/69170
15152         * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
15153         building a vector from scalar results of a pattern stmt.
15154
15155 2016-01-18  Jakub Jelinek  <jakub@redhat.com>
15156
15157         * haifa-sched.c (autopref_multipass_init): Work around
15158         -Wmaybe-uninitialized warning.
15159
15160 2016-01-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
15161
15162         * config/arm/arm.c (thumb1_reorg): Check that the comparison is
15163         against the constant 0.
15164
15165 2016-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15166
15167         PR tree-optimization/68799
15168         * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
15169         look up phi candidates in the statement-candidate map.
15170         (phi_add_costs): Likewise.
15171         (record_phi_increments): Likewise.
15172         (phi_incr_cost): Likewise.
15173         (ncd_with_phi): Likewise.
15174         (all_phi_incrs_profitable): Likewise.
15175
15176 2016-01-17  Jakub Jelinek  <jakub@redhat.com>
15177
15178         * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
15179         -Wmaybe-uninitialized warning.
15180
15181 2016-01-16  Sandra Loosemore  <sandra@codesourcery.com>
15182
15183         * doc/invoke.texi (Invoking GCC): Add new section to menu.
15184         (Option Summary): Update to reflect new section and moved options.
15185         (C++ Dialect Options): Move -fvtable-verify and related options.
15186         (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
15187         and profiling-related options.
15188         (Optimization Options): Move profile generation options and
15189         -fstack-protector and related options.
15190         (Instrumentation Options): New section incorporating moved options.
15191         (Code Generation Options): Move -finstrument-functions and
15192         related options, -fstack-check, -fstack-limit*, and -fbounds-check.
15193
15194 2016-01-16  Tom de Vries  <tom@codesourcery.com>
15195
15196         * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
15197
15198 2016-01-16  Tom de Vries  <tom@codesourcery.com>
15199
15200         * omp-low.c (expand_omp_atomic_fetch_op):  Release defs of update stmt.
15201
15202 2016-01-16  Richard Sandiford  <richard.sandiford@arm.com>
15203
15204         * hash-table.h (hash_table::empty): Turn into an inline wrapper
15205         that checks whether the table is already empty.  Rename the
15206         original implementation to...
15207         (hash_table::empty_slot): ...this new private function.
15208
15209 2016-01-15  David Malcolm  <dmalcolm@redhat.com>
15210
15211         PR diagnostic/68899
15212         * diagnostic-show-locus.c (layout::print_source_line): Move x
15213         offset of line until after call to
15214         get_line_width_without_trailing_whitespace.
15215
15216 2016-01-15  Jeff Law  <law@redhat.com>
15217
15218         PR tree-optimization/69270
15219         * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
15220         tree-ssa-dom.c.  Improve test for [0..1] ranve from VRP.
15221         * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
15222         * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
15223         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
15224         ssa_name_has_boolean_range and constant_boolean_node.
15225
15226 2016-01-15  Vladimir Makarov  <vmakarov@redhat.com>
15227
15228         PR rtl-optimization/69030
15229         * lra-spills.c (remove_pseudos): Check nrefs and make the function
15230         returning bool.
15231         (spill_pseudos): Delete debug insn for dead pseudo.
15232         (lra_spill): Initiate spill_hard_reg and slots memory separately.
15233
15234 2016-01-15  Jiong Wang  <jiong.wang@arm.com>
15235
15236         * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
15237         New.
15238         (TYPES_UNOPUS): Likewise.
15239         * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
15240         builtin type, from UNOP to UNOPUS.
15241         (lbtruncuv4sf): Likewise.
15242         (lbtruncuv2df): Likewise.
15243         (lrounduv2sf): Likewise.
15244         (lrounduv4sf): Likewise.
15245         (lrounduv2df): Likewise.
15246         (lroundusf): Likewise.
15247         (lroundusf): Likewise.
15248         (lceiluv2sf): Likewise.
15249         (lceiluv4sf): Likewise.
15250         (lceiluv2df): Likewise.
15251         (lceilusf): Likewise.
15252         (lceiludf): Likewise.
15253         (lflooruv2sf): Likewise.
15254         (lflooruv4sf): Likewise.
15255         (lflooruv2df): Likewise.
15256         (lfloorusf): Likewise.
15257         (lfloorudf): Likewise.
15258         (lfrintnuv2sf): Likewise.
15259         (lfrintnuv4sf): Likewise.
15260         (lfrintnuv2df): Likewise.
15261         (lfrintnusf): Likewise.
15262         (lfrintnudf): Likewise.
15263         * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
15264         conversion.
15265         (vcvtq_u32_f32): Likewise.
15266         (vcvtq_u64_f64): Likewise.
15267         (vcvta_u32_f32): Likewise.
15268         (vcvtaq_u32_f32): Likewise.
15269         (vcvtaq_u64_f64): Likewise.
15270         (vcvtm_u32_f32): Likewise.
15271         (vcvtmq_u32_f32): Likewise.
15272         (vcvtmq_u64_f64): Likewise.
15273         (vcvtn_u32_f32): Likwise.
15274         (vcvtnq_u32_f32): Likewise.
15275         (vcvtnq_u64_f64): Likewise.
15276         (vcvtp_u32_f32): Likewise.
15277         (vcvtpq_u32_f32): Likewise.
15278         (vcvtpq_u64_f64): Likewise.
15279         (vcvtmd_u64_f64): Likewise.
15280         (vcvtms_u32_f32): Likewise.
15281         (vcvtad_u64_f64): Likewise.
15282         (vcvtas_u32_f32): Likewise.
15283         (vcvtnd_u64_f64): Likewise.
15284         (vcvtns_u32_f32): Likewise.
15285         (vcvtpd_u64_f64): Likewise.
15286         (vcvtps_u32_f32): Likewise.
15287
15288 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15289
15290         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
15291         CSEL of zero_extended registers.
15292
15293 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15294
15295         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
15296         Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
15297
15298 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15299
15300         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
15301         false when argument string is not found in the attributes table
15302         at all.
15303
15304 2016-01-15  David Edelsohn  <dje.gcc@gmail.com>
15305
15306         PR target/68609
15307         * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
15308         (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
15309         * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
15310         precision estimate.
15311
15312 2016-01-15  Richard Biener  <rguenther@suse.de>
15313
15314         PR tree-optimization/66856
15315         * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
15316         * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
15317         (vect_create_new_slp_node): Increment stmt reference count.
15318         (vect_get_and_check_slp_defs): Make sure stmts are nor already in
15319         an SLP tree before swapping operands.
15320         (vect_build_slp_tree): Likewise.
15321         (destroy_bb_vec_info): Free stmt info after SLP instances.
15322         * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
15323         * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
15324         (STMT_VINFO_NUM_SLP_USES): New macro.
15325
15326 2016-01-15  Richard Biener  <rguenther@suse.de>
15327
15328         PR debug/69137
15329         * dwarf2out.c (add_linkage_name_raw): New function split out from ...
15330         (add_linkage_name): ... here.
15331         (gen_typedef_die): Use add_linkage_name_raw instead of
15332         add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
15333         if necessary.
15334
15335 2016-01-15  Cesar Philippidis  <cesar@codesourcery.com>
15336
15337         * gimplify.c (oacc_default_clause): Decode reference and pointer
15338         types for both kernels and parallel regions.
15339
15340 2016-01-15  Richard Sandiford  <richard.sandiford@arm.com>
15341
15342         PR middle-end/69246
15343         * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
15344
15345 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
15346
15347         * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
15348         (convert_scalars_to_vector): Likewise.
15349
15350 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
15351
15352         * doc/extend.texi (Type Traits): Fix grammar.
15353
15354 2016-01-15  Martin Jambor  <mjambor@suse.cz>
15355
15356         * tree-inline.c (remap_decl): Use existing dclarations if
15357         remapping a type and prevent_decl_creation_for_types.
15358         (replace_locals_stmt): Do an initial remapping of non-VLA typed
15359         decls first.  Do real remapping with
15360         prevent_decl_creation_for_types set.
15361         * tree-inline.h (copy_body_data): New field
15362         prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
15363         padding.
15364
15365 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
15366
15367         * config/s390/s390.opt (mmvcle): More verbose help text.
15368
15369 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
15370
15371         * config/s390/s390.opt: Add period to -mzvector option text.
15372
15373 2016-01-15  Richard Biener  <rguenther@suse.de>
15374
15375         PR tree-optimization/68961
15376         * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
15377         of invariants in stores again.
15378
15379 2016-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
15380
15381         * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
15382
15383 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
15384
15385         * config/i386/i386.c (ix86_expand_branch): Don't split
15386         DI mode xor instruction to SI mode.
15387
15388 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
15389
15390         PR ipa/68148
15391         * ipa-icf.c (sem_function::merge): Virtual functions may become
15392         reachable even if they address is not taken and there are no
15393         idrect calls.
15394
15395 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
15396
15397         * lto-streamer-out.c (subtract_estimated_size): New function.
15398         (get_symbol_initial_value): Use it.
15399
15400 2016-01-15  Christian Bruel  <christian.bruel@st.com>
15401
15402         PR target/65837
15403         * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
15404         (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
15405         (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
15406         use add_builtin_function_ext_scope instead of add_builtin_function.
15407         (neon_set_p, neon_crypto_set_p): Remove.
15408         (arm_init_builtins): Always call arm_init_neon_builtins and
15409         arm_init_crypto_builtins.
15410         (arm_expand_builtin): Check that builtins are allowed for the arch.
15411         * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
15412         * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
15413         arm_init_neon_builtins call.
15414
15415 2016-01-15  Richard Biener  <rguenther@suse.de>
15416
15417         PR tree-optimization/69117
15418         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
15419         * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
15420         of the leader conservatively.
15421         (free_scc_vn): Restore original SSA name infos.
15422
15423 2016-01-14  Jeff Law  <law@redhat.com>
15424
15425         PR tree-optimization/69270
15426         * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
15427         single bit of precision, verify it's also unsigned.
15428         (record_edge_info): Use constant_boolean_node rather than fold_convert
15429         to convert boolean_true/boolean_false to the right type.
15430
15431 2016-01-14  Richard Henderson  <rth@redhat.com>
15432
15433         PR rtl-opt/69014
15434         * loop-doloop.c (record_reg_sets): New.
15435         (doloop_optimize): Reject the transform if the sequence
15436         clobbers registers live at the end of the loop block.
15437         (doloop_optimize_loops): Enable df_live if needed.
15438
15439 2016-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
15440
15441         * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
15442         * config/rs6000/rs6000.c: Likewise.
15443         * config/rs6000/rs6000.h: Likewise.
15444         * config/rs6000/rs6000.md: Likewise.
15445         * doc/extend.texi: Likewsie.
15446
15447 2016-01-14  Jeff Law  <law@redhat.com>
15448
15449         * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
15450         typo.
15451
15452 2016-01-14  Richard Henderson  <rth@redhat.com>
15453
15454         PR c/69272
15455         PR tree-opt/68964
15456         * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
15457         * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
15458         instead of builtin_decl_declared_p to test for declaration.
15459
15460 2016-01-14  Nicklas Bo Jensen  <nbjensen@gmail.com>
15461
15462         * doc/loop.texi (Loop Analysis and Representation): Document
15463         loop_depth function.
15464
15465 2016-01-14  Tom de Vries  <tom@codesourcery.com>
15466
15467         PR tree-optimization/68773
15468         * omp-low.c (expand_omp_target): Don't set force_output.
15469         * varpool.c (varpool_node::get_create): Same.
15470         * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
15471         offload_funcs with force_output.
15472
15473 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
15474
15475         PR debug/69244
15476         * lra-eliminations.c (move_plus_up): Don't change anything if either
15477         the outer or inner subreg mode is not MODE_INT.
15478         * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
15479         integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
15480
15481 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
15482
15483         * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
15484         reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
15485         reduc_uplus_@var{m}): Remove.
15486         * expr.c (expand_expr_real_2): Remove expansion path for
15487         reduc_[us](min|max|plus) optabs.
15488         * optabs-tree.c (scalar_reduc_to_vector): Remove.
15489         * optabs-tree.h (scalar_reduc_to_vector): Remove.
15490         * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
15491         reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
15492         * tree-vect-loop.c (vectorizable_reduction): Remove test for
15493         reduc_[us](min|max|plus) optabs.
15494
15495 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
15496
15497         * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
15498         (reduc_plus_scal_v2sf): New.
15499         (reduc_smax_v2sf): Rename to...
15500         (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
15501         (reduc_smin_v2sf): Rename to...
15502         (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
15503
15504 2016-01-14  Jan Hubicka  <hubicka@ucw.cz>
15505
15506         * alias.c (compare_base_symbol_refs): New function.
15507         (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
15508         it.
15509
15510 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
15511
15512         PR middle-end/68146
15513         PR tree-optimization/69155
15514         * tree-complex.c: Include cfganal.h.
15515         (phis_to_revisit): New variable.
15516         (extract_component): Add phiarg_p argument.  Assert that returned
15517         SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
15518         (update_phi_components): Partly rewrite to use loop over real/imag
15519         components instead of code duplication.  If extract_component returns
15520         SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
15521         create_tmp_reg into the PHI node instead, and mention the phi triplet
15522         in phis_to_revisit.
15523         (tree_lower_complex): Walk bbs in rpo order.  Adjust phis recorded
15524         in phis_to_revisit at the end.
15525
15526 2016-01-14  Richard Biener  <rguenther@suse.de>
15527
15528         PR tree-optimization/68060
15529         * tree-vect-loop.c (vect_is_simple_reduction): Check the
15530         outer loop reduction is only used in the inner loop before
15531         detecting a double reduction.
15532
15533 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
15534
15535         PR target/68269
15536         * combine.c (expand_field_assignment): Punt if compute_mode is
15537         unsupported scalar mode.
15538
15539 2016-01-14  Richard Biener  <rguenther@suse.de>
15540
15541         PR tree-optimization/66856
15542         * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
15543         SLP node only if it built successfully.
15544         (vect_analyze_slp_instance): Adjust.
15545
15546 2016-01-14  Jeff Law  <law@redhat.com>
15547
15548         PR tree-optimization/69270
15549         * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
15550         (record_edge_info): Use it.  Convert boolean_{true,false}_node
15551         to the type of op0.
15552
15553 2016-01-13  Jan Hubicka  <hubicka@ucw.cz>
15554
15555         PR ipa/66487
15556         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
15557         use block_ultimate_origin
15558         (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
15559
15560 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
15561
15562         * doc/invoke.texi (Submodel Options): Rename section to
15563         "Machine-Dependent Options" to better reflect its content.
15564         Rewrite introductory text to remove archaic CPU names.
15565         Update references.
15566
15567 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
15568
15569         * doc/invoke.texi (Code Gen Options): Move section up in file,
15570         before target-specific options.  Update menu and option summary
15571         to reflect the new section ordering.
15572
15573 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
15574
15575         * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
15576         (C++ Dialect Options): Add cross-reference to -std option.
15577         * doc/standards.texi (C++ Language): Document C++14 support.
15578
15579 2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
15580
15581         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
15582         for pack/unpack functions for __ibm128.
15583         (PACK_IF): Likewise.
15584         (UNPACK_IF): Likewise.
15585
15586         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
15587         support for __ibm128 pack/unpack functions.
15588         (rs6000_invalid_builtin): Likewise.
15589         (rs6000_init_builtins): Likewise.
15590         (rs6000_opt_masks): Likewise.
15591
15592         * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
15593         (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
15594         functions
15595         (RS6000_BTM_COMMON): Likewise.
15596
15597         * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
15598         (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
15599         disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
15600         128-bit floating point.  Add support for the double values to be
15601         in Altivec registers for TF/IF packing and unpacking, but restrict
15602         TD packing sub-fields to be FPR registers.  Don't allow overlapped
15603         register support for packing.  Allow pack inputs to be memory
15604         locations.  Don't build generator functions for unpack<mode>_dm
15605         and unpack<mode>_nodm.
15606         (unpack<mode>_dm): Likewise.
15607         (unpack<mode>_nodm): Likewise.
15608         (pack<mode>): Likewise.
15609
15610         * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
15611         built-in functions to pack/unpack explicit __ibm128 values.
15612         (__builtin_unpack_ibm128): Likewise.
15613
15614         * doc/extend.texi (PowerPC Built-in Functions): Document
15615         __builtin_pack_ibm128 and __builtin_unpack_ibm128.
15616
15617 2016-01-13  Bernd Schmidt  <bschmidt@redhat.com>
15618
15619         PR c/66208
15620         * c-common.c (check_function_nonnull): Remove unnecessary declaration.
15621         Add new arg loc and pass it down as context.
15622         (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
15623         to the location to use for the warning.
15624         (check_function_arguments): New arg loc.  All callers changed.  Pass
15625         it to check_function_nonnull.
15626         * c-common.h (check_function_arguments): Adjust declaration.
15627
15628 2016-01-13  Jakub Jelinek  <jakub@redhat.com>
15629
15630         PR tree-optimization/69156
15631         * gimple.c (validate_type): Removed.
15632         (gimple_builtin_call_types_compatible_p): Use
15633         useless_type_conversion_p instead of validate_type.
15634         * value-prof.c (gimple_stringop_fixed_value): Fold
15635         icall_size to correct type.
15636
15637 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
15638
15639         * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
15640         effects.
15641
15642 2016-01-13  Richard Henderson  <rth@redhat.com>
15643
15644         PR tree-opt/68964
15645         * target.def (builtin_tm_load, builtin_tm_store): Remove.
15646         * config/i386/i386.c (ix86_builtin_tm_load): Remove.
15647         (ix86_builtin_tm_store): Remove.
15648         (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
15649         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
15650         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
15651         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
15652         * doc/tm.texi: Rebuild.
15653
15654         * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
15655         (BUILT_IN_TM_MEMCPY_RTWN): New.
15656         * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
15657         fallback from vector to integer helpers.
15658         (build_tm_load): Handle vector types directly, instead of
15659         via target hook.
15660         (build_tm_store): Likewise.
15661         (expand_assign_tm): Prepare for register types not handled by
15662         the above.  Copy them to memory and use memcpy.
15663         * tree.c (tm_define_builtin): New.
15664         (find_tm_vector_type): New.
15665         (build_tm_vector_builtins): New.
15666         (build_common_builtin_nodes): Call it.
15667
15668 2016-01-13  Uros Bizjak  <ubizjak@gmail.com>
15669
15670         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
15671         TARGET_SSE_MATH without TARGET_SSE2.  Rewrite.
15672
15673 2016-01-13  Tom de Vries  <tom@codesourcery.com>
15674
15675         PR tree-optimization/69169
15676         * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
15677         handled_struct_type param.
15678         (create_variable_info_for, intra_create_variable_infos): Call
15679         create_variable_info_for_1 with extra arg.
15680
15681 2016-01-13  Yvan Roux  <yvan.roux@linaro.org>
15682
15683         * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
15684         and "armv8.1-a+crc" entries.
15685
15686 2016-01-13  Alexander Fomin  <alexander.fomin@intel.com>
15687
15688         PR target/69228
15689         * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
15690         Change first operand predicate from register_or_constm1_operand
15691         to register_operand.
15692         (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
15693         (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
15694         (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
15695         (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
15696         (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
15697         (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
15698         (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
15699         * config/i386/i386.c (ix86_expand_builtin): Remove first operand
15700         comparison with constm1_rtx from vec_prefetch_gen part.
15701
15702 2016-01-13  Richard Biener  <rguenther@suse.de>
15703
15704         PR tree-optimization/69013
15705         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
15706         Exchange assert for a test.
15707
15708 2016-01-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15709
15710         PR target/69247
15711         * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
15712
15713 2016-01-13  Richard Biener  <rguenther@suse.de>
15714
15715         PR tree-optimization/69242
15716         * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
15717         assert with a check.
15718
15719 2016-01-13  Richard Biener  <rguenther@suse.de>
15720
15721         PR tree-optimization/69186
15722         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
15723         Properly guard vect_update_misalignment_for_peel call.
15724
15725 2016-01-12  Jeff Law  <law@redhat.com>
15726
15727         PR tree-optimization/pr67755
15728         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
15729         "need_profile_correction".
15730         (thread_block_1): Initialize new field to false by default.  If we
15731         have multiple thread paths through a common joiner to different
15732         final targets, then set new field to true.
15733         (compute_path_counts): Only do count adjustment when it's really
15734         needed.
15735
15736 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
15737
15738         * doc/invoke.texi (Spec Files): Move section down in file, past
15739         all command-line option descriptions.
15740
15741 2016-01-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15742
15743         PR middle-end/54809
15744         * doc/gty.texi: Remove documentation of mark_hook.
15745         * gengtype.c (struct write_types_data): Remove code to support
15746         mark_hook attribute.
15747         (walk_type): Likewise.
15748         (write_func_for_structure): Likewise.
15749
15750 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
15751
15752         * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
15753         Directory Options, and -specs= to Overall Options.
15754         (Overall Options): Adjust similarly.  Reorder to group related
15755         options together.  Make -specs= cross-reference the spec file details.
15756         (Directory Options): Adjust similarly.
15757
15758 2016-01-12  Jeff Law  <law@redhat.com>
15759
15760         * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
15761
15762 2016-01-12  Olivier Hainque  <hainque@adacore.com>
15763
15764         * gcc.c (spec_undefvar_allowed): New global.
15765         (process_command): Set to true when running for --version or --help,
15766         alone or together.
15767         (getenv_spec_function): When the variable is not defined, use the
15768         variable name as the variable value if we're allowed not to issue
15769         a fatal error.
15770
15771 2016-01-12  Bin Cheng  <bin.cheng@arm.com>
15772
15773         PR tree-optimization/68911
15774         * tree-vrp.c (adjust_range_with_scev): Check overflow in range
15775         information computed for expression "init + nit * step".
15776
15777 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
15778
15779         * doc/invoke.texi (Invoking GCC): Copy-edit.  Incorporate information
15780         about name of GCC executable.  Remove deleted node from menu.
15781         (Directory Options) <-B>: Remove cross-reference to deleted node.
15782         (Target Options): Delete section.
15783
15784 2016-01-12  Christian Bruel  <christian.bruel@st.com>
15785
15786         PR target/69180
15787         * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
15788         for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
15789
15790 2016-01-12  Jakub Jelinek  <jakub@redhat.com>
15791
15792         PR target/69198
15793         * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
15794         aligned_mem is properly set for AVX512-VL floating point masked
15795         stores.
15796
15797         PR target/69175
15798         * ifcvt.c (cond_exec_process_if_block): When removing the last
15799         insn from then_bb, remove also any possible barriers that follow it.
15800
15801 2016-01-12  H.J. Lu  <hongjiu.lu@intel.com>
15802
15803         PR target/68456
15804         PR target/69226
15805         * config/i386/iamcu.h (SIZE_TYPE): New macro.
15806         (PTRDIFF_TYPE): Likewise.
15807         (WCHAR_TYPE): Likewise.
15808         (WCHAR_TYPE_SIZE): Likewise.
15809         (STDINT_LONG32): Likewise.
15810
15811 2016-01-12  Richard Biener  <rguenther@suse.de>
15812
15813         PR tree-optimization/69053
15814         * tree-vect-loop.c (get_initial_def_for_reduction): Properly
15815         convert initial value for cond reductions.
15816
15817 2016-01-12  Richard Biener  <rguenther@suse.de>
15818
15819         PR tree-optimization/69007
15820         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
15821         widen_sum after dot_prod and sad.
15822
15823 2016-01-12  Richard Biener  <rguenther@suse.de>
15824
15825         PR tree-optimization/69168
15826         * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
15827         pattern stmt SLP type.
15828         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
15829         end up unused so cope with that case.
15830
15831 2016-01-12  Richard Biener  <rguenther@suse.de>
15832
15833         PR tree-optimization/69157
15834         * tree-vect-stmts.c (vectorizable_mask_load_store): Check
15835         stmts def type only during analyze phase.
15836         (vectorizable_call): Likewise.
15837         (vectorizable_simd_clone_call): Likewise.
15838         (vectorizable_conversion): Likewise.
15839         (vectorizable_assignment): Likewise.
15840         (vectorizable_shift): Likewise.
15841         (vectorizable_operation): Likewise.
15842         (vectorizable_store): Likewise.
15843         (vectorizable_load): Likewise.
15844
15845 2016-01-12  Richard Biener  <rguenther@suse.de>
15846
15847         PR tree-optimization/69174
15848         * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
15849         space.
15850         (vectorizable_load): Properly compute the number of loads needed
15851         for permuted strided SLP loads and do not spuriously assign
15852         to SLP_TREE_VEC_STMTS.
15853
15854 2016-01-12  Andris Pavenis  <andris.pavenis@iki.fi>
15855
15856         * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
15857         (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
15858         (MD_EXEC_PREFIX): Remove.
15859         (MD_STARTFILE_PREFIX) Removee.
15860         (FILE_NAME_ABSOLUTE_P): Remove.
15861         (CPP_SPEC): Do not read macros from sys/version.h.
15862         (LINK_COMMAND_SPEC): Remove.
15863         (LOCAL_INCLUDE_DIR): Remove.
15864         (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
15865         (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
15866         (POST_LINK_SPEC): Define to invoke stubify after linker
15867         (LIBSTDCXX): Remove define
15868         (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
15869         (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
15870         (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
15871         (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
15872         (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
15873         (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
15874         (i386_djgpp_asm_named_section): Add propotype of new procedure
15875
15876         * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
15877         (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
15878         (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
15879         in config/i386/djgpp.h).
15880         (STANDARD_STARTFILE_PREFIX_2): Define identical to
15881         STANDARD_STARTFILE_PREFIX_1.
15882         (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
15883         (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
15884         installation errors.
15885         (MAX_OFILE_ALIGNMENT): Define to 128.
15886         (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
15887
15888         * config/i386/djgpp.c: New file. Add implementation of
15889         i386_djgpp_asm_named_section.
15890
15891         * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
15892
15893         * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
15894         Add rule for building djgpp.o.
15895
15896 2016-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15897
15898         * config/rs6000/rs6000.c (v2df_reduction_p): New function.
15899         (rtx_is_swappable_p): Reductions are swappable.
15900         (insn_is_swappable_p): V2DF reductions are swappable.
15901
15902 2016-01-11  John David Anglin  <danglin@gcc.gnu.org>
15903
15904         * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
15905         reloads for other unsupported memory operands.
15906
15907 2016-01-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
15908             Jim Wilson  <jim.wilson@linaro.org>
15909
15910         PR target/69194
15911         * config/arm/arm-builtins.c (arm_expand_neon_args): Call
15912         copy_to_mode_reg instead of force_reg.
15913
15914 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
15915
15916         PR target/69225
15917         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
15918         TARGET_80387 is true.
15919
15920 2016-01-11  Jakub Jelinek  <jakub@redhat.com>
15921
15922         PR target/69071
15923         * lra-eliminations.c (move_plus_up): Only move plus up
15924         if subreg of the constant can be simplified into constant
15925         and use the simplified subreg of the constant instead of
15926         the original constant.
15927
15928         * fold-const.c (fold_convertible_p): Don't return true
15929         for conversion of VECTOR_TYPE to same sized integral type.
15930         (fold_convert_loc): Fix up formatting.  Fold conversion of
15931         VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
15932         instead of NOP_EXPR.
15933
15934         PR tree-optimization/69214
15935         * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
15936         innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
15937         Formatting fix.
15938
15939         PR tree-optimization/69207
15940         * tree-vect-slp.c (vect_get_constant_vectors): For
15941         VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
15942         fold_convertible_p to vector_type's element type, and always
15943         use VCE for non-VECTOR_BOOLEAN_TYPE_P.
15944
15945 2016-01-11  Richard Biener  <rguenther@suse.de>
15946
15947         PR tree-optimization/69173
15948         * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
15949         fixup the cycle if all stmts are in a pattern.
15950
15951 2016-01-11  Uros Bizjak  <ubizjak@gmail.com>
15952
15953         PR middle-end/68999
15954         * alias.c (base_alias_check): Move check for addresses with
15955         alignment ANDs before the call for compare_base_decls.
15956         (memrefs_conflict_p): Return -1 for different decls
15957         that went through alignment adjustments.
15958
15959 2016-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15960
15961         PR rtl-optimization/68796
15962         * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
15963         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
15964         and QImode comparisons against zero with CC_NZmode.
15965         * config/aarch64/iterators.md (short_mask): New mode_attr.
15966
15967 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
15968
15969         * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
15970         (<avx512>_store<mode>_mask): Likewise.
15971
15972 2016-01-11  Bernd Schmidt  <bschmidt@redhat.com>
15973             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15974
15975         PR rtl-optimization/68841
15976         * ifcvt.c (struct noce_if_info): Add orig_x field.
15977         (bbs_ok_for_cmove_arith): Add to_rename parameter.
15978         Don't record conflicts on to_rename if it's present.
15979         Allow memory destinations in sets.
15980         (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
15981         blocks, passing orig_x to the checks.
15982         (noce_process_if_block): Set if_info->orig_x appropriately.
15983
15984 2016-01-11  Tom de Vries  <tom@codesourcery.com>
15985
15986         PR tree-optimization/69069
15987         * tree-parloops.c (create_parallel_loop): Add missing phi args.
15988
15989 2016-01-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
15990
15991         PR rtl-optimization/68920
15992         * config/i386/i386.c (ix86_option_override_internal): Restrict number
15993         of conditional moves for  RTL if-conversion to 1 for
15994         TARGET_ONE_IF_CONV_INSN.
15995         * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
15996         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
15997         * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
15998         parameter to restirct number of conditional moves for
15999         RTL if-conversion.
16000         * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
16001         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
16002         conditionl moves.
16003
16004 2016-01-11  Alexandre Oliva  <aoliva@redhat.com>
16005
16006         PR bootstrap/69123
16007         * var-tracking.c (drop_overlapping_mem_locs): Operate on all
16008         onepart vars.  Fix typo in comment.  Fix reversed condition in
16009         unshare test.
16010         (dataflow_set_remove_mem_locs): Operate on all onepart vars.
16011
16012         PR bootstrap/69123
16013         * var-tracking.c (dump_onepart_variable_differences): New.
16014         (dataflow_set_different): If a detailed dump is requested,
16015         delay early returns and dump differences between onepart
16016         variables present before and after, and added variables.
16017
16018 2016-01-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
16019
16020         PR target/69010
16021         * expr.c (expand_expr_real_1): For boolean vector constants
16022         with a scalar mode use const_scalar_mask_from_tree.
16023         (const_scalar_mask_from_tree): New.
16024         * optabs.c (expand_vec_cond_mask_expr): Use mask mode
16025         assigned to a mask type to handle constants.
16026
16027 2016-01-11  Martin Jambor  <mjambor@suse.cz>
16028
16029         PR ipa/69044
16030         * ipa-cp.c (estimate_local_effects): Do not clone for removal of
16031         useless parameters if we cannot change function signature.
16032
16033 2016-01-11  Martin Jambor  <mjambor@suse.cz>
16034
16035         PR ipa/66616
16036         * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
16037         flag.
16038
16039 2016-01-11  Tom de Vries  <tom@codesourcery.com>
16040
16041         PR tree-optimization/69109
16042         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
16043         latch with phi.
16044
16045 2016-01-11  Tom de Vries  <tom@codesourcery.com>
16046
16047         PR tree-optimization/69108
16048         * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
16049         res is not used in a phi.
16050
16051 2016-01-11  Yury Gribov  <y.gribov@samsung.com>
16052
16053         PR 67425
16054         * common.opt (frandom-seed): Fix parameter name.
16055         * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
16056
16057 2016-01-11  Tom de Vries  <tom@codesourcery.com>
16058
16059         PR tree-optimization/69058
16060         * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
16061         not supported.
16062
16063 2016-01-11  Andrew Burgess  <andrew.burgess@embecosm.com>
16064
16065         * config/arc/arc.opt (mdiv-rem): Add period to the end.
16066         (mcode-density): Likewise.
16067
16068 2016-01-10  Tom de Vries  <tom@codesourcery.com>
16069
16070         PR tree-optimization/69062
16071         * tree-parloops.c (loop_has_phi_with_address_arg): New function.
16072         (parallelize_loops): Don't paralelize loop that has phi with address
16073         arg.
16074
16075 2016-01-10  Tom de Vries  <tom@codesourcery.com>
16076
16077         PR tree-optimization/69039
16078         * tree-parloops.c (try_create_reduction_list): Only allow single exit
16079         phi for reduction.
16080
16081 2016-01-09  John David Anglin  <danglin@gcc.gnu.org>
16082
16083         PR middle-end/68743
16084         * match.pd: Require target has function_c99_misc before doing
16085         truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
16086
16087 2016-01-09  Gerald Pfeifer  <gerald@pfeifer.com>
16088
16089         * configure.ac (isl_options_set_schedule_serialize_sccs): Also
16090         use GMPINC.
16091         * configure: Regenerate.
16092
16093 2016-01-09  Jakub Jelinek  <jakub@redhat.com>
16094
16095         PR middle-end/50865
16096         PR tree-optimization/69097
16097         * fold-const.h (expr_not_equal_to): New prototype.
16098         * fold-const.c: Include stringpool.h and tree-ssanames.h.
16099         (expr_not_equal_to): New function.
16100         * match.pd (X % -Y is the same as X % Y): Don't optimize
16101         unless X is known not to be equal to minimum or Y is known
16102         not to be equal to -1.
16103         * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
16104         fold TRUNC_MOD_EXPR if the second argument is not a power of two.
16105         (simplify_stmt_using_ranges): Adjust caller.
16106         (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
16107         substitute_and_fold.
16108
16109 2016-01-09  Jan Hubicka  <hubicka@ucw.cz>
16110
16111         * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
16112         w/o DECL_NAME.
16113
16114 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
16115
16116         PR tree-optimization/69167
16117         * gimple-fold.c (replace_stmt_with_simplification): Also punt if
16118         new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
16119         ops[0] comparison.
16120         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
16121
16122 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
16123             Richard Biener  <rguenther@suse.de>
16124
16125         PR tree-optimization/68707
16126         * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
16127         instances that can be handled via vect_load_lanes.
16128
16129 2016-01-08  Uros Bizjak  <ubizjak@gmail.com>
16130
16131         * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
16132         if we can't determine address equivalence.
16133         * alias.c (compare_base_decl): Update for changed return value of
16134         symtab_node::equal_address_to.
16135
16136 2016-01-08  Jason Merrill  <jason@redhat.com>
16137
16138         PR c++/68983
16139         PR c++/67557
16140         * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
16141         * expr.c (store_field): Not here.
16142         * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
16143         call with TREE_ADDRESSABLE type.
16144         * tree-cfg.c (verify_gimple_call): Adjust.
16145
16146 2016-01-08  Olivier Hainque  <hainque@adacore.com>
16147
16148         * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
16149         libc_internal.
16150
16151 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
16152
16153         * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
16154         (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
16155         (reduc_smin_v2sf): Rename to...
16156         (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
16157         (reduc_splus_v2sf): Rename to...
16158         (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
16159
16160 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
16161
16162         PR tree-optimization/69162
16163         * gimplify.c (gimplify_va_arg_expr): Encode original type of
16164         valist argument in another argument.
16165         (gimplify_modify_expr): Adjust for the above change.  Cleanup.
16166         * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
16167         to determine the va_list type, build a MEM_REF instead of
16168         build_fold_indirect_ref.
16169
16170         PR tree-optimization/69172
16171         * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
16172         gimple_build.
16173
16174 2016-01-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16175
16176         PR tree-optimization/67781
16177         * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
16178         and cmpnop in two steps: first the ones not accessed in original
16179         gimple expression in a endian independent way and then the ones not
16180         accessed in the final result in an endian-specific way.
16181
16182 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
16183
16184         PR tree-optimization/69083
16185         * tree-vect-slp.c (vect_get_constant_vectors): For
16186         VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
16187         element type.  If op is fold_convertible_p to vector_type's element
16188         type, use NOP_EXPR instead of VCE.
16189
16190 2016-01-08  Segher Boessenkool  <segher@kernel.crashing.org>
16191
16192         PR rtl-optimization/67778
16193         PR rtl-optimization/68634
16194         PR rtl-optimization/68909
16195         * shrink-wrap.c (try_shrink_wrapping): Add comment.  Don't pop
16196         block from the stack until done with it.  Remove a superfluous
16197         bitmap set.  Remove a superfluous bitmap test.
16198
16199 2016-01-07  Martin Sebor  <msebor@redhat.com>
16200
16201         PR c/68966
16202         * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
16203         constraint on the type of arguments.
16204
16205 2016-01-07  Andreas Tobler  <andreast@gcc.gnu.org>
16206
16207         * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
16208         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
16209         unaligned_access on the gcc_options set.
16210         * config/arm/arm.c (arm_option_override_internal): Use
16211         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
16212
16213 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
16214
16215         PR target/69140
16216         * config/i386/i386.c (ix86_frame_pointer_required): Enable
16217         frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
16218
16219 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
16220
16221         Revert
16222         2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
16223
16224         PR target/69140
16225         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
16226         depending on frame_pointer_needed before remaining integer and SSE
16227         registers are saved.
16228
16229 2016-01-07  Sandra Loosemore  <sandra@codesourcery.com>
16230
16231         PR 1078
16232         * doc/extend.texi (Nvidia PDX Function Attributes): New section.
16233
16234 2016-01-07  H.J. Lu  <hongjiu.lu@intel.com>
16235
16236         PR target/69171
16237         * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
16238         Use the "xBm" constraint.
16239         (float<sseintvecmodelower><mode>2<mask_name><round_name):
16240         Likewise.
16241         (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
16242         (sse_cvtsi2ssq<round_name>): Likewise.
16243         (sse_cvtss2si<round_name>): Likewise.
16244         (sse_cvtss2siq<round_name>): Likewise.
16245         (sse2_cvtsi2sdq<round_name>): Likewise.
16246         (sse2_cvtsd2si<round_name>): Likewise.
16247         (sse2_cvtsd2siq<round_name>): Likewise.
16248         * config/i386/subst.md (round_nimm_scalar_predicate): New
16249         predicate.
16250
16251 2015-12-15  Bernd Schmidt  <bschmidt@redhat.com>
16252
16253         PR middle-end/67639
16254         * varasm.c (make_decl_rtl): Mark invalid register vars as
16255         DECL_EXTERNAL.
16256
16257         PR rtl-optimization/66206
16258         * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
16259         All callers changed.
16260
16261 2016-01-07  Jakub Jelinek  <jakub@redhat.com>
16262
16263         PR tree-optimization/69141
16264         * tree-ssa-pre.c: Include langhooks.h.
16265         (eliminate_dom_walker::before_dom_children): Use
16266         lang_hooks.decl_printable_name instead of
16267         cgraph_node::get ()->name ().
16268
16269         PR middle-end/68960
16270         * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
16271         it and DECL_ALIGN too.
16272
16273 2016-01-06  Robert Suchanek  <robert.suchanek@imgtec.com>
16274
16275         * config/mips/mips-ftypes.def: Sort to lexicographical order.
16276
16277 2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
16278
16279         PR target/69140
16280         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
16281         depending on frame_pointer_needed before remaining integer and SSE
16282         registers are saved.
16283
16284 2015-01-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16285
16286         * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
16287         mode iterator with VSX_M2.
16288         (*p9_vecstore_<mode>): Likewise.
16289         (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
16290         (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
16291         (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
16292         (define_split for VSX_LE128 stores): Likewise.
16293         (define_peephole2 for TImode LE swaps): Likewise.
16294         (define_split for VSX_LE128 post-reload stores): Likewise.
16295
16296 2016-01-06  Marek Polacek  <polacek@redhat.com>
16297
16298         PR sanitizer/69099
16299         * convert.c (convert_to_integer_1): Adjust call to
16300         ubsan_instrument_float_cast.  Use NULL_TREE instead of NULL.
16301         * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter.  Use
16302         EXPR instead of ARG.
16303         * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
16304
16305 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
16306
16307         PR 1078
16308         * doc/extend.texi (RL78 Variable Attributes): New section.
16309
16310 2016-01-05  Marek Polacek  <polacek@redhat.com>
16311
16312         PR c/69104
16313         * builtins.c (get_memmodel): Use expansion point location rather than
16314         the input location.  Call warning_at rather than warning.
16315         (expand_builtin_atomic_compare_exchange): Likewise.
16316         (expand_builtin_atomic_load): Likewise.
16317         (expand_builtin_atomic_store): Likewise.
16318         (expand_builtin_atomic_clear): Likewise.
16319
16320 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
16321
16322         PR target/68991
16323         * config/i386/i386.c (ix86_expand_vector_logical_operator):
16324         Replace nonimmediate_operand with vector_operand.
16325         * config/i386/predicates.md (vector_operand): New predicate.
16326         (general_vector_operand): Replace nonimmediate_operand with
16327         vector_operand.
16328         * config/i386/sse.md: Replace nonimmediate_operand with
16329         vector_operand and m constraint with Bm constraint on SSE
16330         patterns with 16-byte memory operand.
16331         * config/i386/subst.md (round_nimm_predicate): Replace
16332         nonimmediate_operand with vector_operand.
16333         (round_saeonly_nimm_predicate): Likewise.
16334         (round_saeonly_nimm_scalar_predicate): New.
16335
16336 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
16337
16338         PR target/68991
16339         * config/i386/constraints.md (Bm): New constraint.
16340         * config/i386/predicates.md (vector_memory_operand): New
16341         predicate.
16342         * config/i386/sse.md: Replace xm with xBm in plusminus and
16343         any_logic patterns.
16344
16345 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
16346
16347         PR 1078
16348         * doc/extend.texi (V850 Function Attributes): New section.
16349         (V850 Variable Attributes): New section.
16350
16351 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
16352
16353         PR 1078
16354         * doc/extend.texi (MicroBlaze Function Attributes): Document
16355         interrupt_handler and fast_interrupt attributes.
16356
16357 2016-01-05  Sergei Trofimovich  <siarheit@google.com>
16358
16359         PR other/60465
16360         * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
16361         for local symbolic operands.
16362         * config/ia64/predicates.md (local_symbolic_operand64): New
16363         predicate.
16364
16365 2016-01-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16366
16367         PR rtl-optimization/68651
16368         * combine.c (combine_simplify_rtx): Canonicalize x + x into
16369         x << 1.
16370
16371 2016-01-05  Nathan Sidwell  <nathan@acm.org>
16372
16373         * alias.c (compare_base_decls): Use symtab_node::get.
16374
16375 2016-01-05  Nick Clifton  <nickc@redhat.com>
16376
16377         PR target/68770
16378         * ira-costs.c (copy_cost): Initialise the t_icode field of the
16379         secondary_reload_info structure.
16380
16381         PR target/66655
16382         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
16383         decls if weak support is available.
16384
16385 2016-01-04  Martin Sebor  <msebor@redhat.com>
16386
16387         * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
16388
16389 2016-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
16390
16391         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
16392         OPTION_MASK_P9_DFORM.
16393
16394         * config/rs6000/constraints.md (wo constraint): New constraint for
16395         ISA 3.0 (power9).
16396
16397         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
16398         for wo constraint.
16399         (rs6000_init_hard_regno_mode_ok): Likewise.
16400
16401         * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
16402         wo constraint.
16403
16404         * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
16405         expanders not to have constraints.  Add support for ISA 3.0 xxperm
16406         instruction.  Add support for fusing xxlor with xxperm.
16407         (altivec_vperm_<mode>_internal): Likewise.
16408         (altivec_vperm_v8hiv16qi): Likewise.
16409         (altivec_vperm_<mode>v16q): Likewise.
16410         (altivec_vperm_<mode>_uns): Likewise.
16411         (vperm_v8hiv4si): Likewise.
16412         (vperm_v16qiv8hi): Likewise.
16413
16414         * doc/md.texi (RS/6000 constraints): Document wo constraint.
16415
16416 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
16417
16418         Update copyright years.
16419
16420         * gcc.c (process_command): Update copyright notice dates.
16421         * gcov-dump.c (print_version): Ditto.
16422         * gcov.c (print_version): Ditto.
16423         * gcov-tool.c (print_version): Ditto.
16424         * gengtype.c (create_file): Ditto.
16425         * doc/cpp.texi: Bump @copying's copyright year.
16426         * doc/cppinternals.texi: Ditto.
16427         * doc/gcc.texi: Ditto.
16428         * doc/gccint.texi: Ditto.
16429         * doc/gcov.texi: Ditto.
16430         * doc/install.texi: Ditto.
16431         * doc/invoke.texi: Ditto.
16432
16433 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
16434
16435         * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
16436         modes larger than TImode as TImode if NEON is not enabled.
16437
16438 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
16439
16440         PR target/69100
16441         * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
16442         mode for %f0-%f31 only if TARGET_FPU.
16443
16444 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
16445
16446         PR target/69072
16447         * config/sparc/sparc.c (scan_record_type): Take into account subfields
16448         to compute the PACKED_P predicate.
16449         (function_arg_record_value): Minor tweaks.
16450
16451 2016-01-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16452
16453         * doc/install.texi (--with-multilib-list): Describe the meaning of the
16454         option for arm*-*-* targets.
16455
16456 2016-01-03  Sandra Loosemore  <sandra@codesourcery.com>
16457
16458         * doc/extend.texi (Common Function Attributes): Move docs for
16459         MSP430-specific attributes to....
16460         (MSP430 Function Attributes): ...here.  Delete the redundant
16461         entries and copy-edit the remaining text.
16462         (MSP430 Variable Attributes): Use uniform format for index
16463         entries and add a cross-reference to the corresponding function
16464         attribute docs.
16465
16466 2016-01-03  Vladimír Čunát  <vcunat@gmail.com>
16467
16468         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
16469         -finite-math typo.
16470         (x86 Options): Likewise.
16471
16472 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
16473
16474         PR 1078
16475
16476         * extend.texi (Common Function Attributes) <no_stack_limit>: New.
16477         * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
16478         to corresponding attribute.
16479
16480 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
16481
16482         * doc/extend.texi (Common Function Attributes) <noplt>: Move
16483         to correct alphabetization of table.  Copy-edit and correct
16484         markup.
16485         <stack_protect>: Likewise.
16486         <target_clones>: Likewise.
16487         <simd>: Likewise.
16488         * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
16489         Correct punctuation.
16490         (Code Gen Options) <-fno-plt>: Copy-edit.
16491
16492 2016-01-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
16493
16494         PR target/68917
16495         * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
16496         SI values.  Explicitly convert SI to DI and vice-versa.
16497
16498 2016-01-01  Jakub Jelinek  <jakub@redhat.com>
16499
16500         PR tree-optimization/69070
16501         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
16502         REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
16503
16504         PR sanitizer/69055
16505         * ubsan.c (ubsan_instrument_float_cast): Call
16506         initialize_sanitizer_builtins.
16507
16508         PR target/69015
16509         * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
16510 \f
16511 Copyright (C) 2016 Free Software Foundation, Inc.
16512
16513 Copying and distribution of this file, with or without modification,
16514 are permitted in any medium without royalty provided the copyright
16515 notice and this notice are preserved.