[AArch64] Add initial support for Cortex-A73
[platform/upstream/gcc.git] / gcc / ChangeLog
1 2016-06-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2
3         * config/aarch64/aarch64.c (cortexa73_tunings): New struct.
4         * config/aarch64/aarch64-cores.def (cortex-a73): New entry.
5         (cortex-a73.cortex-a35): Likewise.
6         (cortex-a73.cortex-a53): Likewise.
7         * config/aarch64/aarch64-tune.md: Regenerate.
8         * doc/invoke.texi (AArch64 Options): Document cortex-a73,
9         cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to
10         -mcpu and -mtune.
11
12 2016-06-21  Andrew Burgess  <andrew.burgess@embecosm.com>
13
14         * bb-reorder.c (pass_partition_blocks::gate): Update comment.
15
16 2016-06-21  John David Anglin  <danglin@gcc.gnu.org>
17
18         * gcov-tool.c (profile_rewrite): Use int64_t instead of long long.
19         (do_rewrite): likewise.
20
21 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
22
23         * common/config/mep/mep-common.c: Remove.
24         * config.gcc: Remove mep-* support.
25         * config/mep/constraints.md: Remove.
26         * config/mep/default.h: Remove.
27         * config/mep/intrinsics.h: Remove.
28         * config/mep/intrinsics.md: Remove.
29         * config/mep/ivc2-template.h: Remove.
30         * config/mep/mep-c5.cpu: Remove.
31         * config/mep/mep-core.cpu: Remove.
32         * config/mep/mep-default.cpu: Remove.
33         * config/mep/mep-ext-cop.cpu: Remove.
34         * config/mep/mep-intrin.h: Remove.
35         * config/mep/mep-ivc2.cpu: Remove.
36         * config/mep/mep-pragma.c: Remove.
37         * config/mep/mep-protos.h: Remove.
38         * config/mep/mep.c: Remove.
39         * config/mep/mep.cpu: Remove.
40         * config/mep/mep.h: Remove.
41         * config/mep/mep.md: Remove.
42         * config/mep/mep.opt: Remove.
43         * config/mep/predicates.md: Remove.
44         * config/mep/t-mep: Remove.
45         * doc/install.texi: Remove mep-* documentation.
46         * doc/md.texi: Likewise.
47
48 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
49
50         * config.gcc: Remove support for avr-rtems.
51         * config/avr/gen-avr-mmcu-specs.c: Likewise.
52         * config/avr/rtems.h: Remove.
53         * config/avr/t-rtems: Remove.
54
55 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
56
57         * config.gcc: Remove m32r-rtems support.
58         * config/m32r/rtems.h: Remove.
59
60 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
61
62         * config.gcc: Remove h8300-rtems support.
63         * config/h8300/rtems.h: Remove.
64         * config/h8300/t-rtems: Remove.
65
66 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
67
68         * config.gcc: Remove support for knetbsd.
69         * configure.ac: Likewise.
70         * config/i386/knetbsd-gnu.h: Remove.  * config/i386/knetbsd-gnu64.h: Remove.
71         * config/knetbsd-gnu.h: Remove.
72         * configure: Regenerate.
73
74 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
75
76         * config.gcc: Remove support for openbsd 2 and 3.
77         * config/openbsd-oldgas.h: Remove.
78
79 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
80
81         * config.gcc: Remove interix support.
82         * config/i386/i386-interix.h: Remove.
83         * config/i386/interix.opt: Remove.
84         * config/i386/t-interix: Remove.
85         * configure: Regenerate.
86         * configure.ac: Remove interix support.
87         * doc/install.texi: Remove interix documentation.
88
89 2016-06-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
90
91         * config/rs6000/rs6000.h: Add conditional preprocessing directives
92         to disable Power9-specific compiler features if HAVE_AS_POWER9 is
93         not defined.
94
95 2016-06-21  Eric Botcazou  <ebotcazou@adacore.com>
96
97         * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if
98         they are both PLACEHOLDER_EXPRs.
99
100 2016-06-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
101
102         * stor-layout.c (layout_type): Move setting complex MODE to
103         layout_type, instead of setting it ahead of time by the caller.
104         * tree.c (build_complex_type): Likewise.
105
106 2016-06-21  Martin Liska  <mliska@suse.cz>
107
108         * predict.c (force_edge_cold): Replace imposisble with
109         impossible.
110
111 2016-06-21  Ilya Verbin  <ilya.verbin@intel.com>
112
113         * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
114         * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
115
116 2016-06-21  Ilya Verbin  <ilya.verbin@intel.com>
117
118         * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
119
120 2016-06-21  H.J. Lu  <hongjiu.lu@intel.com>
121             Ilya Enkovich  <ilya.enkovich@intel.com>
122
123         PR target/71549
124         * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
125         New member function to convert V1TImode register to SUBREG
126         TImode in debug insn.
127         (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses
128         after changing register mode to V1TImode.
129
130 2016-06-21  Virendra Pathak  <virendra.pathak@broadcom.com>
131
132         * config/aarch64/aarch64-cores.def (vulcan): New core.
133         * config/aarch64/aarch64-tune.md: Regenerate.
134         * doc/invoke.texi: Document vulcan as an available option.
135
136 2016-06-21  Eric Botcazou  <ebotcazou@adacore.com>
137
138         * cse.c (canon_asm_operands): New function extracted from...
139         (canonicalize_insn): ...here.  Call it to canonicalize an ASM_OPERANDS
140         either standalone or member of a PARALLEL.
141
142 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
143
144         PR target/30417
145         * config/avr/gen-avr-mmcu-specs.c (print_mcu):
146         [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
147         [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
148
149 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
150
151         PR target/71103
152         * config/avr/avr.md (movqi): Only handle loading subreg:qi of
153         constant addresses if can_create_pseudo_p.
154
155 2016-06-21  Jakub Jelinek  <jakub@redhat.com>
156
157         PR tree-optimization/71588
158         * tree-ssa-strlen.c (valid_builtin_call): New function.
159         (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
160         it.
161
162 2016-06-20  Jakub Jelinek  <jakub@redhat.com>
163
164         PR middle-end/71581
165         * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
166         see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
167         for conversion of scalar user var to complex type and use the
168         underlying SSA_NAME_VAR in that case.  If EXPR is still NULL,
169         punt.
170
171         PR rtl-optimization/71591
172         * toplev.c (toplev::run_self_tests): If no_backend, complain and
173         don't run any tests.
174
175 2016-06-20  Hans-Peter Nilsson  <hp@axis.com>
176
177         PR target/71571
178         * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
179         delay-slot "nop" for PIC with CRIS v32.  Also add missing leading
180         space for PIC with non-v32 and the common non-PIC "jump".
181
182 2016-06-20  Jakub Jelinek  <jakub@redhat.com>
183
184         PR target/71559
185         * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
186         returned values and add UN*/LTGT/*ORDERED cases with values matching
187         D operand modifier on vcmp for AVX.
188
189 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
190
191         * config/aarch64/aarch64.opt
192         (mpc-relative-literal-loads): Rename internal option name.
193         * config/aarch64/aarch64.c
194         (aarch64_nopcrelative_literal_loads): Rename to
195         aarch64_pcrelative_literal_loads.
196         (aarch64_expand_mov_immediate): Likewise.
197         (aarch64_secondary_reload): Likewise.
198         (aarch64_can_use_per_function_literal_pools_p): Likewise.
199         (aarch64_override_options_after_change_1): Rename and simplify logic.
200         (aarch64_classify_symbol): Merge large model checks into switch,
201         remove pc-relative load check.
202
203 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
204
205         * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
206         costs relative to the cost of a register move.
207
208 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
209
210         * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
211         (vcvt_n_f64_u64): Likewise.
212         (vcvt_n_s64_f64): Likewise.
213         (vcvt_n_u64_f64): Likewise.
214         (vcvt_f64_s64): Likewise.
215         (vrecpe_f64): Likewise.
216         (vcvt_f64_u64): Likewise.
217         (vrecps_f64): Likewise.
218
219 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
220
221         * config/aarch64/aarch64.md
222         (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
223         iterators.
224         (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise.  Correct
225         attributes.
226         * config/aarch64/aarch64-builtins.c
227         (aarch64_types_binop_uss_qualifiers): Delete.
228         (TYPES_BINOP_USS): Likewise.
229         (aarch64_types_binop_sus_qualifiers): Likewise.
230         (TYPES_BINOP_SUS): Likewise.
231         (aarch64_types_fcvt_from_unsigned_qualifiers): New.
232         (TYPES_FCVTIMM_SUS): Likewise.
233         * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
234         rather than BINOP.
235         (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
236         (fcvtzs): Use SHIFTIMM rather than BINOP.
237         (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.
238
239 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
240
241         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
242         costs relative to the cost of a register move.
243
244 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
245
246         * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
247         Allow scalar/single vector modes to be tieable.
248
249 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
250
251         * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
252
253 2016-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
254
255         * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
256         "alignement".
257         * tree.h (TYPE_ALIGN): Likewise.
258
259 2016-06-20  Georg-Johann Lay  <avr@gjlay.de>
260
261         PR target/71103
262         * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
263
264 2016-06-20  Georg-Johann Lay  <avr@gjlay.de>
265
266         * config/avr/avr.c (avr_print_operand): Fix "format not a string
267         literal" build warnings.
268         (avr_print_operand_address): Dito.
269
270 2016-06-19  David Edelsohn  <dje.gcc@gmail.com>
271
272         PR target/71375
273         * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
274         * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
275
276 2016-06-18  John David Anglin  <danglin@gcc.gnu.org>
277
278         * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
279
280 2016-06-18  Eric Botcazou  <ebotcazou@adacore.com>
281
282         PR bootstrap/71435
283         * reload1.c (reload): Pass 0 to finish_spills when called because
284         update_eliminables_and_spill returns true and remove did_spill.
285         (finish_spills): Adjust comment and document GLOBAL parameter.
286
287 2016-06-17  DJ Delorie  <dj@redhat.com>
288
289         PR target/71338
290         * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
291         * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
292         (umulqihi3_virt): Likewise.
293         * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
294         (umulqihi3_real): Likewise.
295
296 2016-06-17  Martin Liska  <mliska@suse.cz>
297
298         * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
299
300 2016-06-17  Martin Liska  <mliska@suse.cz>
301
302         * predict.def: PRED_LOOP_EXIT from 92 to 85.
303
304 2016-06-17  James Greenhalgh  <james.greenhalgh@arm.com>
305
306         * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
307         __FAST_MATH__.
308         (vaddq_f32): Likewise.
309         (vmul_f32): Likewise.
310         (vmulq_f32): Likewise.
311         (vsub_f32): Likewise.
312         (vsubq_f32): Likewise.
313
314 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
315
316         PR tree-optimization/71347
317         * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
318         cost for all uses in group.
319
320 2016-06-17 Bin Cheng  <bin.cheng@arm.com>
321
322         * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
323         insert gimple seq if it's not empty.
324
325 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
326
327         * tree-vectorizer.h (struct dr_with_seg_len): Remove class
328         member OFFSET.
329         * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
330         rather than OFFSET.
331         (comp_dr_with_seg_len_pair): Ditto.
332         (vect_prune_runtime_alias_test_list): Ditto.  Also Canonicalize
333         struct dr_with_seg_len_pair against DR_OFFSET.
334         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle
335         DR_OFFSET directly.
336
337 2016-06-17  Szabolcs Nagy  <szabolcs.nagy@arm.com>
338
339         * config/aarch64/geniterators.sh: Handle parenthesised conditions.
340
341 2016-06-16  John David Anglin  <danglin@gcc.gnu.org>
342
343         * config/pa/pa.c (pa_output_pic_pcrel_sequence): New.
344         (pa_output_lbranch): Use pa_output_pic_pcrel_sequence.
345         (pa_output_millicode_call): Likewise.
346         (pa_output_call): Likewise.
347         (pa_output_indirect_call): Likewise.
348         (pa_asm_output_mi_thunk): Likewise.
349
350 2016-06-16  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
351
352         * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
353
354 2016-06-16  Martin Liska  <mliska@suse.cz>
355
356         * predict.c (combine_predictions_for_insn): When we find a first
357         match predictor, we should consider just predictors with
358         PRED_FLAG_FIRST_MATCH.  Print either first match (if any) or
359         DS theory predictor.
360         (combine_predictions_for_bb): Likewise.
361
362 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
363
364         * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
365         with base of reference to struct.
366
367 2016-06-16  Uros Bizjak  <ubizjak@gmail.com>
368
369         * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
370
371 2016-06-16  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
372
373         * config/avr/avr.c (avr_asm_init_sections): Remove setup of
374         progmem_swtable_section.
375         (progmem_swtable_section): Remove.
376         (avr_asm_function_rodata_section): Remove.
377         (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
378         * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1.
379
380 2016-06-16  Jocelyn Mayer  <l_indien@magic.fr>
381
382         * config/i386/driver-i386.c (host_detect_local_cpu): Set
383         PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.
384         <case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for
385         signature_CENTAUR_ebx.
386         * config/i386/i386.c (ix86_option_override_internal): Add
387         definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4,
388         nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4.
389         * doc/invoke.texi (x86 Options): Document new VIA -march entries.
390
391 2016-06-16  Martin Liska  <mliska@suse.cz>
392
393         * predict.def: Add fortran loop preheader predictor.
394         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
395         fold IFN_BUILTIN_EXPECT with a known constant argument.
396
397 2016-06-16  Martin Liska  <mliska@suse.cz>
398
399         * predict.def: Add 'Fortran' to display text of all
400         PRED_FORTRAN_* predictors.
401
402 2016-06-16  Uros Bizjak  <ubizjak@gmail.com>
403
404         PR target/71242
405         * config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New.
406         [IA64_BUILTIN_NANSQ]: Ditto.
407         (ia64_fold_builtin): New function.
408         (TARGET_FOLD_BUILTIN): New define.
409         (ia64_init_builtins) Declare const_string_type node.
410         Add __builtin_nanq and __builtin_nansq builtin functions.
411         (ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ.
412
413 2016-06-16  Nick Clifton  <nickc@redhat.com>
414
415         * config/msp430/msp430-opts.h (msp430_hwmult_types): Add
416         MSP430_HWMULT_ prefix to enum values.
417         (msp430_regions): Add MSP430_REGION_ prefix to enum values.
418         * config/msp430/msp430.c: Update use of enum values.
419         * config/msp430/msp430.md: Likewise.
420         * config/msp430/msp430.opt: Likewise.
421
422 2016-06-16  Jan Hubicka  <hubicka@ucw.cz>
423
424         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
425         of comparsions in the last iteration.
426
427 2016-06-16  Claudiu Zissulescu  <claziss@synopsys.com>
428             Joern Rennecke  <joern.rennecke@embecosm.com>
429
430         * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
431         addresses.
432         (arc_needs_pcl_p): Add GOTOFFPC.
433         (arc_legitimate_pic_addr_p): Likewise.
434         (arc_output_pic_addr_const): Likewise.
435         (arc_legitimize_pic_address): Generate a pc-relative address using
436         GOTOFFPC.
437         (arc_output_libcall): Use @pcl syntax.
438         (arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC.
439         * config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC.
440         (*movsi_insn): Use @pcl syntax.
441         (doloop_begin_i): Likewise.
442
443 2016-06-16  Martin Liska  <mliska@suse.cz>
444
445         * predict.def: Define a new predictor.
446
447 2016-06-16  Claudiu Zissulescu  <claziss@synopsys.com>
448
449         * config/arc/arc.opt (mtp-regno): Update text.
450
451 2016-06-16  Renlin Li  <renlin.li@arm.com>
452
453         * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
454
455 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
456
457         PR target/71554
458         * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
459         (setcc + and peephole2): Likewise.
460
461         PR rtl-optimization/71532
462         * cse.c (cse_insn): For const/pure calls, invalidate argument passing
463         memory slots.
464
465 2016-06-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
466
467         * config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading
468         DImode constants with XXSPLTIB in vector registers.
469         (vsx_extract_<mode>, V2DImode/V2DFmode): Combine both
470         vsx_extract_<mode>_internal{1,2} into a single insn that handles
471         direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes
472         extraction of the element at the top of the register as a scalar
473         value.
474         (vsx_extract_<mode>_internal1): Likewise.
475         (vsx_extract_<mode>_internal2): Likewise.
476         * config/rs6000/constraints.md (wi constraint): Remove a comment
477         about DImode not being allowed in Altivec registers.
478         (wB constraint): New constraint for constants that can be
479         generated in Altivec registers with VSPLTISW/VUPKHSW.
480         * config/rs6000/predicates.md (xxspltib_constant_split): Update
481         comments.
482         (xxspltib_constant_nosplit): Likewise.
483         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add
484         support for -mupper-regs-di to enable DImode to go into Altivec
485         registers.
486         (POWERPC_MASKS): Likewise.
487         (power7 cpu): Likewise.
488         * config/rs6000/rs6000.opt (-mupper-regs-di): Likewise.
489         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
490         for DImode being allowed in Altivec registers.  Update wi/wj
491         constraints.  Set scalar_in_vmx_p flag.
492         (rs6000_option_override_internal): Add checks for -mupper-regs-di.
493         (xxspltib_constant_p): Allow CONST_INT's with VOIDmode.  Don't
494         return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB.
495         (rs6000_opt_masks): Add -mupper-regs-di.
496         * config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use
497         direct move to use wi and not wj.
498         (lfiwzx): Likewise.
499         (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
500         alternative.
501         (floatunssi<mode>2_lfiwzx_mem): Likewise.
502         (fix_trunc<mode>di2_fctidz): Change second alternative to allow
503         any VSX register, instead of just Altivec registers, to allow
504         either operand to be an Altivec register or both.
505         (fixuns_trunc<mode>di2_fctiduz): Likewise.
506         (movdi_internal32): Add support for -mupper-regs-di.  Add support
507         to load constants via XXSPLTIB or VSPLTISW.  Add spacing to allow
508         the alternatives and attributes to be lined up to be easier to
509         read.
510         (movdi_internal64): Likewise.
511         (64-bit DImode splitters): Change predicates to only split loading
512         up GPR registers.  Add splits for using XXSPLTIB or VSPLTISW to
513         load constants in ISA 3.0 or ISA 2.07 respectively.
514         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
515         -mupper-regs-di.  Update -mupper-regs-df and -mupper-regs-sf to
516         mention -mcpu=power9 sets these options.
517         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the
518         wB constraint.
519
520 2016-06-15  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
521
522         PR target/67353
523         * config/avr/avr.c (avr_set_current_function): Warn misspelled
524         interrupt/ signal handler if -Wmisspelled-isr flag is enabled.
525         * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled
526         by default to warn misspelled interrupt/ signal handler.
527         * doc/invoke.texi (AVR Options): Document it. Update description
528         for -nodevicelib option.
529
530 2016-06-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
531
532         * config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean
533         up parentheses.  Use GET_MODE_UNIT_BITSIZE.
534         (aarch64_<sur>shll2_n<mode>): Likewise.
535
536 2016-06-15  Ilya Enkovich  <ilya.enkovich@intel.com>
537
538         PR middle-end/71529
539         * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
540         DECL_CONTEXT for copied arguments.
541
542 2016-06-15  Alan Hayward  <alan.hayward@arm.com>
543
544         PR tree-optimization/71483
545         * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
546         for slp
547
548 2016-06-15  Martin Liska  <mliska@suse.cz>
549
550         * predict.c (tree_predict_by_opcode): Call predict_edge_def
551         instead of predict_edge w/o a probability.
552
553 2016-06-15  Alan Hayward  <alan.hayward@arm.com>
554
555         PR tree-optimization/71439
556         * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
557         live PHIs.
558
559 2016-06-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
560
561         * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
562         register subregs in SET_SRC.
563
564 2016-06-15  Richard Biener  <rguenther@suse.de>
565
566         * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
567         store restrictions.
568
569 2016-06-15  Richard Biener  <rguenther@suse.de>
570
571         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
572         not consider dependences between accesses that belong to the
573         same group.
574         (vect_analyze_data_ref_dependences): Do not analyze read-read
575         or self-dependences.
576
577 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
578
579         * spellcheck-tree.c: Include spellcheck-tree.h rather than
580         spellcheck.h.
581         (find_closest_identifier): Reimplement in terms of
582         best_match<tree,tree>.
583         * spellcheck-tree.h: New file.
584         * spellcheck.c (struct edit_distance_traits<const char *>): New
585         struct.
586         (find_closest_string): Reimplement in terms of
587         best_match<const char *, const char *>.
588         * spellcheck.h (levenshtein_distance): Move prototype of tree-based
589         overload to spellcheck-tree.h.
590         (find_closest_identifier): Likewise.
591         (struct edit_distance_traits<T>): New template.
592         (class best_match): New class.
593
594 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
595
596         * selftest-run-tests.c (selftest::run_tests): Call
597         selftest::spellcheck_tree_c_tests.
598         * selftest.h (selftest::spellcheck_tree_c_tests): New decl.
599         * spellcheck-tree.c: Include selftest.h and stringpool.h.
600         (selftest::test_find_closest_identifier): New function.
601         (selftest::spellcheck_tree_c_tests): New function.
602         * spellcheck.c (selftest::test_find_closest_string): Verify that
603         the order of the vec does not affect the results for this case.
604         (selftest::test_data): New array.
605         (selftest::test_metric_conditions): New function.
606         (selftest::spellcheck_c_tests): Add a test of case-comparison.
607         Call selftest::test_metric_conditions.
608
609 2016-06-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
610
611         * config/rs6000/rs6000-builtin.def (commentary): Typo.
612         (BU_P9_MISC_1): Likewise.
613         (BU_P9_64BIT_MISC_0): Likewise.
614         (BU_P9_MISC_0): Likewise.
615
616 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
617
618         * gcc-rich-location.c
619         (gcc_rich_location::add_fixit_misspelled_id): New method.
620         * gcc-rich-location.h
621         (gcc_rich_location::add_fixit_misspelled_id): Add decl.
622
623 2016-06-14  Andreas Tobler  <andreast@gcc.gnu.org>
624
625         * config/arm/freebsd.h: Only enable unaligned access for armv6 on
626         FreeBSD 11 and above.
627
628 2016-06-14  Uros Bizjak  <ubizjak@gmail.com>
629
630         * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
631
632 2016-06-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
633
634         * expmed.h: Close parenthesis in "at your option" in copyright
635         boilerplate.
636         * lower-subreg.h: Likewise.
637
638 2016-06-14  Richard Biener  <rguenther@suse.de>
639
640         PR middle-end/71526
641         * genmatch.c (expr::gen_transform): Use in_type for comparisons
642         if available.
643
644 2015-06-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
645
646         * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
647         New function.
648         (aarch64_rtx_costs): Use it.  Rewrite CONST_INT_P (op1) case to handle
649         mask+shift version.
650         * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
651         New prototype.
652         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
653         matching condition with aarch64_mask_and_shift_for_ubfiz_p.
654
655 2016-06-14  Richard Biener  <rguenther@suse.de>
656
657         PR tree-optimization/71522
658         * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
659         copying into float copying.
660
661 2016-06-14  Jakub Jelinek  <jakub@redhat.com>
662
663         PR tree-optimization/71520
664         * tree-ssa-tail-merge.c (find_duplicate): Handle labels.
665         (replace_block_by): Move user labels from bb1 to bb2.
666
667 2016-06-14  Richard Biener  <rguenther@suse.de>
668
669         PR middle-end/71310
670         PR bootstrap/71510
671         * expr.h (get_bit_range): Declare.
672         * expr.c (get_bit_range): Export.
673         * fold-const.c (optimize_bit_field_compare): Use get_bit_range and
674         word_mode again to constrain the bitfield access.
675
676 2016-06-14  Richard Biener  <rguenther@suse.de>
677
678         PR tree-optimization/71521
679         * tree-vrp.c (extract_range_from_binary_expr_1): Guard
680         division int_const_binop against zero divisor.
681
682 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
683
684         * config/i386/i386.md (signbittf2): New expander.
685         * config/i386/sse.md (ptesttf2): New insn pattern.
686
687 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
688
689         PR bootstrap/71481
690         * input.c (selftest::test_reading_source_line): Avoid reading from
691         __FILE__ by creating a tempfile with known content and reading
692         from that instead.
693
694 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
695
696         * pretty-print.c (assert_pp_format_colored): Skip the test if
697         GCC_COLORS is set.
698         (test_pp_format): Remove comment about GCC_COLORS.
699
700 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
701
702         * input.c (test_reading_source_line): Use SELFTEST_LOCATION.
703         * pretty-print.c (assert_pp_format_va): Add location param and use
704         it with ASSERT_STREQ_AT.
705         (assert_pp_format): Add location param and pass it to
706         assert_pp_format_va.
707         (assert_pp_format_colored): Likewise.
708         (ASSERT_PP_FORMAT_1): New.
709         (ASSERT_PP_FORMAT_2): New.
710         (ASSERT_PP_FORMAT_3): New.
711         (test_pp_format): Provide SELFTEST_LOCATION throughout, either
712         explicitly, or implicitly via the above macros.
713         * selftest.c (selftest::pass): Use a selftest::location rather
714         than file and line.
715         (selftest::fail): Likewise.  Print the function name.
716         (selftest::fail_formatted): Likewise.
717         (selftest::assert_streq): Use a selftest::location rather than
718         file and line.
719         * selftest.h (selftest::location): New struct.
720         (SELFTEST_LOCATION): New macro.
721         (selftest::pass): Accept a const location & rather than file
722         and line.
723         (selftest::fail): Likewise.
724         (selftest::fail_formatted): Likewise.
725         (selftest::assert_streq): Likewise.
726         (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
727         (ASSERT_FALSE): Likewise.
728         (ASSERT_EQ): Likewise.
729         (ASSERT_NE): Likewise.
730         (ASSERT_STREQ): Likewise.
731         (ASSERT_PRED1): Likewise.
732         (ASSERT_STREQ_AT): New macro.
733
734 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
735
736         * selftest.c (selftest::fail_formatted): New function.
737         (selftest::assert_streq): New function.
738         * selftest.h (selftests::fail_formatted): New decl.
739         (selftest::assert_streq): New decl.
740         (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq.
741
742 2016-06-13  Jeff Law  <law@redhat.com>
743
744         PR tree-optimization/71403
745         * tree-ssa-threadbackward.c
746         (convert_and_register_jump_thread_path): No longer accept reference
747         to path.  Do not pop items off the path anymore.
748         (fsm_find_control_statement_thread_paths): Do not allow threading
749         to a deeper loop nest.  Pop the last item off the path here rather
750         than in convert_and_register_jump_thread_path.
751
752 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
753             Wilco Dijkstra  <Wilco.Dijkstra@arm.com>
754
755         [AArch64] Emit division using the Newton series
756
757         * config/aarch64/aarch64-protos.h
758         (cpu_approx_modes): Add new member "division".
759         (aarch64_emit_approx_div): Declare new function.
760         * config/aarch64/aarch64.c
761         (generic_approx_modes): New member "division".
762         (exynosm1_approx_modes): Likewise.
763         (xgene1_approx_modes): Likewise.
764         (aarch64_emit_approx_div): Define new function.
765         * config/aarch64/aarch64.md ("div<mode>3"): New expansion.
766         * config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise.
767         * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option.
768         * doc/invoke.texi (-mlow-precision-div): Describe new option.
769
770 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
771             Wilco Dijkstra  <wilco.dijkstra@arm.com>
772
773         [AArch64] Emit square root using the Newton series
774
775         * config/aarch64/aarch64-protos.h
776         (aarch64_emit_approx_rsqrt): Replace with new function
777         "aarch64_emit_approx_sqrt".
778         (cpu_approx_modes): New member "sqrt".
779         * config/aarch64/aarch64.c
780         (generic_approx_modes): New member "sqrt".
781         (exynosm1_approx_modes): Likewise.
782         (xgene1_approx_modes): Likewise.
783         (aarch64_emit_approx_rsqrt): Replace with new function
784         "aarch64_emit_approx_sqrt".
785         (aarch64_override_options_after_change_1): Handle new option.
786         * config/aarch64/aarch64-simd.md
787         (rsqrt<mode>2): Use new function instead.
788         (sqrt<mode>2): New expansion and insn definitions.
789         * config/aarch64/aarch64.md: Likewise.
790         * config/aarch64/aarch64.opt
791         (mlow-precision-sqrt): Add new option description.
792         * doc/invoke.texi (mlow-precision-sqrt): Likewise.
793
794 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
795
796         [AArch64] Add more choices for the reciprocal square root approximation
797
798         Allow a target to prefer such operation depending on the operation mode.
799
800         * config/aarch64/aarch64-protos.h
801         (AARCH64_APPROX_MODE): New macro.
802         (AARCH64_APPROX_{NONE,ALL}): Likewise.
803         (cpu_approx_modes): New structure.
804         (tune_params): New member "approx_modes".
805         * config/aarch64/aarch64-tuning-flags.def
806         (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
807         * config/aarch64/aarch64.c
808         (generic_approx_modes): New core "cpu_approx_modes" structure.
809         (exynosm1_approx_modes): Likewise.
810         (xgene1_approx_modes): Likewise.
811         (generic_tunings): New member "approx_modes".
812         (cortexa35_tunings): Likewise.
813         (cortexa53_tunings): Likewise.
814         (cortexa57_tunings): Likewise.
815         (cortexa72_tunings): Likewise.
816         (exynosm1_tunings): Likewise.
817         (thunderx_tunings): Likewise.
818         (xgene1_tunings): Likewise.
819         (use_rsqrt_p): New argument for the mode and use new member from
820         "tune_params".
821         (aarch64_builtin_reciprocal): Devise mode from builtin.
822         (aarch64_optab_supported_p): New argument for the mode.
823         * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.
824
825 2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
826
827         * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
828         RS6000_BTM_MODULO flag into the set of flags that are considered
829         to be part of the common configuration.
830
831 2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
832
833         * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
834         difference unsigned.
835         (vec_absdb): New macro for vector absolute difference unsigned
836         byte.
837         (vec_absdh): New macro for vector absolute difference unsigned
838         half-word.
839         (vec_absdw): New macro for vector absolute difference unsigned word.
840         * config/rs6000/altivec.md (UNSPEC_VADU): New value.
841         (vadu<mode>3): New insn.
842         (*p9_vadu<mode>3): New insn.
843         * config/rs6000/rs6000-builtin.def (vadub): New built-in
844         definition.
845         (vaduh): New built-in definition.
846         (vaduw): New built-in definition.
847         (vadu): New overloaded built-in definition.
848         (vadub): New overloaded built-in definition.
849         (vaduh): New overloaded built-in definition.
850         (vaduw): New overloaded built-in definition.
851         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
852         overloaded vector absolute difference unsigned functions.
853         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
854         the ISA 3.0 vector absolute difference unsigned built-in functions.
855
856 2016-06-13  Eric Botcazou  <ebotcazou@adacore.com>
857
858         * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
859         update shared_lookup_references only once after changing operands.
860
861 2016-06-13  Thomas Schwinge  <thomas@codesourcery.com>
862
863         PR middle-end/71373
864         * tree-nested.c (convert_nonlocal_omp_clauses)
865         (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
866
867         * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
868         * tree.def (CASE_LABEL_EXPR): Likewise.
869
870 2016-06-13  Bernd Edlinger  <bernd.edlinger@hotmail.de>
871
872         PR bootstrap/71481
873         * input.c (test_builtins): Fix an assertion.
874
875 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
876
877         * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
878         (paritysi2): Ditto.
879         (isinfxf2): Ditto.
880         (isinf<mode>2): Ditto.
881
882 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
883
884         * ggc-tests.c (test_finalization): Only test need_finalization_p
885         for GCC_VERSION >= 4003.
886
887 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
888
889         * config/s390/vecintrin.h: Fix file description in comment.
890
891 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
892
893         * config/s390/s390-builtin-types.def: Change builtin type naming
894         scheme to match builtin-types.def.
895
896 2016-06-13  Marc Glisse  <marc.glisse@inria.fr>
897
898         * fold-const.c (optimize_minmax_comparison): Remove.
899         (fold_comparison): Remove call to the above.
900         * match.pd (MIN (X, Y) == X, MIN (X, 5) == 0, MIN (X, C1) < C2):
901         New transformations.
902
903 2016-06-13  Alan Hayward  <alan.hayward@arm.com>
904
905         PR tree-optimization/71416
906         * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
907         multiple entries
908
909 2016-06-13  Martin Liska  <mliska@suse.cz>
910
911         * predict.c (enum predictor_reason): Prefix enum with REASON_.
912         (combine_predictions_for_insn): Likewise.
913         (prune_predictions_for_bb): Likewise.
914         (combine_predictions_for_bb): Likewise.
915
916 2016-06-13  Richard Biener  <rguenther@suse.de>
917
918         PR tree-optimization/71505
919         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
920         assert match comment.
921
922 2016-06-13  Marek Polacek  <polacek@redhat.com>
923
924         PR middle-end/71476
925         * gimplify.c (maybe_warn_switch_unreachable): Factored out of
926         gimplify_switch_expr.
927         (warn_switch_unreachable_r): New function.
928
929 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
930
931         PR target/71379
932         * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
933         one.
934
935 2016-06-13  Richard Biener  <rguenther@suse.de>
936
937         PR middle-end/64516
938         * fold-const.c (fold_unary_loc): Preserve alignment when
939         folding a VIEW_CONVERT_EXPR into a MEM_REF.
940
941 2016-06-13  Martin Liska  <mliska@suse.cz>
942
943         PR sanitizer/71458
944         * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
945         w/ -fsanitize=bounds.
946
947 2016-06-12  Uros Bizjak  <ubizjak@gmail.com>
948
949         * config/i386/i386.c (ix86_init_builtins): Calculate
950         FLOAT128_FTYPE_CONST_STRING function type only once.
951         * doc/extend.texi (x86 Built-in Functions): Update text, __float128
952         built-in functions are available for x86-32 and x86-64 targets.
953
954 2016-06-12  Uros Bizjak  <ubizjak@gmail.com>
955
956         PR target/71241
957         * config/i386/i386.i386-builtin-types.def (CONST_STRING):
958         New primitive type.
959         (FLOAT128_FTYPE_CONST_STRING): New function type.
960         * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_NANQ]: New.
961         [IX86_BUILTIN_NANSQ]: Ditto.
962         (ix86_fold_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
963         (ix86_init_builtin_types): Declare const_string_type_node.
964         (ix86_init_builtins): Add __builtin_nanq and __builtin_nansq
965         builtin functions.
966         (ix86_expand_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
967         * doc/extend.texi (x86 Built-in Functions): Document
968         __builtin_nanq and __builtin_nansq.
969
970 2016-06-11  Jiong Wang  <jiong.wang@arm.com>
971
972         PR target/71061
973         * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration.
974         * config/arm/arm.c (arm_attr_length_pop_multi): New function to return
975         length for pop patterns.
976         (arm_attr_length_push_multi): Update comments.
977         * config/arm/arm.md (*load_multiple_with_writeback): Set "length"
978         attribute.
979         (*pop_multiple_with_writeback_and_return): Likewise.
980         (*pop_multiple_with_return): Likewise.
981
982 2016-06-11  Segher Boessenkool  <segher@kernel.crashing.org>
983
984         PR middle-end/71310
985         * fold-const.c (optimize_bit_field_compare): Don't try to use
986         word_mode unconditionally for reading the bit field, look at
987         DECL_BIT_FIELD_REPRESENTATIVE instead.
988
989 2016-06-11  Kugan Vivekanandarajah  <kuganv@linaro.org>
990
991         PR middle-end/71478
992         * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
993         vector integer type.
994
995 2016-06-10  Jakub Jelinek  <jakub@redhat.com>
996
997         PR middle-end/71494
998         * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
999         without LABEL_DECL, set *handled_ops_p to false instead of true.
1000
1001 2016-06-10  Martin Sebor  <msebor@redhat.com>
1002
1003         PR c/71392
1004         * builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro.
1005         (ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same.
1006         * builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use
1007         them.
1008         (BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same.
1009         (BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same.
1010         (BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same.
1011         (BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same.
1012         (BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
1013         (BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
1014         (BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
1015         (BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same.
1016
1017 2016-06-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1018
1019         * config/arm/arm.h (pool_vector_label,
1020         return_used_this_function): Remove.
1021
1022 2016-06-10  Jeff Law  <law@redhat.com>
1023
1024         PR tree-optimization/71335
1025         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Filter out
1026         zero length paths here.
1027         (convert_and_register_jump_thread_path): Remove hacks related to
1028         duplicated blocks in the jump thread path.
1029         (fsm_find_control_statement_thread_paths): Avoid putting the same
1030         block on the thread path twice, but ensure the thread path is
1031         unchanged from the caller's point of view.
1032
1033 2016-06-10  Jan Hubicka  <hubicka@ucw.cz>
1034
1035         * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
1036         * predict.def (PRED_LOOP_BRANCH): Remove.
1037
1038 2016-06-10  David Malcolm  <dmalcolm@redhat.com>
1039
1040         * Makefile.in (OBJS): Add ggc-tests.o.
1041         (GTFILES): Add ggc-tests.c.
1042         * ggc-tests.c: New file.
1043         * selftest-run-tests.c (selftest::run_tests): Call
1044         selftest::ggc_tests_c_tests.
1045         * selftest.h (selftest::ggc_tests_c_tests): New prototype.
1046
1047 2016-06-10  Alexander Monakov  <amonakov@ispras.ru>
1048
1049         * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
1050
1051 2016-06-10  Maxim Ostapenko  <m.ostapenko@samsung.com>
1052
1053         PR sanitizer/71480
1054         * varasm.c (place_block_symbol): Adjust alignment for asan protected
1055         STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
1056
1057 2016-06-10  Jan Hubicka  <hubicka@ucw.cz>
1058
1059         * profile.c: Include cfgloop.h.
1060         (branch_prob): Compute estimated number of iterations.
1061         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
1062         recompute estimate number of iterations from profile.
1063
1064 2016-06-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1065
1066         PR inline-asm/68843
1067         * reg-stack.c (check_asm_stack_operands): Explicit input arguments
1068         must be grouped on top of stack.  Don't force early clobber
1069         on ordinary reg outputs.
1070
1071 2016-06-10  Richard Biener  <rguenther@suse.de>
1072
1073         * targhooks.c (default_builtin_vectorization_cost): Adjust
1074         vec_construct cost.
1075
1076 2016-06-10  Richard Biener  <rguenther@suse.de>
1077
1078         * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
1079         to fold the RHS to a constant if possible.
1080
1081 2016-06-10  Thomas Schwinge  <thomas@codesourcery.com>
1082
1083         PR middle-end/71373
1084         * tree-nested.c (convert_nonlocal_omp_clauses)
1085         (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
1086         OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
1087         OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
1088
1089         * gimplify.c (gimplify_adjust_omp_clauses): Discard
1090         OMP_CLAUSE_TILE.
1091         * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
1092
1093         * omp-low.c (scan_sharing_clauses): Don't expect
1094         OMP_CLAUSE__CACHE_.
1095
1096 2016-06-10  Alan Hayward  <alan.hayward@arm.com>
1097
1098         PR tree-optimization/71407
1099         PR tree-optimization/71416
1100         * tree-vect-loop.c (vectorizable_live_operation): Use vectype for
1101         BIT_FIELD_REF type.
1102
1103 2016-06-10  Richard Biener  <rguenther@suse.de>
1104
1105         PR middle-end/71477
1106         * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
1107
1108 2016-06-09  Eric Botcazou  <ebotcazou@adacore.com>
1109
1110         * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
1111
1112 2016-06-09  Vladimir Makarov  <vmakarov@redhat.com>
1113             Jiong Wang  <jiong.wang@arm.com>
1114
1115         PR rtl-optimization/70751
1116         * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
1117         spilled into memory.
1118
1119 2016-06-09  Jonathan Yong  <10walls@gmail.com>
1120
1121         Revert:
1122         2015-09-21  Jonathan Yong  <10walls@gmail.com>
1123
1124         * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
1125         sysroot/usr/lib/32api for additional win32 libraries,
1126         fixes failing Cygwin bootstrapping.
1127
1128 2016-06-09  Marcin Baczyński  <marbacz@gmail.com>
1129
1130         * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
1131         Delete.
1132
1133 2016-06-09  David Malcolm  <dmalcolm@redhat.com>
1134
1135         PR bootstrap/71471
1136         * pretty-print.c (pp_indent): Specify that %p is printed in a
1137         host-dependent manner.
1138         (test_pp_format): Remove the test for %p.
1139
1140 2016-06-09  Maciej W. Rozycki  <macro@imgtec.com>
1141
1142         * config/mips/mips.c (mips_output_jump): Fix formatting.
1143
1144 2016-06-09  Richard Biener  <rguenther@suse.de>
1145
1146         PR tree-optimization/71462
1147         * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
1148         removed blocks.
1149
1150 2016-06-09  Martin Liska  <mliska@suse.cz>
1151
1152         * predict.c (dump_prediction): Add new argument.
1153         (enum predictor_reason): New enum.
1154         (struct predictor_hash): New struct.
1155         (predictor_hash::hash): New function.
1156         (predictor_hash::equal): Likewise.
1157         (not_removed_prediction_p): New function.
1158         (prune_predictions_for_bb): Likewise.
1159         (combine_predictions_for_bb): Prune predictions.
1160
1161 2016-06-09  Martin Liska  <mliska@suse.cz>
1162
1163         * predict.c (filter_predictions): New function.
1164         (remove_predictions_associated_with_edge): Use the filter
1165         function.
1166         (equal_edge_p): New function.
1167
1168 2016-06-09  Stefan Bruens  <stefan.bruens@rwth-aachen.de>
1169
1170         * doc/invoke.texi (ARM Options): Use lexicographical ordering.
1171         Correct usage of @samp vs @option, add @samp where appropriate.
1172         Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
1173         Add armv6s-m and document it, as it is no official ARM name.
1174
1175 2016-06-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1176
1177         * ifcvt.c (struct noce_if_info): Add transform_name field.
1178         (noce_try_move): Set if_info->transform_name to the function name.
1179         (noce_try_ifelse_collapse): Likewise.
1180         (noce_try_store_flag): Likewise.
1181         (noce_try_inverse_constants): Likewise.
1182         (noce_try_store_flag_constants): Likewise.
1183         (noce_try_addcc): Likewise.
1184         (noce_try_store_flag_mask): Likewise.
1185         (noce_try_cmove): Likewise.
1186         (noce_try_cmove_arith): Likewise.
1187         (noce_try_minmax): Likewise.
1188         (noce_try_abs): Likewise.
1189         (noce_try_sign_mask): Likewise.
1190         (noce_try_bitop): Likewise.
1191         (noce_convert_multiple_sets): Likewise.
1192         (noce_process_if_block): Print if_info->transform_name to
1193         dump_file if transformation succeeded.
1194
1195 2016-06-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1196
1197         * config/arm/cortex-a57.md (cortex_a57_alu):
1198         Handle csel type.
1199
1200 2016-06-08  Martin Sebor  <msebor@redhat.com>
1201             Jakub Jelinek  <jakub@redhat.com>
1202
1203         PR c++/70507
1204         PR c/68120
1205         * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
1206         BUILT_IN_MUL_OVERFLOW_P): New builtins.
1207         * builtins.c: Include gimple-fold.h.
1208         (fold_builtin_arith_overflow): Handle
1209         BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
1210         (fold_builtin_3): Likewise.
1211         * doc/extend.texi (Integer Overflow Builtins): Document
1212         __builtin_{add,sub,mul}_overflow_p.
1213
1214 2016-06-08  Jose E. Marchesi  <jose.marchesi@oracle.com>
1215
1216         * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
1217         SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
1218
1219 2016-06-08  Alan Lawrence  <alan.lawrence@arm.com>
1220
1221         * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
1222         Rewrite, looking one level down for records and arrays.
1223
1224 2016-06-08  David Malcolm  <dmalcolm@redhat.com>
1225
1226         * pretty-print.c: Include "selftest.h".
1227         (pp_format): Fix comment.
1228         (identifier_to_locale): Likewise.
1229         (selftest::test_basic_printing): New function.
1230         (selftest::assert_pp_format): New function.
1231         (selftest::test_pp_format): New function.
1232         (selftest::pretty_print_c_tests): New function.
1233         * selftest-run-tests.c (selftest::run_tests): Call
1234         selftest::pretty_print_c_tests.
1235         * selftest.h (pretty_print_c_tests): New declaration.
1236
1237 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
1238
1239         * invoke.texi (max-loop-headers-insns): Document.
1240         * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
1241         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
1242         (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
1243
1244 2016-06-08  Richard Biener  <rguenther@suse.de>
1245
1246         * tree-vect-stmts.c (vectorizable_load): Remove restrictions
1247         on strided SLP loads and fall back to scalar loads in case
1248         we can't chunk them.
1249
1250 2016-06-08  Richard Biener  <rguenther@suse.de>
1251
1252         PR tree-optimization/71452
1253         * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
1254         type used for the SSA rewrite has enough precision to cover
1255         the dynamic type of the location.
1256
1257 2016-06-08  Jakub Jelinek  <jakub@redhat.com>
1258             Richard Biener  <rguenther@suse.de>
1259
1260         PR c++/71448
1261         * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
1262         the same as DECL_P (base0) for indirect_base0.  Use equality_code
1263         in one further place.
1264
1265 2016-06-08  Richard Sandiford  <richard.sandiford@arm.com>
1266
1267         * expmed.c (store_bit_field_1): Do not restrict a multiword op0
1268         to one word if the field is known to overlap other words.
1269         (extract_bit_field_1): Likewise.
1270         (store_split_bit_field): Remove compensating code.
1271         (extract_split_bit_field): Likewise.
1272
1273 2016-06-08  Bernd Schmidt  <bschmidt@redhat.com>
1274
1275         PR debug/71432
1276         PR ada/71413
1277         * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
1278
1279 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1280
1281         * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
1282         VDQF.
1283         * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
1284         (arch64_addpv4sf): Delete.
1285         (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
1286         "gen_aarch64_addpv4sf".
1287         * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly.  Use
1288         builtin.
1289         (vpadds_f32): Likewise.
1290         (vpaddq_f32): Likewise.
1291         (vpaddq_f64): Likewise.
1292
1293 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1294
1295         * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
1296         VALLF.
1297         * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
1298         to VALLF.  Rename to "fabd<mode>3".
1299         "*fabd_scalar<mode>3): Delete.
1300         * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
1301         Use builtin.
1302         (vabdd_f64): Likewise.
1303         (vabd_f32): Likewise.
1304         (vabd_f64): Likewise.
1305         (vabdq_f32): Likewise.
1306         (vabdq_f64): Likewise.
1307
1308 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1309
1310         * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
1311         VALLF.
1312         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
1313         "aarch64_rsqrts<mode>".
1314         * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
1315         * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly.  Use
1316         builtin.
1317         (vrsqrtsd_f64): Likewise.
1318         (vrsqrts_f32): Likewise.
1319         (vrsqrts_f64): Likewise.
1320         (vrsqrtsq_f32): Likewise.
1321         (vrsqrtsq_f64): Likewise.
1322
1323 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1324
1325         * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
1326         VALLF.
1327         * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
1328         "aarch64_rsqrte<mode>".
1329         * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
1330         * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly.  Use
1331         builtin.
1332         (vrsqrted_f64): Likewise.
1333         (vrsqrte_f32): Likewise.
1334         (vrsqrte_f64): Likewise.
1335         (vrsqrteq_f32): Likewise.
1336         (vrsqrteq_f64): Likewise.
1337
1338 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1339
1340         * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
1341         (ucvtf): Likewise.
1342         (fcvtzs): Likewise.
1343         (fcvtzu): Likewise.
1344         * config/aarch64/aarch64-simd.md
1345         (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
1346         (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
1347         * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
1348         Use builtin.
1349         (vcvt_n_f32_u32): Likewise.
1350         (vcvt_n_s32_f32): Likewise.
1351         (vcvt_n_u32_f32): Likewise.
1352         (vcvtq_n_f32_s32): Likewise.
1353         (vcvtq_n_f32_u32): Likewise.
1354         (vcvtq_n_f64_s64): Likewise.
1355         (vcvtq_n_f64_u64): Likewise.
1356         (vcvtq_n_s32_f32): Likewise.
1357         (vcvtq_n_s64_f64): Likewise.
1358         (vcvtq_n_u32_f32): Likewise.
1359         (vcvtq_n_u64_f64): Likewise.
1360         * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
1361         (VSDQ_SDI): Likewise.
1362         (fcvt_target): Support V4DI, V4SI and V2SI.
1363         (FCVT_TARGET): Likewise.
1364
1365 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
1366
1367         * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
1368         (TYPES_BINOP_SUS): Likewise.
1369         (aarch64_simd_builtin_data): Update include file name.
1370         (aarch64_builtins): Likewise.
1371         * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
1372         for conversion between scalar float-point and fixed-point.
1373         (ucvtf): Likewise.
1374         (fcvtzs): Likewise.
1375         (fcvtzu): Likewise.
1376         * config/aarch64/aarch64.md
1377         (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
1378         pattern for conversion between scalar float to fixed-pointer.
1379         (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
1380         (UNSPEC_FCVTZS): New UNSPEC enumeration.
1381         (UNSPEC_FCVTZU): Likewise.
1382         (UNSPEC_SCVTF): Likewise.
1383         (UNSPEC_UCVTF): Likewise.
1384         * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
1385         Use builtin.
1386         (vcvtd_n_f64_u64): Likewise.
1387         (vcvtd_n_s64_f64): Likewise.
1388         (vcvtd_n_u64_f64): Likewise.
1389         (vcvtd_n_f32_s32): Likewise.
1390         (vcvts_n_f32_u32): Likewise.
1391         (vcvtd_n_s32_f32): Likewise.
1392         (vcvts_n_u32_f32): Likewise.
1393         * config/aarch64/iterators.md (fcvt_target): Support integer to float
1394         mapping.
1395         (FCVT_TARGET): Likewise.
1396         (FCVT_FIXED2F): New iterator.
1397         (FCVT_F2FIXED): Likewise.
1398         (fcvt_fixed_insn): New define_int_attr.
1399
1400 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
1401
1402         * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
1403         some statements was removed.
1404
1405 2016-06-08  Alan Hayward  <alan.hayward@arm.com>
1406
1407         * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
1408         * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
1409         (vect_can_advance_ivs_p): likewise.
1410         (vect_update_ivs_after_vectorizer): likewise.
1411         * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
1412         (vect_analyze_scalar_cycles_1): likewise.
1413         (vect_analyze_loop_operations): likewise.
1414         (report_vect_op): likewise.
1415         (vect_is_slp_reduction): likewise.
1416         (vect_is_simple_reduction): likewise.
1417         (get_initial_def_for_induction): likewise.
1418         (vect_transform_loop): likewise.
1419         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
1420         (vect_recog_sad_pattern): likewise.
1421         (vect_recog_widen_sum_pattern): likewise.
1422         (vect_recog_widening_pattern): likewise.
1423         (vect_recog_divmod_pattern): likewise.
1424         * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
1425         (vect_analyze_slp_instance): likewise.
1426         (vect_transform_slp_perm_load): likewise.
1427         (vect_schedule_slp_instance): likewise.
1428
1429 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
1430
1431         * predict.c (predict_iv_comparison): Mention that heuristics is broken.
1432         (return_prediction): PRED_CONST_RETURN predict return as not taken.
1433         * predict.def (PRED_CONTINUE): Change hitrate 50->67
1434         (PRED_LOOP_BRANCH): Document predictor as broken.
1435         (PRED_LOOP_EXIT): Change hitrate 91->92.
1436         (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
1437         (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
1438         (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
1439         (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
1440         (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
1441         (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
1442         (PRED_CALL): Chane hitrate 71->67.
1443         (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
1444         (PRED_GOTO): Document as unused right now.
1445         (PRED_CONST_RETURN): Change hitrate 67->69
1446         (PRED_NEGATIVE_RETURN): Change hitrate 96->98
1447         (PRED_NULL_RETURN): Change hitrate 91->90.
1448         (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
1449         (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
1450         (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
1451
1452 2016-06-07  Bill Seurer  <seurer@linux.vnet.ibm.com>
1453
1454         * config/rs6000/altivec.h: Add __builtin_vec_mul.
1455         * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
1456         special case Altivec builtin.
1457         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
1458         VSX_BUILTIN_VEC_MUL (replaced with special case code).
1459         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
1460         code for ALTIVEC_BUILTIN_VEC_MUL.
1461         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
1462         for __builtin_vec_mul.
1463
1464 2016-06-07  Peter Bergner  <bergner@vnet.ibm.com>
1465
1466         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
1467         -mno-htm.
1468
1469 2016-06-07  David Malcolm  <dmalcolm@redhat.com>
1470
1471         * spellcheck.c (selftest::test_find_closest_string): New function.
1472         (spellcheck_c_tests): Call the above.
1473
1474 2016-06-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1475
1476         * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
1477
1478 2016-06-07  Jakub Jelinek  <jakub@redhat.com>
1479
1480         * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
1481         Yv=Yv,C alternatives.
1482
1483 2016-06-07  Richard Biener  <rguenther@suse.de>
1484
1485         PR c/61564
1486         * common.opt (ffast-math): Make Optimization.
1487
1488 2016-06-07  Simon Dardis  <simon.dardis@imgtec.com>
1489             Prachi Godbole  <prachi.godbole@imgtec.com>
1490
1491         * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
1492         `fabs' and `fneg' type attributes.
1493         (p5600_fpu_fabs): Add `fmove' to the comment.
1494
1495 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
1496
1497         * gimple.c: Include builtins.h
1498         (gimple_inexpensive_call_p): New function.
1499         * gimple.h (gimple_inexpensive_call_p): Declare.
1500         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
1501         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
1502         fix formatting.
1503
1504 2016-06-07  Paolo Carlini  <paolo.carlini@oracle.com>
1505
1506         * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
1507         (inform, inform_at_rich_loc, inform_n, warning, warning_at,
1508         warning_at_rich_loc, warning_n, pedwarn, permerror,
1509         permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
1510         sorry, fatal_error, internal_error, internal_error_no_backtrace):
1511         Use the above.
1512
1513 2016-06-07  Richard Biener  <rguenther@suse.de>
1514
1515         PR tree-optimization/71428
1516         * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
1517         BIT_FIELD_REF op vs. load.
1518
1519 2016-06-07  Richard Biener  <rguenther@suse.de>
1520
1521         PR middle-end/71423
1522         * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
1523         for signed ops.
1524
1525 2016-06-06  John David Anglin  <danglin@gcc.gnu.org>
1526
1527         * config/pa/pa.md (call): Generate indirect long calls to non-local
1528         functions on TARGET_64BIT.
1529         (call_value): Likewise.
1530
1531 2016-06-06  John David Anglin  <danglin@gcc.gnu.org>
1532
1533         * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
1534         pattern and subsequent splitters.
1535         (call_val_reg_64bit_post_reload): Likewise.
1536
1537 2016-06-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
1538
1539         PR middle-end/71408
1540         * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
1541         propagate_op_to_single_use.
1542
1543 2016-06-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
1544
1545         PR middle-end/71281
1546         * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
1547
1548 2016-06-07  Uros Bizjak  <ubizjak@gmail.com>
1549
1550         * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
1551         (enum x86_dirflag_state): New enum.
1552         (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
1553         (machine_function): Remove needs_cld.
1554         (ix86_current_function_needs_cld): Remove.
1555         * config/i386/i386.c (ix86_set_func_type): Set
1556         ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
1557         (ix86_expand_prologue): Do not emit CLD here.
1558         (ix86_dirflag_mode_needed): New function.
1559         (ix86_dirflag_mode_entry): Ditto.
1560         (ix86_mode_needed): Handle X86_DIRFLAG entity.
1561         (ix86_mode_after): Ditto.
1562         (ix86_mode_entry): Ditto.
1563         (ix86_mode_exit): Ditto.
1564         (ix86_emit_mode_set): Ditto.
1565         * config/i386/i386.md (strmov_singleop): Set
1566         ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
1567         Do not set ix86_current_function_needs_cld.
1568         (rep_mov): Ditto.
1569         (strset_singleop): Ditto.
1570         (rep_stos): Ditto.
1571         (cmpstrnqi_nz_1): Ditto.
1572         (cmpstrnqi_1): Ditto.
1573         (strlenqi_1): Ditto.
1574
1575 2016-06-06  Jakub Jelinek  <jakub@redhat.com>
1576
1577         PR tree-optimization/71259
1578         * tree-vect-slp.c (vect_get_constant_vectors): For
1579         VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
1580         one for constant op, and use COND_EXPR for non-constant.
1581
1582 2016-06-06  David Malcolm  <dmalcolm@redhat.com>
1583
1584         * Makefile.in (OBJS): Add function-tests.o,
1585         hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
1586         selftest-run-tests.o.
1587         (OBJS-libcommon): Add selftest.o.
1588         (OBJS-libcommon-target): Add selftest.o.
1589         (all.internal): Add "selftest".
1590         (all.cross): Likewise.
1591         (selftest): New phony target.
1592         (s-selftest): New target.
1593         (selftest-gdb): New phony target.
1594         (COLLECT2_OBJS): Add selftest.o.
1595         * bitmap.c: Include "selftest.h".
1596         (selftest::test_gc_alloc): New function.
1597         (selftest::test_set_range): New function.
1598         (selftest::test_clear_bit_in_middle): New function.
1599         (selftest::test_copying): New function.
1600         (selftest::test_bitmap_single_bit_set_p): New function.
1601         (selftest::bitmap_c_tests): New function.
1602         * common.opt (fself-test): New.
1603         * diagnostic-show-locus.c: Include "selftest.h".
1604         (make_range): New function.
1605         (test_range_contains_point_for_single_point): New function.
1606         (test_range_contains_point_for_single_line): New function.
1607         (test_range_contains_point_for_multiple_lines): New function.
1608         (assert_eq): New function.
1609         (test_get_line_width_without_trailing_whitespace): New function.
1610         (selftest::diagnostic_show_locus_c_tests): New function.
1611         * et-forest.c: Include "selftest.h".
1612         (selftest::test_single_node): New function.
1613         (selftest::test_simple_tree): New function.
1614         (selftest::test_disconnected_nodes): New function.
1615         (selftest::et_forest_c_tests): New function.
1616         * fold-const.c: Include "selftest.h".
1617         (selftest::assert_binop_folds_to_const): New function.
1618         (selftest::assert_binop_folds_to_nonlvalue): New function.
1619         (selftest::test_arithmetic_folding): New function.
1620         (selftest::fold_const_c_tests): New function.
1621         * function-tests.c: New file.
1622         * gimple.c: Include "selftest.h".
1623         Include "gimple-pretty-print.h".
1624         (selftest::verify_gimple_pp): New function.
1625         (selftest::test_assign_single): New function.
1626         (selftest::test_assign_binop): New function.
1627         (selftest::test_nop_stmt): New function.
1628         (selftest::test_return_stmt): New function.
1629         (selftest::test_return_without_value): New function.
1630         (selftest::gimple_c_tests): New function.
1631         * hash-map-tests.c: New file.
1632         * hash-set-tests.c: New file.
1633         * input.c: Include "selftest.h".
1634         (selftest::assert_loceq): New function.
1635         (selftest::test_accessing_ordinary_linemaps): New function.
1636         (selftest::test_unknown_location): New function.
1637         (selftest::test_builtins): New function.
1638         (selftest::test_reading_source_line): New function.
1639         (selftest::input_c_tests): New function.
1640         * rtl-tests.c: New file.
1641         * selftest-run-tests.c: New file.
1642         * selftest.c: New file.
1643         * selftest.h: New file.
1644         * spellcheck.c: Include "selftest.h".
1645         (selftest::levenshtein_distance_unit_test_oneway): New function,
1646         adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
1647         (selftest::levenshtein_distance_unit_test): Likewise.
1648         (selftest::spellcheck_c_tests): Likewise.
1649         * toplev.c: Include selftest.h.
1650         (toplev::run_self_tests): New.
1651         (toplev::main): Handle -fself-test.
1652         * toplev.h (toplev::run_self_tests): New.
1653         * tree.c: Include "selftest.h".
1654         (selftest::test_integer_constants): New function.
1655         (selftest::test_identifiers): New function.
1656         (selftest::test_labels): New function.
1657         (selftest::tree_c_tests): New function.
1658         * tree-cfg.c: Include "selftest.h".
1659         (selftest::push_fndecl): New function.
1660         (selftest::test_linear_chain): New function.
1661         (selftest::test_diamond): New function.
1662         (selftest::test_fully_connected): New function.
1663         (selftest::tree_cfg_c_tests): New function.
1664         * vec.c: Include "selftest.h".
1665         (selftest::safe_push_range): New function.
1666         (selftest::test_quick_push): New function.
1667         (selftest::test_safe_push): New function.
1668         (selftest::test_truncate): New function.
1669         (selftest::test_safe_grow_cleared): New function.
1670         (selftest::test_pop): New function.
1671         (selftest::test_safe_insert): New function.
1672         (selftest::test_ordered_remove): New function.
1673         (selftest::test_unordered_remove): New function.
1674         (selftest::test_block_remove): New function.
1675         (selftest::reverse_cmp): New function.
1676         (selftest::test_qsort): New function.
1677         (selftest::vec_c_tests): New function.c.
1678         * wide-int.cc: Include selftest.h and wide-int-print.h.
1679         (selftest::from_int <wide_int>): New function.
1680         (selftest::from_int <offset_int>): New function.
1681         (selftest::from_int <widest_int>): New function.
1682         (selftest::assert_deceq): New function.
1683         (selftest::assert_hexeq): New function.
1684         (selftest::test_printing <VALUE_TYPE>): New function template.
1685         (selftest::test_ops <VALUE_TYPE>): New function template.
1686         (selftest::test_comparisons <VALUE_TYPE>): New function template.
1687         (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
1688         template.
1689         (selftest::wide_int_cc_tests): New function.
1690
1691 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1692
1693         PR middle-end/37780
1694         * ifcvt.c (noce_try_ifelse_collapse): New function.
1695         Declare prototype.
1696         (noce_process_if_block): Call noce_try_ifelse_collapse.
1697         * simplify-rtx.c (simplify_cond_clz_ctz): New function.
1698         (simplify_ternary_operation): Use the above to simplify
1699         conditional CLZ/CTZ expressions.
1700
1701 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1702
1703         PR middle-end/37780
1704         * config/aarch64/aarch64.md (ctz<mode>2): Convert to
1705         define_insn_and_split.
1706
1707 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1708
1709         PR middle-end/37780
1710         * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
1711
1712 2016-06-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1713
1714         PR c/24414
1715         * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
1716         Implicitly clobber memory for basic asm with non-empty assembler
1717         string.  Use targetm.md_asm_adjust also here.
1718         * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
1719         * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
1720         * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
1721         non-empty assembler string.
1722         * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
1723         * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
1724         (decode_asm_operands): Handle basic asm in PARALLEL block.
1725         (extract_insn): Handle basic asm in PARALLEL block.
1726         * doc/extend.texi: Mention new behavior of basic asm.
1727         * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
1728         * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
1729         branch_needs_nop_p): Use asm_noperands.
1730
1731 2016-06-06  Jose E. Marchesi  <jose.marchesi@oracle.com>
1732
1733         * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
1734         Include the M7 SPARC DFA scheduler.
1735         New attribute v3pipe.
1736         Annotate insns with v3pipe where appropriate.
1737         Define cpu_feature vis4.
1738         Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
1739         Add (V8QI "8") to vbits.
1740         Add insns {add,sub}v8qi3
1741         Add insns ss{add,sub}v8qi3
1742         Add insns us{add,sub}{v8qi,v4hi}3
1743         Add insns {min,max}{v8qi,v4hi,v2si}3
1744         Add insns {minu,maxu}{v8qi,v4hi,v2si}3
1745         Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
1746         * config/sparc/niagara4.md: Add a comment explaining the
1747         discrepancy between the documented latenty numbers and the
1748         implemented ones.
1749         * config/sparc/niagara7.md: New file.
1750         * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
1751         supports SPARC5 and VIS 4.0 instructions.
1752         * configure: Regenerate.
1753         * config.in: Likewise.
1754         * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
1755         * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
1756         TARGET_CPU_niagara7.
1757         (ASM_CPU64_DEFAULT_SPEC): Likewise.
1758         (CPP_CPU_SPEC): Handle niagara7.
1759         (ASM_CPU_SPEC): Likewise.
1760         * config/sparc/sparc-opts.h (processor_type): Add
1761         PROCESSOR_NIAGARA7.
1762         (mvis4): New option.
1763         * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
1764         (AS_NIAGARA7_FLAG): Define.
1765         (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
1766         (CPP_CPU64_DEFAULT_SPEC): Likewise.
1767         (CPP_CPU_SPEC): Handle niagara7.
1768         (ASM_CPU_SPEC): Likewise.
1769         * config/sparc/sparc.c (niagara7_costs): Define.
1770         (sparc_option_override): Handle niagara7 and adjust cache-related
1771         parameters with better values for niagara cpus.  Also support VIS4.
1772         (sparc32_initialize_trampoline): Likewise.
1773         (sparc_use_sched_lookahead): Likewise.
1774         (sparc_issue_rate): Likewise.
1775         (sparc_register_move_cost): Likewise.
1776         (dump_target_flag_bits): Support VIS4.
1777         (sparc_vis_init_builtins): Likewise.
1778         (sparc_builtins): Likewise.
1779         * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
1780         VIS4 4.0.
1781         * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
1782         UltraSparc M7.
1783         * config/sparc/sparc.opt (sparc_processor_type): New value
1784         niagara7.
1785         * config/sparc/visintrin.h (__attribute__): Prototypes for the
1786         VIS4 builtins.
1787         * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
1788         -mvis4.
1789         * doc/extend.texi (SPARC VIS Built-in Functions): Document the
1790         VIS4 builtins.
1791
1792 2016-06-06  Jonathan Wakely  <jwakely@redhat.com>
1793
1794         * doc/sourcebuild.texi (Directives): Remove extra closing braces.
1795
1796 2016-06-06  Richard Biener  <rguenther@suse.de>
1797
1798         PR tree-optimization/71398
1799         * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
1800         remove edges.
1801
1802 2016-06-05  James Bowman  <james.bowman@ftdichip.com>
1803
1804         * config/ft32/ft32.c (ft32_setup_incoming_varargs,
1805         ft32_expand_prolog, ft32_expand_epilogue):
1806         Handle pretend_args.
1807         * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
1808         * config/ft32/ft32.md: Add pretend_returner.
1809
1810 2016-06-06  Uros Bizjak  <ubizjak@gmail.com>
1811
1812         PR target/71389
1813         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
1814         Copy op1 RTX to avoid invalid sharing.
1815         (ix86_expand_vector_move_misalign): Ditto.
1816
1817 2016-06-05  John David Anglin  <danglin@gcc.gnu.org>
1818
1819         * expr.c (move_by_pieces_d::generate): Mark mode parameter with
1820         ATTRIBUTE_UNUSED.
1821
1822 2016-06-05  Jan Hubicka  <hubicka@ucw.cz>
1823
1824         * predict.c (predicted_by_loop_heuristics_p): New function.
1825         (predict_iv_comparison): Use it.
1826         (predict_loops): Walk from innermost loops; do not predict edges
1827         leaving multiple loops multiple times; implement
1828         PRED_LOOP_ITERATIONS_MAX heuristics.
1829         * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
1830
1831 2016-06-05  Jan Hubicka  <hubicka@ucw.cz>
1832
1833         * cfg.c (check_bb_profile): Do not report mismatched profiles when
1834         only edges out of BB are EH edges.
1835
1836 2016-06-04  Martin Sebor  <msebor@redhat.com>
1837             Marcin Baczyński  <marbacz@gmail.com>
1838
1839         PR c/48116
1840         * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
1841         a void expression in a void function.
1842
1843 2016-06-03  Jan Hubicka  <hubicka@ucw.cz>
1844
1845         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
1846         aux; dump reasons of decisions.
1847         (should_duplicate_loop_header_p): Likewise.
1848         (do_while_loop_p): Likewise.
1849         (ch_base::copy_headers): Dump asi num insns duplicated.
1850
1851 2016-06-04  Jakub Jelinek  <jakub@redhat.com>
1852
1853         PR tree-optimization/71405
1854         * tree-ssa.c (execute_update_addresses_taken): For clobber with
1855         incompatible type, build a new clobber with the right type instead
1856         of building a VIEW_CONVERT_EXPR around it.
1857
1858 2016-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
1859
1860         PR tree-optimization/52171
1861         * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
1862         by_pieces_ninsns instead of move_by_pieces_ninsns.
1863
1864 2016-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
1865
1866         * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
1867         for reg+reg addressing mode.
1868
1869 2016-06-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
1870
1871         * rs6000-c.c (c/c-tree.h): Add #include.
1872         (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
1873         in C++ when found in the base position of vec_ld or vec_st.
1874
1875 2016-06-03  Jan Hubicka  <hubicka@ucw.cz>
1876
1877         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
1878         use of profile unless profile status is PROFILE_READ.
1879         * profile.c (compute_branch_probabilities): Set profile status
1880         only after reporting predictor hitrates.
1881
1882 2016-06-03  Joseph Myers  <joseph@codesourcery.com>
1883
1884         PR target/71276
1885         PR target/71277
1886         * common.opt (ffp-int-builtin-inexact): New option.
1887         * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
1888         * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
1889         (ceil@var{m}2): Document dependence on this option.
1890         * ipa-inline-transform.c (inline_call): Handle
1891         flag_fp_int_builtin_inexact.
1892         * ipa-inline.c (can_inline_edge_p): Likewise.
1893         * config/i386/i386.md (rintxf2): Do not test
1894         flag_unsafe_math_optimizations.
1895         (rint<mode>2_frndint): New define_insn.
1896         (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
1897         or !flag_trapping_math for SSE.  Just use gen_rint<mode>2_frndint
1898         for 387 instead of extending and truncating.
1899         (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
1900         !flag_trapping_math instead of flag_unsafe_math_optimizations.
1901         Change to frndint<mode>2_<rounding>.
1902         (frndintxf2_<rounding>_i387): Likewise.  Change to
1903         frndint<mode>2_<rounding>_i387.
1904         (<rounding_insn>xf2): Likewise.
1905         (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
1906         !flag_trapping_math instead of flag_unsafe_math_optimizations for
1907         x87.  Test TARGET_ROUND || !flag_trapping_math ||
1908         flag_fp_int_builtin_inexact instead of !flag_trapping_math for
1909         SSE.  Use ROUND_NO_EXC in constant operand of
1910         gen_sse4_1_round<mode>2.  Just use gen_frndint<mode>2_<rounding>
1911         for 387 instead of extending and truncating.
1912
1913 2016-06-03  H.J. Lu  <hongjiu.lu@intel.com>
1914             Julia Koval  <julia.koval@intel.com>
1915
1916         PR target/66960
1917         PR target/67630
1918         PR target/67634
1919         PR target/67841
1920         PR target/68037
1921         PR target/68618
1922         PR target/68661
1923         PR target/69575
1924         PR target/69596
1925         PR target/69734
1926         * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
1927         * config/i386/i386.c (ix86_conditional_register_usage): Preserve
1928         all registers, except for function return registers if there are
1929         no caller-saved registers.
1930         (ix86_set_func_type): New function.
1931         (ix86_set_current_function): Call ix86_set_func_type to set
1932         no_caller_saved_registers and func_type.  Call reinit_regs if
1933         caller-saved registers are changed.  Don't allow MPX, SSE, MMX
1934         nor x87 instructions in interrupt handler nor function with
1935         no_caller_saved_registers attribute.
1936         (ix86_function_ok_for_sibcall): Return false if there are no
1937         caller-saved registers.
1938         (type_natural_mode): Don't warn ABI change for MMX in interrupt
1939         handler.
1940         (ix86_function_arg_advance): Skip for callee in interrupt handler.
1941         (ix86_function_arg): Return special arguments in interrupt handler.
1942         (ix86_promote_function_mode): Promote pointer to word_mode only
1943         for normal functions.
1944         (ix86_can_use_return_insn_p): Don't use `ret' instruction in
1945         interrupt handler.
1946         (ix86_epilogue_uses): New function.
1947         (ix86_hard_regno_scratch_ok): Likewise.
1948         (ix86_save_reg): Preserve all registers in interrupt handler
1949         after reload.  Preserve all registers, except for function return
1950         registers, if there are no caller-saved registers after reload.
1951         (find_drap_reg): Always use callee-saved register if there are
1952         no caller-saved registers.
1953         (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
1954         for interrupt handler.
1955         (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
1956         Emit cld instruction if stringops are used in interrupt handler
1957         or interrupt handler isn't a leaf function.
1958         (ix86_expand_epilogue): Generate interrupt return for interrupt
1959         handler and pop the 'ERROR_CODE' off the stack before interrupt
1960         return in exception handler.
1961         (ix86_expand_call): Disallow calling interrupt handler directly.
1962         If there are no caller-saved registers, mark all registers that
1963         are clobbered by the call which returns as clobbered.
1964         (ix86_handle_no_caller_saved_registers_attribute): New function.
1965         (ix86_handle_interrupt_attribute): Likewise.
1966         (ix86_attribute_table): Add interrupt and no_caller_saved_registers
1967         attributes.
1968         (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
1969         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
1970         accumulation in interrupt function if stack may be realigned to
1971         avoid DRAP.
1972         (EPILOGUE_USES): New.
1973         (function_type): New enum.
1974         (machine_function): Add func_type and no_caller_saved_registers.
1975         * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
1976         (interrupt_return): New pattern.
1977         * doc/extend.texi: Document x86 interrupt and
1978         no_caller_saved_registers attributes.
1979
1980 2016-06-03  Bernd Schmidt  <bschmidt@redhat.com>
1981
1982         PR tree-optimization/52171
1983         * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
1984         (expand_builtin_memcmp): New arg RESULT_EQ.  All callers changed.
1985         Look for constant strings.  Move some code to emit_block_cmp_hints
1986         and use it.
1987         * builtins.def (BUILT_IN_MEMCMP_EQ): New.
1988         * defaults.h (COMPARE_MAX_PIECES): New macro.
1989         * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
1990         (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
1991         (clear_by_pieces_1): Don't declare.  Move definition before use.
1992         (can_do_by_pieces): New static function.
1993         (can_move_by_pieces): Use it.  Return bool.
1994         (by_pieces_ninsns): Renamed from move_by_pieces_ninsns.  New arg
1995         OP.  All callers changed.  Handle COMPARE_BY_PIECES.
1996         (class pieces_addr); New.
1997         (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
1998         pieces_addr::adjust, pieces_addr::increment_address,
1999         pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
2000         functions for it.
2001         (class op_by_pieces_d): New.
2002         (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
2003         functions for it.
2004         (class move_by_pieces_d, class compare_by_pieces_d,
2005         class store_by_pieces_d): New subclasses of op_by_pieces_d.
2006         (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
2007         move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
2008         store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
2009         compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
2010         compare_by_pieces_d::finish_mode): New member functions.
2011         (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
2012         functions.
2013         (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
2014         (emit_block_cmp_hints): New function.
2015         (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
2016         use the newly defined classes.
2017         * expr.h (by_pieces_constfn): New typedef.
2018         (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
2019         (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
2020         (move_by_pieces_ninsns): Don't declare.
2021         (can_move_by_pieces): Change return value to bool.
2022         * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
2023         (compare_by_pieces_branch_ratio): New hook.
2024         * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
2025         (by_pieces_ninsns): Declare.
2026         * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
2027         COMPARE_BY_PIECES.
2028         (default_compare_by_pieces_branch_ratio): New function.
2029         * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
2030         * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
2031         * doc/tm.texi: Regenerate.
2032         * tree-ssa-strlen.c: Include "builtins.h".
2033         (handle_builtin_memcmp): New static function.
2034         (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
2035         * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
2036
2037 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
2038
2039         * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
2040         relevant stmts which are simple and invariant.
2041         * tree-vect-loop.c (vectorizable_live_operation): Check relevance
2042         instead of simple and invariant
2043
2044 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
2045
2046         * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
2047         (vectorizable_reduction): Check for new relevant state.
2048         (vectorizable_live_operation): vectorize live stmts using
2049         BIT_FIELD_REF.  Remove special case for gimple assigns stmts.
2050         * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
2051         (vect_stmt_relevant_p): Check for stmts which are only used live.
2052         (process_use): Use of a stmt does not inherit it's live value.
2053         (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
2054         (vect_analyze_stmt): Check for new relevant state.
2055         * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
2056         outside the loop, but not inside it.
2057
2058 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
2059
2060         * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
2061         * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
2062         (vect_get_vec_def_for_operand): Split out code.
2063
2064 2016-06-03  Segher Boessenkool  <segher@kernel.crashing.org>
2065
2066         * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
2067
2068 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
2069
2070         * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
2071
2072 2016-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2073
2074         * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
2075
2076 2016-06-03  Jakub Jelinek  <jakub@redhat.com>
2077
2078         PR middle-end/71387
2079         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
2080         to noreturn e->callee->decl that has void return type and void
2081         arguments, adjust gimple_call_fntype and remove lhs even if it had
2082         previously addressable type.
2083
2084 2016-06-02  Jeff Law  <law@redhat.com>
2085
2086         PR tree-optimization/71328
2087         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
2088         error when checking for a jump back onto the copied path.
2089
2090 2016-06-02  David Malcolm  <dmalcolm@redhat.com>
2091
2092         * config/microblaze/microblaze.c (get_branch_target): Add return
2093         NULL_RTX for the non-CALL_P case.
2094         (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
2095         (insert_wic): Remove unused local "j".
2096
2097 2016-06-02  Martin Liska  <mliska@suse.cz>
2098
2099         * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
2100
2101 2016-06-02  H.J. Lu  <hongjiu.lu@intel.com>
2102             Julia Koval  <julia.koval@intel.com>
2103
2104         * function.c (assign_parm_setup_stack): Force source into a
2105         register if needed.
2106         * target.def (function_incoming_arg): Update documentation to
2107         allow arbitrary address computation based on hard register.
2108         * doc/tm.texi: Regenerated.
2109
2110 2016-06-02  Martin Liska  <mliska@suse.cz>
2111
2112         * predict.c (combine_predictions_for_bb): Fix first match in
2113         cases where a first predictor contains more than one occurence
2114         in list of predictors.  Take the best value in such case.
2115
2116 2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2117
2118         PR rtl-optimization/71295
2119         * rtlanal.c (subreg_get_info): If taking a subreg at the requested
2120         offset would go over the size of the inner mode reject it.
2121
2122 2016-06-02  Jakub Jelinek  <jakub@redhat.com>
2123
2124         * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
2125         x=x,x and v=v,m instead of x=x,m.
2126
2127         * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
2128         alternative.  Change x=x,x alternative to v=Yv,Yv and x=rm,C
2129         alternative to v=rm,C.
2130
2131         * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
2132         alternative.  Change x=xm,C alternative to v=vm,C, x=x,x alternative
2133         to v=Yv,Yv and x=x,m to v=v,m.  Use maybe_evex prefix attribute
2134         instead of vex for the last two above mentioned alternatives.
2135
2136 2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2137
2138         PR target/70830
2139         * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
2140
2141 2016-06-02  Segher Boessenkool  <segher@kernel.crashing.org>
2142
2143         * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
2144
2145 2016-06-01  David Malcolm  <dmalcolm@redhat.com>
2146
2147         * config/rl78/rl78.c (rl78_expand_prologue): Convert local
2148         from int to unsigned.
2149
2150 2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
2151
2152         * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
2153         alternatives, eliminating preferred register class.  Add support
2154         for the MTVSRDD instruction in ISA 3.0.
2155         (vsx_splat_v4si_internal): Use splat_input_operand instead of
2156         reg_or_indexed_operand.
2157         (vsx_splat_v4sf_internal): Likewise.
2158
2159 2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
2160
2161         PR target/71186
2162         * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
2163         for loading up all 0's or all 1's.
2164
2165 2016-06-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2166
2167         * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
2168
2169 2016-06-01  Eduard Sanou  <dhole@openmailbox.org>
2170
2171         * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
2172         extension.
2173         * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
2174         * gcc.c (set_source_date_epoch_envvar): New function, sets
2175         the SOURCE_DATE_EPOCH environment variable to the current time.
2176
2177 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
2178
2179         * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
2180         the factor for live Phi nodes.
2181
2182 2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
2183
2184         * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
2185         * tree-parloops.c (parallelize_loops): likewise.
2186         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
2187         tree_unswitch_outer_loop): likewise.
2188
2189 2016-06-01  Jakub Jelinek  <jakub@redhat.com>
2190
2191         PR middle-end/71371
2192         * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
2193         around creation of the temporary.
2194
2195 2016-06-01  Richard Biener  <rguenther@suse.de>
2196
2197         PR tree-optimization/71366
2198         * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
2199         (unloop_loops): Move removing edges here ...
2200         (try_unroll_loop_completely): ... from here.
2201         (try_peel_loop): ... and here.
2202         (tree_unroll_loops_completely_1): Track parent loops via
2203         bitmap of header BBs.
2204         (tree_unroll_loops_completely): Adjust for that.
2205
2206 2016-06-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
2207
2208         * config/rs6000/altivec.h (vec_slv): New macro.
2209         (vec_srv): New macro.
2210         * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
2211         (UNSPEC_VSRV): New value.
2212         (vslv): New insn.
2213         (vsrv): New insn.
2214         * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
2215         (vsrv): New builtin definition.
2216         * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
2217         define argument types for new builtin.
2218         (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
2219         new builtin.
2220         * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
2221         functions.
2222
2223 2016-06-01  Uros Bizjak  <ubizjak@gmail.com>
2224             Jocelyn Mayer  <l_indien@magic.fr>
2225
2226         PR target/67310
2227         * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
2228         detect processor family for signature_CENTAUR_ebx.
2229         <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
2230         signature_CENTAUR_ebx.
2231         <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
2232         <default>: Pass x86-64 for has_longmode.
2233
2234 2016-06-01  Nathan Sidwell  <nathan@acm.org>
2235
2236         * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
2237         undefined weak.
2238
2239 2016-06-01  Richard Biener  <rguenther@suse.de>
2240
2241         PR tree-optimization/71261
2242         * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
2243         of stmts successfully put in the bool pattern.  Remove
2244         single-use restriction.
2245         (adjust_bool_pattern_cast): Add cast at the use site via the
2246         pattern def sequence.
2247         (adjust_bool_pattern): Remove recursion, maintain a hash-map
2248         of patterned defs.  Use the pattern def seqence instead of
2249         multiple independent patterns.
2250         (sort_after_uid): New qsort compare function.
2251         (adjust_bool_stmts): New function to process stmts in the bool
2252         pattern in IL order.
2253         (vect_recog_bool_pattern): Adjust.
2254         * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
2255         (ifcvt_walk_pattern_tree): Likewise.
2256         (stmt_is_root_of_bool_pattern): Likewise.
2257         (ifcvt_repair_bool_pattern): Likewise.
2258         (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
2259
2260 2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
2261
2262         * loop-unroll.c (decide_unroll_constant_iterations,
2263         decide_unroll_runtime_iterations, decide_unroll_stupid): Use
2264         likely upper bounds.
2265         * loop-iv.c (find_simple_exit): Dump likely upper bounds.
2266
2267 2016-06-01  Thomas Schwinge  <thomas@codesourcery.com>
2268
2269         * tree-core.h (enum omp_clause_code): Remove
2270         OMP_CLAUSE_DEVICE_RESIDENT.  Adjust all users.
2271
2272 2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2273
2274         * config/arm/sync.md (arm_store_exclusive<mode>):
2275         Use 'H' output modifier on operands[2] rather than creating a new
2276         entry in out-of-bounds memory of the operands array.
2277         (arm_store_release_exclusivedi): Likewise.
2278
2279 2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2280
2281         * config/arm/arm.c (arm_fusion_enabled_p): New function.
2282         * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
2283         * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
2284         Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.
2285
2286 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
2287
2288         * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
2289         into account live statements for mask producers.
2290
2291 2016-06-01  Richard Biener  <rguenther@suse.de>
2292
2293         PR tree-optimization/71311
2294         * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
2295         restrict to non-INTEGER_CST @0.
2296
2297 2016-06-01  Richard Biener  <rguenther@suse.de>
2298
2299         * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
2300         (relational patterns): Use :c to avoid pattern duplications.
2301
2302 2016-06-01  Richard Biener  <rguenther@suse.de>
2303
2304         * genmatch.c (comparison_code_p): New predicate.
2305         (swap_tree_comparison): New function.
2306         (commutate): Add for_vec parameter to append new for entries.
2307         Support commutating relational operators by swapping it alongside
2308         operands.
2309         (lower_commutative): Adjust.
2310         (dt_simplify::gen): Do not pass artificial operators to gen
2311         functions.
2312         (decision_tree::gen): Do not add artificial operators as parameters.
2313         (parser::parse_expr): Verify operator commutativity when :c is
2314         applied.  Allow :C to override this.
2315         * match.pd: Adjust patterns to use :C instead of :c where required.
2316
2317 2016-06-01  Patrick Palka  <ppalka@gcc.gnu.org>
2318
2319         PR tree-optimization/71077
2320         * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
2321         the combining step, use boolean_false_node and boolean_true_node
2322         as the designated false/true return values.
2323
2324 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
2325
2326         * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
2327         * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
2328         (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
2329         PRED_LOOP_EXIT.
2330
2331 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
2332
2333         * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
2334         of flags impliying the register renaming.
2335         * toplev.c (process_options): Do not imply flag_rename_registers with
2336         loop peeling.
2337
2338 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
2339
2340         * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
2341         default implementation.
2342
2343 2016-05-31  Nathan Sidwell  <nathan@acm.org>
2344
2345         * dwarf2out.c (cur_line_info_table): Add GTY marker.
2346
2347 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
2348
2349         * config/sh/constraints.md (b): Remove constraint.
2350         * config/sh/predicates.md (arith_reg_operand): Remove
2351         TARGET_REGISTER_P.
2352         * config/sh/sh-modes.def (PDI): Remove.
2353         * config/sh/sh.c (sh_target_reg_class,
2354         sh_optimize_target_register_callee_saved): Remove functions.
2355         (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
2356         (sh_expand_epilogue): Update comment.
2357         (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
2358         sh_secondary_reload): Remove TARGET_REGS related code.
2359         * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
2360         TARGET_REGISTER_P): Remove macros.
2361         (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
2362         * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
2363         TR1_REG, TR2_REG): Remove constants.
2364         * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
2365
2366 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
2367
2368         * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
2369         define_expand patterns.
2370         (adddi3_compact): Rename to adddi3.
2371         (subdi3_compact): Rename to subdi3.
2372         (*negdi2): Rename to negdi2.
2373         (*abs<mode>2): Rename to abs<mode>2.
2374
2375 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
2376
2377         * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
2378         (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
2379         (atomic_sub_fetchsi): ... this new pattern.
2380         (mvtc): Add CC_REG clobber.
2381
2382 2016-05-31  Marek Polacek  <polacek@redhat.com>
2383
2384         * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
2385
2386 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2387
2388         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
2389         aarch64_fusion_enabled_p to check for fusion capabilities.
2390
2391 2016-05-31  Richard Biener  <rguenther@suse.de>
2392
2393         PR tree-optimization/71352
2394         * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
2395         minus one and a negate.
2396
2397 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2398
2399         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
2400         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
2401         Delete prototype.
2402         * config/aarch64/iterators.md (insn_count): Add descriptive comment.
2403         * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
2404         Remove use of aarch64_simd_attr_length_move, set length attribute
2405         directly.
2406         (*aarch64_be_movoi): Likewise.
2407         (*aarch64_be_movci): Likewise.
2408         (*aarch64_be_movxi): Likewise.
2409
2410 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
2411
2412         * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
2413         It no longer does that.
2414         * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
2415
2416 2016-05-31  Wladimir J. van der Laan  <laanwj@gmail.com>
2417
2418         * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
2419         attribute __unused__.
2420
2421 2016-05-31  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2422
2423         * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
2424         * config/arm/arm.c (arm_arch_thumb1): Define.
2425         (arm_option_override): Initialize arm_arch_thumb1.
2426         * config/arm/arm.h (arm_arch_thumb1): Declare.
2427         (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
2428         support Thumb-1 ISA.
2429
2430 2016-05-31  Kirill Yukhin  <kirill.yukhin@intel.com>
2431
2432         PR target/71346
2433         * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
2434         `Yv' for scalar operand.
2435
2436 2016-05-31  Tom de Vries  <tom@codesourcery.com>
2437
2438         PR tree-optimization/69068
2439         * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
2440         phis with more than two args.
2441
2442 2016-05-30  Andreas Tobler  <andreast@gcc.gnu.org>
2443
2444         * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
2445         armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
2446         target.
2447
2448 2016-05-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
2449
2450         * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
2451         tune_64.
2452         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
2453         support on SPARC.
2454         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
2455         cpu_32, cpu_64, tune_32 and tune_64.
2456         * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
2457
2458 2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
2459
2460         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
2461
2462 2016-05-30  Andi Kleen  <ak@linux.intel.com>
2463
2464         * auto-profile.c (read_profile): Replace asserts with errors
2465         when file does not exist.
2466         * gcov-io.c (gcov_read_words): Dito.
2467
2468 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
2469
2470         * tree-cfg.c (print_loop): Print likely upper bounds.
2471
2472 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
2473
2474         * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
2475         * opts.c (default_options): Enable peel loops at -O3.
2476         * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
2477         (try_peel_loop): Do not re-peel already peeled loops;
2478         use likely upper bounds; fix profile updating.
2479         (pass_complete_unroll::execute): Initialize peeled_loops.
2480
2481 2016-05-30  Martin Liska  <mliska@suse.cz>
2482
2483         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
2484         computed costs by frequency of BB they belong to.
2485         (get_scaled_computation_cost_at): New function.
2486
2487 2016-05-30  Alexander Monakov  <amonakov@ispras.ru>
2488             Marc Glisse  <marc.glisse@inria.fr>
2489
2490         PR tree-optimization/71289
2491         * match.pd (-1 / B < A, A > -1 / B): New transformations.
2492
2493 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
2494
2495         * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
2496
2497 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
2498
2499         * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
2500         for peeled copies; avoid underflow when updating estimates; correctly
2501         scale loop profile.
2502
2503 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
2504
2505         * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
2506         r236875. Corrected oe3 to oe2 as obvious.
2507
2508 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
2509
2510         PR middle-end/71269
2511         PR middle-end/71252
2512         * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
2513         that inserted stmt will not dominate stmts that defines its operand.
2514         (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
2515         (rewrite_expr_tree_parallel): Likewise.
2516
2517 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
2518
2519         PR middle-end/71252
2520         * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
2521         all fields including stmt_to_insert are swapped.
2522
2523 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
2524
2525         * predict.h (force_edge_cold): Declare.
2526         * predict.c (force_edge_cold): New function.
2527         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
2528         updating.
2529         (canonicalize_loop_induction_variables): Fix formating.
2530
2531 2016-05-30  Eric Botcazou  <ebotcazou@adacore.com>
2532
2533         * config/visium/visium.c (visium_split_double_add): Minor tweaks.
2534         (visium_expand_copysign): Use gen_int_mode directly.
2535         (visium_compute_frame_size): Minor tweaks.
2536
2537 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
2538
2539         * tree-vect-loop.c (vect_analyze_loop_2): Use
2540         likely_max_stmt_executions_int.
2541
2542 2016-05-30  Tom de Vries  <tom@codesourcery.com>
2543
2544         PR tree-optimization/69067
2545         * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
2546
2547 2016-05-29  Uros Bizjak  <ubizjak@gmail.com>
2548
2549         PR target/71245
2550         * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
2551         New peepholes to remove unneeded fild/fistp pairs.
2552         (define_peephole2 atomic_loaddi_fpu): Ditto.
2553
2554 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2555
2556         * predict.c (maybe_hot_frequency_p): Avoid division.
2557
2558 2016-05-28  Gerald Pfeifer  <gerald@pfeifer.com>
2559
2560         * doc/install.texi: Use https for shop.fsf.org.
2561
2562 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2563
2564         * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
2565         likely_max_stmt_executions_int.
2566
2567 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2568
2569         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
2570         likely_max_stmt_executions_int.
2571
2572 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2573
2574         * profile.c (compute_branch_probabilities): Do not report hitrates
2575         here.
2576         (branch_prob): Report hitrates here.
2577         * predict.c (gimple_predict_edge): Do not assert profile status;
2578         fix formatting issues.
2579
2580 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2581
2582         * predict.c (edge_predicted_by_p): New function.
2583         (predict_paths_for_bb): Do not put multiple predictions of the same type
2584         on one edge.
2585
2586 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2587
2588         * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
2589         commit.
2590
2591 2016-05-28  Alan Modra  <amodra@gmail.com>
2592
2593         * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
2594
2595 2016-05-28  Alan Modra  <amodra@gmail.com>
2596
2597         PR rtl-optimization/71275
2598         * ira.c (ira): Free dominance info.
2599
2600 2016-05-27  Gerald Pfeifer  <gerald@pfeifer.com>
2601
2602         * doc/sourcebuild.texi: New address for upstream Go repository.
2603
2604 2016-05-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
2605
2606         * config/arm/arm.h (TARGET_ARM_V6M): Remove.
2607         (TARGET_ARM_V7M): Likewise.
2608
2609 2016-05-26  Jeff Law  <law@redhat.com>
2610
2611         * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
2612         (thread_across_edge): Remove calls to find_jump_threads_backwards.
2613         * passes.def: Add jump threading passes before DOM/VRP.
2614         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
2615         argument to a basic block from an edge.  Remove tests which are
2616         handled elsewhere.
2617         (pass_data_thread_jumps, class pass_thread_jumps): New.
2618         (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
2619         (make_pass_thread_jumps): Likewise.
2620         * tree-pass.h (make_pass_thread_jumps): Declare.
2621
2622 2016-05-27  Eric Botcazou  <ebotcazou@adacore.com>
2623
2624         * config/visium/visium-protos.h (split_double_move): Rename into...
2625         (visium_split_double_move): ...this.
2626         (visium_split_double_add): Declare.
2627         * config/visium/visium.c (split_double_move): Rename into...
2628         (visium_split_double_move): ...this.
2629         (visium_split_double_add): New function.
2630         (visium_expand_copysign): Renumber operands for consistency.
2631         * config/visium/visium.md (DImode move splitter): Adjust to renaming.
2632         (DFmode move splitter): Likewise.
2633         (*addi3_insn): Split by means of visium_split_double_add.
2634         (*adddi3_insn_flags): Delete.
2635         (*plus_plus_sltu<subst_arith>): New insn.
2636         (*subdi3_insn): Split by means of visium_split_double_add.
2637         (subdi3_insn_flags): Delete.
2638         (*minus_minus_sltu<subst_arith>): New insn.
2639         (*negdi2_insn): Split by means of visium_split_double_add.
2640         (*negdi2_insn_flags): Delete.
2641
2642 2016-05-27  Ulrich Weigand  <uweigand@de.ibm.com>
2643
2644         * configure.ac: Treat a --with-headers option without argument
2645         the same as the default (i.e. consult sys-include directory).
2646         * configure: Regenerate.
2647
2648 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2649
2650         * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
2651         * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
2652         prototype.
2653         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
2654         Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.
2655
2656 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
2657
2658         PR target/63596
2659         * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
2660         tree-stdarg analysis results.
2661         (aarch64_setup_incoming_varargs): Likewise.
2662
2663 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
2664
2665         * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
2666         va_list_gpr_counter_field and va_list_fpr_counter_field.
2667
2668 2016-05-27  Wilco Dijkstra  <wdijkstr@arm.com>
2669
2670         PR67609
2671         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
2672         * config/aarch64/aarch64.c
2673         (aarch64_cannot_change_mode_class): Remove function.
2674         * config/aarch64/aarch64-protos.h
2675         (aarch64_cannot_change_mode_class): Remove.
2676
2677 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
2678
2679         * cfgloop.c (record_niter_bound): Record likely upper bounds.
2680         (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
2681         get_likely_max_loop_iterations_int): New.
2682         * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
2683         any_likely_upper_bound.
2684         (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
2685         Declare.
2686         * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
2687         * loop-unroll.c (unroll_loop_constant_iterations): Update likely
2688         upper bound.
2689         (unroll_loop_constant_iterations): Likewise.
2690         (unroll_loop_runtime_iterations): Likewise.
2691         * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
2692         * lto-streamer-out.c (output_cfg): Likewise.
2693         * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
2694         bounds.
2695         (canonicalize_loop_induction_variables): Dump likely upper bounds.
2696         * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
2697         (likely_max_loop_iterations): New.
2698         (likely_max_loop_iterations_int): New.
2699         (likely_max_stmt_executions): New.
2700         * tree-ssa-loop-niter.h (likely_max_loop_iterations,
2701         likely_max_loop_iterations_int, likely_max_stmt_executions_int,
2702         likely_max_stmt_executions): Declare.
2703
2704 2016-05-27  Marek Polacek  <polacek@redhat.com>
2705
2706         PR middle-end/71308
2707         * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
2708
2709 2016-05-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
2710
2711         * config/s390/s390.md (2x risbg splitters): Use
2712         reg_overlap_mentioned_p instead of rtx_equal_p.
2713
2714 2016-05-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
2715
2716         * combine.c (make_compound_operation): Take known zero bits into
2717         account when checking for possible zero_extend.
2718
2719 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2720
2721         * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
2722         Use const_int_operand for operand 2 predicate.  Simplify expand code
2723         as a result.
2724
2725 2016-05-27  Ilya Enkovich  <ilya.enkovich@intel.com>
2726
2727         PR middle-end/71279
2728         * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
2729         into comparison.
2730
2731 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2732
2733         * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
2734         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
2735         that returns CC_SESWPmode and CC_ZESWPmode.
2736         (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
2737         and CC_SESWPmode.
2738         (aarch64_rtx_costs): Likewise.
2739
2740 2016-05-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
2741
2742         * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
2743         for ISA 3.0 min/max support.
2744         (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
2745         conditional move support.
2746         (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
2747         rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
2748         available.
2749         * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
2750         conditional moves where the comparison type is different from move
2751         type.
2752         (fp_minmax): New code iterator for smin/smax.
2753         (minmax): New code attributes for min/max.
2754         (SMINMAX): Likewise.
2755         (smax<mode>3): Combine min, max insns into one insn using the
2756         fp_minmax code iterator.  Add support for ISA 3.0 min/max
2757         instructions that don't need -ffast-math.
2758         (s<minmax><mode>3): Likewise.
2759         (smax<mode>3_vsx): Likewise.
2760         (smin<mode>3): Likewise.
2761         (s<minmax><mode>3_vsx): Likewise.
2762         (smin<mode>3_vsx): Likewise.
2763         (pre-VSX min/max splitters): Likewise.
2764         (s<minmax><mode>3_fpr): Likewise.
2765         (movsfcc): Rewrite floating point conditional moves to combine
2766         SFmode/DFmode into a single insn.
2767         (mov<mode>cc): Likewise.
2768         (movdfcc): Likewise.
2769         (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
2770         SFDF2 iterators to handle all combinations.
2771         (fseldfsf4): Likewise.
2772         (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
2773         (fseldfdf4): Likewise.
2774         (fselsfdf4): Likewise.
2775         (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
2776         comparison instructions that set a 0/-1 mask, and use it for
2777         floating point conditional move via XXSEL.
2778         (fpmask<mode>): Likewise.
2779         (xxsel<mode>): Likewise.
2780         * config/rs6000/predicates.md (min_max_operator): Delete, no
2781         longer used.
2782         (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
2783         instructions that generate a 0/-1 mask for use with XXSEL.
2784         * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
2785         say whether floating point min/max is available, either through
2786         FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
2787         (TARGET_MINMAX_DF): Likewise.
2788
2789 2016-05-27  Alan Modra  <amodra@gmail.com>
2790
2791         PR rtl-optimization/71275
2792         * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
2793         for update_equiv_regs and combine_and_move_insns.
2794
2795 2016-05-26  Uros Bizjak  <ubizjak@gmail.com>
2796
2797         * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
2798         if_then_else or cond RTXes to calculate attribute value.
2799         * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
2800         <attr "length_immediate>: Ditto.
2801         (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
2802         * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
2803         (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
2804         <attr "type">: Ditto.
2805         <attr "prefix_data16">: Ditto.
2806         <attr "prefix_extra">: Ditto.
2807         <attr "length_immediate">: Ditto.
2808         <attr "prefix">: Ditto.
2809         (vec_set<mode>_0) <attr "isa">: Ditto.
2810         <attr "prefix_extra">: Ditto.
2811         <attr "length_immediate">: Ditto.
2812         <attr "prefix">: Ditto.
2813         (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
2814         (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
2815         (sse2_storelpd) <attr "prefix_data16">: Ditto.
2816         (sse2_loadhpd) <attr "prefix_data16">: Ditto.
2817         (sse2_loadlpd) <attr "prefix_data16">: Ditto.
2818         <attr "length_immediate">: Ditto.
2819         <attr "prefix">: Ditto.
2820         (sse2_movsd) <attr "length_immediate">: Ditto.
2821         <attr "prefix">: Ditto.
2822         (vec_concatv2df)  <attr "isa">: Ditto.
2823         <attr "prefix">: Ditto.
2824         (*vec_extractv4si) <attr "prefix_extra">: Ditto.
2825         (*vec_extractv2di_1) <attr "isa">: Ditto.
2826         <attr "type">: Ditto.
2827         <attr "length_immediate">: Ditto.
2828         <attr "prefix_rex">: Ditto.
2829         <attr "prefix_extra">: Ditto.
2830         (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
2831         <attr "prefix_extra">: Ditto.
2832         <attr "length_immediate">: Ditto.
2833         (vec_concatv2di) <attr "isa">: Ditto.
2834         <attr "prefix_extra">: Ditto.
2835         <attr "length_immediate">: Ditto.
2836         <attr "prefix">: Ditto.
2837
2838 2016-05-26  Martin Liska  <mliska@suse.cz>
2839
2840         * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
2841         function.
2842         (operator+): Likewise.
2843         (operator-): Likewise.
2844         (comp_cost::operator+=): Likewise.
2845         (comp_cost::operator-=): Likewise.
2846         (comp_cost::operator/=): Likewise.
2847         (comp_cost::operator*=): Likewise.
2848         (operator<): Likewise.
2849         (operator==): Likewise.
2850         (operator<=): Likewise.
2851         (new_cost): Remove.
2852         (infinite_cost_p): Likewise.
2853         (add_costs): Likewise.
2854         (sub_costs): Likewise.
2855         (compare_costs): Likewise.
2856         (set_group_iv_cost): Use the newly introduced functions.
2857         (get_address_cost): Likewise.
2858         (get_shiftadd_cost): Likewise.
2859         (force_expr_to_var_cost): Likewise.
2860         (split_address_cost): Likewise.
2861         (ptr_difference_cost): Likewise.
2862         (difference_cost): Likewise.
2863         (get_computation_cost_at): Likewise.
2864         (determine_group_iv_cost_generic): Likewise.
2865         (determine_group_iv_cost_address): Likewise.
2866         (determine_group_iv_cost_cond): Likewise.
2867         (autoinc_possible_for_pair): Likewise.
2868         (determine_group_iv_costs): Likewise.
2869         (cheaper_cost_pair): Likewise.
2870         (iv_ca_recount_cost): Likewise.
2871         (iv_ca_set_no_cp): Likewise.
2872         (iv_ca_set_cp): Likewise.
2873         (iv_ca_cost): Likewise.
2874         (iv_ca_new): Likewise.
2875         (iv_ca_dump): Likewise.
2876         (iv_ca_narrow): Likewise.
2877         (iv_ca_prune): Likewise.
2878         (iv_ca_replace): Likewise.
2879         (try_add_cand_for): Likewise.
2880         (try_improve_iv_set): Likewise.
2881         (find_optimal_iv_set): Likewise.
2882
2883 2016-05-26  Richard Sandiford  <richard.sandiford@arm.com>
2884
2885         * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
2886         that internal functions will clobber all caller-saved registers.
2887
2888 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
2889
2890         * config/aarch64/aarch64.c (aarch64_case_values_threshold):
2891         Return a better case_values_threshold when optimizing.
2892
2893 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
2894
2895         * config/aarch64/aarch64-simd.md (aarch64_combinez):
2896         Add ? to integer variant.
2897         (aarch64_combinez_be): Likewise.
2898
2899 2016-05-26  Jakub Jelinek  <jakub@redhat.com>
2900
2901         * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
2902         instead of x constraint.
2903         (vcvtps2ph256<mask_name>): Likewise.
2904
2905         * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
2906         alternative.  Formatting fix.
2907
2908         * config/i386/sse.md
2909         (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
2910         to ...
2911         (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
2912         (*avx_vperm_broadcast_v4sf): Use v constraint instead of x.  Use
2913         maybe_evex prefix instead of vex.
2914         (*avx_vperm_broadcast_<mode>): Use v constraint instead of x.  Handle
2915         EXT_REX_SSE_REG_P (op0) case in the splitter.
2916
2917 2016-05-25  Jeff Law  <law@redhat.com>
2918
2919         PR tree-optimization/71272
2920         * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
2921         Update comments.  Add test for empty path.
2922
2923 2016-05-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
2924
2925         * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
2926         * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
2927         special case builtin.
2928         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
2929         code for ALTIVEC_BUILTIN_VEC_CMPNE.
2930         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
2931         for __builtin_vec_cmpne.
2932
2933 2016-05-25  Eric Botcazou  <ebotcazou@adacore.com>
2934
2935         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
2936         redundant test and bail out if the type of the new operand is not
2937         a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
2938
2939 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
2940
2941         * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
2942         (x_ix86_target_flags_explicit): Remove.
2943         * config/i386/i386.c (ix86_function_specific_save): Do not copy
2944         x_ix86_target_flags_explicit.
2945         (ix86_function_specific_restore): Ditto.
2946
2947 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
2948             H.J. Lu  <hongjiu.lu@intel.com>
2949
2950         PR target/70738
2951         * common/config/i386/i386-common.c
2952         (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
2953         (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
2954         MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
2955         * config/i386/i386.opt (ix86_target_flags): Add new Variable.
2956         (-mgeneral-regs-only): Add new option.
2957         * config/i386/i386.c (ix86_option_override_internal): Don't enable
2958         x87 instructions if only general registers are allowed.
2959         (ix86_target_string): Add ix86_flags argument. Handle additional
2960         flags options through ix86_flags argument.  Update all callers.
2961         * doc/invoke.texi (x86 Options): Document -mgeneral-regs-only.
2962
2963 2016-05-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2964
2965         PR rtl-optimization/66940
2966         * ifcvt.c (noce_get_alt_condition): Check that incrementing or
2967         decrementing desired_val will not overflow before performing these
2968         operations.
2969
2970 2016-05-25  Ilya Verbin  <ilya.verbin@intel.com>
2971
2972         * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
2973         V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
2974         * config/i386/i386.c (enum ix86_builtins): Add
2975         IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
2976         IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
2977         IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
2978         IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
2979         IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
2980         IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
2981         (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
2982         __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
2983         __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
2984         __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
2985         __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
2986         __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
2987         Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
2988         __builtin_ia32_cvtps2dq512_mask.
2989         (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
2990         V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
2991         (ix86_builtin_vectorized_function): Handle builtins mentioned above.
2992         * config/i386/sse.md
2993         (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
2994         Rename to ...
2995         (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
2996         (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
2997         to ...
2998         (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
2999         (avx512f_vec_pack_sfix_v8df): New define_expand.
3000         (avx512f_roundpd512): Rename to ...
3001         (avx512f_round<castmode>512): ... this.  Change iterator.
3002         (avx512f_roundps512_sfix): New define_expand.
3003         (round<mode>2_sfix): Change iterator.
3004
3005 2016-05-25  Nick Clifton  <nickc@redhat.com>
3006
3007         * config/msp430/msp430.c (msp430_attr): Produce an error if a
3008         static interrupt handler is detected.
3009         * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
3010         default linker script.
3011         * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
3012         the low part of a symbolic pointer.
3013
3014 2016-05-25  Richard Biener  <rguenther@suse.de>
3015
3016         PR tree-optimization/71261
3017         * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
3018         interesting stmt instead of immediate uses when looking
3019         for the use operand to replace.
3020
3021 2016-05-25  Martin Liska  <mliska@suse.cz>
3022
3023         * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
3024
3025 2016-05-25  Richard Biener  <rguenther@suse.de>
3026
3027         PR tree-optimization/71264
3028         * tree-vect-stmts.c (vect_init_vector): Properly deal with
3029         vector type val.
3030
3031 2016-05-25  Martin Liska  <mliska@suse.cz>
3032
3033         PR tree-optimization/71239
3034         * tree.c (array_at_struct_end_p): Do not call operand_equal_p
3035         if DECL_SIZE is NULL.
3036
3037 2016-05-25  Richard Biener  <rguenther@suse.de>
3038
3039         * timevar.def (TV_TREE_LOOP_IFCVT): Add.
3040         * tree-if-conv.c (pass_data_if_conversion): Use it.
3041
3042 2016-05-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3043
3044         * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
3045         * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
3046         * varpool.c (varpool_node::get_availability): Likewise.
3047
3048 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
3049
3050         * config/rs6000/altivec.md (VNEG iterator): New iterator for
3051         VNEGW/VNEGD instructions.
3052         (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
3053         (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
3054         support for ISA 3.0 VNEGW/VNEGD instructions.
3055
3056 2016-05-24  Cesar Philippidis  <cesar@codesourcery.com>
3057
3058         * gimplify.c (omp_notice_variable): Use zero-length arrays for data
3059         pointers inside OACC_DATA regions.
3060         (gimplify_scan_omp_clauses): Prune firstprivate clause associated
3061         with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
3062         (gimplify_adjust_omp_clauses): Fix typo in comment.
3063
3064 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
3065
3066         * config/rs6000/altivec.md (VParity): New mode iterator for vector
3067         parity built-in functions.
3068         (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
3069         zeros.
3070         (p9v_parity<mode>2): Likewise.
3071         * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
3072         parity.
3073         (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
3074         (parity<mode>2): ISA 3.0 expander for vector parity.
3075         * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
3076         power9 built-ins.
3077         (BU_P9_64BIT_MISC_0): Likewise.
3078         (BU_P9_MISC_0): Likewise.
3079         (BU_P9V_AV_1): Likewise.
3080         (BU_P9V_AV_2): Likewise.
3081         (BU_P9V_AV_3): Likewise.
3082         (BU_P9V_AV_P): Likewise.
3083         (BU_P9V_VSX_1): Likewise.
3084         (BU_P9V_OVERLOAD_1): Likewise.
3085         (BU_P9V_OVERLOAD_2): Likewise.
3086         (BU_P9V_OVERLOAD_3): Likewise.
3087         (VCTZB): Add vector count trailing zeros support.
3088         (VCTZH): Likewise.
3089         (VCTZW): Likewise.
3090         (VCTZD): Likewise.
3091         (VPRTYBD): Add vector parity support.
3092         (VPRTYBQ): Likewise.
3093         (VPRTYBW): Likewise.
3094         (VCTZ): Add overloaded vector count trailing zeros support.
3095         (VPRTYB): Add overloaded vector parity support.
3096         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
3097         overloaded vector count trailing zeros and parity instructions.
3098         * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
3099         vector parity support.
3100         * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
3101         trailing zeros support.
3102         (vec_cntlz): Likewise.
3103         (vec_vctzb): Likewise.
3104         (vec_vctzd): Likewise.
3105         (vec_vctzh): Likewise.
3106         (vec_vctzw): Likewise.
3107         (vec_vprtyb): Add ISA 3.0 vector parity support.
3108         (vec_vprtybd): Likewise.
3109         (vec_vprtybw): Likewise.
3110         (vec_vprtybq): Likewise.
3111         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
3112         the ISA 3.0 vector count trailing zeros and vector parity built-in
3113         functions.
3114
3115 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
3116
3117         * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
3118         when there is stmt_to_insert.
3119
3120 2016-05-24  Martin Sebor  <msebor@redhat.com>
3121
3122         PR c++/71147
3123         * tree.h (complete_or_array_type_p): New inline function.
3124
3125 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
3126
3127         * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
3128         * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
3129         rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
3130
3131         * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
3132         Limit 1st alternative to noavx isa, split 2nd alternative into one
3133         noavx and one avx alternative, use *x and Bm in the former and
3134         x and m in the latter.
3135
3136         * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
3137         of sse4 for the first alternative, drop %v from the template
3138         and d operand modifier.  Split second alternative into one sse4_noavx
3139         and one avx alternative, use *x instead of *v in the former and v
3140         instead of *v in the latter.
3141         (*sse4_1_extractps): Use noavx isa instead of * for the first
3142         alternative, drop %v from the template.  Split second alternative into
3143         one noavx and one avx alternative, use *x instead of *v in the
3144         former and v instead of *v in the latter.
3145         (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
3146         with noavx and the last one with avx.
3147         (sse4_1_phminposuw): Guard first alternative with noavx isa,
3148         split the second one into one noavx and one avx alternative,
3149         use *x and Bm in the former and x and m in the latter one.
3150         (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
3151         alternatives.
3152
3153         * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
3154         first two alternatives to noavx, use *x instead of *v in the second
3155         one, add avx alternative without *.
3156         (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
3157         sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
3158         sse4_1_<code>v2siv2di2<mask_name>): Likewise.
3159
3160 2016-05-24  Jeff Law  <law@redhat.com>
3161
3162         * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
3163         New function, extracted from...
3164         (fsm_find_control_statement_thread_paths): Here.  Use the new function.
3165         Allow simple copies and constant initializations in the SSA chain.
3166
3167 2016-05-24  Marek Polacek  <polacek@redhat.com>
3168
3169         PR c/71249
3170         * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
3171         scope.
3172
3173 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
3174
3175         PR c++/71257
3176         * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
3177         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
3178         SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.  Add
3179         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
3180         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
3181
3182 2016-05-24  Richard Biener  <rguenther@suse.de>
3183
3184         PR tree-optimization/71240
3185         * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
3186         has integral type.
3187
3188 2016-05-24  Richard Biener  <rguenther@suse.de>
3189
3190         PR tree-optimization/71230
3191         * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
3192
3193 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
3194
3195         * tree-vectorizer.h (vectorizable_comparison): Delete.
3196         * tree-vect-loop.c (vectorizable_reduction): Remove redundant
3197         PURE_SLP_STMT check.
3198         * tree-vect-stmts.c (vectorizable_call): Likewise.
3199         (vectorizable_simd_clone_call): Likewise.
3200         (vectorizable_conversion): Likewise.
3201         (vectorizable_assignment): Likewise.
3202         (vectorizable_shift): Likewise.
3203         (vectorizable_operation): Likewise.
3204         (vectorizable_load): Likewise.
3205         (vectorizable_condition): Likewise.
3206         (vectorizable_store): Likewise.  Assert that we don't have
3207         hybrid SLP.
3208         (vectorizable_comparison): Make static.  Remove redundant
3209         PURE_SLP_STMT check.
3210         (vect_transform_stmt): Assert that we always have an slp_node
3211         if PURE_SLP_STMT.
3212
3213 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3214
3215         * config/arm/neon.md (ashldi3_neon):  Replace comparison of INTVAL of
3216         operands[2] against 1 with comparison against CONST1_RTX.
3217         (<shift>di3_neon): Likewise.
3218         * config/arm/predicates.md (const0_operand): Replace with comparison
3219         against CONST0_RTX.
3220
3221 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3222
3223         * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
3224         operands[2] against 1 with comparison against CONST1_RTX.
3225         (ashrdi3): Likewise.
3226         (lshrdi3): Likewise.
3227         (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
3228         UINTVAL.
3229         (ashrsi3): Likewise.
3230         (lshrsi3): Likewise.
3231         (rotrsi3): Likewise.
3232         (define_split above *compareqi_eq0): Likewise.
3233         (define_split above "prologue"): Likewise.
3234         * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
3235         * config/arm/predicates.md (shift_operator): Likewise.
3236         (shift_nomul_operator): Likewise.
3237         (sat_shift_operator): Likewise.
3238         (thumb1_cmp_operand): Likewise.
3239         (const_neon_scalar_shift_amount_operand): Replace manual range
3240         check with IN_RANGE.
3241         * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
3242         Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
3243
3244 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3245
3246         * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
3247         with HOST_WIDE_INT_1.
3248         (insv): Likewise.
3249         * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
3250         1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
3251         (arm_canonicalize_comparison): Likewise.
3252         (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
3253         HOST_WIDE_INT_1.
3254         (thumb1_size_rtx_costs): Likewise.
3255         (vfp_const_double_index): Replace cast of 1 to unsigned
3256         HOST_WIDE_INT with HOST_WIDE_INT_1U.
3257         (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
3258         HOST_WIDE_INT_1.
3259         (arm_asan_shadow_offset): Replace cast of 1 to unsigned
3260         HOST_WIDE_INT with HOST_WIDE_INT_1U.
3261         * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
3262         HOST_WIDE_INT with HOST_WIDE_INT_1.
3263
3264 2016-05-24  Marek Polacek  <polacek@redhat.com>
3265
3266         * tree-cfg.h (should_remove_lhs_p): New predicate.
3267         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
3268         * gimplify.c (gimplify_modify_expr): Likewise.
3269         * tree-cfg.c (verify_gimple_call): Likewise.
3270         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
3271         * gimple-fold.c: Include "tree-cfg.h".
3272         (gimple_fold_call): Use should_remove_lhs_p.
3273
3274 2016-05-24  Richard Biener  <rguenther@suse.de>
3275
3276         PR tree-optimization/71253
3277         * cfganal.h (control_dependences): Make robust against edge
3278         and BB removal.
3279         (control_dependences::control_dependences): Remove edge_list argument.
3280         (control_dependences::get_edge): Remove.
3281         (control_dependences::get_edge_src): Add.
3282         (control_dependences::get_edge_dest): Likewise.
3283         (control_dependences::m_el): Make a vector of edge src/dest index.
3284         * cfganal.c (control_dependences::find_control_dependence): Adjust.
3285         (control_dependences::control_dependences): Likewise.
3286         (control_dependences::~control_dependence): Likewise.
3287         (control_dependences::get_edge): Remove.
3288         (control_dependences::get_edge_src): Add.
3289         (control_dependences::get_edge_dest): Likewise.
3290         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
3291         get_edge_src.
3292         (perform_tree_ssa_dce): Adjust.
3293         * tree-loop-distribution.c (create_edge_for_control_dependence): Use
3294         get_edge_src.
3295         (pass_loop_distribution::execute): Adjust.  Do loop destroying
3296         conditional on changed.
3297
3298 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3299
3300         PR target/69857
3301         * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
3302         return.  Reindent transformation comment and mention the ARM state
3303         behavior.
3304
3305 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
3306
3307         PR middle-end/71252
3308         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
3309         after build_and_add_sum creates new use stmt.
3310
3311 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
3312
3313         * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
3314         load_lanes/grouped_load classification comes first.  Don't check
3315         whether the vectorization factor is a multiple of the group size
3316         for load_lanes.
3317
3318 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
3319
3320         * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
3321         GROUP_GAP for single-element interleaving.
3322         * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
3323         variable.
3324
3325 2016-05-24  Richard Biener  <rguenther@suse.de>
3326
3327         PR middle-end/70434
3328         PR c/69504
3329         * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
3330         bases which are accessed with non-invariant indices.
3331         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
3332         constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
3333
3334 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
3335
3336         PR middle-end/71170
3337         * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
3338         (add_to_ops_vec): Add stmt_to_insert.
3339         (add_repeat_to_ops_vec): Init stmt_to_insert.
3340         (insert_stmt_before_use): New.
3341         (transform_add_to_multiply): Remove mult_stmt insertion and add it
3342         to ops vector.
3343         (get_ops): Init stmt_to_insert.
3344         (maybe_optimize_range_tests): Likewise.
3345         (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
3346         (rewrite_expr_tree_parallel): Likewise.
3347         (reassociate_bb): Likewise.
3348
3349 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
3350
3351         PR target/71201
3352         * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
3353         ISA 3.0 xxperm fusion alternative.
3354         (altivec_vperm_v8hiv16qi): Likewise.
3355         (altivec_vperm_<mode>_uns_internal): Likewise.
3356         (vperm_v8hiv4si): Likewise.
3357         (vperm_v16qiv8hi): Likewise.
3358
3359 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
3360             Kelvin Nilsen  <kelvin@gcc.gnu.org>
3361
3362         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
3363         vpermr/xxpermr on ISA 3.0.
3364         (altivec_expand_vec_perm_le): Likewise.
3365         * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
3366         (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
3367         ISA 3.0.
3368
3369 2016-05-23  Uros Bizjak  <ubizjak@gmail.com>
3370
3371         * config/i386/i386.h (IS_STACK_MODE): Enable for
3372         TARGET_MIX_SSE_I387.  Rewrite using X87_FLOAT_MODE_P and
3373         SSE_FLOAT_MODE_P macros.
3374         * config/i386/i386.c (ix86_preferred_reload_class): Use
3375         IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
3376         Cleanup regclass processing for CONST_DOUBLE_P.
3377         (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
3378         (ix86_rtx_costs): Remove redundant TARGET_80387 check
3379         with IS_STACK_MODE macro.
3380         * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
3381         with TARGET_SSE2.
3382         (*movdf_internal): Use IS_STACK_MODE macro.
3383         (*movsf_internal): Ditto.
3384
3385 2016-05-23  Marc Glisse  <marc.glisse@inria.fr>
3386
3387         * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
3388         ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
3389
3390 2016-05-23  Jeff Law  <law@redhat.com>
3391
3392         * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
3393         extracted from ...
3394         (fsm_find_control_statement_thread_paths): Call it.
3395
3396 2016-05-23  Martin Jambor  <mjambor@suse.cz>
3397
3398         PR ipa/71234
3399         * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
3400         from_global_constant if t is not NULL.
3401
3402 2016-05-23  Marek Polacek  <polacek@redhat.com>
3403
3404         PR c/49859
3405         * common.opt (Wswitch-unreachable): New option.
3406         * doc/invoke.texi: Document -Wswitch-unreachable.
3407         * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
3408         warning.
3409
3410 2016-05-23  Bin Cheng  <bin.cheng@arm.com>
3411
3412         * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
3413         TMR_INDEX is non-NULL.
3414
3415 2016-05-23  Richard Biener  <rguenther@suse.de>
3416
3417         PR tree-optimization/71230
3418         * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
3419         (try_special_add_to_ops): ... here.  Always test for single-use.
3420
3421 2016-05-23  Martin Jambor  <mjambor@suse.cz>
3422
3423         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
3424         default block if a PHI node in the original one would be resized.
3425
3426 2016-05-23  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
3427
3428         PR tree-optimization/58135
3429         * tree-vect-slp.c: When group size is not multiple
3430         of vector size, allow splitting of store group at
3431         vector boundary.
3432
3433 2016-05-23  Christophe Lyon  <christophe.lyon@linaro.org>
3434
3435         * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
3436
3437 2016-05-22  Jakub Jelinek  <jakub@redhat.com>
3438
3439         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
3440         vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
3441         condition.  For !TARGET_AVX512DQ, emit 32x4 instruction instead
3442         of 64x2.
3443
3444         * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
3445         vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
3446         v constraint instead of x and vinserti32x4 insn.
3447
3448         * config/i386/sse.md (i128vldq): New mode iterator.
3449         (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
3450         avx512dq and avx512vl alternatives.
3451
3452         * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
3453         constraint, use maybe_evex prefix instead of vex.
3454         (vec_dupv4sf): Use v constraint instead of x for output
3455         operand except for noavx alternative, use Yv constraint
3456         instead of x for input.  Use maybe_evex prefix instead of vex.
3457         (*vec_dupv4si): Likewise.
3458         (*vec_dupv2di): Likewise.
3459
3460 2016-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
3461
3462         PR middle-end/40921
3463         * tree-ssa-reassoc.c (try_special_add_to_ops): New.
3464         (linearize_expr_tree): Call try_special_add_to_ops.
3465         (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
3466
3467 2016-05-21  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
3468
3469         * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
3470         to computed stack_usage.
3471
3472 2016-05-21  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
3473
3474         PR target/71103
3475         * config/avr/avr.md (define_expand "mov<mode>"): If the source
3476         operand is subreg (symbol_ref) then move the symbol ref to register.
3477
3478 2016-05-21  Jan Hubicka  <hubicka@ucw.cz>
3479
3480         * tree.c (array_at_struct_end_p): Look through MEM_REF.
3481
3482 2016-05-21  Kugan Vivekanandarajah  <kuganv@linaro.org>
3483
3484         PR middle-end/71179
3485         * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
3486         VECTOR type.
3487
3488 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
3489
3490         * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
3491         ranges by calling get_single_symbol and tidy up.  Look more closely
3492         into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
3493
3494 2016-05-20  Jeff Law  <law@redhat.com>
3495
3496         * bitmap.c (bitmap_find_bit): Remove useless test.
3497
3498 2016-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
3499
3500         * function.c (thread_prologue_and_epilogue_insns): Commit the
3501         insertion of the epilogue.
3502
3503 2016-05-20  Martin Jambor  <mjambor@suse.cz>
3504
3505         PR tree-optimization/70884
3506         * tree-sra.c (initialize_constant_pool_replacements): Do not check
3507         should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
3508         (sort_and_splice_var_accesses): Do not consider multiple scalar reads
3509         of constant pool data as a reason for scalarization.
3510
3511 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
3512
3513         * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
3514         for naked functions.
3515         (thumb1_expand_prologue): Likewise.
3516
3517 2016-05-20  Nathan Sidwell  <nathan@acm.org>
3518
3519         * config/nvptx/nptx.c (nvptx_option_override): Only set
3520         flag_toplevel_reorder, if not explicitly specified.  Set
3521         flag_no_common, unless explicitly specified.
3522
3523 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
3524
3525         * calls.c (can_implement_as_sibling_call_p): Mark param
3526         reg_parm_stack_space with ATTRIBUTE_UNUSED.
3527
3528 2016-05-20  Uros Bizjak  <ubizjak@gmail.com>
3529
3530         * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
3531         Use IS_STACK_MODE when calculating cost of standard 80387 constants.
3532         Fallthru to CONST_VECTOR case to calculate cost of standard SSE
3533         constants.
3534         <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
3535         (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
3536         and CASE_CONST_ANY.
3537
3538 2016-05-20  Cesar Philippidis  <cesar@codesourcery.com>
3539
3540         * config/nvptx/nvptx.md (sincossf3): New pattern.
3541
3542 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
3543
3544         * calls.c (maybe_complain_about_tail_call): New function.
3545         (initialize_argument_information): Call
3546         maybe_complain_about_tail_call when clearing *may_tailcall.
3547         (can_implement_as_sibling_call_p): Call
3548         maybe_complain_about_tail_call when returning false.
3549         (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
3550         ensure try_tail_call is set.  Call maybe_complain_about_tail_call
3551         if tail-call optimization fails.
3552         * cfgexpand.c (expand_call_stmt): Initialize
3553         CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
3554         * gimple-pretty-print.c (dump_gimple_call): Dump
3555         gimple_call_must_tail_p.
3556         * gimple.c (gimple_build_call_from_tree): Call
3557         gimple_call_set_must_tail with the value of
3558         CALL_EXPR_MUST_TAIL_CALL.
3559         * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
3560         (gimple_call_set_must_tail): New function.
3561         (gimple_call_must_tail_p): New function.
3562         * print-tree.c (print_node): Update printing of TREE_STATIC
3563         to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
3564         * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
3565         trailing comment listing applicable flags.
3566         * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
3567
3568 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
3569
3570         * calls.c (expand_call): Move "Rest of purposes for tail call
3571         optimizations to fail" to...
3572         (can_implement_as_sibling_call_p): ...this new function, and
3573         split into multiple "if" statements.
3574
3575 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
3576
3577         * cfgloop.h (expected_loop_iterations_unbounded,
3578         expected_loop_iterations): Unconstify.
3579         * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
3580         profile with known upper bound; return 3 when profile is absent.
3581         (expected_loop_iterations): Update.
3582
3583 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
3584
3585         * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
3586         and get_max_loop_iterations_int.
3587
3588 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
3589
3590         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
3591         realistic upper bounds here.
3592
3593 2016-05-20  Jakub Jelinek  <jakub@redhat.com>
3594
3595         PR c++/71210
3596         * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
3597         calls if the LHS is variable length or has addressable type.
3598         If targets[0]->decl is a noreturn call with void return type and
3599         zero arguments, adjust fntype and remove lhs in that case.
3600
3601 2016-05-20  Marc Glisse  <marc.glisse@inria.fr>
3602
3603         PR tree-optimization/71079
3604         PR tree-optimization/71206
3605         * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
3606
3607 2016-05-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3608
3609         * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
3610         (get_vec_alignment_for_array_decl): Likewise.
3611         (get_vec_alignment_for_record_decl): Likewise.
3612         (increase_alignment::execute): Move code to find alignment to
3613         get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
3614         (type_align_map): New hash_map.
3615
3616 2016-05-20  Richard Guenther  <rguenther@suse.de>
3617
3618         PR tree-optimization/29756
3619         * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
3620         * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
3621         * fold-const.c (operand_equal_p): Likewise.
3622         (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
3623         * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
3624         * tree-inline.c (estimate_operator_cost): Likewise.
3625         * tree-pretty-print.c (dump_generic_node): Likewise.
3626         * tree-ssa-operands.c (get_expr_operands): Likewise.
3627         * cfgexpand.c (expand_debug_expr): Likewise.
3628         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
3629         * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
3630         * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
3631         * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
3632         vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
3633         (execute_update_addresses_taken): Do it.
3634
3635 2016-05-20  Richard Biener  <rguenther@suse.de>
3636
3637         PR tree-optimization/71185
3638         * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
3639         register operations.
3640
3641 2016-05-20  Richard Biener  <rguenther@suse.de>
3642
3643         * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
3644         gimple_seq_add_seq_without_update.
3645         (release_bb_predicate): Assert we have no operands to free.
3646         (if_convertible_loop_p_1): Calculate post dominators later.
3647         Do not free BB predicates here.
3648         (combine_blocks): Do not recompute BB predicates.
3649         (version_loop_for_if_conversion): Save BB predicates around
3650         loop versioning.
3651
3652 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
3653
3654         * function.c (make_epilogue_seq): Remove epilogue_end parameter.
3655         (thread_prologue_and_epilogue_insns): Remove bb_flags.  Restructure
3656         code.  Ignore sibcalls on EDGE_IGNORE edges.
3657         * shrink-wrap.c (handle_simple_exit): New function.  Set EDGE_IGNORE
3658         on edges for sibcalls that run without prologue.  The rest of the
3659         function is combined from...
3660         (fix_fake_fallthrough_edge): ... this, and ...
3661         (try_shrink_wrapping): ... a part of this.  Remove the bb_with
3662         function argument, make it a local variable.
3663
3664 2016-05-19  Sandra Loosemore  <sandra@codesourcery.com>
3665
3666         * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
3667         --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
3668         for 32-bit mode and SEH for 64-bit.
3669         * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
3670         TARGET_64BIT_DEFAULT.
3671
3672 2016-05-19  Ryan Burn  <contact@rnburn.com>
3673
3674         * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
3675         * gengtype.c (open_base_files): Add cilk.h to ifiles.
3676
3677 2016-05-19  Uros Bizjak  <ubizjak@gmail.com>
3678
3679         * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
3680         force pending loads from memory.
3681
3682 2016-05-19  Kelvin Nilsen  <kelvin@gcc.gnu.org>
3683
3684         * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
3685         (UNSPEC_DARN_32): New unspec constant.
3686         (UNSPEC_DARN_RAW): New unspec constant.
3687         (darn_32): New instruction.
3688         (darn_raw): New instruction.
3689         (darn): New instruction.
3690         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
3691         support and documentation for this macro.
3692         (BU_P9_MISC_1): New macro definition.
3693         (BU_P9_64BIT_MISC_0): New macro definition.
3694         (BU_P9_MISC_0): New macro definition.
3695         (darn_32): New builtin definition.
3696         (darn_raw): New builtin definition.
3697         (darn): New builtin definition.
3698         * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
3699         RS6000_BUILTIN_0 directives to surround each occurrence of
3700         #include "rs6000-builtin.def".
3701         (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
3702         RS6000_BTM_64BIT flags to the returned mask, depending on
3703         configuration.
3704         (def_builtin): Correct an error in the assignments made to the
3705         debugging variable attr_string.
3706         (rs6000_expand_builtin): Add support for no-operand built-in
3707         functions.
3708         (builtin_function_type): Remove fatal_error assertion that is no
3709         longer valid.
3710         (rs6000_common_init_builtins): Add support for no-operand built-in
3711         functions.
3712         * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
3713         definition.
3714         (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
3715         definition.
3716         (RS6000_BTM_64BIT): New macro definition.
3717         * doc/extend.texi: Document __builtin_darn (void),
3718         __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
3719         functions.
3720
3721 2016-05-19  Jan Hubicka  <hubicka@ucw.cz>
3722
3723         * tree-vect-loop.c (vect_analyze_loop_2): Use also
3724         max_loop_iterations_int.
3725
3726 2016-05-19  Marek Polacek  <polacek@redhat.com>
3727
3728         PR tree-optimization/71031
3729         * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
3730         condition and adjust the code a bit.
3731
3732 2016-05-19  Martin Liska  <mliska@suse.cz>
3733
3734         * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
3735         auto_vec instead of vec.
3736
3737 2016-05-19  Martin Liska  <mliska@suse.cz>
3738
3739         * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
3740
3741 2016-05-19  Martin Liska  <mliska@suse.cz>
3742
3743         * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
3744
3745 2016-05-19  Martin Liska  <mliska@suse.cz>
3746
3747         * ipa-pure-const.c (set_function_state): Remove an existing
3748         funct_state.
3749         (remove_node_data): Do not free it as it's released
3750         in set_function_state.
3751
3752 2016-05-19  Martin Liska  <mliska@suse.cz>
3753
3754         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
3755         bitmap.
3756
3757 2016-05-19  Martin Liska  <mliska@suse.cz>
3758
3759         * omp-simd-clone.c (simd_clone_adjust): Release vector.
3760
3761 2016-05-19  Martin Liska  <mliska@suse.cz>
3762
3763         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
3764         an auto_vec instead of re-creating it.
3765
3766 2016-05-19  Martin Liska  <mliska@suse.cz>
3767
3768         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
3769         auto_vec instead of vec.
3770
3771 2016-05-19  Martin Liska  <mliska@suse.cz>
3772
3773         * lto-section-in.c (lto_get_section_data): Call
3774         lto_check_version with additional argument.
3775         * lto-streamer.c (lto_check_version): Add new argument.
3776         * lto-streamer.h (lto_check_version): Likewise.
3777
3778 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3779
3780         * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
3781         Don't add cost of inner memory when handling sign-extended loads.
3782
3783 2016-05-19  Ilya Enkovich  <ilya.enkovich@intel.com>
3784
3785         PR rtl-optimization/71148
3786         * cse.c (cse_main): Free dominance info.
3787         (rest_of_handle_cse): Don't free dominance info.
3788         (rest_of_handle_cse2): Likewise.
3789         (rest_of_handle_cse_after_global_opts): Likewise.
3790
3791 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3792
3793         PR target/71056
3794         * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
3795         NULL_TREE early if NEON is not available.  Remove now redundant check
3796         in ARM_CHECK_BUILTIN_MODE.
3797
3798 2016-05-19  Maxim Ostapenko  <m.ostapenko@samsung.com>
3799
3800         PR sanitizer/64354
3801         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
3802         builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
3803         * doc/cpp.texi: Document new macros.
3804
3805 2016-05-19 Bin Cheng  <bin.cheng@arm.com>
3806
3807         PR tree-optimization/69848
3808         * tree-vect-loop.c (vectorizable_reduction): Don't factor
3809         comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
3810
3811 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
3812
3813         * function.c (thread_prologue_and_epilogue_insn): Move the
3814         "goto epilogue_done" one block later.
3815
3816 2016-05-19  Richard Biener  <rguenther@suse.de>
3817
3818         PR tree-optimization/70729
3819         * passes.def: Move LIM pass before PRE.  Remove no longer
3820         required copyprop and move first DCE out of the loop pipeline.
3821
3822 2016-05-18  David Malcolm  <dmalcolm@redhat.com>
3823
3824         PR driver/69265
3825         * Makefile.in (GCC_OBJS): Move spellcheck.o to...
3826         (OBJS-libcommon-target): ...here.
3827         * opts-common.c: Include spellcheck.h.
3828         (cmdline_handle_error): Build a vec of valid options and use it
3829         to suggest provide hints for misspelled arguments.
3830
3831 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
3832
3833         PR c++/71100
3834         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
3835         lhs if it has TREE_ADDRESSABLE type.
3836
3837 2016-05-18  Uros Bizjak  <ubizjak@gmail.com>
3838
3839         PR target/71145
3840         * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
3841         (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
3842
3843 2016-05-18  Martin Jambor  <mjambor@suse.cz>
3844
3845         PR ipa/69708
3846         * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
3847         input for NOP_EXPR pass-through functions.
3848         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
3849         aggregate global constant VAR_DECLs in constant jump functions.
3850
3851 2016-05-18  Martin Jambor  <mjambor@suse.cz>
3852
3853         PR ipa/69708
3854         * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
3855         from TREE_READONLY parameters.
3856
3857 2016-05-18  Martin Jambor  <mjambor@suse.cz>
3858
3859         PR ipa/69708
3860         * cgraph.h (cgraph_indirect_call_info): New field
3861         guaranteed_unmodified.
3862         * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
3863         to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
3864         appropriate.
3865         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
3866         pass the parameter value to ipa_find_agg_cst_for_param.
3867         * ipa-prop.c (ipa_load_from_parm_agg): New parameter
3868         guaranteed_unmodified, store AA results there instead of bailing out
3869         if present.
3870         (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
3871         (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
3872         (find_constructor_constant_at_offset): New function.
3873         (ipa_find_agg_cst_from_init): Likewise.
3874         (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
3875         static initializers of contants, report back through a new paameter
3876         from_global_constant if that was the case.
3877         (try_make_edge_direct_simple_call): Also pass parameter value to
3878         ipa_find_agg_cst_for_param, check guaranteed_unmodified when
3879         appropriate.
3880         (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
3881         (ipa_read_indirect_edge_info): Likewise.
3882         * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
3883         (ipa_load_from_parm_agg): Likewise.
3884
3885 2016-05-18  Jiong Wang  <jiong.wang@arm.com>
3886
3887         PR rtl-optimization/71150
3888         * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
3889         check.
3890
3891 2016-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
3892
3893         PR target/70915
3894         * config/rs6000/constraints.md (wE constraint): New constraint
3895         for a vector constant that can be loaded with XXSPLTIB.
3896         (wM constraint): New constraint for a vector constant of a 1's.
3897         (wS constraint): New constraint for a vector constant that can be
3898         loaded with XXSPLTIB and a vector sign extend instruction.
3899         * config/rs6000/predicates.md (xxspltib_constant_split): New
3900         predicates for wE/wS constraints.
3901         (xxspltib_constant_nosplit): Likewise.
3902         (easy_vector_constant): Add support for constants that can be
3903         loaded via XXSPLTIB.
3904         (all_ones_constant): New predicate for vector constant with all
3905         1's set.
3906         (splat_input_operand): Add support for ISA 3.0 word splat operations.
3907         * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
3908         return if a constant can be loaded with the ISA 3.0 XXSPLTIB
3909         instruction and possibly with a sign extension.
3910         (output_vec_const_move): Add support for XXSPLTIB. If we are
3911         loading up 0/-1 into Altivec registers, prefer using VSPLTISW
3912         instead of XXLXOR/XXLORC.
3913         (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
3914         operations.
3915         (rs6000_legitimize_reload_address): Likewise.
3916         (rs6000_output_move_128bit): Use output_vec_const_move to emit
3917         constants.
3918         * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
3919         combine VSX_M and VSX_M2 into one iterator.
3920         (VSX_M2): Likewise.
3921         (VSINT_84): New iterators for loading constants with XXSPLTIB.
3922         (VSINT_842): Likewise.
3923         (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
3924         (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
3925         XXSPLTIB instruction.
3926         (xxspltib_<mode>_nosplit): Likewise.
3927         (xxspltib_<mode>_split): New insn to load up constants with
3928         XXSPLTIB and a sign extend instruction.
3929         (vsx_mov<mode>): Replace single move that handled all vector types
3930         with separate 32-bit and 64-bit moves.  Combine the movti_<bit>
3931         moves (when -mvsx-timode is in effect) into the main vector
3932         moves.  Eliminate separate moves for <VSr> <VSa>, where the
3933         preferred register class (<VSr>) is listed first, and the
3934         secondary register class (<VSa>) is listed second with a '?' to
3935         discourage use.  Prefer loading 0/-1 in any VSX register for ISA
3936         3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
3937         that if the register was involved in a slow operation, the
3938         clear/set operation does not wait for the slow operation to
3939         finish.  Adjust the length attributes for 32-bit mode.  Use
3940         rs6000_output_move_128bit and drop the use of the string
3941         instructions for 32-bit movti when -mvsx-timode is in effect.  Use
3942         spacing so that the alternatives and attributes don't generate
3943         long lines, and put things in columns, so that it is easier to
3944         match up the operands and attributes with the insn alternatives.
3945         (vsx_mov<mode>_64bit): Likewise.
3946         (vsx_mov<mode>_32bit): Likewise.
3947         (vsx_movti_64bit): Fold movti into normal vector moves.
3948         (vsx_movti_32bit): Likewise.
3949         (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
3950         splat instructions.
3951         (vsx_splat_v4si_internal): Likewise.
3952         (vsx_splat_v4sf_internal): Likewise.
3953         (vector fusion peepholes): Use VSX_M instead of VSX_M2.
3954         (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
3955         extend vector elements.
3956         (vsx_sign_extend_hi_<mode>): Likewise.
3957         (vsx_sign_extend_si_v2di): Likewise.
3958         * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
3959         declaration.
3960         * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
3961         constraints.  Add trailing period to wL documentation.
3962
3963 2016-05-18  Richard Sandiford  <richard.sandiford@arm.com>
3964
3965         PR middle-end/71020
3966         * tree-dfa.h (replace_abnormal_ssa_names): Declare.
3967         * tree-dfa.c (replace_abnormal_ssa_names): New function.
3968         * tree-call-cdce.c: Include tree-dfa.h.
3969         (can_guard_call_p): New function, extracted from...
3970         (can_use_internal_fn): ...here.
3971         (shrink_wrap_one_built_in_call_with_conds): Remove failure path
3972         and return void.
3973         (shrink_wrap_one_built_in_call): Likewise.
3974         (use_internal_fn): Likewise.
3975         (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
3976         and return void.  Call replace_abnormal_ssa_names.
3977         (pass_call_cdce::execute): Check can_guard_call_p during the
3978         initial walk.  Assume shrink_wrap_conditional_dead_built_in_calls
3979         will always change something.
3980
3981 2016-05-18  Martin Jambor  <mjambor@suse.cz>
3982
3983         PR ipa/70646
3984         * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
3985         if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
3986
3987 2016-05-18  Martin Jambor  <mjambor@suse.cz>
3988
3989         PR ipa/70646
3990         * ipa-inline.h (condition): New field size.
3991         * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
3992         for comaprison and store it into the new condition.
3993         (evaluate_conditions_for_known_args): Use condition size to check
3994         access sizes for all but CHANGED conditions.
3995         (unmodified_parm_1): New parameter size_p, store access size into it.
3996         (unmodified_parm): Likewise.
3997         (unmodified_parm_or_parm_agg_item): Likewise.
3998         (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
3999         (set_cond_stmt_execution_predicate): Extract access sizes and store
4000         them to conditions.
4001         (set_switch_stmt_execution_predicate): Likewise.
4002         (will_be_nonconstant_expr_predicate): Likewise.
4003         (will_be_nonconstant_predicate): Likewise.
4004         (inline_read_section): Stream condition size.
4005         (inline_write_summary): Likewise.
4006
4007 2016-05-18  Richard Biener  <rguenther@suse.de>
4008
4009         * tree-ssa-loop-im.c (determine_max_movement): Properly add
4010         condition cost to PHI cost instead of total_cost.
4011
4012 2016-05-18  Martin Liska  <mliska@suse.cz>
4013
4014         PR fortran/70856
4015         * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
4016         merged variables.
4017
4018 2016-05-18  Richard Biener  <rguenther@suse.de>
4019
4020         * lto-streamer.h (LTO_major_version): Bump to 6.
4021
4022 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
4023
4024         * function.c (make_split_prologue_seq, make_prologue_seq,
4025         make_epilogue_seq): New functions, factored out from...
4026         (thread_prologue_and_epilogue_insns): Here.
4027
4028 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
4029
4030         * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
4031         cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
4032         of before.  Add a comment.
4033
4034 2016-05-18 Bin Cheng  <bin.cheng@arm.com>
4035
4036         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
4037         expression pointer, not pointer to the pointer.
4038
4039 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
4040
4041         * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
4042         (avx2_pbroadcast<mode>): Add another alternative with v instead
4043         of x constraints in it, using <pbroadcast_evex_isa> isa.
4044         (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
4045
4046         * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
4047         constraint x instead of v in second alternative, add avx512bw
4048         alternative.
4049
4050         * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
4051         constraint x instead of v in second alternative, add avx512bw
4052         alternative.
4053
4054         * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
4055         constraint x instead of v in second alternative, add avx512bw
4056         alternative.
4057
4058         * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
4059         avx512bw alternative.
4060
4061 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
4062
4063         * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
4064         array to 128 chars.
4065         (define_insn "*andnottf3"): Ditto.
4066         (define_insn "*<code><mode>3"/any_logic): Ditto.
4067         (define_insn "*<code>tf3"/any_logic): Ditto.
4068         (define_insn "sse2_storehpd"): Use Yv constraint for scalar
4069         operand to block AVX-512VL insn variant emit when it is not enabled.
4070
4071 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
4072
4073         * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
4074         constraint fot SF mode.
4075
4076 2016-05-18  Petr Murzin  <petr.murzin@intel.com>
4077             Kirill Yukhin  <kirill.yukhin@intel.com>
4078
4079         * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
4080         modifiers.
4081         (define_insn "rsqrt14<mode>"): Ditto.
4082         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
4083         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
4084         (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
4085         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
4086         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
4087         Ditto.
4088         (define_insn "*avx512f_gatherdi<mode>"): Ditto.
4089         (define_insn "*avx512f_scatterdi<mode>"): Ditto.
4090         * config/i386/i386.c (ix86_print_operand): Expand check for size
4091         override codes for Intel syntax.
4092
4093 2016-05-18  Richard Biener  <rguenther@suse.de>
4094
4095         PR tree-optimization/71168
4096         * tree-loop-distribution.c (distribute_loop): Move *destroy_p
4097         initialization earlier.
4098
4099 2016-05-18  James Greenhalgh  <james.greenhalgh@arm.com>
4100
4101         * config/aarch64/aarch64-simd.md
4102         (aarch64_reduc_plus_internal<mode>): Rename to...
4103         (reduc_plus_scal): ...This, and remove previous implementation.
4104
4105 2016-05-18  Richard Biener  <rguenther@suse.de>
4106
4107         * passes.def: Put late dse and cd_dce in canonical order.
4108
4109 2016-05-17  Jan Hubicka  <hubicka@ucw.cz>
4110
4111         * ipa-inline-transform.c (preserve_function_body_p): Look for
4112         first non-thunk clone.
4113         (save_function_body): Save into first non-thunk.
4114         * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
4115         up call stmt id.
4116         (lto_output_node): Inline thunks don't need body in every
4117         partition.
4118         * lto-streamer-in.c: Do not fixup thunk clones.
4119         * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
4120         thunks.
4121         * tree-inline.c (copy_bb): Be prepared for target node to be new after
4122         folding suceeds.
4123
4124 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
4125
4126         PR middle-end/63586
4127         * tree-ssa-reassoc.c (transform_add_to_multiply): New.
4128         (reassociate_bb): Call transform_add_to_multiply.
4129
4130 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
4131
4132         * config/aarch64/aarch64.c (all_extensions): Removed unused
4133         static variable.
4134
4135 2016-05-17  Nathan Sidwell  <nathan@acm.org>
4136
4137         * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
4138         (TARGET_FUNCTION_ARG_BOUNDARY): Override.
4139
4140 2016-05-17  Mikhail Maltsev  <maltsevm@gmail.com>
4141
4142         PR tree-optimization/54579
4143         PR middle-end/55299
4144         * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
4145
4146 2016-05-17  Marek Polacek  <polacek@redhat.com>
4147
4148         PR ipa/71146
4149         * tree-inline.c (expand_call_inline): Call
4150         maybe_remove_unused_call_args.
4151
4152 2016-05-17  Jim Wilson  <jim.wilson@linaro.org>
4153
4154         * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
4155         * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
4156         * doc/md.texi (fmin@var{m}3): Likewise.
4157
4158 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
4159
4160         * match.pd (X & C): New transformation.
4161
4162 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
4163
4164         * match.pd (~X & Y): New transformation.
4165
4166 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
4167
4168         * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
4169         information for new SSA_NAME.
4170         (simplify_conversion_using_ranges): Get range through get_range_info
4171         instead of get_value_range.
4172
4173 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
4174
4175         * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
4176         Remove inline assembly.
4177         (vmvn_s16): Likewise.
4178         (vmvn_s32): Likewise.
4179         (vmvn_u8): Likewise.
4180         (vmvn_u16): Likewise.
4181         (vmvn_u32): Likewise.
4182         (vmvnq_s8): Likewise.
4183         (vmvnq_s16): Likewise.
4184         (vmvnq_s32): Likewise.
4185         (vmvnq_u8): Likewise.
4186         (vmvnq_u16): Likewise.
4187         (vmvnq_u32): Likewise.
4188         (vmvn_p8): Likewise.
4189         (vmvnq_p16): Likewise.
4190
4191 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
4192
4193         * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
4194         Use builtin.
4195         (vmul_n_s16): Likewise.
4196         (vmul_n_s32): Likewise.
4197         (vmul_n_u16): Likewise.
4198         (vmul_n_u32): Likewise.
4199         (vmulq_n_f32): Likewise.
4200         (vmulq_n_f64): Likewise.
4201         (vmulq_n_s16): Likewise.
4202         (vmulq_n_s32): Likewise.
4203         (vmulq_n_u16): Likewise.
4204         (vmulq_n_u32): Likewise.
4205
4206 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
4207
4208         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
4209         to all supported modes.  Rename to "*aarch64_mul3_elt_from_dup".
4210
4211 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
4212
4213         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
4214         to *aarch64_fma4_elt_from_dup<mode>.
4215         (*aarch64_fnma4_elt_to_128df): Rename to
4216         *aarch64_fnma4_elt_from_dup<mode>.
4217         * config/aarch64/arm_neon.h (vfma_n_f64): New.
4218         (vfms_n_f32): Likewise.
4219         (vfms_n_f64): Likewise.
4220         (vfmsq_n_f32): Likewise.
4221         (vfmsq_n_f64): Likewise.
4222
4223 2016-05-17  Gerald Pfeifer  <gerald@pfeifer.com>
4224
4225         * wide-int.h: Change fixed_wide_int_storage from class to struct.
4226
4227 2016-05-17  Richard Biener  <rguenther@suse.de>
4228
4229         PR tree-optimization/71132
4230         * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
4231         Only add control dependences for blocks in the loop.
4232         (build_rdg): Adjust.
4233         (generate_code_for_partition): Return whether loop should
4234         be destroyed and delay that.
4235         (distribute_loop): Likewise.
4236         (pass_loop_distribution::execute): Record loops to be destroyed
4237         and perform delayed destroying of loops.
4238
4239 2016-05-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4240
4241         PR target/70809
4242         * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
4243
4244 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
4245
4246         * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
4247
4248 2016-05-17  Ilya Enkovich  <ilya.enkovich@intel.com>
4249
4250         PR target/71114
4251         * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
4252         insertion point for instructions generated by validize_mem.
4253
4254 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
4255
4256         * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
4257         in brackets.
4258
4259 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
4260
4261         * config/aarch64/aarch64.c
4262         (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
4263         rather than a macro.
4264
4265 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
4266
4267         * doc/invoke.texi (AArch64 Options): Various updates.
4268
4269 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4270
4271         * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
4272         into instrumentation thunks.
4273         * cif-code.def (CIF_CHKP): New.
4274
4275 2016-05-16  Uros Bizjak  <ubizjak@gmail.com>
4276
4277         * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
4278
4279 2016-05-16  Martin Jambor  <mjambor@suse.cz>
4280
4281         * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
4282         (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
4283
4284 2016-05-16  Marek Polacek  <polacek@redhat.com>
4285
4286         * gimple.c (maybe_remove_unused_call_args): Fix typos in the
4287         commentary.
4288
4289 2016-05-16  Martin Jambor  <mjambor@suse.cz>
4290
4291         PR hsa/70857
4292         * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
4293         the outlined kernel function.
4294
4295 2016-05-16  Robert Suchanek  <robert.suchanek@imgtec.com>
4296
4297         * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
4298         (ISA_HAS_DLSA): Ditto.
4299
4300 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
4301
4302         * config/mips/m5100.md (m51_int_load): Update the latency to 2.
4303
4304 2016-05-16  Nathan Sidwell  <nathan@acm.org>
4305
4306         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
4307         (nvptx_name_replacement): Restore.  Add comment.
4308         (write_fn_proto, write_fn_proto_from_insn,
4309         nvptx_output_call_insn): Restore
4310         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
4311
4312 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
4313
4314         * config/aarch64/aarch64.md
4315         (add<mode>3_compareC_cconly_imm): Remove use of %w.
4316         (add<mode>3_compareC_imm): Likewise.
4317         (<optab>si3_uxtw): Split into register and immediate variants.
4318         (andsi3_compare0_uxtw): Likewise.
4319         (and<mode>3_compare0): Likewise.
4320         (and<mode>3nr_compare0): Likewise.
4321         (stack_protect_test_<mode>): Don't use %x for memory operands.
4322
4323 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
4324
4325         * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
4326
4327 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
4328
4329         * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
4330         Split integer shifts into shift_reg and bfm.
4331         (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
4332         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
4333         (ror<mode>3_insn): Likewise.
4334         (<optab>si3_insn_uxtw): Likewise.
4335         (<optab><mode>3_insn): Change to rotate_imm.
4336         (extr<mode>5_insn_alt): Likewise.
4337         (extrsi5_insn_uxtw): Likewise.
4338         (extrsi5_insn_uxtw_alt): Likewise.
4339
4340 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
4341
4342         * doc/tm.texi: Regenerate.
4343         * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
4344         (TARGET_INVALID_RETURN_TYPE): Remove.
4345         * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
4346         TARGET_INVALID_RETURN_TYPE.
4347         * target.def (invalid_parameter_type): Remove.
4348         (invalid_return_type): Remove.
4349
4350 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4351
4352         * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
4353         on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
4354         calls from thunk.
4355         * ipa-inline-transform.c (inline_call): When inlining into thunk produce
4356         gimple body.
4357         (preserve_function_body_p): No need to preserve function body
4358         * cif-codes.def (CIF_THUNK): Remove.
4359         * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
4360
4361 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4362
4363         * tree-inline.c (expand_call_inline): recurse after inlining thunk.
4364
4365 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4366
4367         * tree.c (free_lang_data_in_decl): Also set target/optimization flags
4368         for thunks.
4369
4370 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4371
4372         * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
4373         (inline_small_functions): Do not look for function symbol when
4374         resetting caches.
4375
4376 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
4377
4378         * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
4379         of inline thunks
4380
4381 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
4382             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4383             Jiong Wang  <jiong.wang@arm.com>
4384
4385         * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
4386         for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
4387         Define __ARM_FP16_ARGS when appropriate.
4388         * config/arm/arm.c (arm_invalid_parameter_type): Remove
4389         declaration.
4390         (arm_invalid_return_type): Likewise.
4391         (TARGET_INVALID_PARAMETER_TYPE): Remove.
4392         (TARGET_INVALID_RETURN_TYPE): Remove.
4393         (aapcs_vfp_sub_candidate): Allow HFmode.
4394         (aapcs_vfp_allocate): Add comment.  Support HFmode.
4395         (aapcs_vfp_allocate_return_reg): Likewise.
4396         (struct aapcs_cp_arg_layout): Slightly reword comments for
4397         is_return_candidate and allocate_return_reg.
4398         (output_mov_vfp): Update assert.
4399         (arm_hard_regno_mode_ok): Remove comment, update HF-mode
4400         condition.
4401         (arm_invalid_parameter_type): Remove.
4402         (amr_invalid_return_type): Remove.
4403         * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
4404         * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
4405         * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
4406
4407 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
4408
4409         * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
4410         * config/aarch64/arch64-protos.h
4411         (aarch64_legitimize_reload_address): Remove.
4412         * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
4413         Remove.
4414
4415 2016-05-16  Eric Botcazou  <ebotcazou@adacore.com>
4416
4417         * configure.ac: Add ACX_NONCANONICAL_HOST.
4418         * configure: Regenerate.
4419         * Makefile.in: Set host_noncanonical.
4420
4421 2016-05-14  Uros Bizjak  <ubizjak@gmail.com>
4422
4423         PR target/71097
4424         * config/i386/i386.md (*movtf_internal): Before register allocation,
4425         do not allow FP constants for CM_MEDIUM memory model, allow only
4426         standard FP constants for CM_LARGE and CM_LARGE_PIC models.
4427         (*movxf_internal): Ditto.
4428         (*movdf_internal): Ditto.
4429         (*movsf_internal): Ditto.
4430
4431 2016-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
4432
4433         PR rtl-optimization/67483
4434         * combine.c (make_compound_operation): Don't call extract_left_shift
4435         with negative shift amounts.
4436
4437 2016-05-13  Jakub Jelinek  <jakub@redhat.com>
4438
4439         PR bootstrap/71071
4440         * fold-const.c (fold_checksum_tree): Allow modification
4441         of TYPE_ALIAS_SET during folding.
4442
4443         * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
4444         ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
4445         (ix86_split_to_parts): Likewise.  Fix up formatting.
4446
4447 2016-05-13  H.J. Lu  <hongjiu.lu@intel.com>
4448
4449         * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
4450         unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
4451         printf format.
4452
4453 2016-05-13  Nathan Sidwell  <nathan@acm.org>
4454
4455         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
4456         (nvptx_name_replacement): Delete.
4457         (write_fn_proto, write_fn_proto_from_insn,
4458         nvptx_output_call_insn): Remove nvptx_name_replacement call.
4459         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
4460         * langhooks.c (add_builtin_funcction_common): Call
4461         targetm.mangle_decl_assembler_name.
4462
4463         * config/nvptx/nvptx.c (write_fn_proto): Handle
4464         BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
4465
4466 2016-05-13  Martin Liska  <mliska@suse.cz>
4467
4468         * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
4469         and PRIu64 in printf format.
4470
4471 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4472
4473         * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
4474         comment.
4475
4476 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4477
4478         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
4479         Change --param max-completely-peeled-times to
4480         --param max-completely-peel-times in dump file printing.
4481
4482 2016-05-13  Richard Biener  <rguenther@suse.de>
4483
4484         PR tree-optimization/42587
4485         * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
4486         (find_bswap_or_nop_1): Likewise.
4487         (bswap_replace): Likewise.
4488
4489 2016-05-13  Martin Liska  <mliska@suse.cz>
4490
4491         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
4492         Initialize a variable with default value.
4493
4494 2016-05-13  Martin Liska  <mliska@suse.cz>
4495
4496         * doc/invoke.texi: Enhance explanation of error recovery
4497         of sanitizers.
4498
4499 2016-05-13  Martin Liska  <mliska@suse.cz>
4500
4501         * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
4502         (struct cost_pair): Change inv_expr_id (int) to inv_expr
4503         (iv_inv_expr_ent *).
4504         (struct iv_inv_expr_ent): Comment struct fields.
4505         (sort_iv_inv_expr_ent): New function.
4506         (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
4507         (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
4508         a hash_map between iv_inv_expr_ent and number of usages.
4509         (niter_for_exit): Fix coding style.
4510         (tree_ssa_iv_optimize_init): Use renamed variable.
4511         (determine_base_object): Fix coding style.
4512         (alloc_iv): Likewise.
4513         (find_interesting_uses_outside): Likewise.
4514         (add_candidate_1): Likewise.
4515         (add_standard_iv_candidates): Likewise.
4516         (set_group_iv_cost): Replace inv_expr_id with inv_expr.
4517         (prepare_decl_rtl): Fix coding style.
4518         (get_address_cost): Likewise.
4519         (get_shiftadd_cost): Likewise.
4520         (force_expr_to_var_cost): Likewise.
4521         (compare_aff_trees): Likewise.
4522         (get_expr_id): Restructure the function.
4523         (get_loop_invariant_expr_id): Renamed to
4524         get_loop_invariant_expr.
4525         (get_computation_cost_at): Replace usage of inv_expr_id with
4526         inv_expr.
4527         (get_computation_cost): Likewise.
4528         (determine_group_iv_cost_generic): Likewise.
4529         (determine_group_iv_cost_address): Likewise.
4530         (iv_period): Fix coding style.
4531         (iv_elimination_compare_lt): Likewise.
4532         (may_eliminate_iv): Likewise.
4533         (determine_group_iv_cost_cond):  Replace usage of inv_expr_id with
4534         inv_expr.
4535         (determine_group_iv_costs): Dump invariant expressions.
4536         (iv_ca_recount_cost): Use the newly added hash_map.
4537         (iv_ca_set_remove_invariants): Fix coding style.
4538         (iv_ca_set_add_invariants): Fix coding style.
4539         (iv_ca_set_no_cp): Utilize the newly added hash_map for used
4540         invariants.
4541         (iv_ca_set_cp): Likewise.
4542         (iv_ca_new): Initialize the newly added hash_map and remove
4543         initialization of fields.
4544         (iv_ca_free): Delete the hash_map.
4545         (iv_ca_dump): Dump invariant expressions.
4546         (iv_ca_extend): Fix coding style.
4547         (try_add_cand_for): Likewise.
4548         (create_new_ivs): Dump information about # of avg iterations and
4549         # of used invariant expressions.
4550         (rewrite_use_compare): Fix coding style.
4551         (free_loop_data): Set default value for max_inv_expr_id.
4552
4553 2016-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
4554
4555         * cse.c (rest_of_handle_cse): Use cleanup_cfg
4556         returned value cse_cfg_altered computation.
4557         (rest_of_handle_cse2): Likewise.
4558         (rest_of_handle_cse_after_global_opts): Likewise.
4559
4560 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4561
4562         PR target/53440
4563         * config/arm/arm.c (arm32_output_mi_thunk): New.
4564         (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
4565         to split Thumb1 vs TARGET_32BIT functionality.
4566         (arm_thumb1_mi_thunk): New.
4567
4568 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4569
4570         * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
4571         to true.
4572
4573 2016-05-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4574
4575         PR target/71080
4576         * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
4577
4578 2016-05-13  Eric Botcazou  <ebotcazou@adacore.com>
4579
4580         * builtins.c (expand_builtin_memcmp): Do not emit the call here.
4581         (expand_builtin_trap): Emit a regular call.
4582         (set_builtin_user_assembler_name): Remove obsolete cases.
4583         * dse.c (scan_insn): Adjust.
4584         * except.c: Include calls.h.
4585         (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
4586         emit a regular call to setjmp.
4587         * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
4588         (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
4589         (emit_block_move_via_libcall): Delete.
4590         (block_move_fn): Delete.
4591         (init_block_move_fn): Likewise.
4592         (emit_block_move_libcall_fn): Likewise.
4593         (emit_block_op_via_libcall): New function.
4594         (set_storage_via_libcall): Tidy up and use memset builtin.
4595         (block_clear_fn): Delete.
4596         (init_block_clear_fn): Likewise.
4597         (clear_storage_libcall_fn): Likewise.
4598         (expand_assignment): Call emit_block_move_via_libcall.
4599         Do not include gt-expr.h.
4600         * expr.h (emit_block_op_via_libcall): Declare.
4601         (emit_block_copy_via_libcall): New inline function.
4602         (emit_block_move_via_libcall): Likewise.
4603         (emit_block_comp_via_libcall): Likewise.
4604         (block_clear_fn): Delete.
4605         (init_block_move_fn): Likewise.
4606         (init_block_clear_fn): Likewise.
4607         (emit_block_move_via_libcall): Likewise.
4608         (set_storage_via_libcall): Add default parameter value.
4609         * libfuncs.h (enum libfunc_index): Remove obsolete values.
4610         (abort_libfunc): Delete.
4611         (memcpy_libfunc): Likewise.
4612         (memmove_libfunc): Likewise.
4613         (memcmp_libfunc): Likewise.
4614         (memset_libfunc): Likewise.
4615         (setbits_libfunc): Likewise.
4616         (setjmp_libfunc): Likewise.
4617         (longjmp_libfunc): Likewise.
4618         (profile_function_entry_libfunc): Likewise.
4619         (profile_function_exit_libfunc): Likewise.
4620         (gcov_flush_libfunc): Likewise.
4621         * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
4622         and DECL_VISIBILITY on the declaration.
4623         (init_optabs): Do not initialize obsolete libfuncs.
4624         * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
4625         * tree-core.h (ECF_RET1): Define.
4626         (ECF_TM_PURE): Adjust.
4627         (ECF_TM_BUILTIN): Likewise.
4628         * tree.c (set_call_expr_flags): Deal with ECF_RET1.
4629         (build_common_builtin_nodes): Initialize abort builtin.
4630         Add ECF_RET1 on memcpy, memmove and memset builtins.
4631         Pass final flags for alloca and alloca_with_align builtins.
4632         * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
4633         obsolete builtins.
4634         * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
4635         * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
4636         set_storage_via_libcall and call emit_block_copy_via_libcall.
4637
4638 2016-05-12  Uros Bizjak  <ubizjak@gmail.com>
4639
4640         * config/i386/i386.md (*call_got_x32): Change operand 0 to
4641         DImode before it is passed to ix86_output_call_operand.
4642         (*call_value_got_x32): Ditto for operand 1.
4643
4644 2016-05-12  Jiong Wang  <jiong.wang@arm.com>
4645
4646         PR rtl-optimization/70904
4647         * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
4648         reload for wide mode.
4649
4650 2016-05-12  Marek Polacek  <polacek@redhat.com>
4651
4652         PR c/70756
4653         * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
4654         * langhooks.c (lhd_incomplete_type_error): Add location parameter.
4655         * langhooks.h (incomplete_type_error): Likewise.
4656         * tree.c (size_in_bytes_loc): Renamed from size_in_bytes.  Add location
4657         parameter, pass it down to incomplete_type_error.
4658         * tree.h (size_in_bytes): New inline overload.
4659         (size_in_bytes_loc): Renamed from size_in_bytes.
4660
4661 2016-05-12  Richard Biener  <rguenther@suse.de>
4662
4663         PR tree-optimization/71059
4664         * tree-ssa-pre.c (phi_translate_1): Fully fold translated
4665         nary before looking up or entering the expression into the VN
4666         hashes.
4667         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
4668         Make sure to re-use NARYs without result as inserted by
4669         phi-translation.
4670
4671 2016-05-12  Richard Biener  <rguenther@suse.de>
4672
4673         PR tree-optimization/71062
4674         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
4675         field.
4676         * tree-ssa-structalias.c (set_uids_in_ptset): Set
4677         vars_contains_restrict if the var is a restrict tag.
4678         * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
4679         do not disambiguate pointers against it.
4680         (dump_points_to_solution): Re-structure and adjust for new
4681         vars_contains_restrict flag.
4682         * gimple-pretty-print.c (pp_points_to_solution): Likewise.
4683
4684 2016-05-12  Martin Liska  <mliska@suse.cz>
4685
4686         * doc/invoke.texi: Explain connection between
4687         -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
4688
4689 2016-05-12  Ilya Enkovich  <ilya.enkovich@intel.com>
4690
4691         PR tree-optimization/71006
4692         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
4693         consider COND_EXPR as a mask producer.
4694
4695 2016-05-12  Marek Polacek  <polacek@redhat.com>
4696
4697         PR driver/71063
4698         * opts.c (common_handle_option): Detect missing argument for --help^.
4699
4700 2016-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
4701
4702         PR target/70830
4703         * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
4704         when popping the PC and within an interrupt handler routine.
4705         Add missing tab to output of "ldmfd".
4706         (output_return_instruction): Output LDMFD with SP update rather
4707         than POP when returning from interrupt handler.
4708
4709 2016-05-12  Jakub Jelinek  <jakub@redhat.com>
4710
4711         * config/i386/i386.md (isa): Add x64_avx512dq, enable if
4712         TARGET_64BIT && TARGET_AVX512DQ.
4713         * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
4714         (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
4715         (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
4716         *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
4717         (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
4718         (*vec_extractv4si_zext): Add avx512dq alternative.
4719         (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
4720         use v instead of x constraint in other alternatives where possible.
4721
4722         * config/i386/sse.md (sse2_loadld): Use v instead of x
4723         constraint in alternatives 0,1,4.
4724
4725         * config/i386/sse.md (pinsr_evex_isa): New mode attr.
4726         (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
4727         v constraints instead of x and <pinsr_evex_isa> isa attribute.
4728
4729         PR target/71019
4730         * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
4731         <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
4732         is not emitted unless TARGET_AVX512BW.
4733         (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
4734         Likewise.  For TARGET_AVX512BW, use "=v" constraint instead of "=x"
4735         for the result operand.
4736
4737         * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
4738         constraint instead of x in avx alternatives.  Use maybe_evex instead
4739         of vex prefix.
4740
4741         * config/i386/constraints.md (Yv): New constraint.
4742         * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
4743         TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
4744         * config/i386/i386.md (avx512fvecmode): New mode attr.
4745         (*pushtf): Use v constraint instead of x.
4746         (*movtf_internal): Likewise.  For TARGET_AVX512VL and
4747         xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
4748         (*absneg<mode>2): Use Yv constraint instead of x constraint.
4749         (*absnegtf2_sse): Likewise.
4750         (copysign<mode>3_const, copysign<mode>3_var): Likewise.
4751         * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
4752         avx512f alternatives.
4753         (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
4754
4755 2016-05-12  Richard Biener  <rguenther@suse.de>
4756
4757         PR tree-optimization/71060
4758         * tree-data-ref.c (initialize_data_dependence_relation): Do not
4759         require exact match of DR_BASE_OBJECT but only matching address and
4760         type.
4761
4762 2016-05-12  Richard Biener  <rguenther@suse.de>
4763
4764         PR tree-optimization/70986
4765         * cfganal.c: Include cfgloop.h.
4766         (dfs_find_deadend): Prefer to take edges exiting loops.
4767
4768 2016-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4769
4770         * gcc.target/powerpc/pr70963.c: Require at least power8 at both
4771         compile and run time.
4772
4773 2016-05-11  Mikhail Maltsev  <maltsevm@gmail.com>
4774
4775         PR c/43651
4776         * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
4777
4778 2016-05-11  Uros Bizjak  <ubizjak@gmail.com>
4779
4780         * config/i386/i386.c (legitimize_pic_address): Use
4781         copy_to_suggested_reg instead of gen_movsi.
4782
4783 2016-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
4784
4785         * config/rs6000/predicates.md (quad_memory_operand): Move most of
4786         the code into quad_address_p and call it to share code with
4787         vsx_quad_dform_memory_operand.
4788         (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
4789         d-form support.
4790         * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
4791         bit instead of being a separate word.  Split -mpower9-dform into
4792         two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
4793         * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
4794         for the register class supporting 128-bit quad word memory offsets.
4795         (mode_supports_vsx_dform_quad): Helper function to return if the
4796         register class uses quad word memory offsets.
4797         (rs6000_debug_addr_mask): Add support for quad word memory offsets.
4798         (rs6000_debug_reg_global): Always print if we are using LRA or not.
4799         (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
4800         instructions are enabled, set up the appropriate addr_masks for
4801         128-bit types.
4802         (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
4803         -mpower9-dform-scalar, instead of -mpower9-dform.
4804         (rs6000_option_override_internal): Split -mpower9-dform into two
4805         switches, -mpower9-dform-scalar and -mpower9-dform-vector.  The
4806         -mpower9-dform switch sets or clears both.  If we are not using
4807         the LRA register allocator, do not enable -mpower9-dform-vector by
4808         default.  If we are using LRA, enable -mpower9-dform-vector and
4809         -mvsx-timode if it is appropriate.  Issue a warning if either
4810         -mpower9-dform-vector or -mvsx-timode are explicitly used without
4811         enabling LRA.
4812         (quad_address_offset_p): New helper function to return if the
4813         offset is legal for quad word memory instructions.
4814         (quad_address_p): New function to determin if GPR or vector
4815         register quad word memory addresses are legal.
4816         (mem_operand_gpr): Validate quad word address offsets.
4817         (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
4818         d-form (register + offset) instructions.
4819         (offsettable_ok_by_alignment): Likewise.
4820         (rs6000_legitimate_offset_address_p): Likewise.
4821         (legitimate_lo_sum_address_p): Likewise.
4822         (rs6000_legitimize_address): Likewise.
4823         (rs6000_legitimize_reload_address): Add more debug statements for
4824         -mdebug=addr.
4825         (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
4826         d-form instructions.
4827         (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
4828         d-form instructions.  Distinguish different cases in debug
4829         output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
4830         d-form instructions.
4831         (rs6000_preferred_reload_class): Likewise.
4832         (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
4833         instructions.  If ISA 3.0 is available, generate lxvx/stxvx instead
4834         of the ISA 2.06 indexed memory instructions.
4835         (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
4836         use them to save/restore the saved vector registers instead of
4837         using Altivec instructions.
4838         (rs6000_emit_epilogue): Likewise.
4839         (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
4840         (rs6000_opt_masks): Split -mpower9-dform into
4841         -mpower9-dform-scalar and -mpower9-dform-vector.
4842         (rs6000_print_options_internal): Print -mno-<switch> if <switch>
4843         was not selected.
4844         * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
4845         ISA 3.0 vector indexed memory instructions, and fold the code into
4846         the normal mov<mode> patterns.
4847         (p9_vecstore_<mode>): Likewise.
4848         (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
4849         instructions.
4850         (vsx_movti_64bit): Likewise.
4851         (vsx_movti_32bit): Likewise.
4852         * config/rs6000/constraints.md (wO constraint): New constraint for
4853         ISA 3.0 vector d-form support.
4854         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
4855         -mpower9-dform-scalar instead of -mpower9-dform.  Add note not to
4856         include -mpower9-dform-vector until we switch over to LRA.
4857         (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
4858         switches, -mpower9-dform-scalar and -mpower9-dform-vector.
4859         * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
4860         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
4861         for -mpower9-dform and -mlra.
4862         * doc/md.texi (wO constraint): Document wO constraint.
4863
4864 2016-05-11  Alexander Monakov  <amonakov@ispras.ru>
4865
4866         * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
4867         'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
4868         * genautomata.c (output_internal_insn_code_evaluation): Simplify.
4869         Move handling of non-insn arguments inline into the sole user:
4870         (output_trans_func): ...here.
4871         (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
4872         in emitted function prototype.
4873         (output_internal_insn_latency_func): Ditto.  Simplify.
4874         (output_internal_maximal_insn_latency_func): Ditto.  Delete
4875         always-unused argument.
4876         (output_insn_latency_func): Ditto.
4877         (output_maximal_insn_latency_func): Ditto.
4878
4879 2016-05-11  Richard Biener  <rguenther@suse.de>
4880
4881         PR tree-optimization/71055
4882         * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
4883         sth with precision not equal to access size verify we don't chop
4884         off bits.
4885
4886 2016-05-11  Richard Biener  <rguenther@suse.de>
4887
4888         PR debug/71057
4889         * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
4890         (dwarf2out_finish): Move retry_incomplete_types call ...
4891         (dwarf2out_early_finish): ... here.
4892
4893 2016-05-11  Richard Biener  <rguenther@suse.de>
4894
4895         PR middle-end/71002
4896         * alias.c (reference_alias_ptr_type): Preserve alias-set zero
4897         if the langhook insists on it.
4898         * fold-const.c (make_bit_field_ref): Add arg for the original
4899         reference and preserve its alias-set.
4900         (decode_field_reference): Take exp by reference and adjust it
4901         to the original memory reference.
4902         (optimize_bit_field_compare): Adjust callers.
4903         (fold_truth_andor_1): Likewise.
4904         * gimplify.c (gimplify_expr): Adjust in-SSA form test.
4905
4906 2016-05-11  Ilya Enkovich  <ilya.enkovich@intel.com>
4907
4908         PR middle-end/70807
4909         * cfgrtl.h (delete_insn_and_edges): Now return bool.
4910         * cfgrtl.c (delete_insn_and_edges): Likewise.
4911         * config/i386/i386.c (convert_scalars_to_vector): Remove
4912         redundant code.
4913         * cse.c (cse_insn): Compute cse_cfg_altered.
4914         (delete_trivially_dead_insns): Likewise.
4915         (cse_cc_succs): Likewise.
4916         (rest_of_handle_cse): Free dominance info if required.
4917         (rest_of_handle_cse2): Likewise.
4918         (rest_of_handle_cse_after_global_opts): Likewise.
4919
4920 2016-05-11  Alan Modra  <amodra@gmail.com>
4921
4922         * config/rs6000/rs6000.c (is_complex_IBM_long_double,
4923         abi_v4_pass_in_fpr): New functions.
4924         (rs6000_function_arg_boundary): Exclude complex IBM long double
4925         from 64-bit alignment when ABI_V4.
4926         (rs6000_function_arg, rs6000_function_arg_advance_1,
4927         rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
4928
4929 2016-05-10  Segher Boessenkool  <segher@kernel.crashing.org>
4930
4931         PR rtl-optimization/71028
4932         * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
4933         jump with just a return in the fallthrough block if the branch
4934         block contains just a return as well.
4935
4936 2016-05-10  Marc Glisse  <marc.glisse@inria.fr>
4937
4938         * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
4939         * match.pd ((X & Y) ^ Y): ... this.
4940         ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
4941         | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
4942
4943 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
4944
4945         * read-md.c (require_char_ws): New function.
4946         (read_string): Simplify using require_char_ws.
4947         (handle_constants): Likewise.
4948         (handle_enum): Likewise.
4949         (handle_file): Likewise.
4950         * read-md.h (require_char_ws): New declaration.
4951         * read-rtl.c (read_conditions): Simplify using require_char_ws.
4952         (read_mapping): Likewise.
4953         (read_rtx_code): Likewise.
4954         (read_nested_rtx): Likewise.
4955
4956 2016-05-10  James Norris  <jnorris@codesourcery.com>
4957
4958         * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
4959         if offloading is enabled and -fopenacc or -fopenmp is specified.
4960         (CRTOFFLOADEND): Likewise.
4961         (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
4962         (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
4963
4964 2016-05-10  Uros Bizjak  <ubizjak@gmail.com>
4965
4966         * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
4967         gotoff_operand code paths.  Use copy_to_suggested_regs and
4968         expand_simple_binop where appropriate.  Cleanup.
4969
4970 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
4971
4972         PR target/70799
4973         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
4974         integer constants.
4975         (dimode_scalar_chain::vector_const_cost): New.
4976         (dimode_scalar_chain::compute_convert_gain): Handle constants.
4977         (dimode_scalar_chain::convert_op): Likewise.
4978         (dimode_scalar_chain::convert_insn): Likewise.
4979
4980 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
4981
4982         * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
4983         unary operation, not a binary one.
4984
4985 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
4986
4987         PR middle-end/70877
4988         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
4989         calls with type casted fndecl.
4990
4991 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
4992
4993         PR tree-optimization/70786
4994         * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
4995         * calls.c (initialize_argument_information): Bind bounds
4996         with corresponding args passed by reference.
4997
4998 2016-05-10  Jakub Jelinek  <jakub@redhat.com>
4999
5000         PR target/70927
5001         * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
5002         *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
5003         use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
5004         accordingly.
5005
5006 2016-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5007
5008         PR target/70963
5009         * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
5010         code for a zero scale factor.
5011         (vsx_xvcvdpuxds_scale): Likewise.
5012
5013 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
5014
5015         * diagnostic-show-locus.c (layout::layout): Call show_ruler
5016         if show_ruler_p was set on the context.
5017         (layout::show_ruler): New method.
5018         * diagnostic.h (struct diagnostic_context): Add field
5019         "show_ruler_p".
5020
5021 2016-05-10  Richard Biener  <rguenther@suse.de>
5022
5023         PR tree-optimization/71039
5024         * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
5025         (chk_uses): New function.
5026         (propagate_with_phi): Verify we can safely replicate the lhs of an
5027         aggregate assignment on all incoming edges.
5028
5029 2016-05-10  Oleg Endo  <olegendo@gcc.gnu.org>
5030
5031         * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
5032         Forward declare.
5033         (rx_atomic_sequence): New class.
5034         * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
5035         (is_interrupt_func, is_fast_interrupt_func): Make non-static and
5036         non-inline.
5037         (rx_atomic_sequence::rx_atomic_sequence,
5038         rx_atomic_sequence::~rx_atomic_sequence): New functions.
5039         * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
5040         CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
5041         CTRLREG_INTB): New constants.
5042         (FETCHOP): New code iterator.
5043         (fethcop_name, fetchop_name2): New iterator code attributes.
5044         (QIHI): New mode iterator.
5045         (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
5046         atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
5047         atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
5048
5049 2016-05-10  Martin Liska  <mliska@suse.cz>
5050
5051         * tree-inline.c (remap_dependence_clique): Do not remap
5052         debugging statements.
5053
5054 2016-05-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
5055
5056         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
5057         ("*fixuns_truncdfdi2_z13")
5058         ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
5059         ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
5060         ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
5061
5062 2016-05-10  Richard Biener  <rguenther@suse.de>
5063
5064         PR tree-optimization/70497
5065         PR tree-optimization/28367
5066         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
5067         split out from ...
5068         (visit_reference_op_load): ... here.
5069         (vn_reference_lookup_3): Use it to handle subreg-like accesses
5070         with simplified BIT_FIELD_REFs.
5071         * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
5072         * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
5073         correctly.
5074
5075 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
5076
5077         * dwarf2out.c (add_abstract_origin_attribute): Adjust
5078         documentation comment.  For BLOCK nodes, add a
5079         DW_AT_abstract_origin attribute that points to the DIE generated
5080         for the origin BLOCK.
5081         (gen_lexical_block_die): Call add_abstract_origin_attribute for
5082         blocks from inlined functions.
5083
5084 2016-05-10  Alan Modra  <amodra@gmail.com>
5085
5086         PR target/70947
5087         * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
5088         regrename modifying insns saving lr before __morestack call.
5089         * config/rs6000/rs6000.md (split_stack_return): Similarly for
5090         insns restoring lr after __morestack call.
5091
5092 2016-05-09  Jakub Jelinek  <jakub@redhat.com>
5093
5094         * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
5095         lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
5096         expanders.
5097         * config/i386/sse.md (vec_interleave_high<mode>,
5098         vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
5099         <avx512>_vpermt2var<mode>3_maskz): Likewise.
5100
5101 2016-05-04  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
5102
5103         * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
5104         function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
5105         parallel reassociation for power8 and forward.
5106
5107 2016-05-09  Uros Bizjak  <ubizjak@gmail.com>
5108
5109         * config/i386/i386.md (absneg splitters with general regs): Use
5110         general_reg_operand predicate.
5111         (btsq peephole2): Use x86_64_immediate_operand to check if new
5112         value is suitable for immediate operand.  Generate emitted insn
5113         using RTL expressions.
5114         (btcq peephole2): Ditto.
5115         (btrq peephole2): Ditto.  Generate correct immediate operand
5116         for AND masking.
5117
5118 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
5119
5120         * cfgexpand.c (expand_debug_expr): Fix address offset for negative
5121         bitpos.
5122
5123 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
5124
5125         * tree-affine.c (wide_int_constant_multiple_p): Add missing
5126         pointer dereference.
5127
5128 2016-05-09  Richard Biener  <rguenther@suse.de>
5129
5130         PR tree-optimization/70985
5131         * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
5132         op0 isn't a gimple register.
5133
5134 2016-05-09  Prachi Godbole  <prachi.godbole@imgtec.com>
5135
5136         * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
5137         (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
5138         (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
5139         (i6400_fpu_mult): New cpu units.
5140         (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
5141         (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
5142         (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
5143         (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
5144         (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
5145         (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
5146         (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
5147         (i6400_msa_long_float4, i6400_msa_long_float5)
5148         (i6400_msa_long_float8, i6400_msa_fdiv_df)
5149         (i6400_msa_fdiv_sf): New reservations.
5150         * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
5151         (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
5152         (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
5153         (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
5154         (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
5155         (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
5156         (msa_short_cmp, msa_short_float2, msa_short_logic3)
5157         (msa_short_store4, msa_long_load, msa_short_store)
5158         (msa_long_logic, msa_long_float2, msa_long_float4)
5159         (msa_long_float5, msa_long_float8, msa_long_mult)
5160         (msa_long_fdiv, msa_long_div): New reservations.
5161
5162 2016-05-09  Robert Suchanek  <robert.suchanek@imgtec.com>
5163             Sameera Deshpande  <sameera.deshpande@imgtec.com>
5164             Matthew Fortune  <matthew.fortune@imgtec.com>
5165             Graham Stott  <graham.stott@imgtec.com>
5166             Chao-ying Fu  <chao-ying.fu@imgtec.com>
5167
5168         * config.gcc: Add MSA header file for mips*-*-* target.
5169         * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
5170         (Ubv8i, Urv8):  New constraints.
5171         * config/mips/mips-ftypes.def: Add function types for MSA
5172         builtins.
5173         * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
5174         (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
5175         * config/mips/mips-msa.md: New file.
5176         * config/mips/mips-protos.h
5177         (mips_split_128bit_const_insns): New prototype.
5178         (mips_msa_idiv_insns): Likewise.
5179         (mips_split_128bit_move): Likewise.
5180         (mips_split_128bit_move_p): Likewise.
5181         (mips_split_msa_copy_d): Likewise.
5182         (mips_split_msa_insert_d): Likewise.
5183         (mips_split_msa_fill_d): Likewise.
5184         (mips_expand_msa_branch): Likewise.
5185         (mips_const_vector_same_val_p): Likewise.
5186         (mips_const_vector_same_bytes_p): Likewise.
5187         (mips_const_vector_same_int_p): Likewise.
5188         (mips_const_vector_shuffle_set_p): Likewise.
5189         (mips_const_vector_bitimm_set_p): Likewise.
5190         (mips_const_vector_bitimm_clr_p): Likewise.
5191         (mips_msa_vec_parallel_const_half): Likewise.
5192         (mips_msa_output_division): Likewise.
5193         (mips_ldst_scaled_shift): Likewise.
5194         (mips_expand_vec_cond_expr): Likewise.
5195         * config/mips/mips.c (enum mips_builtin_type): Add
5196         MIPS_BUILTIN_MSA_TEST_BRANCH.
5197         (mips_gen_const_int_vector_shuffle): New prototype.
5198         (mips_const_vector_bitimm_set_p): New function.
5199         (mips_const_vector_bitimm_clr_p): Likewise.
5200         (mips_const_vector_same_val_p): Likewise.
5201         (mips_const_vector_same_bytes_p): Likewise.
5202         (mips_const_vector_same_int_p): Likewise.
5203         (mips_const_vector_shuffle_set_p): Likewise.
5204         (mips_symbol_insns): Forbid loading symbols via immediate for
5205         MSA.
5206         (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
5207         stores.
5208         (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
5209         MSA.
5210         (mips_lx_address_p): Add support load indexed address for MSA.
5211         (mips_address_insns): Add calculation of instructions needed for
5212         stores and loads for MSA.
5213         (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR.  Handle
5214         CONST_VECTOR for MSA and let it fall through.
5215         (mips_ldst_scaled_shift): New function.
5216         (mips_subword_at_byte): Likewise.
5217         (mips_msa_idiv_insns): Likewise.
5218         (mips_legitimize_move): Validate MSA moves.
5219         (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases.  Add
5220         calculation of costs for MSA division.
5221         (mips_split_move_p): Check if MSA moves need splitting.
5222         (mips_split_move): Split MSA moves if necessary.
5223         (mips_split_128bit_move_p): New function.
5224         (mips_split_128bit_move): Likewise.
5225         (mips_split_msa_copy_d): Likewise.
5226         (mips_split_msa_insert_d): Likewise.
5227         (mips_split_msa_fill_d): Likewise.
5228         (mips_output_move): Handle MSA moves.
5229         (mips_expand_msa_branch): New function.
5230         (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
5231         Reinstate 'y' modifier.
5232         (mips_file_start): Add MSA .gnu_attribute.
5233         (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
5234         FPRs.
5235         (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
5236         (mips_class_max_nregs): Add register size for MSA supported mode.
5237         (mips_cannot_change_mode_class): Allow conversion between MSA
5238         vector modes and TImode.
5239         (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
5240         instruction.
5241         (mips_secondary_reload_class): Force MSA loads/stores via memory.
5242         (mips_preferred_simd_mode): Add preffered modes for MSA.
5243         (mips_vector_mode_supported_p): Add MSA supported modes.
5244         (mips_autovectorize_vector_sizes): New function.
5245         (mips_msa_output_division): Likewise.
5246         (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
5247         (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
5248         (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
5249         (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
5250         (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
5251         (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
5252         (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
5253         (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
5254         (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
5255         (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
5256         (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
5257         (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
5258         (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
5259         (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
5260         (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
5261         (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
5262         (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
5263         (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
5264         (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
5265         (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
5266         (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
5267         (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
5268         (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
5269         (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
5270         (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
5271         (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
5272         (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
5273         (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
5274         (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
5275         (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
5276         (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
5277         (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
5278         (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
5279         (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
5280         (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
5281         (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
5282         (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
5283         (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
5284         (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
5285         (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
5286         (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
5287         (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
5288         (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
5289         (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
5290         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
5291         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
5292         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
5293         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
5294         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
5295         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
5296         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
5297         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
5298         (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
5299         (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
5300         (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
5301         (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
5302         (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
5303         (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
5304         (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
5305         (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
5306         (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
5307         (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
5308         (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
5309         (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
5310         (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
5311         (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
5312         (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
5313         (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
5314         (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
5315         (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
5316         (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
5317         (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
5318         (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
5319         (CODE_FOR_msa_ldi_d): New code_aliasing macros.
5320         (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
5321         slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
5322         srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
5323         srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
5324         srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
5325         srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
5326         bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
5327         bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
5328         bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
5329         binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
5330         binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
5331         binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
5332         addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
5333         subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
5334         max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
5335         max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
5336         maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
5337         mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
5338         mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
5339         min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
5340         ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
5341         clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
5342         clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
5343         clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
5344         clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
5345         clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
5346         st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
5347         sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
5348         adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
5349         adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
5350         ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
5351         aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
5352         aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
5353         subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
5354         subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
5355         subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
5356         asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
5357         maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
5358         msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
5359         div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
5360         hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
5361         hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
5362         mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
5363         dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
5364         dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
5365         dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
5366         sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
5367         splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
5368         pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
5369         ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
5370         ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
5371         ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
5372         ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
5373         bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
5374         fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
5375         pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
5376         nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
5377         copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
5378         insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
5379         bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
5380         fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
5381         fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
5382         fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
5383         fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
5384         fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
5385         fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
5386         fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
5387         fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
5388         fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
5389         fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
5390         mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
5391         msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
5392         fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
5393         flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
5394         ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
5395         ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
5396         ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
5397         move_v builtins.
5398         (mips_get_builtin_decl_index): New array.
5399         (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
5400         (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
5401         (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
5402         (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
5403         (mips_init_builtins): Initialize mips_get_builtin_decl_index
5404         array.
5405         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
5406         hook.
5407         (mips_expand_builtin_insn): Prepare operands for
5408         CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
5409         CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
5410         CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
5411         CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
5412         CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
5413         CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
5414         CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
5415         CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
5416         CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
5417         CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
5418         CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
5419         CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
5420         CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
5421         CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
5422         CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
5423         CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
5424         CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
5425         CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
5426         CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
5427         CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
5428         CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
5429         CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
5430         CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
5431         CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
5432         CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
5433         CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
5434         CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
5435         CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
5436         CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
5437         CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
5438         CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
5439         CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
5440         CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
5441         CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
5442         CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
5443         CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
5444         CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
5445         CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
5446         CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
5447         CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
5448         CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
5449         (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
5450         (mips_set_compression_mode): Disallow MSA with MIPS16 code.
5451         (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
5452         These are set implicitly and an error is reported if overridden.
5453         (mips_expand_builtin_msa_test_branch): New function.
5454         (mips_expand_msa_shuffle): Likewise.
5455         (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
5456         (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
5457         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
5458         (mips_expand_vec_unpack): Add support for MSA.
5459         (mips_expand_vector_init): Likewise.
5460         (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
5461         instead of const0_rtx.
5462         (mips_msa_vec_parallel_const_half): New function.
5463         (mips_gen_const_int_vector): Likewise.
5464         (mips_gen_const_int_vector_shuffle): Likewise.
5465         (mips_expand_msa_cmp): Likewise.
5466         (mips_expand_vec_cond_expr): Likewise.
5467         * config/mips/mips.h
5468         (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
5469         (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
5470         specified.
5471         (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
5472         (ISA_HAS_MSA): New macro.
5473         (UNITS_PER_MSA_REG): Likewise.
5474         (BITS_PER_MSA_REG): Likewise.
5475         (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
5476         (MSA_REG_FIRST): New macro.
5477         (MSA_REG_LAST): Likewise.
5478         (MSA_REG_NUM): Likewise.
5479         (MSA_REG_P): Likewise.
5480         (MSA_REG_RTX_P): Likewise.
5481         (MSA_SUPPORTED_MODE_P): Likewise.
5482         (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
5483         (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
5484         * config/mips/mips.md: Include mips-msa.md.
5485         (alu_type): Add simd_add.
5486         (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
5487         (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
5488         simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
5489         simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
5490         simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
5491         simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
5492         simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
5493         simd_move, simd_load, simd_store.  Choose "multi" for moves
5494         for "qword_mode".
5495         (qword_mode): New attribute.
5496         (insn_count): Add instruction count for quad moves.
5497         Increase the count for MIPS SIMD division.
5498         (UNITMODE): Add UNITMODEs for vector types.
5499         (addsub): New code iterator.
5500         * config/mips/mips.opt (mmsa): New option.
5501         * config/mips/msa.h: New file.
5502         * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
5503         specified.
5504         * config/mips/mti-linux.h: Likewise.
5505         * config/mips/predicates.md
5506         (const_msa_branch_operand): New constraint.
5507         (const_uimm3_operand): Likewise.
5508         (const_uimm4_operand): Likewise.
5509         (const_uimm5_operand): Likewise.
5510         (const_uimm8_operand): Likewise.
5511         (const_imm5_operand): Likewise.
5512         (aq10b_operand): Likewise.
5513         (aq10h_operand): Likewise.
5514         (aq10w_operand): Likewise.
5515         (aq10d_operand): Likewise.
5516         (const_m1_operand): Likewise.
5517         (reg_or_m1_operand): Likewise.
5518         (const_exp_2_operand): Likewise.
5519         (const_exp_4_operand): Likewise.
5520         (const_exp_8_operand): Likewise.
5521         (const_exp_16_operand): Likewise.
5522         (const_vector_same_val_operand): Likewise.
5523         (const_vector_same_simm5_operand): Likewise.
5524         (const_vector_same_uimm5_operand): Likewise.
5525         (const_vector_same_uimm6_operand): Likewise.
5526         (const_vector_same_uimm8_operand): Likewise.
5527         (par_const_vector_shf_set_operand): Likewise.
5528         (reg_or_vector_same_val_operand): Likewise.
5529         (reg_or_vector_same_simm5_operand): Likewise.
5530         (reg_or_vector_same_uimm6_operand): Likewise.
5531         * doc/extend.texi (MIPS SIMD Architecture Functions): New
5532         section.
5533         * doc/invoke.texi (-mmsa): Document new option.
5534
5535 2016-05-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5536
5537         * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
5538         * configure: Regenerate.
5539         * config.in: Regenerate.
5540         * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
5541         on -fvtable-verify.
5542         * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
5543         (ENDFILE_VTV_SPEC): Define.
5544
5545 2016-05-09  Kaushik Phatak  <kaushik.phatak@kpit.com>
5546
5547         * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
5548         registers in all interrupt handlers if necessary.
5549         (rl78_option_override): Add warning.
5550         (MUST_SAVE_MDUC_REGISTERS): New macro.
5551         (rl78_expand_epilogue): Restore the MDUC registers if necessary.
5552         * config/rl78/rl78.c (check_mduc_usage): New function.
5553         (mduc_regs): New structure to hold MDUC register data.
5554         * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
5555         (mulsi3_g13): Add is_g13_muldiv_insn attribute.
5556         (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
5557         (mulhi3_g13): Add is_g13_muldiv_insn attribute.
5558         * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
5559         * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
5560
5561 2016-05-09  Bin Cheng  <bin.cheng@arm.com>
5562
5563         * tree-if-conv.c (tree-ssa-loop.h): Include header file.
5564         (tree-ssa-loop-niter.h): Ditto.
5565         (idx_within_array_bound, ref_within_array_bound): New functions.
5566         (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
5567         Factor out check on writable base object to ...
5568         (base_object_writable): ... here.
5569
5570 2016-05-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5571
5572         * config/arm/arm.md (probe_stack): Add modes to set source
5573         and destination.
5574
5575 2016-05-09  Bernd Schmidt  <bschmidt@redhat.com>
5576
5577         * regrename.c (base_reg_class_for_rename): New static function.
5578         (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
5579
5580 2016-05-08  Jan Hubicka  <hubicka@ucw.cz>
5581
5582         * cgraph.c (thunk_adjust): Export.
5583         * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
5584         * cgraphunit.c (thunk_adjust): Export.
5585         (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
5586         thunks.
5587         * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
5588         inlinable.
5589         * tree-inline.c (expand_call_inline): Expand thunks inline.
5590
5591 2016-05-08  Uros Bizjak  <ubizjak@gmail.com>
5592
5593         PR target/70998
5594         * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
5595         (*sse2_vd_cvtss2sd): Ditto.
5596         * config/i386/i386.md
5597         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
5598         Generate *sse2_vd_cvtsd2ss pattern.
5599         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
5600         Generate *sse2_vd_cvtss2sd pattern.
5601
5602 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
5603
5604         * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
5605         * config/sh/sh.c (get_sh_arg_class): ... this new function.  Update its
5606         users.
5607
5608 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
5609
5610         * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
5611         * config/sh/sh.c: Define and declare variables on first use throughout
5612         the file.
5613         (current_function_interrupt): Change to bool type.
5614         (frame_insn): Rename to emit_frame_insn and update users.
5615         (push_regs): Use bool for 'interrupt_handler' argument.
5616         (save_schedule_s): Remove.
5617         (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
5618         (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
5619         targetm.asm_out.unaligned_op.di.
5620         (gen_far_branch): Remove redundant forward declaration.
5621         (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
5622         MAX_TEMPS, save_schedule_ssave_schedule): Remove.
5623         (sh_set_return_address, sh_function_ok_for_sibcall,
5624         scavenge_reg): Update comments.
5625         (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
5626         (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
5627         (sh_attr_renesas_p): Remove unnecessary parentheses.
5628         (branch_dest): Simplify.
5629         * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
5630         Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
5631         (CUMULATIVE_ARGS): Change macro to typedef.
5632         (current_function_interrupt): Change to bool type.
5633         (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
5634         Surround with __cplusplus ifdef.
5635         (sh_compare_op0, sh_compare_op1): Remove.
5636         (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
5637
5638 2016-05-07  Jim Wilson  <jim.wilson@linaro.org>
5639
5640         * config/arm/arm.md: (arch): Add neon.
5641         (arch_enabled): Return yes for arch neon when TARGET_NEON.
5642         * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3.  Add
5643         neon_move as type for alt 3.  Add arch attr enabling alt 3 for neon.
5644         Emit vmov.i64 for alt 3.  Renumber alternatives 3 to 8.  Adjust
5645         attributes for alt renumbering.  Mark alt 3 as non-predicable.
5646         (thumb2_movdf_vfp): Likewise.
5647
5648 2016-05-07  Uros Bizjak  <ubizjak@gmail.com>
5649
5650         * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
5651         to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
5652         (*andqi_1): Add preferred_for_speed attribute to disparage
5653         alternative 2 for TARGET_PARTIAL_REG_STALL targets.
5654         (*<code>qi_1): Ditto.
5655         (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
5656         alternative 1 for TARGET_PARTIAL_REG_STALL targets.
5657         (*ashlqi3_1): Ditto.
5658         (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
5659         Add preferred_for_size attribute to disparage alternative 0 and
5660         preferred_for_speed attribute to disparage alternative 1 for
5661         TARGET_PARTIAL_REG_STALL targets.
5662
5663 2016-05-07  Tom de Vries  <tom@codesourcery.com>
5664
5665         PR tree-optimization/70956
5666         * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
5667         def.
5668
5669 2016-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
5670
5671         * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
5672         * config/sh/sh.c (sh_cbranch_distance): Implement it.
5673         * config/sh/sh.md (branch_zero): Remove define_attr.
5674         (define_delay): Disable delay slot if branch distance is one insn.
5675
5676 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
5677
5678         * config/i386/i386.md (LEAMODE): New mode attribute.
5679         (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
5680         (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
5681         and LEAMODE mode attribute.  Use VOIDmode const_0_to_3_operand as
5682         operand 2 predicate.
5683         (*lea<mode>_general_2): Use VOIDmode for const248_operand.
5684         (*lea<mode>_general_3): Ditto.
5685         (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
5686
5687 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
5688
5689         * genmddump.c (main): Convert argv from char ** to const char **.
5690
5691 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
5692
5693         * coretypes.h (OVERRIDE): New macro.
5694         (FINAL): New macro.
5695
5696 2016-05-06  Eric Botcazou  <ebotcazou@adacore.com>
5697
5698         * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
5699         allow coalescing if the types are compatible.
5700
5701 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
5702
5703         * pass_manager.h (pass_manager::register_pass_name): New method.
5704         (pass_manager::get_pass_by_name): New method.
5705         (pass_manager::create_pass_tab): New method.
5706         (pass_manager::m_name_to_pass_map): New field.
5707         * passes.c (name_to_pass_map): Delete global in favor of field
5708         "m_name_to_pass_map" of pass_manager.
5709         (register_pass_name): Rename from a function to...
5710         (pass_manager::register_pass_name): ...this method, updating
5711         for renaming of global "name_to_pass_map" to field
5712         "m_name_to_pass_map".
5713         (create_pass_tab): Rename from a function to...
5714         (pass_manager::create_pass_tab): ...this method, updating
5715         for renaming of global "name_to_pass_map" to field.
5716         (get_pass_by_name): Rename from a function to...
5717         (pass_manager::get_pass_by_name): ...this method.
5718         (enable_disable_pass): Convert use of get_pass_by_name to
5719         a method call, locating the pass_manager singleton.
5720
5721 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
5722
5723         * genattr-common.c (main): Convert argv from char ** to const char **.
5724         * genattr.c (main): Likewise.
5725         * genattrtab.c (main): Likewise.
5726         * genautomata.c (initiate_automaton_gen): Likewise.
5727         (main): Likewise.
5728         * gencodes.c (main): Likewise.
5729         * genconditions.c (main): Likewise.
5730         * genconfig.c (main): Likewise.
5731         * genconstants.c (main): Likewise.
5732         * genemit.c (main): Likewise.
5733         * genenums.c (main): Likewise.
5734         * genextract.c (main): Likewise.
5735         * genflags.c (main): Likewise.
5736         * genmddeps.c (main): Likewise.
5737         * genopinit.c (main): Likewise.
5738         * genoutput.c (main): Likewise.
5739         * genpeep.c (main): Likewise.
5740         * genpreds.c (main): Likewise.
5741         * genrecog.c (main): Likewise.
5742         * gensupport.c (init_rtx_reader_args_cb): Likewise.
5743         (init_rtx_reader_args): Likewise.
5744         * gensupport.h (init_rtx_reader_args_cb): Likewise.
5745         (init_rtx_reader_args): Likewise.
5746         * gentarget-def.c (main): Likewise.
5747         * read-md.c (read_md_files): Likewise.
5748         * read-md.h (read_md_files): Likewise.
5749
5750 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
5751
5752         * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
5753         instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
5754         * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
5755         Remove unused predicate.
5756         (register_and_not_fp_reg_operand): Ditto.
5757
5758 2016-05-06  Martin Liska  <mliska@suse.cz>
5759
5760         * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
5761         instead of vec as the vector is local to the function.
5762
5763 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
5764
5765         * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
5766         avx512bw alternative.
5767
5768         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
5769         before the ashr<mode>3 pattern.
5770
5771         * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
5772         v instead of x in vex or maybe_vex alternatives, use
5773         maybe_evex instead of vex in prefix.
5774
5775         * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
5776         *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
5777         vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
5778         in vex or maybe_vex alternatives, use maybe_evex instead of vex
5779         in prefix.
5780
5781         * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
5782         v instead of x in vex or maybe_vex alternatives, use
5783         maybe_evex instead of vex in prefix.
5784
5785         * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
5786         sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
5787         sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
5788         sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
5789         alternatives, use maybe_evex instead of vex in prefix.
5790
5791         * config/i386/sse.md (vec_interleave_lowv4sf,
5792         *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
5793         v instead of x in vex or maybe_vex alternatives, use
5794         maybe_evex instead of vex in prefix.
5795
5796         * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
5797         v instead of x in vex or maybe_vex alternatives, use
5798         maybe_evex instead of vex in prefix.
5799
5800         * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
5801         v constraint instead of x.
5802
5803 2016-05-06  Nathan Sidwell  <nathan@codesourcery.com>
5804
5805         * gimple.c (gimple_call_same_target_p): Unique functions are eq.
5806         * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
5807         equality first.
5808
5809 2016-05-06  Richard Biener  <rguenther@suse.de>
5810
5811         PR tree-optimization/70948
5812         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
5813         Properly clobber all fields of va_list for __builtin_va_start.
5814
5815 2016-05-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
5816
5817         PR debug/70935
5818         * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
5819         loop latch destination.
5820
5821 2016-05-06  Martin Liska  <mliska@suse.cz>
5822
5823         * tree-ssa-uninit.c: Apply manual changes
5824         to the GNU coding style.
5825         (prune_uninit_phi_opnds): Rename from
5826         prune_uninit_phi_opnds_in_unrealizable_paths.
5827
5828 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
5829
5830         * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
5831         mspace): Remove deprecated options.
5832         * doc/invoke.texi (SH options): Remove -mspace.
5833
5834 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
5835
5836         * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
5837
5838 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
5839
5840         * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
5841         corresponding combine split pattern.
5842
5843 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
5844
5845         PR target/58219
5846         * config/sh/predicates.md (long_displacement_mem_operand): New.
5847         * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
5848         Add movi20, movi20s alternatives.  Adjust length attribute for
5849         alternatives.
5850         (movsi_ie): Allow for any FPU.  Adjust length attribute for
5851         alternatives.
5852         (movsi_i_lowpart): Add movi20, movi20s alternatives.  Adjust length
5853         attribute for alternatives.
5854         (*mov<mode>): Use long_displacement_mem_operand for length attribute.
5855         (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
5856         length attribute for alternatives.
5857
5858 2016-05-06  Richard Biener  <rguenther@suse.de>
5859
5860         PR tree-optimization/70960
5861         * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
5862
5863 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
5864
5865         PR target/52933
5866         * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
5867         * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
5868
5869 2016-05-06  Marek Polacek  <polacek@redhat.com>
5870
5871         PR sanitizer/70875
5872         * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
5873
5874 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
5875
5876         PR target/54089
5877         * config/sh/sh.md (*rotcr): Add another variant.
5878
5879 2016-05-06  Richard Biener  <rguenther@suse.de>
5880
5881         PR middle-end/70931
5882         * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
5883
5884 2016-05-06  Richard Biener  <rguenther@suse.de>
5885
5886         PR middle-end/70941
5887         * fold-const.c (split_tree): Always convert to the original type
5888         before negating.
5889
5890 2016-05-06  Richard Biener  <rguenther@suse.de>
5891
5892         * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
5893         (fwprop_addr): Likewise.
5894
5895 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
5896
5897         PR target/70873
5898         * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
5899         New prototype.
5900         * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
5901         * config/i386/i386.md (push mem splitter): Use find_constant_src in
5902         the splitter condition.
5903         (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
5904         the splitter condition.
5905         (FP float_extend load splitter): Ditto.
5906
5907 2016-05-05  Uros Bizjak  <ubizjak@gmail.com>
5908
5909         * config/i386/i386.md (peehole2 patterns): Change true_regnum
5910         to REGNO in all peephole2 patterns.
5911         (post-reload splitters): Change true_regnum to REGNO in
5912         post-reload splitters.
5913         (zero_extend splitters): Use general_reg_operand and
5914         nonimmediate_gr_operand predicates.
5915
5916 2016-05-05  Jakub Jelinek  <jakub@redhat.com>
5917
5918         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
5919         v constraint instead of x.
5920
5921 2016-05-05  Alan Modra  <amodra@gmail.com>
5922
5923         PR target/68662
5924         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
5925         set OPTION_MASK_RELOCATABLE when flag_pic == 2.  Set
5926         TARGET_NO_FP_IN_TOC for -mrelocatable.
5927         (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
5928         TARGET_RELOCATABLE test.
5929         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
5930         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
5931         * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
5932         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
5933         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
5934         * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
5935         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
5936         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
5937         * config/rs6000/predicates.md (easy_fp_constant): Likewise.
5938         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
5939         Likewise.
5940         (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
5941         (rs6000_stack_info): Likewise.
5942         (rs6000_elf_asm_out_constructor): Likewise.
5943         (rs6000_elf_asm_out_destructor): Likewise.
5944         (rs6000_elf_declare_function_name): Likewise.
5945         * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
5946         * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
5947         Don't define.
5948
5949 2016-05-05  Alan Modra  <amodra@gmail.com>
5950
5951         * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
5952
5953 2016-05-05  Alan Modra  <amodra@gmail.com>
5954
5955         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
5956         out-of-line gpr restore for one or two regs if that would add
5957         a save of lr.
5958
5959 2016-05-04  Uros Bizjak  <ubizjak@gmail.com>
5960
5961         PR target/70873
5962         * config/i386/i386.md
5963         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
5964         Change to post-epilogue_completed late splitter.  Use sse_reg_operand
5965         as operand 0 predicate.
5966         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
5967         Ditto.
5968         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
5969         Ditto.  Emit the pattern using RTX.
5970
5971         (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
5972         Use sse_reg_opreand as operand 0 predicate.  Do not use true_regnum in
5973         the post-reload splitter.  Use lowpart_subreg instead of gen_rtx_REG.
5974         (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
5975         Ditto.
5976         (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
5977         sse_reg_operand as operand 0 predicate.
5978
5979         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
5980         Use sse_reg_opreand as operand 0 predicate.  Use lowpart_subreg
5981         instead of gen_rtx_REG.
5982         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
5983         Ditto.
5984
5985 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
5986
5987         * function.c (emit_use_return_register_into_block): Delete.
5988         (gen_return_pattern): Delete.
5989         (emit_return_into_block): Delete.
5990         (active_insn_between): Delete.
5991         (convert_jumps_to_returns): Delete.
5992         (emit_return_for_exit): Delete.
5993         (thread_prologue_and_epilogue_insns): Delete all code dealing with
5994         simple_return for shrink-wrapped blocks.
5995         * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
5996         end of blocks that need one.
5997         (get_unconverted_simple_return): Delete.
5998         (convert_to_simple_return): Delete.
5999         * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
6000         (convert_to_simple_return): Ditto.
6001
6002 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
6003
6004         * cfgcleanup.c (bb_is_just_return): New function.
6005         (try_optimize_cfg): Simplify jumps to return, branches to return,
6006         and branches around return.
6007
6008 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
6009
6010         * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
6011         branch to a return.
6012
6013 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
6014
6015         PR c++/70906
6016         PR c++/70933
6017         * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
6018         * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
6019         assert flags & OEP_HASH_CHECK, instead of asserting it
6020         never happens.  Handle TARGET_EXPR.
6021         * fold-const.c (operand_equal_p): For hash verification,
6022         or in OEP_HASH_CHECK into flags.
6023
6024 2016-05-04  Eric Botcazou  <ebotcazou@adacore.com>
6025
6026         * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
6027         comment.
6028         (compute_samebase_partition_bases): Fix typo.
6029
6030 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
6031
6032         * config/i386/sse.md (vec_interleave_highv8sf,
6033         vec_interleave_lowv8sf, vec_interleave_highv4df,
6034         vec_interleave_lowv4df): Remove constraints from expanders.
6035
6036         * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
6037
6038 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
6039
6040         * tree-inline.c (expand_call_inline): Fix path dealing with
6041         making lhs of call statement undefined.
6042
6043 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
6044
6045         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
6046         Check availability on NODE, too.
6047         * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
6048         (cgraph_node::call_for_symbol_and_aliases): Likewise.
6049         (varpool_node::call_for_symbol_and_aliase): Likewise.
6050         * ipa-pure-const.c (add_new_function): Analyze all bodies.
6051         (propagate_pure_const): Propagate across interposable functions, too.
6052         (skip_function_for_local_pure_const): Do not skip interposable bodies
6053         with aliases.
6054         (pass_local_pure_const::execute): Update.
6055
6056 2016-05-04  Marek Polacek  <polacek@redhat.com>
6057
6058         * doc/invoke.texi: Document -Wdangling-else.
6059
6060 2016-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
6061
6062         * config.gcc: Error out when conflicting multilib is detected.  Do not
6063         loop over multilibs since no combination is legal.
6064
6065 2016-05-04  Alan Modra  <amodra@gmail.com>
6066
6067         * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
6068         * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
6069         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
6070         Align .toc.
6071
6072 2016-05-04  Matthew Fortune  <matthew.fortune@imgtec.com>
6073
6074         * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
6075         Clean up p5600 comments.
6076
6077 2016-05-04  Richard Biener  <rguenther@suse.de>
6078
6079         * match.pd: Add BIT_FIELD_REF canonicalizations and vector
6080         constructor simplifications.
6081         * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
6082
6083 2016-05-04  Oleg Endo  <olegendo@gcc.gnu.org>
6084
6085         * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
6086         * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
6087         result.set_rtx is null instead of aborting.
6088         * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
6089         Always enable.
6090         (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
6091         * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
6092         *mov<mode>_store_postinc): New patterns.
6093
6094 2016-05-04  Marc Glisse  <marc.glisse@inria.fr>
6095
6096         * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR.  Mark
6097         as commutative.  Check both conversions are NOP.
6098         ((A & B) OP (C & B)): Remove.
6099
6100 2016-05-04  Alan Modra  <amodra@gmail.com>
6101
6102         * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
6103
6104 2016-05-04  Alan Modra  <amodra@gmail.com>
6105
6106         PR target/70866
6107         * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
6108         when cr2,3,4 are all fixed regs.
6109
6110 2016-05-04  Bernd Schmidt  <bschmidt@redhat.com>
6111
6112         PR rtl-optimization/57193
6113         * opts.c (default_options_table): Revert OPT_frename_registers change.
6114         * doc/invoke.texi (-frename-registers, -O2): Likewise.
6115
6116 2016-05-03  Martin Sebor  <msebor@redhat.com>
6117
6118         PR c++/66561
6119         * builtins.c (fold_builtin_FILE): New function.
6120         (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
6121         (fold_builtin_0): Call them.
6122         * gimplify.c (gimplify_call_expr): Remove the handling of
6123         BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
6124
6125         PR c++/66561
6126         * doc/extend.texi (Other Builtins): Update __builtin_FILE,
6127         __builtin_FUNCTION, and __builtin_LINE to reflect they yield
6128         constants.
6129
6130         PR c++/66639
6131         * doc/extend.texi (Function Names as Strings): Update __func__,
6132         __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
6133         constants.
6134
6135 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
6136             Richard Biener  <rguenther@suse.de>
6137
6138         PR tree-optimization/70916
6139         * tree-if-conv.c: Include cfganal.h.
6140         (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
6141         and remove_fake_exit_edges around the optimization pass.
6142
6143 2016-05-03  Jan Hubicka  <hubicka@ucw.cz>
6144
6145         * cgraph.c (symbol_table::create_edge): Set inline_failed.
6146         (cgraph_edge::make_direct): Likewise.
6147         (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
6148         * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
6149         * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
6150         (CIF_THUNK): New code.
6151         * ipa-inline-analysis.c (initialize_inline_failed): Preserve
6152         CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
6153         (compute_inline_parameters): Set inline_failed for thunks.
6154         (inline_analyze_function): Cleanup.
6155         * ipa-inline.c (can_inline_edge_p): Do not deal with
6156         call_stmt_cannot_inline_p.
6157         (can_early_inline_edge_p): Likewise.
6158         (early_inliner): Initialize inline_failed.
6159         * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
6160
6161 2016-05-03  Uros Bizjak  <ubizjak@gmail.com>
6162
6163         * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
6164         from nonimm_ssenomem_operand.
6165         (nonimm_ssenomem_operand): New predicate.
6166         * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
6167         as operand 0 predicate.
6168         (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
6169         Disable unsupported alternatives using "enabled" attribute.
6170         Use register_ssemem_operand as operand 0 predicate.
6171         (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
6172
6173 2016-05-03  Marek Polacek  <polacek@redhat.com>
6174
6175         PR c/70859
6176         * input.c (expansion_point_location): New function.
6177         * input.h (expansion_point_location): Declare.
6178
6179 2016-05-03  Pierre-Marie de Rodat  <derodat@adacore.com>
6180
6181         * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
6182         occurence with frame_offset_ ones.
6183
6184 2016-05-03  Alan Modra  <amodra@gmail.com>
6185
6186         PR rtl-optimization/70890
6187         * ira.c (combine_and_move_insns): When moving def_insn, remove
6188         equivs on use_insn.
6189
6190 2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
6191
6192         * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
6193         ("*r<noxa>sbg_<mode>_srl"): New define_insns.
6194         ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
6195         ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
6196
6197 2016-05-03  Alan Modra  <amodra@gmail.com>
6198
6199         * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
6200         for SAVE_MULTIPLE/STORE_MULTIPLE.
6201
6202 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
6203
6204         * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
6205         *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
6206
6207 2016-05-03  Richard Biener  <rguenther@suse.de>
6208
6209         * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
6210         default true.
6211         (gimplify_arg): Likewise.
6212         * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
6213         re-writing the result to a decl if required.
6214         (internal_get_tmp_var): Add allow_ssa parameter
6215         and override into_ssa with it.
6216         (get_formal_tmp_var): Adjust.
6217         (get_initialized_tmp_var): Add allow_ssa parameter.
6218         (gimplify_arg): Add allow_ssa parameter and avoid generating
6219         SSA names for the result false.
6220         (gimplify_call_expr): If the call may return twice do not
6221         gimplify parameters into SSA.
6222         (prepare_gimple_addressable): Do not allow an SSA name as temporary.
6223         (gimplify_modify_expr): Adjust assert.  For noreturn calls
6224         with a SSA name LHS adjust its def.
6225         (gimplify_save_expr): Do not allow an SSA name as save-expr result.
6226         (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
6227         (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
6228         (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
6229         an SSA name.  Likewise for OMP_CLAUSE_REDUCTION operands.
6230         (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL.  Likewise
6231         for OMP_FOR_COND,  OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
6232         (optimize_target_teams): Do not allow SSA names for clause operands.
6233         (gimplify_expr): Likewise for where we mark the result addressable.
6234         * passes.def (pass_init_datastructures): Remove.
6235         * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
6236         (rewrite_stmt): Likewise.
6237         * tree-inline.c (initialize_cfun): Properly transfer SSA state.
6238         (replace_locals_op): Replace SSA names.
6239         (copy_gimple_seq_and_replace_locals): Init src_cfun.
6240         * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
6241         * cgraph.c (release_function_body): Free CFG annotations only
6242         when we have a CFG.  Simplify.
6243         * gimple-fold.c (gimplify_and_update_call_from_tree): Use
6244         force_gimple_operand instead of get_initialized_tmp_var.
6245         * tree-pass.h (make_pass_init_datastructures): Remove.
6246         * tree-ssa.c (execute_init_datastructures): Remove.
6247         (pass_data_init_datastructures): Likewise.
6248         (class pass_init_datastructures): Likewise.
6249         (make_pass_init_datastructures): Likewise.
6250         * omp-low.c (create_omp_child_function): Init SSA data structures.
6251         (grid_expand_target_grid_body): Likewise.
6252         * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
6253         name before adding it to names_to_release.
6254         (remove_bb): Always release SSA defs.
6255         * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
6256         before dereferencing it.
6257         * cgraphunit.c (init_lowered_empty_function): Always
6258         int SSA data structures.
6259         * tree-ssanames.c (release_defs): Remove assert that we are in
6260         SSA form.
6261         * trans-mem.c (diagnose_tm_1): Handle SSA name function.
6262
6263 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
6264             Uros Bizjak  <ubizjak@gmail.com>
6265
6266         PR rtl-optimization/70467
6267         * config/i386/predicates.md (x86_64_hilo_int_operand,
6268         x86_64_hilo_general_operand): New predicates.
6269         * config/i386/constraints.md (Wd): New constraint.
6270         * config/i386/i386.md (mode attr di): Use Wd instead of e.
6271         (general_hilo_operand): New mode attr.
6272         (add<mode>3, sub<mode>3): Use <general_hilo_operand>
6273         instead of <general_operand>.
6274         (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
6275         x86_64_hilo_general_operand instead of <general_operand>.
6276
6277 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
6278
6279         PR tree-optimization/70916
6280         * tree-if-conv.c (constant_or_ssa_name): Removed.
6281         (fold_build_cond_expr): Use is_gimple_val instead of
6282         constant_or_ssa_name.
6283
6284         PR tree-optimization/70916
6285         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
6286         if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
6287
6288         PR target/49244
6289         * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
6290         (optimize_atomic_bit_test_and): New function.
6291         (pass_fold_builtins::execute): Use it.
6292         * optabs.def (atomic_bit_test_and_set_optab,
6293         atomic_bit_test_and_complement_optab,
6294         atomic_bit_test_and_reset_optab): New optabs.
6295         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
6296         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
6297         * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
6298         * builtins.c (expand_ifn_atomic_bit_test_and): New function.
6299         * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
6300         expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
6301         expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
6302         * doc/md.texi (atomic_bit_test_and_set@var{mode},
6303         atomic_bit_test_and_complement@var{mode},
6304         atomic_bit_test_and_reset@var{mode}): Document.
6305         * config/i386/sync.md (atomic_bit_test_and_set<mode>,
6306         atomic_bit_test_and_complement<mode>,
6307         atomic_bit_test_and_reset<mode>): New expanders.
6308         (atomic_bit_test_and_set<mode>_1,
6309         atomic_bit_test_and_complement<mode>_1,
6310         atomic_bit_test_and_reset<mode>_1): New insns.
6311
6312 2016-05-03  Richard Sandiford  <richard.sandiford@arm.com>
6313
6314         PR rtl-optimization/70687
6315         * combine.c (change_zero_ext): Check for scalar modes.  Use wide_int
6316         instead of unsigned HOST_WIDE_INT.
6317
6318 2016-05-03  Bernd Schmidt  <bschmidt@redhat.com>
6319
6320         PR rtl-optimization/44281
6321         * hard-reg-set.h (struct target_hard_regs): New field
6322         x_fixed_nonglobal_reg_set.
6323         (fixed_nonglobal_reg_set): New macro.
6324         * reginfo.c (init_reg_sets_1): Initialize it.
6325         * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
6326         of fixed_reg_set.
6327         * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
6328
6329 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
6330
6331         PR tree-optimization/56541
6332         * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
6333         * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
6334         * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
6335         (any_complicated_phi): new static variable.
6336         (aggressive_if_conv): delete.
6337         (if_convertible_phi_p): support phis with more than two arguments.
6338         (if_convertible_bb_p): remvoe check on aggressive_if_conv and
6339         critical pred edges.
6340         (ifcvt_split_critical_edges): support phis with more than two
6341         arguments by checking new parameter.  only split critical edges
6342         if needed.
6343         (tree_if_conversion): handle simd pragma marked loop using new
6344         local variable aggressive_if_conv.  check any_complicated_phi.
6345
6346 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
6347
6348         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
6349         before using it.
6350
6351 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
6352
6353         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
6354         cbase.
6355
6356 2016-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
6357
6358         * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
6359         (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
6360         define_insn_and_split.
6361         (mulsi3_i): New define_insn_and_split.
6362         (mulsi3_call): Convert to define_insn.
6363         (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
6364         Remove constraints.
6365
6366 2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
6367
6368         * machmode.h (mode_complex): Add support to give the complex mode
6369         for a given mode.
6370         (GET_MODE_COMPLEX_MODE): Likewise.
6371         * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
6372         stored by build_complex_type and gfc_build_complex_type instead of
6373         trying to figure out the appropriate mode based on the size. Raise
6374         an assertion error, if the type was not set.
6375         * genmodes.c (struct mode_data): Add field for the complex type of
6376         the given type.
6377         (blank_mode): Likewise.
6378         (make_complex_modes): Remember the complex mode created in the
6379         base type.
6380         (emit_mode_complex): Write out the mode_complex array to map a
6381         type mode to the complex version.
6382         (emit_insn_modes_c): Likewise.
6383         * tree.c (build_complex_type): Set the complex type to use before
6384         calling layout_type.
6385         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
6386         support for __float128 complex datatypes.
6387         (rs6000_hard_regno_mode_ok): Likewise.
6388         (rs6000_setup_reg_addr_masks): Likewise.
6389         (rs6000_complex_function_value): Likewise.
6390         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
6391         __float128 and __ibm128 complex.
6392         (FLOAT128_IBM_P): Likewise.
6393         (ALTIVEC_ARG_MAX_RETURN): Likewise.
6394         * doc/extend.texi (Additional Floating Types): Document that
6395         -mfloat128 must be used to enable __float128.  Document complex
6396         __float128 and __ibm128 support.
6397
6398 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
6399
6400         PR target/49244
6401         * gimple.c (gimple_builtin_call_types_compatible_p): Allow
6402         char/short arguments promoted to int because of promote_prototypes.
6403
6404 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
6405
6406         * config/i386/predicates.md (register_ssemem_operand): New predicate.
6407         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
6408         *cmpi<FPCMP:unord><MODEF:mode>_mixed and
6409         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.  Disable unsupported
6410         alternatives using "enabled" attribute.  Use register_ssemem_operand
6411         as operand 1 predicate.
6412         (*cmpi<unord>xf_i387): Split XFmode pattern from
6413         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
6414         (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
6415         *absneg<mode>2_i387.  Disable unsupported alternatives using
6416         "enabled" attribute.
6417         (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
6418
6419 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
6420
6421         * omp-low.c (lower_oacc_head_tail): Assert there is at least one
6422         marker.
6423         (oacc_loop_process): Check mask for loop termination.
6424
6425 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
6426
6427         * cif-code.def (CIF_THUNK): Add.
6428         * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
6429         accidental change.
6430
6431 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
6432
6433         * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
6434         (dump_inline_summary): Dump it.
6435         (fp_expression_p): New predicate.
6436         (estimate_function_body_sizes): Use it.
6437         (inline_merge_summary): Merge fp_expressions.
6438         (inline_read_section): Read fp_expressions.
6439         (inline_write_summary): Write fp_expressions.
6440         * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
6441         codegen boundary if either caller or callee is !fp_expressions.
6442         * ipa-inline.h (inline_summary): Add fp_expressions.
6443         * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
6444         to fp_expressions be sure the fp generation flags are updated.
6445
6446 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
6447
6448         PR rtl-optimization/70467
6449         * cse.c (cse_insn): Handle no-op MEM moves after folding.
6450
6451         PR rtl-optimization/70467
6452         * ipa-pure-const.c (check_call): Handle internal calls even in
6453         ipa mode like in local mode.
6454
6455 2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6456
6457         * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
6458
6459 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
6460
6461         * match.pd (X u< X, X u> X): New transformations.
6462
6463 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
6464
6465         * flag-types.h (enum warn_strict_overflow_code): Move ...
6466         * coretypes.h: ... here.
6467         * fold-const.h (fold_overflow_warning): Declare.
6468         * fold-const.c (fold_overflow_warning): Make non-static.
6469         (fold_comparison): Move the transformation of X +- C1 CMP C2
6470         into X CMP C2 -+ C1 ...
6471         * match.pd: ... here.
6472         * gimple-fold.c (fold_stmt_1): Protect with
6473         fold_defer_overflow_warnings.
6474
6475 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
6476
6477         * omp-low.c (struct oacc_loop): Add 'inner' field.
6478         (new_oacc_loop_raw): Initialize it to zero.
6479         (oacc_loop_fixed_partitions): Initialize it.
6480         (oacc_loop_auto_partitions): Partition outermost loop to outermost
6481         available partitioning.
6482
6483 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
6484
6485         * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
6486         register_operand.
6487         (umulsidi3): Likewise.
6488         (indirect_jump): Fix jump instruction assembly patterns.
6489
6490 2016-05-02  Thomas Schwinge  <thomas@codesourcery.com>
6491
6492         PR target/70860
6493         * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
6494         (nvptx_function_value): Assert non-NULL cfun.
6495
6496 2016-05-02  Eric Botcazou  <ebotcazou@adacore.com>
6497
6498         PR rtl-optimization/70886
6499         * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
6500
6501         * cselib.h (rtx_equal_for_cselib_1): Declare.
6502         (rtx_equal_for_cselib_p: New inline function.
6503         * cselib.c (rtx_equal_for_cselib_p): Delete.
6504         (rtx_equal_for_cselib_1): Make public.
6505
6506 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
6507
6508         * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
6509         (register_mixssei387nonimm_operand): Remove predicate.
6510         * config/i386/i386.md (*fop_<mode>_comm): Merge from
6511         *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387.  Disable unsupported
6512         alternatives using "enabled" attribute.  Also check X87_ENABLE_ARITH
6513         for TARGET_MIX_SSE_I387 alternatives.
6514         (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
6515         Disable unsupported alternatives using "enabled" attribute.  Use
6516         nonimm_ssenomem_operand as operand 1 predicate.  Also check
6517         X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
6518
6519 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
6520
6521         * tree.c (cst_and_fits_in_hwi): Simplify.
6522
6523 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
6524
6525         * tree.h (wi::to_wide): New function.
6526         * expr.c (expand_expr_real_1): Use wi::to_wide.
6527         * fold-const.c (int_const_binop_1): Likewise.
6528         (extract_muldiv_1): Likewise.
6529
6530 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
6531
6532         * wide-int.h: Update offset_int and widest_int documentation.
6533         (WI_SIGNED_SHIFT_RESULT): New macro.
6534         (wi::binary_shift): Define signed_shift_result_type for
6535         shifts on offset_int- and widest_int-like types.
6536         (generic_wide_int): Support <<= and >>= if << and >> are supported.
6537         * tree.h (int_bit_position): Use shift operators instead of wi::
6538          shifts.
6539         * alias.c (adjust_offset_for_component_ref): Likewise.
6540         * expr.c (get_inner_reference): Likewise.
6541         * fold-const.c (fold_comparison): Likewise.
6542         * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
6543         * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
6544         * tree-dfa.c (get_ref_base_and_extent): Likewise.
6545         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
6546         (stmt_kills_ref_p): Likewise.
6547         * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
6548         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
6549         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
6550         (ao_ref_init_from_vn_reference): Likewise.
6551
6552 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
6553
6554         * wide-int.h: Update offset_int and widest_int documentation.
6555         (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
6556         (wi::binary_traits): Allow ordered comparisons between offset_int and
6557         offset_int, between widest_int and widest_int, and between either
6558         of these types and basic C types.
6559         (operator <, <=, >, >=): Define for the same combinations.
6560         * tree.h (tree_int_cst_lt): Use comparison operators instead
6561         of wi:: comparisons.
6562         (tree_int_cst_le): Likewise.
6563         * gimple-fold.c (fold_array_ctor_reference): Likewise.
6564         (fold_nonarray_ctor_reference): Likewise.
6565         * gimple-ssa-strength-reduction.c (record_increment): Likewise.
6566         * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
6567         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
6568         * tree-sra.c (completely_scalarize): Likewise.
6569         * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
6570         * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
6571         * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
6572         (check_for_binary_op_overflow): Likewise.
6573         (search_for_addr_array): Likewise.
6574         * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
6575
6576 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
6577
6578         * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
6579         (arc_save_restore): Likewise.
6580         (arc_dwarf_register_span): Likewise.
6581         (arc_output_pic_addr_const): Initialize suffix variable.
6582
6583 2016-05-02  Martin Liska  <mliska@suse.cz>
6584
6585         * symbol-summary.h (function_summary::function_summary):
6586         Remove checking assert for all cgraph nodes.
6587         (function_summary::get): Check summary_uid.
6588         (symtab_insertion): Check summary_uid.
6589
6590 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
6591
6592         * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
6593         * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
6594         bmaskn instruction.
6595         (arc_dwarf_register_span): Remove enum keyword.
6596         (compact_memory_operand_p): New function.
6597         * config/arc/arc.h (reg_class): Add code density register classes.
6598         (REG_CLASS_NAMES): Likewise.
6599         (REG_CLASS_CONTENTS): Likewise.
6600         * config/arc/arc.md (*movqi_insn): Add code density instructions.
6601         (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
6602         (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
6603         (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
6604         * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
6605         constraints.
6606         (h, Rcd, Rsd, Rzd): New register constraints.
6607         (T): Use compact_memory_operand_p function.
6608         * config/arc/predicates.md (compact_load_memory_operand): Remove.
6609
6610 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
6611
6612         * config/sh/sh.md (*negnegt, *movtt): Remove.
6613
6614 2016-05-02  Marek Polacek  <polacek@redhat.com>
6615             Tom de Vries  <tom@codesourcery.com>
6616
6617         PR tree-optimization/70700
6618         * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
6619         bigger than FIRST_REF_NODE.
6620
6621 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
6622
6623         PR target/52898
6624         * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
6625         TARGET_CMPEQDI_T.
6626         (prepare_cbranch_operands): Don't use scratch register.  Assume that
6627         function is used when pseudos can be created.
6628         (expand_cbranchdi4): Likewise.  Remove unused TARGET_CMPEQDI_T paths.
6629         * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
6630         (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
6631         define_expand.  Allow it only when pseudos can be created.
6632         * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
6633
6634 2016-05-01  Uros Bizjak  <ubizjak@gmail.com>
6635
6636         * config/i386/constraints.md (BC): Only allow -1 operands.
6637         * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
6638         Add "enabled" attribute.  Update XI mode attribute calculation.
6639         * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
6640         (*movoi_internal_avx): Update XI mode attribute calculation.
6641         (*movti_internal): Ditto.
6642
6643 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
6644
6645         * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
6646         cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
6647
6648 2016-05-01  Eric Botcazou  <ebotcazou@adacore.com>
6649
6650         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
6651         statement on instruction code.  Remove trailing spaces.
6652         (altivec_expand_stv_builtin): Likewise.
6653
6654 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
6655
6656         * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
6657         (TARGET_FPU_DOUBLE): Simplify.
6658         (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
6659         'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
6660         * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
6661         with 'TARGET_FPU_DOUBLE'.
6662         * config/sh/sh.md: Likewise.
6663
6664 2016-05-01  Yoshinori Sato  <ysato@users.sourceforge.jp>
6665
6666         * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
6667         SH_DIV_STR_FOR_SIZE): Remove.
6668         * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
6669         SH_DIV_STR_FOR_SIZE): Remove.
6670
6671 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
6672
6673         * config/sh/predicates.md (any_register_operand, zero_extend_operand,
6674         logical_reg_operand): Delete.
6675         (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
6676         arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
6677         logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
6678         match_operand and match_test.
6679         (sh_const_vec, sh_1el_vec): Remove redundant checks.  Declare local
6680         variables on their first use.  Return bool values.
6681         * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
6682         * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
6683         arith_reg_operand for input operand.  Remove empty constraints.
6684         (xorsi3): Delete.
6685         (*xorsi3_compact): Rename to xorsi3.
6686         (zero_extend<mode>si2): Use arith_reg_operand for input operand.
6687         (*zero_extend<mode>si2_disp_mem): Update comment.
6688         (mov_nop): Delete.
6689
6690 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
6691
6692         * config/sh/t-sh: Remove SH5 support.
6693         * config.gcc: Likewise.
6694         * configure: Likewise.
6695
6696 2016-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6697
6698         * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
6699
6700 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
6701
6702         * config/sh/sh.c (register_sh_passes, sh_option_override,
6703         sh_print_operand, prepare_move_operands,
6704         sh_can_follow_jump): Remove TARGET_SH1 checks.
6705         * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
6706         PROMOTE_MODE): Likewise.
6707         * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
6708         movdi): Likewise.
6709
6710 2016-04-30  Alan Modra  <amodra@gmail.com>
6711
6712         * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
6713         restoring when fixed_reg_p, but allow out-of-line or stmw save.
6714         Check for user regs later to avoid unnecessary looping over regs.
6715         Merge user reg check with non-saved reg check.  Don't force
6716         inline VR restore when static chain used.
6717         (rs6000_frame_related): Omit eh_frame info for user regs when
6718         saving.
6719         (fixed_regs_p): Delete.
6720
6721 2016-04-30  Alan Modra  <amodra@gmail.com>
6722
6723         * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
6724         (SAVE_STRATEGY, REST_STRATEGY): ..this.  Renumber and sort enum.
6725         Update all uses.
6726
6727 2016-04-30  Alan Modra  <amodra@gmail.com>
6728
6729         PR target/69645
6730         * config/rs6000/rs6000.c (fixed_reg_p): New function.
6731         (fixed_regs_p): Rename from global_regs_p.  Call fixed_reg_p.
6732         Update all uses.
6733
6734 2016-04-30  Alan Modra  <amodra@gmail.com>
6735
6736         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
6737         Remove redundant PIC_OFFSET_TABLE_REGNUM test.  Replace with
6738         flag_pic test for Darwin.
6739
6740 2016-04-30  Alan Modra  <amodra@gmail.com>
6741
6742         * regs.h (struct reg_info_t): Delete freq_calls_crossed and
6743         throw_calls_crossed.
6744         (REG_FREQ_CALLS_CROSSED): Delete.
6745         (REG_N_THROWING_CALLS_CROSSED): Delete.
6746         * regstat.c (regstat_bb_compute_ri): Don't calculate
6747         REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
6748         (dump_reg_info): Don't print call cross frequency.
6749         * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
6750         and REG_N_THROWING_CALLS_CROSSED.
6751
6752 2016-04-30  Alan Modra  <amodra@gmail.com>
6753
6754         * regs.h (struct reg_info_t): Delete live_length.
6755         (REG_LIVE_LENGTH): Delete macro.
6756         * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
6757         local_live, local_processed and local_live_last_luid params.
6758         Replace bb_index param with bb.  Don't set REG_LIVE_LENGTH.
6759         Formatting fixes.
6760         (regstat_compute_ri): Adjust for above.  Don't set
6761         REG_LIVE_LENGTH.
6762         (dump_reg_info): Don't print live length.
6763         * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
6764         with test of setjmp_crosses.  Don't set REG_LIVE_LENGTH.
6765         Localize loop_depth var.
6766
6767 2016-04-30  Alan Modra  <amodra@gmail.com>
6768
6769         * ira.c (enum valid_equiv): New.
6770         (validate_equiv_mem): Return enum.
6771         (update_equiv_mem): Create replacement in more cases.
6772         (add_store_equivs): Update validate_equiv_mem call.
6773
6774 2016-04-30  Alan Modra  <amodra@gmail.com>
6775
6776         * ira.c (combine_and_move_insns): Rather than scanning insns,
6777         use DF infrastucture to find use and def insns.
6778
6779 2016-04-30  Alan Modra  <amodra@gmail.com>
6780
6781         ira.c (combine_and_move_insns): Move invariant conditions..
6782         (ira.c): ..to here.  Call combine_and_move_insns before
6783         add_store_equivs.  Call grow_reg_equivs later.  Allocate
6784         req_equiv later using max_reg_num() rather than global max_regno.
6785         (contains_replace_regs): Delete.
6786         (add_store_equivs): Remove contains_replace_regs test.
6787
6788 2016-04-30  Alan Modra  <amodra@gmail.com>
6789
6790         * ira.c (struct equiv_mem_data): New.
6791         (equiv_mem, equiv_mem_modified): Delete static vars.
6792         (validate_equiv_mem_from_store): Use "data" param to communicate..
6793         (validate_equiv_mem): ..from here.
6794
6795 2016-04-30  Alan Modra  <amodra@gmail.com>
6796
6797         * ira.c (add_store_equivs, combine_and_move_insns): New functions,
6798         split out from..
6799         (update_reg_equivs): ..here.  Move allocation and freeing of
6800         reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
6801         end_alias_analysis to..
6802         (ira): ..here.
6803
6804 2016-04-30  Alan Modra  <amodra@gmail.com>
6805
6806         * ira.c (pdx_subregs): Delete.
6807         (struct equivalence): Add pdx_subregs field.
6808         (set_paradoxical_subreg): Remove pdx_subregs param.  Update
6809         pdx_subregs access.
6810         (update_equiv_regs): Don't create or free pdx_subregs.  Update
6811         pdx_subregs access.
6812
6813 2016-04-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
6814
6815         * config/rs6000/altivec.h: Change definitions of vec_xl and
6816         vec_xst.
6817         * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
6818         (LD_ELEMREV_V2DI): New.
6819         (LD_ELEMREV_V4SF): New.
6820         (LD_ELEMREV_V4SI): New.
6821         (LD_ELEMREV_V8HI): New.
6822         (LD_ELEMREV_V16QI): New.
6823         (ST_ELEMREV_V2DF): New.
6824         (ST_ELEMREV_V2DI): New.
6825         (ST_ELEMREV_V4SF): New.
6826         (ST_ELEMREV_V4SI): New.
6827         (ST_ELEMREV_V8HI): New.
6828         (ST_ELEMREV_V16QI): New.
6829         (XL): New.
6830         (XST): New.
6831         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
6832         descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
6833         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
6834         TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
6835         (altivec_expand_builtin): Add handling for
6836         VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
6837         (rs6000_invalid_builtin): Add error-checking for
6838         RS6000_BTM_P9_VECTOR.
6839         (altivec_init_builtins): Define builtins used to implement vec_xl
6840         and vec_xst.
6841         (rs6000_builtin_mask_names): Define power9-vector.
6842         * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
6843         (RS6000_BTM_P9_VECTOR): Define.
6844         (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
6845         * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
6846         (vsx_ld_elemrev_v2df): Likewise.
6847         (vsx_ld_elemrev_v4sf): Likewise.
6848         (vsx_ld_elemrev_v4si): Likewise.
6849         (vsx_ld_elemrev_v8hi): Likewise.
6850         (vsx_ld_elemrev_v16qi): Likewise.
6851         (vsx_st_elemrev_v2df): Likewise.
6852         (vsx_st_elemrev_v2di): Likewise.
6853         (vsx_st_elemrev_v4sf): Likewise.
6854         (vsx_st_elemrev_v4si): Likewise.
6855         (vsx_st_elemrev_v8hi): Likewise.
6856         (vsx_st_elemrev_v16qi): Likewise.
6857         * doc/extend.texi: Add prototypes for vec_xl and vec_xst.  Correct
6858         grammar.
6859
6860 2016-04-29  Patrick Palka  <ppalka@gcc.gnu.org>
6861
6862         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
6863         out into ...
6864         (simplify_control_stmt_condition_1): ... here.  Recurse into
6865         BIT_AND_EXPRs and BIT_IOR_EXPRs.
6866
6867 2016-04-29  David Edelsohn  <dje.gcc@gmail.com>
6868
6869         PR target/69810
6870         * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
6871         (zero_extendqi<mode>2_dot): Revert earlier conversion from
6872         define_insn_and_split to define_insn.
6873         (zero_extendqi<mode>2_dot2): Same.
6874         (extendqi<mode>2_dot): Same.
6875         (extendqi<mode>2_dot2): Same.
6876
6877 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
6878
6879         * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
6880         (probe_stack): New expander.
6881         (probe_stack_<mode>): New insn pattern.
6882
6883 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
6884
6885         * config/i386/i386.md
6886         (operations with memory inputs setting flags peephole2):
6887         Remove uneeded REG_P checks.  Cleanup pattern generation.
6888
6889 2016-04-29  Ilya Enkovich  <ilya.enkovich@intel.com>
6890
6891         * tree-vect-loop.c (vect_transform_loop): Fix
6892         nb_iterations_upper_bound computation for vectorized loop.
6893
6894 2016-04-29  Marek Polacek  <polacek@redhat.com>
6895             Jakub Jelinek  <jakub@redhat.com>
6896
6897         PR sanitizer/70342
6898         * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
6899         TARGET_EXPR_SLOT as a base.
6900
6901 2016-04-29  Andrew Burgess  <andrew.burgess@embecosm.com>
6902
6903         * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
6904         with 'rCm2' constraints to limit possible immediate size.
6905         (*load_zeroextendqisi_update): Likewise.
6906         (*load_signextendqisi_update): Likewise.
6907         (*loadhi_update): Likewise.
6908         (*load_zeroextendhisi_update): Likewise.
6909         (*load_signextendhisi_update): Likewise.
6910         (*loadsi_update): Likewise.
6911         (*loadsf_update): Likewise.
6912
6913 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
6914
6915         * config/i386/predicates.md (constm1_operand): Fix comparison.
6916
6917 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
6918
6919         * testsuite/gcc.target/arc/ieee_eq.c: New test.
6920
6921 2016-04-29  Oleg Endo  <olegendo@gcc.gnu.org>
6922
6923         * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
6924         remaining SH5 related settings.
6925         * config/sh/sh-protos.h (shmedia_cleanup_truncate,
6926         shmedia_prepare_call_address): Delete.
6927         * config/sh/sh.c (sh_print_operand, output_stack_adjust,
6928         DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
6929         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
6930         UNSUPPORTED_SH2A): Remove m5 checks.
6931         (sh_divide_strategy_e): Remove SH5 division strategies.
6932         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
6933         * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
6934
6935 2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
6936
6937         * config/s390/s390.c (s390_rtx_costs): Update documentation.
6938
6939 2016-04-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6940
6941         * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
6942         * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
6943         Change lder to ldr.
6944         * config/s390/vector.md ("mov<mode>"): Likewise.
6945
6946 2016-04-29  Ulrich Weigand  <uweigand@de.ibm.com>
6947
6948         * config/s390/constraints.md ("U", "W"): Invoke
6949         s390_mem_constraint with "ZR" and "ZT".
6950         * config/s390/s390.c (s390_check_qrst_address): Reject invalid
6951         addresses when using LRA.  Accept also short displacements for S
6952         and T constraints.  Do not check for long displacement target for
6953         S and T constraints.
6954         (s390_mem_constraint): Remove handling of U and W constraints.
6955         * config/s390/s390.md (various patterns): Remove the short
6956         displacement constraints (Q and R) if a long displacement
6957         constraint is present.  Add longdisp as required CPU capability.
6958         * config/s390/vector.md: Likewise.
6959         * config/s390/vx-builtins.md: Likewise.
6960
6961 2016-04-29  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
6962
6963         PR target/60040
6964         * reload1.c (reload): Call finish_spills before
6965         restarting reload loop. Skip select_reload_regs
6966         if update_eliminables_and_spill returns true.
6967
6968 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
6969
6970         * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
6971         * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
6972         (umulhisi3_imm): Update predicates and constraint letters.
6973         (umulhisi3_reg): Declare instruction as commutative.
6974         * config/arc/constraints.md (J12, J16): New constraints.
6975         * config/arc/predicates.md (short_unsigned_const_operand): New
6976         predicate.
6977         (arc_short_operand): Likewise.
6978         * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
6979
6980 2016-04-29  Richard Biener  <rguenther@suse.de>
6981
6982         PR tree-optimization/13962
6983         PR tree-optimization/65686
6984         * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
6985         * tree-ssa-alias.c (ptrs_compare_unequal): New function
6986         using PTA to compare pointers.
6987         * match.pd: Add pattern for pointer equality compare simplification
6988         using ptrs_compare_unequal.
6989
6990 2016-04-29  Richard Biener  <rguenther@suse.de>
6991
6992         * stor-layout.c (layout_type): Do not build a pointer-to-element
6993         type for arrays.
6994
6995 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
6996
6997         * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
6998         Use SWI mode iterator.  Use general_reg_operand predicate.
6999         (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
7000         peephole to MMX and SSE part.  Use mmx_reg_operand and sse_reg_operand
7001         predicates.
7002
7003 2016-04-29  Jakub Jelinek  <jakub@redhat.com>
7004
7005         PR middle-end/70843
7006         * fold-const.c (operand_equal_p): Don't verify hash value equality
7007         if arg0 == arg1.
7008         * tree.c (inchash::add_expr): Handle STATEMENT_LIST.  Ignore BLOCK
7009         and OMP_CLAUSE.
7010
7011 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
7012
7013         PR target/70858
7014         * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
7015         to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
7016         (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
7017         __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
7018         __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
7019
7020 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
7021
7022         * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
7023         to info.  Don't initialize separate fields to 0.  Clean up
7024         formatting a bit.
7025
7026 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
7027
7028         * config/i386/i386.md (peephole2s for operations with memory inputs):
7029         Use SWI mode iterator.
7030         (peephole2s for operations with memory outputs): Ditto.
7031         Do not check for stack checking probe.
7032
7033         (probe_stack): Remove expander.
7034
7035 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
7036             Andrew Burgess  <andrew.burgess@embecosm.com>
7037
7038         * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
7039         operands as 32-bits.
7040
7041 2016-04-28  Jason Merrill  <jason@redhat.com>
7042
7043         * gdbinit.in: Skip line-map.h.
7044
7045 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
7046             Andrew Burgess  <andrew.burgess@embecosm.com>
7047
7048         * config/arc/arc.c (arc_conditional_register_usage): Take
7049         TARGET_RRQ_CLASS into account.
7050         (arc_print_operand): Support printing 'p' and 's' operands.
7051         * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
7052         as 0.
7053         (TARGET_RRQ_CLASS): Define.
7054         (IS_POWEROF2_OR_0_P): Define.
7055         * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
7056         alternatives.
7057         (*tst_movb): New define_insn.
7058         (*tst): Avoid recognition if it could prevent '*tst_movb'
7059         combination; replace c/CnL with c/Chs alternative.
7060         (*tst_bitfield_tst): New define_insn.
7061         (*tst_bitfield_asr): New define_insn.
7062         (*tst_bitfield): New define_insn.
7063         (andsi3_i): Add Rrq variant.
7064         (extzv): New define_expand.
7065         (insv): New define_expand.
7066         (*insv_i): New define_insn.
7067         (*movb): New define_insn.
7068         (*movb_signed): New define_insn.
7069         (*movb_high): New define_insn.
7070         (*movb_high_signed): New define_insn.
7071         (*movb_high_signed + 1): New define_split pattern.
7072         (*mrgb): New define_insn.
7073         (*mrgb + 1): New define_peephole2 pattern.
7074         (*mrgb + 2): New define_peephole2 pattern.
7075         * config/arc/arc.opt (mbitops): New option for nps400, uses
7076         TARGET_NPS_BITOPS_DEFAULT.
7077         * config/arc/constraints.md (q): Make register class conditional.
7078         (Rrq): New register constraint.
7079         (Chs): New constraint.
7080         (Clo): New constraint.
7081         (Chi): New constraint.
7082         (Cbf): New constraint.
7083         (Cbn): New constraint.
7084         (C18): New constraint.
7085         (Cbi): New constraint.
7086
7087 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
7088
7089         * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
7090         dst->popcount.
7091         (bitmap_intersection_of_preds): Ditto.
7092         (bitmap_union_of_succs): Ditto.
7093         (bitmap_union_of_preds): Ditto.
7094         * sbitmap.c (do_popcount): Delete.
7095         (BITMAP_DEBUGGING): Delete.
7096         (sbitmap_verify_popcount): Delete.
7097         (sbitmap_alloc): Don't initialize the popcount field.
7098         (sbitmap_alloc_with_popcount): Delete.
7099         (sbitmap_resize): Don't resize the popcount array.
7100         (sbitmap_vector_alloc): Don't initialize the popcount field.
7101         (bitmap_copy): Don't copy the popcount array.
7102         (bitmap_clear): Don't clear the popcount array.
7103         (bitmap_clear): Delete the popcount array handling.
7104         (bitmap_ior_and_compl): Delete the popcount assert.
7105         (bitmap_not): Ditto.
7106         (bitmap_and_compl): Ditto.
7107         (bitmap_and): Delete the popcount array handling.
7108         (bitmap_xor): Ditto.
7109         (bitmap_ior): Ditto.
7110         (bitmap_or_and): Delete the popcount assert.
7111         (bitmap_and_or): Ditto.
7112         (popcount_table): Delete.
7113         (sbitmap_elt_popcount): Delete.
7114         * sbitmap.h (simple_bitmap_def): Delete the popcount field.
7115         (bitmap_set_bit): Delete the popcount assert.
7116         (bitmap_clear_bit): Ditto.
7117         (sbitmap_free): Don't free the popcount array.
7118         (sbitmap_alloc_with_popcount): Delete declaration.
7119         (sbitmap_popcount): Ditto.
7120
7121 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
7122             Andrew Burgess  <andrew.burgess@embecosm.com>
7123
7124         * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
7125         (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
7126         * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
7127         (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
7128         * config/arc/arc.opt (mcmem): New option.
7129         * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
7130         supply length for r/m alternative.
7131         (*extendqisi2_ac): Likewise.
7132         (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
7133         r/Uex alternative.
7134         (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
7135         (movhi_insn): Likewise.
7136         (movsi_insn): Add r/Ucm,Ucm/w alternatives.
7137         (*zero_extendqihi2_i): Add r/Ucm alternative.
7138         (*zero_extendqisi2_ac): Likewise.
7139         (*zero_extendhisi2_i): Likewise.
7140         * config/arc/constraints.md (Uex): New memory constraint.
7141         (Ucm): New define_constraint.
7142         * config/arc/predicates.md (long_immediate_loadstore_operand):
7143         Return 0 for MEM with cmem_address address.
7144         (cmem_address_0): New predicates.
7145         (cmem_address_1): Likewise.
7146         (cmem_address_2): Likewise.
7147         (cmem_address): Likewise.
7148
7149 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
7150
7151         * config/rs6000/rs6000.c (machine_function): Rename
7152         insn_chain_scanned_p to spe_insn_chain_scanned_p.
7153         (rs6000_stack_info): Adjust.
7154
7155 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
7156             Andrew Burgess  <andrew.burgess@embecosm.com>
7157
7158         * config/arc/constraints.md (Usd): Convert to define_constraint.
7159         (Us<): Likewise.
7160         (Us>): Likewise.
7161
7162 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
7163
7164         PR target/70821
7165         * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
7166         Add new peephole2 where the first insn is *mov<mode>_or instead of
7167         *mov<mode>_internal.
7168
7169 2016-04-28  Segher Boesssenkool  <segher@kernel.crashing.org>
7170
7171         * tracer.c (bb_seen): Make static.
7172
7173 2016-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>
7174
7175         * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
7176         support, setup defaults.
7177         * config/arc/arc-opts.h (enum processor_type): Add NPS400.
7178         * config/arc/arc.c (arc_init): Add NPS400 support.
7179         * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
7180         (TARGET_ARC700): NPS400 is also an ARC700.
7181         * config/arc/arc.opt: Add NPS400 options to -mcpu=.
7182
7183 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
7184
7185         PR target/70668
7186         * config/nds32/nds32.md (casesi): Don't access the operands array
7187         out of bounds.
7188
7189 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
7190
7191         * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
7192         (or $-1,reg peephole2): Ditto.
7193         (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
7194
7195 2016-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
7196
7197         * doc/extend.texi (Common Function Attributes) [optimize]:
7198         Discourage use of the optimize attribute.
7199
7200 2016-04-28  Bill Seurer  <seurer@linux.vnet.ibm.com>
7201
7202         * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
7203         special case builtin.
7204         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
7205         ALTIVEC_BUILTIN_VEC_ADDE.
7206         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
7207         support for ALTIVEC_BUILTIN_VEC_ADDE.
7208         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
7209         for __builtin_vec_adde.
7210
7211 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
7212
7213         * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
7214         * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
7215
7216 2016-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7217
7218         PR testsuite/70595
7219         * doc/sourcebuild.texi (Effective-Target Keywords, Other
7220         attributes): Document cilkplus_runtime.
7221
7222 2016-04-28  Martin Jambor  <mjambor@suse.cz>
7223
7224         * tree-cfg.c (verify_expr): Verify that local declarations belong to
7225         this function.  Call verify_expr on MEM_REFs and bases of other
7226         handled_components.
7227
7228 2016-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7229
7230         * internal-fn.c (expand_arith_overflow): Convert preprocessor check
7231         for WORD_REGISTER_OPERATIONS to runtime check.
7232
7233 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
7234
7235         * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
7236
7237 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
7238
7239         * config/arc/arc.c (arc_process_double_reg_moves): Fix for
7240         big-endian compilation.
7241         * config/arc/arc.md (addf3): Likewise.
7242         (subdf3): Likewise.
7243         (muldf3): Likewise.
7244
7245 2016-04-28  Richard Biener  <rguenther@suse.de>
7246
7247         PR tree-optimization/70840
7248         * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
7249         Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
7250         Mark x * pow(x,c) -> pow(x,c+1) commutative.
7251         Add powi(x,y) * powi(z,y) -> powi(x*z,y).
7252
7253 2015-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7254
7255         * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
7256         and explain why in a comment.
7257
7258 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
7259
7260         * config/arc/arc.md (cpu_facility): Add fpx variant.
7261         (subdf3): Prohibit use reverse sub when assist operations option
7262         is enabled.
7263         * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
7264         instructions only when FPX is enabled.
7265         * testsuite/gcc.target/arc/trsub.c: New test.
7266
7267 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
7268
7269         * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
7270         mult_operator when calculating "type" attribute.
7271         (*fop_<mode>_1_i387): Ditto.
7272         (*fop_xf_1_i387): Ditto.
7273         (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
7274         Use std::swap to swap operands.  Use RTL expressions to generate
7275         converted pattern.
7276
7277 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
7278             Joern Rennecke  <joern.rennecke@embecosm.com>
7279
7280         * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
7281         declaration.
7282         (emit_pic_move): Remove.
7283         (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
7284         * config/arc/arc.c (emit_pic_move): Removed.
7285         (TARGET_HAVE_TLS): Define.
7286         (arc_conditional_register_usage): Test for arc_tp_regno.
7287         (arc_print_operand, arc_print_operand_address): Handle TLS
7288         unspecs.
7289         (arc_needs_pcl_p): New function.
7290         (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
7291         (arc_legitimate_pic_addr_p): Handle TLS unspecs.
7292         (arc_raw_symbolic_reference_mentioned_p): Likewise.
7293         (arc_get_tp, arc_emit_call_tls_get_addr): New function.
7294         (arc_legitimize_tls_address): Likewise.
7295         (DTPOFF_ZERO_SYM): Define.
7296         (arc_legitimize_pic_address): Make it static, handle TLS cases.
7297         (arc_output_pic_addr_const): Print TLS unspecs.
7298         (prepare_pic_move): New function, replaces emit_pic_move.
7299         (arc_legitimate_constant_p): Handle TLS unspecs.
7300         (arc_legitimate_address_p): Likewise.
7301         (arc_rewrite_small_data_p): Use assert for TLS constants.
7302         (prepare_move_operands): Use prepare_pic_move.
7303         (arc_legitimize_address): Legitimize tls addresses.
7304         (arc_epilogue_uses): Check for arc_tp_regno.
7305         (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
7306         * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
7307         Define.
7308         [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
7309         Likewise.
7310         [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
7311         %(arc_tls_extra_start_spec).
7312         (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
7313         (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
7314         (EH_USES): Define.
7315         (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
7316         * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
7317         (UNSPEC_TLS_OFF): Add.
7318         (R10_REG): Define.
7319         (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
7320         (get_thread_pointersi): New patterns.
7321         * config/arc/arc.opt (mtp-regno): New option.
7322         * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
7323         (move_dest_operand): Likewise.
7324         * configure: Regenerate.
7325         * configure.ac: Add arc*-*-* case to test for tls.
7326         * doc/invoke.texi (ARC options): Document mtp-regno.
7327
7328 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
7329
7330         * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
7331         the new ARC HS SIMD instructions.
7332         (arc_preferred_simd_mode): New function.
7333         (arc_autovectorize_vector_sizes): Likewise.
7334         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
7335         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
7336         (arc_init_reg_tables): Accept new ARC HS SIMD modes.
7337         (arc_init_builtins): Add new SIMD builtin types.
7338         (arc_split_move): Handle 64 bit vector moves.
7339         * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
7340         (TARGET_PLUS_QMACW): Define.
7341         * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
7342         (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
7343         (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
7344         (VSUBADD4H): New builtins.
7345         * config/arc/simdext.md: Add new ARC HS SIMD instructions.
7346         * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
7347
7348 2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
7349             Matthias Klose  <doko@debian.org>
7350
7351         * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
7352
7353 2016-04-28  Richard Biener  <rguenther@suse.de>
7354
7355         PR middle-end/70777
7356         * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
7357         canonicalization.
7358
7359 2016-04-28  Oleg Endo  <olegendo@gcc.gnu.org>
7360
7361         * common/config/sh/sh-common.c: Remove SH5 support.
7362         * config/sh/constraints.md: Likewise.
7363         * config/sh/config/sh/elf.h: Likewise.
7364         * config/sh/linux.h: Likewise.
7365         * config/sh/netbsd-elf.h: Likewise.
7366         * config/sh/predicates.md: Likewise.
7367         * config/sh/sh-c.c: Likewise.
7368         * config/sh/sh-protos.h: Likewise.
7369         * config/sh/sh.c: Likewise.
7370         * config/sh/sh.h: Likewise.
7371         * config/sh/sh.md: Likewise.
7372         * config/sh/sh.opt: Likewise.
7373         * config/sh/sync.md: Likewise.
7374         * config/sh/sh64.h: Delete.
7375         * config/sh/shmedia.h: Likewise.
7376         * config/sh/shmedia.md: Likewise.
7377         * config/sh/sshmedia.h: Likewise.
7378         * config/sh/t-netbsd-sh5-64: Likewise.
7379         * config/sh/t-sh64: Likewise.
7380         * config/sh/ushmedia.h: Likewise.
7381
7382 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
7383
7384         * config/i386/i386.md (sign_extend to memory peephole2s): Use
7385         general_reg_operand instead of register_operand predicate.
7386
7387 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7388
7389         * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
7390
7391 2016-04-27  Marc Glisse  <marc.glisse@inria.fr>
7392
7393         * match.pd (A - B > A, A + B < A): New transformations.
7394
7395 2016-04-27  Patrick Palka  <ppalka@gcc.gnu.org>
7396
7397         * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
7398         which defaults to true.  Emit an outer pair of parentheses only if
7399         EMIT_PARENS.  When continuing a chain of && or || (or & or |),
7400         don't emit parentheses for the right-hand operand.
7401
7402 2016-04-27  Jeff Law  <law@redhat.com>
7403
7404         * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
7405
7406 2016-04-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7407
7408         * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
7409         (altivec_lvx_<mode>_internal): Document.
7410         (altivec_lvx_<mode>_2op): New define_insn.
7411         (altivec_lvx_<mode>_1op): Likewise.
7412         (altivec_lvx_<mode>_2op_si): Likewise.
7413         (altivec_lvx_<mode>_1op_si): Likewise.
7414         (altivec_stvx_<mode>): Remove.
7415         (altivec_stvx_<mode>_internal): Document.
7416         (altivec_stvx_<mode>_2op): New define_insn.
7417         (altivec_stvx_<mode>_1op): Likewise.
7418         (altivec_stvx_<mode>_2op_si): Likewise.
7419         (altivec_stvx_<mode>_1op_si): Likewise.
7420         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7421         Expand vec_ld and vec_st during parsing.
7422         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
7423         changes.
7424         (altivec_expand_stvx_be): Likewise.
7425         (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
7426         address-masking behavior in RTL.
7427         (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
7428         address-masking behavior in RTL.
7429         (altivec_expand_builtin): Change builtin code arguments for calls
7430         to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
7431         (insn_is_swappable_p): Avoid incorrect swap optimization in the
7432         presence of lvx/stvx patterns.
7433         (alignment_with_canonical_addr): New function.
7434         (alignment_mask): Likewise.
7435         (find_alignment_op): Likewise.
7436         (recombine_lvx_pattern): Likewise.
7437         (recombine_stvx_pattern): Likewise.
7438         (recombine_lvx_stvx_patterns): Likewise.
7439         (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
7440         stvx patterns from expand.
7441         * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
7442         expansions.
7443         (vector_altivec_store_<mode>): Likewise.
7444
7445 2016-04-26  Evandro Menezes  <e.menezes@samsung.com>
7446
7447         * config/aarch64/aarch64.md
7448         (*movhf_aarch64): Add "movi %0, #0" to zero up register and
7449         remove the "fp" attributes.
7450         (*movsf_aarch64): Add "movi %0, #0" to zero up register and
7451         add the "simd" attributes.
7452         (*movdf_aarch64): Likewise.
7453         (*movtf_aarch64): Remove the "fp" attributes.
7454         * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
7455         * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
7456
7457 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
7458
7459         * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
7460         rtx to rtx_code_label *.
7461         * rtl.h (maybe_set_first_label_num): Likewise.
7462
7463 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
7464
7465         * df-core.c (df_add_problem): Make the problem param be const.
7466         (df_remove_problem): Make local "problem" be const.
7467         * df-problems.c (problem_RD): Make const.
7468         (problem_LR): Likewise.
7469         (problem_LIVE): Likewise.
7470         (problem_MIR): Likewise.
7471         (problem_CHAIN): Likewise.
7472         (problem_WORD_LR): Likewise.
7473         (problem_NOTE): Likewise.
7474         (problem_MD): Likewise.
7475         * df-scan.c (problem_SCAN): Likewise.
7476         * df.h (struct df_problem): Make field "dependent_problem" be
7477         const.
7478         (struct dataflow): Likewise for field "problem".
7479         (df_add_problem): Make param const.
7480
7481 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
7482
7483         * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
7484         inter-unit moves to/from vector registers are enabled.  Do not disable
7485         for TARGET_MMX.
7486
7487 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
7488
7489         * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
7490         DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
7491         #define to...
7492         (enum df_problem_id): ...this new enum.
7493         (struct df_problem): Convert field "id" from "int" to
7494         enum df_problem_id.
7495
7496 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
7497
7498         * rtl.def: Update comment for "things in the instruction chain" to
7499         reflect the removal of the leading "i" field for INSN_UID in
7500         r210360.  Fix bogus apostrophe.
7501
7502 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
7503
7504         * config/i386/i386.md
7505         (lea arith with mem operand + setcc peephole2): Set operator mode.
7506
7507 2016-04-27  H.J. Lu  <hongjiu.lu@intel.com>
7508
7509         PR target/70155
7510         * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
7511         (dimode_scalar_to_vector_candidate_p): This.
7512         (timode_scalar_to_vector_candidate_p): New function.
7513         (scalar_to_vector_candidate_p): Likewise.
7514         (timode_check_non_convertible_regs): Likewise.
7515         (timode_remove_non_convertible_regs): Likewise.
7516         (remove_non_convertible_regs): Likewise.
7517         (remove_non_convertible_regs): Renamed to ...
7518         (dimode_remove_non_convertible_regs): This.
7519         (scalar_chain::~scalar_chain): Make it virtual.
7520         (scalar_chain::compute_convert_gain): Make it pure virtual.
7521         (scalar_chain::mark_dual_mode_def): Likewise.
7522         (scalar_chain::convert_insn): Likewise.
7523         (scalar_chain::convert_registers): Likewise.
7524         (scalar_chain::add_to_queue): Make it protected.
7525         (scalar_chain::emit_conversion_insns): Likewise.
7526         (scalar_chain::replace_with_subreg): Likewise.
7527         (scalar_chain::replace_with_subreg_in_insn): Likewise.
7528         (scalar_chain::convert_op): Likewise.
7529         (scalar_chain::convert_reg): Likewise.
7530         (scalar_chain::make_vector_copies): Likewise.
7531         (scalar_chain::convert_registers): New pure virtual function.
7532         (class dimode_scalar_chain): New class.
7533         (class timode_scalar_chain): Likewise.
7534         (scalar_chain::mark_dual_mode_def): Renamed to ...
7535         (dimode_scalar_chain::mark_dual_mode_def): This.
7536         (timode_scalar_chain::mark_dual_mode_def): New function.
7537         (timode_scalar_chain::convert_insn): Likewise.
7538         (dimode_scalar_chain::convert_registers): Likewise.
7539         (scalar_chain::compute_convert_gain): Renamed to ...
7540         (dimode_scalar_chain::compute_convert_gain): This.
7541         (scalar_chain::replace_with_subreg): Renamed to ...
7542         (dimode_scalar_chain::replace_with_subreg): This.
7543         (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
7544         (dimode_scalar_chain::replace_with_subreg_in_insn): This.
7545         (scalar_chain::make_vector_copies): Renamed to ...
7546         (dimode_scalar_chain::make_vector_copies): This.
7547         (scalar_chain::convert_reg): Renamed to ...
7548         (dimode_scalar_chain::convert_reg ): This.
7549         (scalar_chain::convert_op): Renamed to ...
7550         (dimode_scalar_chain::convert_op): This.
7551         (scalar_chain::convert_insn): Renamed to ...
7552         (dimode_scalar_chain::convert_insn): This.
7553         (scalar_chain::convert): Call convert_registers.
7554         (convert_scalars_to_vector): Change to scalar_chain pointer to
7555         use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
7556         in 32-bit mode.  Delete scalar_chain pointer.  Call
7557         free_dominance_info in 64-bit mode.
7558         (pass_stv::gate): Remove TARGET_64BIT check.
7559         (ix86_option_override): Put the 64-bit STV pass before the CSE
7560         pass.
7561
7562 2016-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>
7563
7564         * dwarf2out.h (struct dw_loc_descr_node): Remove the
7565         dw_loc_frame_offset field.
7566         * dwarf2out.c (new_loc_descr): Likewise.
7567         (resolve_args_picking_1): Turn the VISITED hash set into a
7568         FRAME_OFFSET hash map. Use it to associate a frame offset to
7569         visited nodes. Remove uses of the CHECKING_P macro.
7570         (resolve_args_picking): Update call to resolve_args_picking_1.
7571
7572 2016-04-27  Martin Liska  <mliska@suse.cz>
7573
7574         * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
7575         (free_loop_data): Release vuses of groups.
7576
7577 2016-04-27  Bin Cheng  <bin.cheng@arm.com>
7578
7579         * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
7580         instead of redundant use_id and boolean have_use_for.
7581         (struct iv_use): Change sub_id into group_id.  Remove field next.
7582         Move fields: related_cands, n_map_members, cost_map and selected
7583         to ...
7584         (struct iv_group): ... here.  New structure.
7585         (struct iv_common_cand): Use structure declaration directly.
7586         (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
7587         (MAX_CONSIDERED_USES): Rename macro to ...
7588         (MAX_CONSIDERED_GROUPS): ... here.
7589         (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
7590         (dump_iv, dump_use, dump_cand): Refactor format of dump information.
7591         (dump_uses): Rename to ...
7592         (dump_groups): ... here.  Update all uses.
7593         (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
7594         (find_induction_variables): Refactor format of dump information.
7595         (record_sub_use): Delete.
7596         (record_use): Update all uses.
7597         (record_group): New function.
7598         (record_group_use, find_interesting_uses_op): Call above functions.
7599         Update all uses.
7600         (find_interesting_uses_cond): Ditto.
7601         (group_compare_offset): New function.
7602         (split_all_small_groups): Rename to ...
7603         (split_small_address_groups_p): ... here.  Update all uses.
7604         (split_address_groups):  Update all uses.
7605         (find_interesting_uses): Refactor format of dump information.
7606         (add_candidate_1): Update all uses.  Remove redundant check on iv,
7607         base and step.
7608         (add_candidate, record_common_cand): Remove redundant assert.
7609         (add_iv_candidate_for_biv): Update use.
7610         (add_iv_candidate_derived_from_uses): Update all uses.
7611         (add_iv_candidate_for_groups, record_important_candidates): Ditto.
7612         (alloc_use_cost_map): Ditto.
7613         (set_use_iv_cost, get_use_iv_cost): Rename to ...
7614         (set_group_iv_cost, get_group_iv_cost): ... here.  Update all uses.
7615         (determine_use_iv_cost_generic): Ditto.
7616         (determine_group_iv_cost_generic): Ditto.
7617         (determine_use_iv_cost_address): Ditto.
7618         (determine_group_iv_cost_address): Ditto.
7619         (determine_use_iv_cost_condition): Ditto.
7620         (determine_group_iv_cost_cond): Ditto.
7621         (determine_use_iv_cost): Ditto.
7622         (determine_group_iv_cost): Ditto.
7623         (set_autoinc_for_original_candidates): Update all uses.
7624         (find_iv_candidates): Update all uses.  Refactor dump information.
7625         (determine_use_iv_costs): Ditto.
7626         (determine_iv_costs): Ditto.
7627         (iv_ca_cand_for_use): Rename to ...
7628         (iv_ca_cand_for_group): ... here.  Update all uses.
7629         (iv_ca_add_use, iv_ca_add_group): Ditto.
7630         (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
7631         (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
7632         (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
7633         (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
7634         (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
7635         (create_new_iv, adjust_iv_update_pos): Ditto.
7636         (rewrite_use_address): Delete.
7637         (rewrite_use_address_1): Rename to ...
7638         (rewrite_use_address): ... here.
7639         (rewrite_use_compare): Update all uses.
7640         (rewrite_use): Delete.
7641         (rewrite_uses): Rename to ...
7642         (rewrite_groups): ... here.  Update all uses.
7643         (remove_unused_ivs, free_loop_data): Update all uses.
7644         (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
7645
7646 2016-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7647
7648         * rtlanal.c (nonzero_bits1): Convert preprocessor check
7649         for WORD_REGISTER_OPERATIONS to runtime check.
7650
7651 2016-04-27  Richard Biener  <rguenther@suse.de>
7652
7653         PR ipa/70760
7654         * tree-ssa-structalias.c (find_func_aliases_for_call): Use
7655         aggregate_value_p to determine if a function result is
7656         returned by reference.
7657         (ipa_pta_execute): Functions having their address taken are
7658         not automatically nonlocal.
7659
7660 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
7661
7662         PR sanitizer/70683
7663         * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
7664         * fold-const.c (operand_equal_p): If flag_checking and
7665         OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
7666         and if it returns non-zero, assert iterative_hash_expr on both
7667         args is the same.
7668
7669 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
7670
7671         * doc/invoke.texi (-frename-registers): Also enabled at -Os.
7672
7673 2016-04-27  Nick Clifton  <nickc@redhat.com>
7674
7675         PR middle-end/49889
7676         * varasm.c (merge_weak): Generate an error if an attempt is made
7677         to convert a non-weak static function into a weak, public function.
7678
7679 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
7680
7681         * params.def (MAX_PARTITION_SIZE): New param.
7682         * doc/invoke.texi: Document lto-max-partition.
7683
7684 2016-04-27  Richard Biener  <rguenther@suse.de>
7685
7686         PR ipa/70785
7687         * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
7688         function cummulating used_from_other_partition, externally_visible
7689         and force_output from aliases.
7690         (refered_from_nonlocal_var): Likewise.
7691         (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
7692         node flags properly.
7693
7694 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
7695
7696         * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
7697         (-Wmemset-elt-size): New item.
7698
7699 2016-04-27  Eric Botcazou  <ebotcazou@adacore.com>
7700
7701         PR ada/70759
7702         * stor-layout.h (internal_reference_types): Delete.
7703         * stor-layout.c (reference_types_internal): Likewise.
7704         (internal_reference_types): Likewise.
7705         (layout_type) <REFERENCE_TYPE>: Adjust.
7706
7707 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
7708
7709         PR sanitizer/70683
7710         * tree.h (inchash::add_expr): Add FLAGS argument.
7711         * tree.c (inchash::add_expr): Likewise.  If not OEP_ADDRESS_OF,
7712         use STRIP_NOPS first.  For INTEGER_CST assert not OEP_ADDRESS_OF.
7713         For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
7714         Formatting fix.  Adjust recursive calls.  For tcc_comparison,
7715         if swap_tree_comparison (code) is smaller than code, hash that
7716         and arguments in the other order.  Hash CONVERT_EXPR the same
7717         as NOP_EXPR.  For OEP_ADDRESS_OF hash MEM_REF with 0 offset
7718         of ADDR_EXPR of decl as the decl itself.  Add or remove
7719         OEP_ADDRESS_OF from recursive flags as needed.  For
7720         FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
7721         operands commutatively and only the third one normally.
7722         For internal CALL_EXPR hash in CALL_EXPR_IFN.
7723
7724 2016-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
7725
7726         * config/rtems.h (LIB_SPEC): Add -latomic.
7727
7728 2016-04-27  Joel Sherrill  <joel@rtems.org>
7729
7730         * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
7731         xilink.ld and flags not relevant to RTEMS.
7732
7733 2016-04-26  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
7734
7735         * toplev.c (backend_init_target): Avoid calling init_reload when using
7736         LRA.
7737
7738 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
7739
7740         * reorg.c (try_merge_delay_insns): Declare i and j inside the
7741         for loops rather than one for the whole function.
7742
7743 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
7744
7745         * match.pd (X + CST CMP X): New transformation.
7746
7747 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
7748
7749         * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
7750         * fold-const.c (fold_binary_loc): Remove 2 transformations
7751         superseded by match.pd.
7752         * match.pd (x+x -> x*2): Generalize to integers.
7753
7754 2016-04-26  Bernd Schmidt  <bschmidt@redhat.com>
7755
7756         * config/i386/i386.md (operation on memory peephole): Duplicate an
7757         existing peephole and adapt it to match lea rather than an operation
7758         that clobbers CC.
7759
7760         PR rtl-optimization/57193
7761         * opts.c (default_options_table): Add OPT_frename_registers at -O2
7762         and above.
7763         * doc/invoke.texi (-frename-registers, -O2): Update documentation.
7764
7765 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
7766
7767         * tree-if-conv.c (any_pred_load_store): New static variable.
7768         (if_convertible_gimple_assign_stmt_p): Remove parameter.  Use
7769         any_pred_load_store instead of and_mask_load_store.
7770         (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
7771         (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
7772         (combine_blocks, tree_if_conversion): Ditto.
7773
7774 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
7775
7776         PR tree-optimization/70771
7777         PR tree-optimization/70775
7778         * tree-if-conv.c (if_convertible_phi_p): Remove check on special
7779         virtual PHI nodes.  Delete parameter.
7780         (if_convertible_loop_p_1): Delete argument to above function.
7781         (predicate_all_scalar_phis): Delete code handling single-argument
7782         PHIs.
7783         (tree_if_conversion): Mark and update virtual SSA.
7784
7785 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7786
7787         PR target/61821
7788         * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
7789         (x86_elf_aligned_common): Rename to ...
7790         (x86_elf_aligned_decl_common): ... this.
7791         Add decl arg.  Switch to .lbss for largecomm object.  Use
7792         LARGECOMM_SECTION_ASM_OP.
7793         * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
7794         renaming.
7795         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
7796         (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
7797         Pass new decl arg.
7798         * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
7799         [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
7800
7801 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
7802
7803         PR target/59407
7804         * config/i386/i386.c (SECTION_LARGE): Define.
7805         (x86_64_elf_select_section): Set it for large data/bss sections.
7806         Only clear SECTION_WRITE for .lrodata.
7807         (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
7808         data/bss sections.
7809         * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
7810         * varasm.c (default_elf_asm_named_section): Grow flagchars.
7811         [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
7812         SECTION_MACH_DEP.
7813         * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
7814         * doc/tm.texi: Regenerate.
7815
7816 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
7817
7818         PR bootstrap/70704
7819         * configure.ac (--enable-checking): Document extra flag, for
7820         non-release builds default to --enable-checking=yes,extra.
7821         If misc checking and extra checking, define CHECKING_P to 2 instead
7822         of 1.
7823         * common.opt (fchecking=): Add.
7824         * doc/invoke.texi (-fchecking=): Document.
7825         * doc/install.texi: Document --enable-checking changes.
7826         * configure: Regenerated.
7827         * config.in: Regenerated.
7828
7829 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
7830
7831         * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
7832         attribute instead of which_alternative.
7833         * config/i386/sse.md (*mov<mode>_internal): Ditto.
7834         Use EXT_REX_SSE_REG_P where appropriate.
7835
7836 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
7837
7838         * config/i386/predicates.md (const0_operand): Do not match
7839         const_wide_int code.
7840         (const1_operand): Ditto.
7841
7842 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
7843
7844         * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
7845         for SSE constm1 operands and TARGET_AVX512VL.
7846         (*movti_internal): Ditto.
7847         (*mov<mode>_or): Use constm1_operand predicate.
7848         * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
7849         for SSE vector_all_ones operands and TARGET_AVX512VL.
7850         * config/i386/predicates.md (constm1_operand): New predicate.
7851         * config/i386/i386.c (standard_sse_constant_opcode): Simplify
7852         emission of constant -1 load.
7853
7854 2016-04-25  Jason Merrill  <jason@redhat.com>
7855
7856         * gdbinit.in: Skip is-a.h.
7857
7858         * attribs.c (register_scoped_attributes): Fix logic.
7859         * attribs.h: Declare register_scoped_attributes.
7860
7861 2016-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7862
7863         * config/rs6000/rs6000-builtin.def: Correct pasto error for
7864         stxvd2x and stxvw4x built-in functions.
7865
7866 2016-04-25  DJ Delorie  <dj@redhat.com>
7867
7868         * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
7869         (ashrhi3): Likewise.
7870         (lshrhi3): Likewise.
7871
7872 2016-04-25  Richard Biener  <rguenther@suse.de>
7873
7874         PR tree-optimization/70780
7875         * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
7876         wasn't visited yet.
7877         (compute_antic): Mark blocks with abnormal preds as visited as
7878         they have a final empty antic-in solution already.
7879
7880 2016-04-25  Michael Collison  <michael.collison@linaro.org>
7881
7882         * ChangeLog(2016-04-25): Fix ChangeLog formatting.
7883
7884 2016-04-25  Michael Collison  <michael.collison@linaro.org>
7885
7886         * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
7887         mode is VQI to improve mixed mode vectorization.
7888         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
7889         define_insn to match low half of signed vaddw.
7890         * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
7891         define_insn to match high half of signed vaddw.
7892         * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
7893         define_insn to match low half of unsigned vaddw.
7894         * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
7895         define_insn to match high half of unsigned vaddw.
7896         * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
7897         (arm_simd_check_vect_par_cnst_half_p): Likewise.
7898         * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
7899         for new function.
7900         (arm_simd_check_vect_par_cnst_half_p): Likewise.
7901         * config/arm/predicates.md (vect_par_constant_high): Support
7902         big endian and simplify by calling
7903         arm_simd_check_vect_par_cnst_half
7904         (vect_par_constant_low): Likewise.
7905
7906 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
7907
7908         * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
7909         predicate for operand 2.
7910
7911 2016-04-24  Uros Bizjak  <ubizjak@gmail.com>
7912             H.J. Lu  <hongjiu.lu@intel.com>
7913
7914         * config/i386/i386-protos.h (standard_sse_constant_p): Add
7915         machine_mode argument.
7916         * config/i386/i386.c (standard_sse_constant_p): Return 2 for
7917         constm1_rtx operands.  For VOIDmode constants, get mode from
7918         pred_mode.  Check mode size if the mode is supported by ABI.
7919         (standard_sse_constant_opcode): Do not use standard_constant_p.
7920         Strictly check ABI support for all-ones operands.
7921         (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
7922         immediates. Update calls to standard_sse_constant_p.
7923         (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
7924         (ix86_rtx_costs): Ditto.
7925         * config/i386/i386.md (*movxi_internal_avx512f): Use
7926         nonimmediate_or_sse_const_operand instead of vector_move_operand.
7927         Use (v,BC) alternative instead of (v,C). Use register_operand
7928         checks instead of MEM_P.
7929         (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
7930         of vector_move_operand.  Add (v,BC) alternative and corresponding avx2
7931         isa attribute.  Use register_operand checks instead of MEM_P.
7932         (*movti_internal): Use nonimmediate_or_sse_const_operand for
7933         TARGET_SSE.  Improve TARGET_SSE insn constraint.  Add (v,BC)
7934         alternative and corresponding sse2 isa attribute.
7935         (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
7936         to standard_sse_constant_p.
7937         (FP constant splitters): Ditto.
7938         * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
7939         (C): Ditto.
7940         * config/i386/predicates.md (constm1_operand): Remove.
7941         (nonimmediate_or_sse_const_operand): Rewrite using RTX.
7942         * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
7943         vector_all_ones_operand instead of constm1_operand.
7944
7945 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7946
7947         * print-rtl.c (print_rtx_insn_vec): New function.
7948         * print-rtl.h: New prototype.
7949         * store-motion.c (struct st_expr): Make avail_stores a vector.
7950         (st_expr_entry): Adjust.
7951         (free_st_expr_entry): Likewise.
7952         (print_store_motion_mems): Likewise.
7953         (find_moveable_store): Likewise.
7954         (compute_store_table): Likewise.
7955         (delete_store): Likewise.
7956         (build_store_vectors): Likewise.
7957
7958 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7959
7960         * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
7961
7962 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7963
7964         * vec.h (vec_safe_contains): New function.
7965         (vec::contains): Likewise.
7966         (vec::begin): Likewise.
7967         (vec::end): Likewise.
7968
7969 2016-04-23  Jakub Jelinek  <jakub@redhat.com>
7970
7971         PR sanitizer/70712
7972         * cfgexpand.c (expand_stack_vars): Fix typo.
7973
7974 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
7975
7976         * system.h (list, map, set, vector): Include conditionally.
7977         * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
7978         * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
7979         * ipa-icf.c (INCLUDE_LIST): Define.
7980         * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
7981         * config/sh/sh.c (INCLUDE_VECTOR): Define.
7982         * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
7983         (INCLUDE_LIST, INCLUDE_VECTOR): Define.
7984         * cp/logic.cc (INCLUDE_LIST): Define.
7985         * fortran/trans-common.c (INCLUDE_MAP): Define.
7986
7987 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
7988
7989         * auto-profile.c: Remove <string.h> include.
7990         * ipa-icf-gimple.c: Remove <list> include.
7991         * diagnostic.c: Remove <new> include.
7992         * genmatch.c: Likewise.
7993         * pretty-print.c: Likewise.
7994         * toplev.c: Likewise
7995         * c/c-objc-common.c: Likewise.
7996         * cp/error.c: Likewise.
7997         * fortran/error.c: Likewise.
7998
7999 2016-04-22  Richard Biener  <rguenther@suse.de>
8000
8001         * lto-streamer-in.c (input_ssa_names): Do not allocate
8002         GIMPLE_NOP for all SSA names.
8003         * lto-streamer-out.c (output_ssa_names): Do not output
8004         SSA names that should have been released.
8005
8006 2016-04-22  Richard Biener  <rguenther@suse.de>
8007
8008         PR tree-optimization/70740
8009         * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
8010         VDEF.
8011
8012 2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
8013
8014         PR target/70750
8015         * config/i386/predicates.md (call_insn_operand): Replace
8016         sibcall_memory_operand with memory_operand.
8017
8018 2016-04-21  Patrick Palka  <ppalka@gcc.gnu.org>
8019
8020         * tree-vrp.c (register_edge_assert_for_2): Remove redundant
8021         has_single_use() tests.
8022         (register_edge_assert_for_1): Likewise.
8023         (find_assert_locations_1): Check the liveness bitmap instead of
8024         checking has_single_use().
8025
8026 2016-04-21  Kirill Yukhin  <kirill.yukhin@intel.com>
8027
8028         PR target/70728
8029         * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
8030         Extract AVX-512BW constraint from AVX.
8031
8032 2016-04-21  Richard Biener  <rguenther@suse.de>
8033
8034         PR tree-optimization/70725
8035         * tree-if-conv.c (if_convertible_phi_p): Adjust guard
8036         for phi_convertible_by_degenerating_args.
8037         (predicate_all_scalar_phis): Handle single-argument PHIs.
8038
8039 2016-04-21  Richard Biener  <rguenther@suse.de>
8040
8041         PR middle-end/70747
8042         * fold-const.c (fold_comparison): Return properly typed
8043         constant boolean.
8044
8045 2016-04-21  Bin Cheng  <bin.cheng@arm.com>
8046
8047         PR tree-optimization/70715
8048         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
8049         after expanding BASE using expand_simple_operations.
8050
8051 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
8052
8053         * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
8054         New transformations.
8055
8056 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
8057
8058         * match.pd (min(int_max, x), max(int_min, x)): New transformations.
8059
8060 2016-04-20  Jan Hubicka  <jh@suse.cz>
8061
8062         * ipa-inline.c (can_inline_edge_p): Pass caller info to
8063         ultiimate_alias_target.
8064         (update_callee_keys): Likewise.
8065         (lookup_recursive_calls): Likewise.
8066         (speculation_useful_p): Likewise.
8067
8068 2016-04-20  Jan Hubicka  <jh@suse.cz>
8069
8070         PR ipa/70018
8071         * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
8072         (set_nothrow_flag_1): ... this; handle interposition correctly;
8073         recurse on aliases and thunks.
8074         (cgraph_node::set_nothrow_flag): New.
8075         * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
8076         functions compiled with non-call exceptions that binds to current
8077         def.
8078         (propagate_nothrow): Be safe WRT interposition.
8079         * cgraph.h (set_nothrow_flag): Update prototype.
8080
8081 2016-04-18  Jan Hubicka  <jh@suse.cz>
8082
8083         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
8084         max_loop_iterations_int.
8085         (tree_unswitch_outer_loop): Likewise.
8086
8087 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
8088
8089         PR tree-optimization/69489
8090         * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
8091         (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
8092         Revise dump message.
8093         (if_convertible_bb_p): Remove check on edge count of basic block's
8094         predecessors.
8095
8096 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
8097
8098         PR tree-optimization/56625
8099         PR tree-optimization/69489
8100         * tree-data-ref.h (DR_INNERMOST): New macro.
8101         * tree-if-conv.c (innermost_loop_behavior_hash): New class for
8102         hashing struct innermost_loop_behavior.
8103         (ref_DR_map): Remove.
8104         (innermost_DR_map): New map.
8105         (baseref_DR_map): Revise comment.
8106         (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
8107         to innermost_DR_map accroding to its innermost loop behavior.
8108         (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
8109         to its innermost loop behavior.
8110         (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
8111         Add initialization for innermost_DR_map.  Record memory reference
8112         in DR_BASE_ADDRESS if the reference is compound one or it doesn't
8113         have innermost loop behavior.
8114         (if_convertible_loop_p): Remove release for ref_DR_map.  Release
8115         innermost_DR_map.
8116
8117 2016-04-20  Uros Bizjak  <ubizjak@gmail.com>
8118
8119         * config/i386/i386.md (*lea<mode>_general_1): Rename from
8120         *lea_general_1.  Use explicit SWI12 mode interator.
8121         (*lea<mode>_general_2): Rename from *lea_general_2.
8122         Use explicit SWI12 mode interator.
8123         (*lea<mode>_general_3): Rename from *lea_general_3.
8124         Use explicit SWI12 mode interator.
8125         (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
8126         Use explicit SWI12 mode interator.
8127         (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
8128         Use explicit SWI48 mode interator.
8129
8130 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
8131
8132         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
8133         Short-cut unaligned load and store cases.  Handle all integer
8134         vector modes.
8135         (ix86_expand_vector_move_misalign): Short-cut unaligned load
8136         and store cases.  Call ix86_avx256_split_vector_move_misalign
8137         directly without checking mode class.
8138
8139 2016-04-20  Andrew Pinski  <apinski@cavium.com>
8140             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8141
8142         PR target/64971
8143         * config/aarch64/aarch64.md (sibcall): Force call
8144         address to be DImode for ILP32.
8145         (sibcall_value): Likewise.
8146
8147 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
8148
8149         * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
8150
8151 2016-04-20  Richard Biener  <rguenther@suse.de>
8152
8153         * gimple-match.h (maybe_build_generic_op): Adjust prototype.
8154         * gimple-match-head.c (maybe_build_generic_op): Pass all ops
8155         by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
8156         (maybe_push_res_to_seq): Adjust.
8157         * gimple-fold.c (maybe_build_generic_op): Likewise.
8158
8159 2016-04-20  Marek Polacek  <polacek@redhat.com>
8160
8161         * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
8162         rather than true.
8163
8164 2016-04-20  Ilya Enkovich  <ilya.enkovich@intel.com>
8165
8166         * config/i386/sse.md (vec_unpacks_lo_hi): Always
8167         use kmovw to support AVX512F target.
8168
8169 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
8170
8171         * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
8172
8173 2016-04-20  Marek Polacek  <polacek@redhat.com>
8174
8175         PR tree-optimization/70725
8176         * tree-if-conv.c (is_false_predicate): New function.
8177         (predicate_mem_writes): Use it.
8178
8179 2016-04-20  Richard Biener  <rguenther@suse.de>
8180
8181         PR tree-optimization/70726
8182         * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
8183         shift amounts from a pattern stmt operand.
8184
8185 2016-04-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
8186
8187         PR target/70674
8188         * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
8189         stack_restore_from_fpr pattern when restoring r15.
8190         (s390_optimize_prologue): Strip away the memory barrier in the
8191         parallel when trying to get rid of restore insns.
8192         * config/s390/s390.md ("stack_restore_from_fpr"): New insn
8193         definition for loading the stack pointer from an FPR.  Compared to
8194         the normal move insn this pattern includes a full memory barrier.
8195
8196 2016-04-19  Jakub Jelinek  <jakub@redhat.com>
8197
8198         PR middle-end/70680
8199         * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
8200         implicitly linear or lastprivate iterator on the outer context.
8201
8202 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
8203
8204         * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
8205         alignment check.
8206         * config/i386/i386.md (ssememalign): Removed.
8207         * config/i386/sse.md: Remove ssememalign attribute from patterns.
8208
8209 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
8210
8211         PR target/69201
8212         * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
8213         const short * to __builtin_ia32_loaddquhi512_mask.
8214         (_mm512_maskz_loadu_epi16): Likewise.
8215         (_mm512_mask_storeu_epi16): Pass short * to
8216         __builtin_ia32_storedquhi512_mask.
8217         (_mm512_mask_loadu_epi8): Pass const char * to
8218         __builtin_ia32_loaddquqi512_mask.
8219         (_mm512_maskz_loadu_epi8): Likewise.
8220         (_mm512_mask_storeu_epi8): Pass char * to
8221         __builtin_ia32_storedquqi512_mask.
8222         * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
8223         const double * to __builtin_ia32_loadupd512_mask.
8224         (_mm512_mask_loadu_pd): Likewise.
8225         (_mm512_maskz_loadu_pd): Likewise.
8226         (_mm512_storeu_pd): Pass double * to
8227         __builtin_ia32_storeupd512_mask.
8228         (_mm512_mask_storeu_pd): Likewise.
8229         (_mm512_loadu_ps): Pass const float * to
8230         __builtin_ia32_loadups512_mask.
8231         (_mm512_mask_loadu_ps): Likewise.
8232         (_mm512_maskz_loadu_ps): Likewise.
8233         (_mm512_storeu_ps): Pass float * to
8234         __builtin_ia32_storeups512_mask.
8235         (_mm512_mask_storeu_ps): Likewise.
8236         (_mm512_mask_loadu_epi64): Pass const long long * to
8237         __builtin_ia32_loaddqudi512_mask.
8238         (_mm512_maskz_loadu_epi64): Likewise.
8239         (_mm512_mask_storeu_epi64): Pass long long *
8240         to __builtin_ia32_storedqudi512_mask.
8241         (_mm512_loadu_si512): Pass const int * to
8242         __builtin_ia32_loaddqusi512_mask.
8243         (_mm512_mask_loadu_epi32): Likewise.
8244         (_mm512_maskz_loadu_epi32): Likewise.
8245         (_mm512_storeu_si512): Pass int * to
8246         __builtin_ia32_storedqusi512_mask.
8247         (_mm512_mask_storeu_epi32): Likewise.
8248         * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
8249         char * to __builtin_ia32_storedquqi256_mask.
8250         (_mm_mask_storeu_epi8): Likewise.
8251         (_mm256_mask_loadu_epi16): Pass const short * to
8252         __builtin_ia32_loaddquhi256_mask.
8253         (_mm256_maskz_loadu_epi16): Likewise.
8254         (_mm_mask_loadu_epi16): Pass const short * to
8255         __builtin_ia32_loaddquhi128_mask.
8256         (_mm_maskz_loadu_epi16): Likewise.
8257         (_mm256_mask_loadu_epi8): Pass const char * to
8258         __builtin_ia32_loaddquqi256_mask.
8259         (_mm256_maskz_loadu_epi8): Likewise.
8260         (_mm_mask_loadu_epi8): Pass const char * to
8261         __builtin_ia32_loaddquqi128_mask.
8262         (_mm_maskz_loadu_epi8): Likewise.
8263         (_mm256_mask_storeu_epi16): Pass short * to.
8264         __builtin_ia32_storedquhi256_mask.
8265         (_mm_mask_storeu_epi16): Pass short * to.
8266         __builtin_ia32_storedquhi128_mask.
8267         * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
8268         const double * to __builtin_ia32_loadupd256_mask.
8269         (_mm256_maskz_loadu_pd): Likewise.
8270         (_mm_mask_loadu_pd): Pass onst double * to
8271         __builtin_ia32_loadupd128_mask.
8272         (_mm_maskz_loadu_pd): Likewise.
8273         (_mm256_mask_storeu_pd): Pass double * to
8274         __builtin_ia32_storeupd256_mask.
8275         (_mm_mask_storeu_pd): Pass double * to
8276         __builtin_ia32_storeupd128_mask.
8277         (_mm256_mask_loadu_ps): Pass const float * to
8278         __builtin_ia32_loadups256_mask.
8279         (_mm256_maskz_loadu_ps): Likewise.
8280         (_mm_mask_loadu_ps): Pass const float * to
8281         __builtin_ia32_loadups128_mask.
8282         (_mm_maskz_loadu_ps): Likewise.
8283         (_mm256_mask_storeu_ps): Pass float * to
8284         __builtin_ia32_storeups256_mask.
8285         (_mm_mask_storeu_ps): ass float * to
8286         __builtin_ia32_storeups128_mask.
8287         (_mm256_mask_loadu_epi64): Pass const long long * to
8288         __builtin_ia32_loaddqudi256_mask.
8289         (_mm256_maskz_loadu_epi64): Likewise.
8290         (_mm_mask_loadu_epi64): Pass const long long * to
8291         __builtin_ia32_loaddqudi128_mask.
8292         (_mm_maskz_loadu_epi64): Likewise.
8293         (_mm256_mask_storeu_epi64): Pass long long * to
8294         __builtin_ia32_storedqudi256_mask.
8295         (_mm_mask_storeu_epi64): Pass long long * to
8296         __builtin_ia32_storedqudi128_mask.
8297         (_mm256_mask_loadu_epi32): Pass const int * to
8298         __builtin_ia32_loaddqusi256_mask.
8299         (_mm256_maskz_loadu_epi32): Likewise.
8300         (_mm_mask_loadu_epi32): Pass const int * to
8301         __builtin_ia32_loaddqusi128_mask.
8302         (_mm_maskz_loadu_epi32): Likewise.
8303         (_mm256_mask_storeu_epi32): Pass int * to
8304         __builtin_ia32_storedqusi256_mask.
8305         (_mm_mask_storeu_epi32): Pass int * to
8306         __builtin_ia32_storedqusi128_mask.
8307         * config/i386/i386-builtin-types.def (PCSHORT): New.
8308         (PINT64): Likewise.
8309         (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
8310         (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
8311         (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
8312         (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
8313         (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
8314         (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
8315         (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
8316         (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
8317         (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
8318         (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
8319         (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
8320         (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
8321         (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
8322         (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
8323         (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
8324         (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
8325         (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
8326         (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
8327         (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
8328         (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
8329         (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
8330         (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
8331         (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
8332         (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
8333         (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
8334         (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
8335         (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
8336         (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
8337         (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
8338         (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
8339         (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
8340         (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
8341         (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
8342         (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
8343         (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
8344         (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
8345         (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
8346         (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
8347         (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
8348         (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
8349         (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
8350         (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
8351         (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
8352         (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
8353         (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
8354         (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
8355         (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
8356         (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
8357         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
8358         use UNSPEC_STOREU.
8359         (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
8360         (ix86_avx256_split_vector_move_misalign): Don't use unaligned
8361         load nor store.
8362         (ix86_expand_vector_move_misalign): Likewise.
8363         (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
8364         to scalar function prototype for unaligned load/store builtins.
8365         (ix86_expand_special_args_builtin): Updated.
8366         * config/i386/sse.md (UNSPEC_LOADU): Removed.
8367         (UNSPEC_STOREU): Likewise.
8368         (VI_ULOADSTORE_BW_AVX512VL): Likewise.
8369         (VI_ULOADSTORE_F_AVX512VL): Likewise.
8370         (ssescalarsize): Handle V4TI, V2TI and V1TI.
8371         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
8372         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
8373         (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
8374         (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
8375         (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
8376         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
8377         (sse2_avx_avx512f>_storedqu<mode>): Likewise.
8378         (<avx512>_storedqu<mode>_mask): Likewise.
8379         (*sse4_2_pcmpestr_unaligned): Likewise.
8380         (*sse4_2_pcmpistr_unaligned): Likewise.
8381         (*mov<mode>_internal): Renamed to ...
8382         (mov<mode>_internal): This.  Remove check of AVX and IAMCU on
8383         misaligned operand.  Replace vmovdqu64 with vmovdqu<ssescalarsize>.
8384         (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
8385         (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
8386
8387 2016-04-19  Richard Biener  <rguenther@suse.de>
8388
8389         PR tree-optimization/70171
8390         * tree-ssa-phiprop.c: Include stor-layout.h.
8391         (phiprop_insert_phi): Handle the aggregate copy case.
8392         (propagate_with_phi): Likewise.
8393
8394 2016-04-19  Uros Bizjak  <ubizjak@gmail.com>
8395
8396         * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
8397         instead of simplify_gen_subreg (... , 0).
8398         (ix86_delegitimize_address): Ditto.
8399         (ix86_split_divmod): Ditto.
8400         (ix86_split_copysign_const): Ditto.
8401         (ix86_split_copysign_var): Ditto.
8402         (ix86_expand_args_builtin): Ditto.
8403         (ix86_expand_round_builtin): Ditto.
8404         (ix86_expand_special_args_builtin): Ditto.
8405         * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
8406         (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
8407         (udivmodqi4): Ditto.
8408         (absneg splitters): Ditto.
8409         (*jcc_bt<mode>_1): Ditto.
8410
8411 2016-04-19  Richard Biener  <rguenther@suse.de>
8412
8413         PR tree-optimization/70724
8414         * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
8415         restoring out from ...
8416         (free_scc_vn): ... here.
8417         * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
8418         * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
8419         tail merging.
8420         (pass_fre::execute): Restore SSA info.
8421
8422 2016-04-19  Richard Biener  <rguenther@suse.de>
8423
8424         * gimple-walk.h (struct walk_stmt_info): Add stmt member.
8425         * gimple-walk.c (walk_gimple_op): Initialize it.
8426         (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
8427         * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
8428         remapping SSA names of defs.
8429         (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
8430         adjustment.
8431
8432 2016-04-18  Vladimir Makarov  <vmakarov@redhat.com>
8433
8434         PR middle-end/70689
8435         * lra-constraints.c (equiv_substition_p): New.
8436         (process_alt_operands): Use it.
8437         (swap_operands): Swap it.
8438         (curr_insn_transform): Update it.
8439
8440 2016-04-18  Michael Matz  <matz@suse.de>
8441
8442         * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
8443         (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
8444         * tree-core.h (tree_type_common.align): Use bit-field.
8445         (tree_type_common.spare): New.
8446         (tree_decl_common.off_align): Make smaller.
8447         (tree_decl_common.align): Use bit-field.
8448
8449         * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
8450         * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
8451         (scan_sharing_clauses): Ditto.
8452         (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
8453         (omp_finish_file): Ditto.
8454         * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
8455         (layout_decl): Ditto.
8456         (relayout_decl): Ditto.
8457         (finalize_record_size): Use SET_TYPE_ALIGN.
8458         (finalize_type_size): Ditto.
8459         (finish_builtin_struct): Ditto.
8460         (layout_type): Ditto.
8461         (initialize_sizetypes): Ditto.
8462         * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
8463         * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
8464         (lookup_field_for_decl): Use SET_DECL_ALIGN.
8465         (get_chain_field): Ditto.
8466         (get_trampoline_type): Ditto.
8467         (get_nl_goto_field): Ditto.
8468         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
8469         SET_DECL_ALIGN.
8470         (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
8471         * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
8472         * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
8473         (build_qualified_type): Use SET_TYPE_ALIGN.
8474         (build_aligned_type, build_range_type_1): Ditto.
8475         (build_atomic_base): Ditto.
8476         (build_common_tree_nodes): Ditto.
8477         * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
8478         (expand_one_stack_var_at): Ditto.
8479         * coverage.c (build_var): Use SET_DECL_ALIGN.
8480         * except.c (init_eh): Ditto.
8481         * function.c (assign_parm_setup_block): Ditto.
8482         * symtab.c (increase_alignment_1): Ditto.
8483         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
8484         * tree-vect-stmts.c (ensure_base_align): Ditto.
8485         * varasm.c (align_variable): Ditto.
8486         (assemble_variable): Ditto.
8487         (build_constant_desc): Ditto.
8488         (output_constant_def_contents): Ditto.
8489
8490         * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
8491         * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
8492         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
8493         * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
8494         * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
8495
8496 2016-04-18  H.J. Lu  <hongjiu.lu@intel.com>
8497
8498         PR target/70708
8499         * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
8500         replace %vmovsd with "%vmovq".
8501         (vec_concatv2df): Likewise.
8502
8503 2016-04-18  Uros Bizjak  <ubizjak@gmail.com>
8504
8505         * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
8506         (*vec_extractv2si_0): Ditto.
8507         * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
8508         (zero_extended_scalar_load_operand splitters): Ditto.
8509         (vec_extract splitters): Ditto.
8510         (*vec_extractv4si_0_zext): Ditto.
8511         (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
8512         and lowpart_subreg.
8513         (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
8514         (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
8515         (*sse4_1_extractps): Use lowpart_subreg.
8516         * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
8517
8518 2016-04-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8519
8520         * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
8521         gld requirements.
8522         (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
8523         Mention Solaris 11 packaging changes.
8524         Update gas and gld requirements.
8525         Remove reference to pre-Solaris 10 bug.
8526         (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
8527         systems and bugs.
8528         (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
8529         with cc.
8530
8531 2016-04-17  Jan Hubicka  <jh@suse.cz>
8532
8533         * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
8534         max_loop_iterations_int.
8535
8536 2016-04-18  Richard Biener  <rguenther@suse.de>
8537
8538         PR tree-optimization/43434
8539         * tree-ssa-structalias.c (struct vls_data): New.
8540         (visit_loadstore): Handle all pointer-based accesses.
8541         (compute_dependence_clique): Compute a bitmap of restrict tags
8542         assigned bases and pass it to visit_loadstore.
8543
8544 2016-04-18  Matthew Wahab  <matthew.wahab@arm.com>
8545
8546         PR target/70711
8547         * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
8548         armv8.1-a and armv8.1-a+crc.
8549
8550 2016-04-18  Richard Biener  <rguenther@suse.de>
8551
8552         PR tree-optimization/70701
8553         * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
8554         references after translating through a memcpy.
8555
8556 2016-04-18  Richard Biener  <rguenther@suse.de>
8557
8558         * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
8559         (compute_antic): ... here.  For partial antic use regular
8560         postorder and scrap iteration.
8561         (compute_partial_antic_aux): Remove unused return value.
8562         (init_pre): Do not allocate postorder.
8563         (fini_pre): Do not free postorder.
8564
8565 2016-04-18  Richard Biener  <rguenther@suse.de>
8566
8567         PR middle-end/37870
8568         * expmed.c (extract_bit_field_1): Remove broken case
8569         using a wider MODE_INT mode.
8570
8571 2016-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
8572
8573         * has-brig.c (lendian16): Don't try to use __builtin_bswap16
8574         unless compiling with at least GCC-4.8.
8575
8576 2016-04-17  Jan Hubicka  <jh@suse.cz>
8577
8578         PR bootstrap/70706
8579         * graphite.c (graphite_finalize): Update call to
8580         tree_estimate_probability.
8581         * predict.h (tree_estimate_probability): Update prototype.
8582
8583 2016-04-17  Jan Hubicka  <jh@suse.cz>
8584
8585         * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
8586         (tree_estimate_probability): Likewise.
8587         (pass_profile::execute): Update.
8588         (report_predictor_hitrates): New function.
8589         * profile.c (compute_branch_probabilities): Use it.
8590         * predict.h (report_predictor_hitrates): Declare.
8591
8592 2016-04-17  Jan Hubicka  <jh@suse.cz>
8593
8594         PR ipa/70018
8595         * cgraph.h (cgraph_node::set_const_flag,
8596         cgraph_node::set_pure_flag): Update prototype to return bool;
8597         update comment.
8598         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
8599         of interposable symbol are interposable, too.
8600         (cgraph_set_const_flag_1): Rename to ...
8601         (set_const_flag_1): ... this one; change to self recursive function
8602         instead of call_for_symbol_thunks_and_aliases. Handle correctly
8603         clearnig the flag in all variants and also virtual thunks of const
8604         functions are pure; track if any change was done.
8605         (cgraph_node::set_const_flag): Update.
8606         (struct set_pure_flag_info): New struct.
8607         (cgraph_set_pure_flag_1): Rename to ...
8608         (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
8609         rather than pointer encoded flags; track if any changes was done;
8610         handle correctly clearning flag and setting flag of aliases already
8611         declared const.
8612         (cgraph_node::set_pure_flag): Update.
8613         (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
8614
8615 2016-04-17  Tom de Vries  <tom@codesourcery.com>
8616
8617         PR other/70433
8618         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
8619         backslash in label.
8620
8621 2016-04-17  Tom de Vries  <tom@codesourcery.com>
8622
8623         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
8624         '{}<> ' as escape-for-record.
8625
8626 2016-04-17  Tom de Vries  <tom@codesourcery.com>
8627
8628         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
8629         structure.
8630
8631 2016-04-17  Tom de Vries  <tom@codesourcery.com>
8632
8633         PR other/70185
8634         * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
8635         * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
8636         * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
8637         * passes.c (finish_optimization_passes): Only call
8638         finish_graph_dump_file if dfi->graph_dump_initialized.
8639         (execute_function_dump, pass_init_dump_file): Use
8640         dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
8641
8642 2016-04-17  Tom de Vries  <tom@codesourcery.com>
8643
8644         PR tree-optimization/70256
8645         * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
8646         (debug_varmap): New function.
8647
8648 2016-04-17  Tom de Vries  <tom@codesourcery.com>
8649
8650         PR other/70183
8651         * passes.c (pass_manager::register_pass): Propagate pflags.
8652
8653 2016-04-17  Tom de Vries  <tom@codesourcery.com>
8654
8655         PR other/68875
8656         * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
8657         * passes.c (pass_manager::pass_manager): Declare and init p_start in
8658         INSERT_PASSES_AFTER.  Add pass parameter to TERMINATE_PASS_LIST, and
8659         check if it's equal to p_start.
8660         * passes.def: Add arguments to TERMINATE_PASS_LISTs.
8661
8662 2016-04-15  Jan Hubicka  <jh@suse.cz>
8663
8664         PR ipa/70018
8665         * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
8666         function does not bind to current def.
8667         * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
8668         handle conservatively calls to functions that does not need to bind
8669         to current def.
8670         (check_call): Update call of worse_state.
8671         (ignore_edge_for_nothrow): Update.
8672         (ignore_edge_for_pure_const): Likewise.
8673         (propagate_pure_const): Update calls to worse_state.
8674         (skip_function_for_local_pure_const): Reformat comments.
8675
8676 2016-04-15  Jan Hubicka  <jh@suse.cz>
8677
8678         PR ipa/70018
8679         * cgraph.c (cgraph_node::get_availability): Add REF parameter.
8680         (cgraph_node::function_symbol): Likewise.
8681         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
8682         * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
8683         (symtab_node::ultimate_alias_target): Add REF parameter.
8684         (symtab_node::binds_to_current_def_p): Declare.
8685         (symtab_node;:ultimate_alias_target_1): Add REF parameter.
8686         (cgraph_node::function_symbol): Likewise.
8687         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
8688         (cgraph_node::get_availability): Likewise.
8689         (cgraph_edge::binds_to_current_def_p): New inline function.
8690         (varpool_node::get_availability): Add REF parameter.
8691         (varpool_node::ultimate_alias_target): Likewise.
8692         * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
8693         (symtab_node::binds_to_current_def_p): Likewise.
8694         * varpool.c (varpool_node::get_availability): Likewise.
8695
8696 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
8697
8698         PR target/70662
8699         * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
8700         Fix mode size check.
8701
8702 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
8703
8704         * BASE-VER: Set to 7.0.0.
8705
8706 2016-04-15  Alexander Monakov  <amonakov@ispras.ru>
8707
8708         * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
8709
8710 2016-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8711
8712         * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
8713         architecture revisions.
8714
8715 2016-04-15  Bernd Schmidt  <bschmidt@redhat.com>
8716
8717         * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
8718         * config/i386/i386.c (ix86_using_red_zone): No longer static.
8719         * config/i386/i386.md (stack decrement to push peepholes): Guard
8720         with !x86_using_red_zone ().
8721
8722 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
8723
8724         PR c++/70675
8725         * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
8726         to dump_generic_node.
8727         (NIY): Pass also flags to do_niy.
8728
8729 2016-04-15  Thomas Schwinge  <thomas@codesourcery.com>
8730
8731         * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
8732         (simd_clone_vector_of_formal_parm_types)
8733         (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
8734         (simd_clone_mangle, simd_clone_create)
8735         (simd_clone_adjust_return_type, create_tmp_simd_array)
8736         (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
8737         (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
8738         (ipa_simd_modify_function_body, simd_clone_linear_addend)
8739         (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
8740         (pass_data_omp_simd_clone, class pass_omp_simd_clone)
8741         (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
8742         * omp-simd-clone.c: ... this new file.
8743         (simd_clone_vector_of_formal_parm_types): Make it static.
8744         * Makefile.in (OBJS): Add omp-simd-clone.o.
8745
8746 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
8747
8748         PR target/70662
8749         * config/i386/sse.md: Use proper memory operand modifiers.
8750
8751
8752 2016-04-15  Richard Biener  <rguenther@suse.de>
8753         Alan Modra  <amodra@gmail.com>
8754
8755         PR tree-optimization/70130
8756         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
8757         when alignment stays not the same and no not use the realign
8758         scheme then.
8759
8760 2016-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
8761
8762         PR target/70669
8763         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
8764         direct move handlers for KFmode. Change TFmode handlers test from
8765         FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
8766
8767 2016-04-14  Jakub Jelinek  <jakub@redhat.com>
8768
8769         PR c++/70594
8770         * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
8771         * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
8772         (inlined_polymorphic_ctor_dtor_block_p): Use it.
8773         * tree-ssa-live.c (remove_unused_scope_block_p): When
8774         in_ctor_dtor_block, avoid discarding not just BLOCKs with
8775         BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
8776         block_ultimate_origin is FUNCTION_DECL.
8777         (remove_unused_locals): If current_function_decl is
8778         polymorphic_ctor_dtor_p, pass initial true to
8779         remove_unused_scope_block_p' is_ctor_dtor_block.
8780
8781 2016-04-14  Martin Sebor  <msebor@redhat.com>
8782
8783         PR c++/69517
8784         PR c++/70019
8785         PR c++/70588
8786         * doc/extend.texi (Variable Length): Revert.
8787
8788 2016-04-14  Marek Polacek  <polacek@redhat.com>
8789             Jan Hubicka  <hubicka@ucw.cz>
8790
8791         PR c++/70029
8792         * tree.c (verify_type): Disable the canonical type of main variant
8793         check.
8794
8795 2016-04-14  Jason Merrill  <jason@redhat.com>
8796
8797         * cfgexpand.c, expr.c: Revert previous change.
8798
8799 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
8800
8801         PR middle-end/70643
8802         * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
8803         when building a mem ref for the incoming reduction variable.
8804
8805 2016-04-14  Richard Biener  <rguenther@suse.de>
8806
8807         PR tree-optimization/70614
8808         * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
8809         loop if the evolution dropped to chrec_dont_know.
8810         (interpret_condition_phi): Likewise.
8811
8812 2016-04-14  Richard Biener  <rguenther@suse.de>
8813
8814         PR tree-optimization/70623
8815         * tree-ssa-pre.c (changed_blocks): Make global ...
8816         (compute_antic): ... local here.  Move and fix worklist
8817         handling here.  Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
8818         (compute_antic_aux): Add dumping for MAX assumed succs.  Remove
8819         worklist handling, dump when ANTIC_IN changed.
8820         (compute_partial_antic_aux): Remove worklist handling.
8821         (init_pre): Do not compute post dominators.  Add a comment about
8822         the CFG order chosen.
8823         (fini_pre): Do not free post dominators.
8824
8825 2016-04-13  Martin Sebor  <msebor@redhat.com>
8826
8827         PR c++/69517
8828         PR c++/70019
8829         PR c++/70588
8830         * doc/extend.texi (Variable Length): Document C++ specifics.
8831
8832 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
8833
8834         PR c++/70641
8835         * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
8836         on all recursive call stmts.  Return TODO_cleanup_cfg if any dead
8837         eh edges have been purged.
8838
8839         PR c++/70594
8840         * tree-sra.c (create_access_replacement,
8841         get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
8842         gets fancy name.
8843         * tree-pretty-print.c (dump_fancy_name): New function.
8844         (dump_decl_name, dump_generic_node): Use it.
8845
8846 2016-04-13  Jason Merrill  <jason@redhat.com>
8847
8848         * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
8849         * expr.c (expand_expr_real_1): Likewise.
8850
8851 2016-04-13  Ilya Enkovich  <ilya.enkovich@intel.com>
8852
8853         * config/i386/i386.md (kunpckhi): Swap operands.
8854         (kunpcksi): Likewise.
8855         (kunpckdi): Likewise.
8856         * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
8857         (vec_pack_trunc_<mode>): Likewise.
8858
8859 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
8860
8861         PR debug/70628
8862         * explow.c (convert_memory_address_addr_space_1): Formatting fix.
8863
8864         PR middle-end/70633
8865         * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
8866         gimplification turns some element into non-constant.
8867
8868         PR debug/70628
8869         * rtl.h (convert_memory_address_addr_space_1): New prototype.
8870         * explow.c (convert_memory_address_addr_space_1): No longer static,
8871         add NO_EMIT argument and don't call convert_modes if true, pass
8872         it down recursively, remove break after return.
8873         (convert_memory_address_addr_space): Adjust caller.
8874         * simplify-rtx.c (simplify_unary_operation_1): Call
8875         convert_memory_address_addr_space_1 instead of convert_memory_address,
8876         if it returns NULL, don't simplify.
8877
8878 2016-04-12  Eric Botcazou  <ebotcazou@adacore.com>
8879
8880         PR target/70630
8881         * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
8882
8883 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
8884
8885         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
8886         Bump the upper SIMDLEN limits, so that if the return type or
8887         characteristic type if the return type is void can be passed in
8888         all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
8889         allowed.
8890
8891 2016-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
8892
8893         PR target/70640
8894         * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
8895         Do not use "=" constraint on an input constraint.
8896         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
8897         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
8898         (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
8899         generates (neg (abs ...)) instead of (abs ...).
8900
8901 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
8902
8903         PR rtl-optimization/70596
8904         * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
8905         just invalidate LRA data and reset them.  Adjust dump wording.
8906
8907 2016-04-12  Martin Liska  <mliska@suse.cz>
8908
8909         Revert
8910         2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
8911
8912         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
8913         estimates here.
8914         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
8915         max_loop_iterations_int.
8916         (tree_unswitch_outer_loop): Likewise.
8917         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
8918         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
8919
8920 2016-04-12  Tom de Vries  <tom@codesourcery.com>
8921
8922         PR tree-optimization/68756
8923         * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
8924         instead of new_name.
8925
8926 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
8927
8928         PR tree-optimization/70602
8929         * tree-sra.c (generate_subtree_copies): Don't write anything into
8930         constant pool decls.
8931
8932         * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
8933         regardless whether there are depend clauses or not.
8934
8935 2016-04-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
8936
8937         PR target/70381
8938         * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
8939         target attribute and pragma from changing the -mfloat128
8940         and -mfloat128-hardware options.
8941
8942         * doc/extend.texi (Additional Floating Types): Document PowerPC
8943         __float128 restrictions.
8944
8945 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
8946
8947         PR target/70133
8948         * config/aarch64/driver-aarch64.c
8949         (aarch64_get_extension_string_for_isa_flags): New.
8950         (arch_extension): Rename to...
8951         (aarch64_arch_extension): ...This.
8952         (ext_to_feat_string): Rename to...
8953         (aarch64_extensions): ...This.
8954         (aarch64_core_data): Keep track of architecture extension flags.
8955         (cpu_data): Rename to...
8956         (aarch64_cpu_data): ...This.
8957         (aarch64_arch_driver_info): Keep track of architecture extension
8958         flags.
8959         (get_arch_name_from_id): Rename to...
8960         (get_arch_from_id): ...This, change return type.
8961         (host_detect_local_cpu): Update and reformat for renames, handle
8962         extensions through common infrastructure.
8963
8964 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
8965
8966         PR target/70133
8967         * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
8968         track of a canonical flag name.
8969         (all_extensions): Likewise.
8970         (arch_to_arch_name): Also track extension flags enabled by the arch.
8971         (all_architectures): Likewise.
8972         (aarch64_parse_extension): Move to here.
8973         (aarch64_get_extension_string_for_isa_flags): Take a new argument,
8974         rework.
8975         (aarch64_rewrite_selected_cpu): Update for above change.
8976         * config/aarch64/aarch64-option-extensions.def: Rework the way flags
8977         are handled, such that the single explicit value enabled by an
8978         extension is kept seperate from the implicit values it also enables.
8979         * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
8980         to here.
8981         (aarch64_parse_extension): New.
8982         * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
8983         here to config/aarch64/aarch64-protos.h.
8984         (aarch64_parse_extension): Move from here to
8985         common/config/aarch64/aarch64-common.c.
8986         (aarch64_option_print): Update.
8987         (aarch64_declare_function_name): Likewise.
8988         (aarch64_start_file): Likewise.
8989         * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
8990         the canonical flag for extensions.
8991         * config.gcc (aarch64*-*-*): Extend regex for capturing extension
8992         flags.
8993
8994 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
8995
8996         * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
8997         AARCH64_FL_CRC.
8998
8999 2016-04-09  Tom de Vries  <tom@codesourcery.com>
9000
9001         PR tree-optimization/68953
9002         * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
9003         first to last subscript.
9004
9005 2016-04-09  Jakub Jelinek  <jakub@redhat.com>
9006
9007         PR tree-optimization/70586
9008         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
9009         for any calls.
9010
9011 2016-04-08  Cesar Philippidis  <cesar@codesourcery.com>
9012
9013         PR lto/70289
9014         PR ipa/70348
9015         PR tree-optimization/70373
9016         PR middle-end/70533
9017         PR middle-end/70534
9018         PR middle-end/70535
9019         * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
9020         clauses for acc parallel reductions as necessary.  Error on those
9021         that are private.
9022         * omp-low.c (scan_sharing_clauses): Don't install variables which
9023         are used in acc parallel reductions.
9024         (lower_rec_input_clauses): Remove dead code.
9025         (lower_oacc_reductions): Add support for reference reductions.
9026         (lower_reduction_clauses): Remove dead code.
9027         (lower_omp_target): Don't remap variables appearing in acc parallel
9028         reductions.
9029         * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
9030
9031 2016-04-08  Jakub Jelinek  <jakub@redhat.com>
9032
9033         PR middle-end/70593
9034         * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
9035         with multiple SSA_NAME defs, force the outputs other than first
9036         to be live before calling live_track_process_def on each output.
9037
9038         PR rtl-optimization/70574
9039         * fwprop.c (forward_propagate_and_simplify): Don't add
9040         REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
9041         (try_fwprop_subst): Don't add REG_EQUAL note if there are any
9042         paradoxical subregs within *loc.
9043
9044 2016-04-08  Thomas Schwinge  <thomas@codesourcery.com>
9045
9046         * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
9047         -ftree-parallelize-loops={0,1}.
9048         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
9049         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
9050         * config/ia64/hpux.h (LIB_SPEC): Likewise.
9051         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
9052         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
9053
9054 2016-04-08  Maxim Ostapenko  <m.ostapenko@samsung.com>
9055
9056         PR sanitizer/70541
9057         * asan.c (instrument_derefs): If we get unknown location, extract it
9058         with EXPR_LOCATION.
9059         (maybe_instrument_call): Instrument gimple_call's arguments if needed.
9060
9061 2016-04-08  Tom de Vries  <tom@codesourcery.com>
9062
9063         * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
9064         implicit firstprivate clause.
9065
9066 2016-04-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9067
9068         PR target/70566
9069         * config/arm/thumb2.md (tst + branch-> lsls + branch
9070         peephole below *orsi_not_shiftsi_si): Require that condition
9071         register is dead after the peephole.
9072         (second peephole after the above): Likewise.
9073
9074 2016-04-08  Alan Modra  <amodra@gmail.com>
9075
9076         PR target/70117
9077         * builtins.c (fold_builtin_classify): For IBM extended precision,
9078         look at just the high-order double to test for NaN.
9079         (fold_builtin_interclass_mathfn): Similarly for Inf.  For isnormal
9080         test just the high double for Inf but both doubles for subnormal
9081         limit.
9082
9083 2016-04-07  Jakub Jelinek  <jakub@redhat.com>
9084
9085         * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
9086         * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
9087         node->simdclone->mask_mode != VOIDmode masks.
9088         (simd_clone_adjust_argument_types): Likewise.  Move sc var definition
9089         earlier, use it instead of node->simdclone.
9090         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
9091         Set clonei->mask_mode.
9092
9093 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
9094
9095         PR c/70436
9096         * parser.c (cp_parser_iteration_statement): New parameter IF_P.
9097         Pass it through to cp_parser_already_scoped_statement.
9098         (cp_parser_already_scoped_statement): New parameter IF_P.  Pass
9099         it through to cp_parser_statement.
9100         (cp_parser_statement): Pass IF_P through to
9101         cp_parser_iteration_statement.
9102         (cp_parser_pragma): Adjust call to
9103         cp_parser_iteration_statement.
9104
9105 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
9106
9107         PR c/70436
9108         * gimplify.c (gimplify_omp_ordered): Add explicit braces to
9109         resolve a future -Wparentheses warning.
9110         * omp-low.c (scan_sharing_clauses): Likewise.
9111         * tree-parloops.c (eliminate_local_variables): Likewise.
9112
9113 2016-04-06  Vladimir Makarov  <vmakarov@redhat.com>
9114
9115         PR rtl-optimization/70398
9116         * lra-constraints.c (process_address_1): Check zero scale and code
9117         for reloading with zero scale.
9118
9119 2016-04-06  Uros Bizjak  <ubizjak@gmail.com>
9120
9121         * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
9122         (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
9123
9124 2016-04-06  Jakub Jelinek  <jakub@redhat.com>
9125
9126         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
9127         Add support for AVX512F clones, include them by default for
9128         exported OpenMP declare simd functions.  For AVX2 allow simdlen 32
9129         and use it if charasteric type is 8-bit, for AVX512F allow simdlen
9130         up to 128.
9131
9132         PR middle-end/70550
9133         * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
9134         * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
9135         firstprivate clauses.
9136         * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
9137         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
9138         (lower_omp_target): Set TREE_NO_WARNING for
9139         non-addressable possibly uninitialized vars which are copied into
9140         addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
9141
9142 2016-04-05  John David Anglin  <danglin@gcc.gnu.org>
9143
9144         * config/pa/predicates.md (integer_store_memory_operand): Accept
9145         REG+D operands with a large offset when reload_in_progress is true.
9146         (floating_point_store_memory_operand): Likewise.
9147
9148 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
9149
9150         PR c++/70336
9151         * match.pd (nested int casts): Limit to GIMPLE.
9152
9153 2016-04-05  Jan Hubicka  <hubicka@ucw.cz>
9154
9155         PR ipa/66223
9156         * ipa-devirt.c (maybe_record_node): Fix comment; use
9157         SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
9158
9159 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
9160
9161         PR rtl-optimization/70542
9162         * ree.c (add_removable_extension): For VECTOR_MODE_P punt
9163         if there are any uses other than insn or debug insns.
9164
9165 2016-04-05  Marc Glisse  <marc.glisse@inria.fr>
9166             Jakub Jelinek  <jakub@redhat.com>
9167
9168         PR tree-optimization/70509
9169         * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
9170         Shift HOST_WIDE_INT_1U instead of 1.
9171
9172 2016-04-05  Zdenek Sojka  <zsojka@seznam.cz>
9173
9174         PR tree-optimization/70509
9175         * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
9176         of the vector base type for index.
9177
9178 2016-04-05  Uros Bizjak  <ubizjak@gmail.com>
9179
9180         PR target/70510
9181         * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
9182
9183 2016-04-05  Richard Biener  <rguenther@suse.de>
9184
9185         PR tree-optimization/70526
9186         * tree-sra.c (build_ref_for_offset): Use prev_base to
9187         extract the alias pointer type.
9188
9189 2016-04-05  Richard Biener  <rguenther@suse.de>
9190
9191         * dse.c (struct store_info): Remove alias_set member.
9192         (struct read_info_type): Likewise.
9193         (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
9194         spill_deleted, clear_alias_set_lookup): Remove.
9195         (get_group_info): Remove dead base == NULL_RTX case.
9196         (dse_step0): Remove initialization of removed variables.
9197         (delete_dead_store_insn): Reomve alias set dumping.
9198         (free_read_records): Remove alias_set handling.
9199         (canon_address): Remove alias_set_out parameter.
9200         (record_store): Remove spill_alias_set, it's always zero.
9201         (check_mem_read_rtx): Likewise.
9202         (dse_step2): Rename from ...
9203         (dse_step2_nospill): ... this.  Adjust.
9204         (scan_stores): Rename from ...
9205         (scan_stores_nospill): ... this.
9206         (scan_reads): Rename from ...
9207         (scan_reads_nospill): ... this.
9208         (scan_stores_spill, scan_reads_spill): Remove.
9209         (dse_step3_scan): Remove for_spills argument which is always false.
9210         (dse_step3): Likewise.
9211         (dse_step5): Rename from ...
9212         (dse_step5_nospill): ... this.  Remove alias_set handling.
9213         (rest_of_handle_dse): Adjust.
9214
9215 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
9216
9217         PR target/70525
9218         * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
9219         Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
9220         V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
9221         (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
9222
9223 2016-04-05  Richard Biener  <rguenther@suse.de>
9224
9225         PR middle-end/70499
9226         * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
9227         non-register type temporaries into SSA.
9228
9229 2016-04-04  Jan Hubicka  <hubicka@ucw.cz>
9230
9231         PR ipa/66223
9232         * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
9233         calls when sanitizing.
9234         (possible_polymorphic_call_target_p): Fix formatting.
9235
9236 2016-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9237             Jakub Jelinek <jakub@redhat.com>
9238
9239         PR middle-end/70457
9240         * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
9241         to ensure a call statement is compatible with a built-in's
9242         prototype.
9243         * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
9244         Likewise.
9245
9246 2016-04-04  Richard Biener  <rguenther@suse.de>
9247
9248         PR rtl-optimization/70484
9249         * rtl.h (canon_output_dependence): Declare.
9250         * alias.c (canon_output_dependence): New function.
9251         * dse.c (record_store): Use canon_output_dependence rather
9252         than canon_true_dependence.
9253
9254 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
9255
9256         PR ipa/68881
9257         * cgraph.h (symtab_node::copy_visibility_from): New function.
9258         * symtab.c (symtab_node::copy_visibility_from): New function.
9259         * ipa-visibility.c (optimize_weakref): New function.
9260         (function_and_variable_visibility): Use it.
9261
9262 2016-04-04  Martin Liska  <mliska@suse.cz>
9263
9264         PR hsa/70402
9265         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
9266         value that is really in range handled by SBR instruction.
9267         * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
9268         * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
9269         * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
9270
9271 2016-04-03  Oleg Endo  <olegendo@gcc.gnu.org>
9272
9273         PR target/70416
9274         PR target/67391
9275         * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
9276         set, but not for SP_REG operands.
9277
9278 2016-04-02  Martin Sebor  <msebor@redhat.com>
9279
9280         PR c++/67376
9281         * fold-const.c (maybe_nonzero_address): New function.
9282         (fold_comparison): Call it.  Fold equality and relational
9283         expressions involving null pointers.
9284         (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
9285
9286 2016-03-31  Evandro Menezes  <e.menezes@samsung.com>
9287
9288         Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
9289         the "Y" constraint (scalar FP 0.0 immediate).
9290
9291         * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
9292         Add the "const_double" to the list of operand constraints.
9293
9294 2016-04-01  Jakub Jelinek  <jakub@redhat.com>
9295
9296         PR rtl-optimization/70467
9297         * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
9298         If low word of the last operand is 0, just emit addition/subtraction
9299         for the high word.
9300
9301 2016-04-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9302
9303         PR target/70404
9304         * config/s390/s390.c (s390_expand_insv): Check for everything
9305         constant instead of just VOIDmode stuff.
9306
9307 2016-04-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
9308
9309         PR target/70496
9310         * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
9311
9312 2016-04-01  Nathan Sidwell  <nathan@acm.org>
9313
9314         * tree.def (TRY_CATCH_EXPR): Correct documentation.
9315
9316 2016-03-31  Vladimir Makarov  <vmakarov@redhat.com>
9317
9318         PR rtl-optimization/70461
9319         * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
9320         is necessary.
9321
9322 2016-03-31  Martin Liska  <mliska@suse.cz>
9323
9324         PR hsa/70399
9325         * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
9326         a tree value or an immediate integer value to a buffer
9327         that is eventually copied to a BRIG section.
9328         (emit_immediate_operand): Call the function here.
9329         * hsa-dump.c (dump_hsa_immed): Remove checking assert.
9330         * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
9331         of class' fields that are removed.
9332         (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
9333         * hsa.h (class hsa_op_immed): Remove m_brig_repr and
9334         m_brig_repr_size fields.
9335
9336 2016-03-31  Martin Liska  <mliska@suse.cz>
9337
9338         PR hsa/70391
9339         * hsa-gen.c (hsa_function_representation::update_dominance): New
9340         function.
9341         (convert_addr_to_flat_segment): Likewise.
9342         (gen_hsa_memory_set): New alignment argument.
9343         (gen_hsa_ctor_assignment): Likewise.
9344         (gen_hsa_insns_for_single_assignment): Provide alignment
9345         to gen_hsa_ctor_assignment.
9346         (gen_hsa_insns_for_direct_call): Add new argument.
9347         (expand_lhs_of_string_op): New function.
9348         (expand_string_operation_builtin): Likewise.
9349         (expand_memory_copy): New function.
9350         (expand_memory_set): New function.
9351         (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
9352         (convert_switch_statements): Change signature.
9353         (generate_hsa): Use a return value of the function.
9354         (pass_gen_hsail::execute): Do not call
9355         convert_switch_statements here.
9356         * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
9357         * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
9358         (hsa_function_representation::update_dominance): New function.
9359
9360 2016-03-31  Martin Liska  <mliska@suse.cz>
9361
9362         PR hsa/70391
9363         * hsa-brig.c (emit_directive_variable): Emit alignment
9364         according to hsa_symbol::m_align.
9365         * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
9366         (dump_hsa_symbol): Dump alignment of HSA symbols.
9367         * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
9368         (gen_hsa_addr_with_align): New function.
9369         (hsa_bitmemref_alignment): Use newly added function.
9370         (gen_hsa_insns_for_load): Likewise.
9371         (gen_hsa_insns_for_store): Likewise.
9372         (gen_hsa_memory_copy): New argument added.
9373         (gen_hsa_insns_for_single_assignment): Respect
9374         alignment for assignments processed via gen_hsa_memory_copy.
9375         (gen_hsa_insns_for_direct_call): Likewise.
9376         (gen_hsa_insns_for_return): Likewise.
9377         (gen_function_def_parameters): Set default alignment.
9378         * hsa.c (hsa_object_alignment): New function.
9379         (hsa_byte_alignment): Pasted function.
9380         * hsa.h (hsa_symbol::m_align): New field.
9381
9382 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
9383
9384         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
9385         scratch field for goto case.
9386
9387 2016-03-31  James Greenhalgh  <james.greenhalgh@arm.com>
9388
9389         * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
9390
9391 2016-03-31  Ilya Enkovich  <enkovich.gnu@gmail.com>
9392
9393         PR target/70442
9394         * config/i386/i386.c (scalar_chain::convert_op): Fix description.
9395         (scalar_chain::convert_insn): Call convert_op for reg
9396         moves to handle undefined registers.
9397
9398 2016-03-31  Nathan Sidwell  <nathan@acm.org>
9399
9400         PR c++/70393
9401         * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
9402         Assert we don't want to move backwards.
9403
9404 2016-03-31  Kirill Yukhin  <kirill.yukhin@intel.com>
9405
9406         PR target/70453
9407         * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
9408
9409 2016-03-31  Jakub Jelinek  <jakub@redhat.com>
9410
9411         PR rtl-optimization/70460
9412         * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
9413         with operand from REG_LABEL_OPERAND, instead substitute
9414         SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
9415         Don't do anything for REG_NON_LOCAL_GOTO jumps.
9416
9417 2016-03-31  Martin Liska  <mliska@suse.cz>
9418
9419         * passes.c (execute_one_pass): Do not call
9420         todo_after for a discarded function.
9421
9422 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
9423
9424         * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
9425         (no_cost, infinite_cost): Initialize the new field.
9426         (get_computation_cost_at): Record setup cost.
9427         (determine_use_iv_cost_address): Skip cost computation for sub
9428         uses if we can estimate it without losing accuracy.
9429
9430 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
9431
9432         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
9433         estimates here.
9434         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
9435         max_loop_iterations_int.
9436         (tree_unswitch_outer_loop): Likewise.
9437         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
9438         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
9439
9440 2016-03-30  Richard Biener  <rguenther@suse.de>
9441
9442         PR middle-end/70450
9443         * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
9444
9445 2016-03-30  Jakub Jelinek  <jakub@redhat.com>
9446
9447         PR target/70421
9448         * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
9449         in gen_blendm expander.
9450
9451 2016-03-30  Nick Clifton  <nickc@redhat.com>
9452
9453         PR target/62254
9454         * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
9455         case where we are already provided with an SImode SUBREG.
9456
9457 2016-03-30  H.J. Lu  <hongjiu.lu@intel.com>
9458
9459         PR target/70439
9460         * config/i386/i386.c (ix86_expand_epilogue): Properly check
9461         conflict between DRAP register and __builtin_eh_return.
9462
9463 2016-03-30  Michael Matz  <matz@suse.de>
9464             Richard Biener  <rguenther@suse.de>
9465
9466         PR ipa/12392
9467         * ipa-polymorphic-call.c (struct type_change_info): Change
9468         speculative to an unsigned allowing to limit the work we do.
9469         (csftc_abort_walking_p): New inline function..
9470         (check_stmt_for_type_change): Limit the number of may-defs
9471         skipped for speculative devirtualization to
9472         max-speculative-devirt-maydefs.
9473         * params.def (max-speculative-devirt-maydefs): New param.
9474         * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
9475
9476 2016-03-30  Mike Stump  <mrs@gcc.gnu.org>
9477
9478         PR target/63890
9479         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
9480         and TARGET_MACHO.
9481
9482 2016-03-30  Patrick Palka  <ppalka@gcc.gnu.org>
9483
9484         PR tree-optimization/59124
9485         * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
9486         where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
9487
9488 2016-03-29  Jeff Law  <law@redhat.com>
9489
9490         * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
9491
9492 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
9493
9494         * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
9495         to HOST_WIDE_INT.
9496
9497 2016-03-29  Thomas Schwinge  <thomas@codesourcery.com>
9498
9499         * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
9500         * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
9501         gcrt0.o if linking dynamically.
9502
9503 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
9504
9505         PR ipa/70283
9506         * ipa-devirt.c (methods_equal_p): New function.
9507         (compare_virtual_tables): Use it.
9508         * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
9509         * cgraphclones.c (clone_function_name_1): Use
9510         symbol_table::symbol_suffix_separator.
9511         * coverage.c (build_var): Likewise.
9512         * symtab.c (symbol_table::symbol_suffix_separator): New.
9513
9514 2016-03-29  Jakub Jelinek  <jakub@redhat.com>
9515
9516         PR rtl-optimization/70429
9517         * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
9518         (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
9519         mode != result_mode.
9520
9521         PR c++/70353
9522         * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
9523
9524         PR tree-optimization/70405
9525         * ssa-iterators.h (num_imm_uses): Add missing braces.
9526
9527 2016-03-29  Vladimir Makarov  <vmakarov@redhat.com>
9528
9529         PR rtl-optimization/68695
9530         * ira-color.c (allocno_copy_cost_saving): New.
9531         (improve_allocation): Use it.
9532
9533 2016-03-29  Richard Henderson  <rth@redhat.com>
9534
9535         PR middle-end/70355
9536         * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
9537
9538 2016-03-29  Richard Biener  <rguenther@suse.de>
9539
9540         PR middle-end/70424
9541         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
9542         use alignment returned by get_pointer_alignment_1 if it is
9543         bigger than BITS_PER_UNIT.
9544         * builtins.c (get_pointer_alignment_1): Do not return true
9545         for alignment extracted from SSA info.
9546
9547 2016-03-28  James Bowman  <james.bowman@ftdichip.com>
9548
9549         * config/ft32/ft32.opt (mnodiv): New.
9550         * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
9551         * doc/invoke.texi (FT32 Options -mnodiv): New.
9552
9553 2016-03-28  Kirill Yukhin  <kirill.yukhin@intel.com>
9554
9555         PR target/70406
9556         * config/i386/i386.md (define_split, andn): Fix modes.
9557
9558 2016-03-26  Richard Biener  <rguenther@suse.de>
9559             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
9560
9561         PR ipa/70366
9562         * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
9563         instead of
9564         TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
9565         as 2nd argument to cl_optimization_restore().
9566
9567 2016-03-25  Richard Henderson  <rth@redhat.com>
9568
9569         PR target/70120
9570         * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
9571         * config/aarch64/aarch64-protos.h: Declare it.
9572         * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
9573
9574 2016-03-25  Alan Modra  <amodra@gmail.com>
9575
9576         PR target/70052
9577         * config/rs6000/constraints.md (j): Simplify.
9578         * config/rs6000/predicates.md (easy_fp_constant): Exclude
9579         decimal float 0.D.
9580         * config/rs6000/rs6000.md (zero_fp): New mode_attr.
9581         (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
9582          mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
9583         in all constraint alternatives.
9584         (movtd_64bit_nodm): Delete "j" constraint alternative.
9585
9586 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
9587
9588         * tree-ssa-propagate.c: Enhance docs for
9589         SSA_PROP_NOT_INTERESTING.
9590
9591 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
9592
9593         * doc/extend.texi: Fix typo in documentation to pure attribute.
9594
9595 2016-03-24  John David Anglin  <danglin@gcc.gnu.org>
9596
9597         PR target/70319
9598         * config/pa/pa.md (bswapdi2): Use a scratch register.
9599
9600 2016-03-24  Richard Henderson  <rth@redhat.com>
9601
9602         PR middle-end/69845
9603         * fold-const.c (extract_muldiv_1): Correct test for multiplication
9604         overflow.
9605
9606 2016-03-24  Uros Bizjak  <ubizjak@gmail.com>
9607
9608         * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
9609         using ix86_expand_binary_operator instead of gen_andsi3.
9610
9611 2016-03-24  Richard Biener  <rguenther@suse.de>
9612
9613         PR tree-optimization/70396
9614         * tree-vect-stmts.c (vectorizable_comparison): Use
9615         get_vectype_for_scalar_type.
9616
9617 2016-03-24  Richard Biener  <rguenther@suse.de>
9618
9619         PR middle-end/70370
9620         * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
9621         with register bases.
9622
9623 2016-03-24  Richard Biener  <rguenther@suse.de>
9624
9625         PR tree-optimization/70372
9626         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
9627         build_all_ones_cst to also handle vector types correctly.
9628
9629 2016-03-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
9630
9631         PR target/70381
9632         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
9633         -mfloat128 here.
9634
9635 2016-03-23  Marek Polacek  <polacek@redhat.com>
9636
9637         PR c++/69884
9638         * doc/invoke.texi: Document -Wignored-attributes.
9639
9640 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
9641
9642         PR tree-optimization/69042
9643         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
9644         parameter from 30 to 40.
9645
9646 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
9647
9648         PR tree-optimization/69042
9649         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
9650         for use with constant offset stripped in base.
9651
9652 2016-03-23  Richard Biener  <rguenther@suse.de>
9653
9654         PR middle-end/70251
9655         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
9656         mode compatibility check.
9657         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
9658
9659 2016-03-23  Jeff Law  <law@redhat.com>
9660
9661         PR tree-optimization/64058
9662         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
9663         CONFLICT_COUNT.
9664         (struct ssa_conflicts): Move up earlier in the file.
9665         (conflicts_, var_map_): New static variables.
9666         (initialize_conflict_count): New function to initialize the
9667         CONFLICT_COUNT field for each conflict pair.
9668         (compare_pairs): Lazily initialize the conflict count and use it
9669         as the first tie-breaker.
9670         (sort_coalesce_list): Add new arguments conflicts, map.  Initialize
9671         and wipe conflicts_ and map_ around the call to qsort.  Remove
9672         special case for 2 coalesce pairs.
9673         * bitmap.c (bitmap_count_unique_bits): New function.
9674         (bitmap_count_bits_in_word): New function, extracted from
9675         bitmap_count_bits.
9676         (bitmap_count_bits): Use bitmap_count_bits_in_word.
9677         * bitmap.h (bitmap_count_unique_bits): Declare it.
9678
9679 2016-03-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
9680
9681         PR target/69917
9682         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
9683         transparent alias chain for decl assembler name.
9684         * config/sol2.c (solaris_assemble_visibility): Likewise.
9685
9686 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9687
9688         * config/arm/arm1020e.md (1020call_op): Reduce reservation
9689         duration.
9690         (v10_fdivs): Likewise.
9691         (v10_fdivd): Likewise.
9692
9693 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9694
9695         PR driver/70132
9696         * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
9697         to not call fclose twice on file.
9698
9699 2016-03-23  Jakub Jelinek  <jakub@redhat.com>
9700
9701         PR tree-optimization/70354
9702         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
9703         oprnd0 is wider than oprnd1 and there is a cast from the wider
9704         type to oprnd1, mask it with the mask of the narrower type.
9705
9706         PR target/70321
9707         * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
9708         Optimize TARGET_STV splitters, if high or low word of last argument
9709         is 0 or -1.
9710
9711 2016-03-22  Jeff Law  <law@redhat.com>
9712
9713         PR target/70232
9714         tree-ssa-threadbackward.c
9715         (fsm_find_control_statement_thread_paths): Correctly distinguish
9716         between old style jump threads vs FSM jump threads.
9717
9718 2016-03-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
9719
9720         PR target/70302
9721         * config/i386/i386.c (scalar_chain::convert_op): Support
9722         uninitialized register usage case.
9723
9724 2016-03-22  Richard Biener  <rguenther@suse.de>
9725
9726         PR middle-end/70251
9727         * genmatch.c (gen_transform): Adjust last parameter to a three-state
9728         int...
9729         (capture::gen_transform): ... to change behavior when substituting
9730         a condition into cond or not-cond expr context.
9731         (dt_simplify::gen_1): Adjust.
9732         * gimple-match-head.c: Include gimplify.h for unshare_expr.
9733         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
9734         last change and instead change to
9735         A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
9736         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
9737
9738 2016-03-22  Anthony Green  <green@moxielogic.com>
9739
9740         * config/moxie/moxiebox.h (CC1_SPEC): Define.  Fix endianness
9741         issue for moxiebox targets.
9742         (CC1PLUS_SPEC): Ditto.
9743
9744 2016-03-22  Richard Biener  <rguenther@suse.de>
9745
9746         PR middle-end/70333
9747         * fold-const.c (extract_muldiv_1): Properly perform multiplication
9748         in the wide type.
9749
9750 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
9751
9752         * config/i386/i386.c (def_builtin): Remove duplicated functionality.
9753
9754 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
9755
9756         PR target/70325
9757         * config/i386/i386.c (def_builtin): Handle
9758         OPTION_MASK_ISA_AVX512VL to be and-ed with other
9759         bits.
9760         (const struct builtin_description bdesc_special_args[]):
9761         Remove duplicate ISA bits.
9762
9763 2016-03-22  Jakub Jelinek  <jakub@redhat.com>
9764
9765         PR target/70329
9766         * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
9767         d.perm[i] for i >= d.nelt.  If not full_interleave, compute d.perm[i]
9768         in a way that works also for AVX512BW.
9769
9770         PR target/70300
9771         * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
9772         instead of source if operands[1] is xmm16 and above and
9773         !TARGET_AVX512VL.  Use avx512f_vec_dupv16sf_1 instead of
9774         vec_interleave_lowv4sf if we need to unpack xmm16 and above.
9775
9776         PR c++/70295
9777         * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
9778         on assign if (*from_p) is a comparison, set it to
9779         TREE_NO_WARNING (*from_p).
9780
9781 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
9782
9783         PR middle-end/70326
9784         * lra.c (restore_scratches): Ignore deleted insns.
9785
9786 2016-03-21  Marc Glisse  <marc.glisse@inria.fr>
9787             Jakub Jelinek  <jakub@redhat.com>
9788
9789         PR tree-optimization/70317
9790         * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
9791         to HONOR_NANS.
9792
9793 2016-03-21  Uros Bizjak  <ubizjak@gmail.com>
9794
9795         PR target/70327
9796         * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
9797         of ix86_expand_move.
9798         (movoi): Ditto.
9799         (movti): Use general_operand for operand 1 predicate.
9800
9801 2016-03-21  Martin Liska  <mliska@suse.cz>
9802
9803         * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
9804         insns.
9805         (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
9806
9807 2016-03-21  Martin Liska  <mliska@suse.cz>
9808
9809         PR ipa/70306
9810         * ipa-icf.c (sem_function::parse): Skip static
9811         constructors and destructors.
9812
9813 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
9814
9815         PR target/70296
9816         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
9817         function-like macro, peek following token(s) if it is followed
9818         by CPP_OPEN_PAREN token with optional padding in between, and
9819         if not, don't treat it like a macro.
9820
9821 2016-03-21  Thomas Schwinge  <thomas@codesourcery.com>
9822             Alexander Monakov  <amonakov@ispras.ru>
9823
9824         * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
9825         for the stabs debug format.
9826
9827 2016-03-21  Richard Biener  <rguenther@suse.de>
9828
9829         PR tree-optimization/70310
9830         * tree-vect-generic.c (expand_vector_condition): Fold the built
9831         condition.
9832
9833 2016-03-21  Kirill Yukhin  <kirill.yukhin@intel.com>
9834
9835         PR target/70293
9836         * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
9837         Block third alternative for AVX-512VL target,
9838
9839 2016-03-21  Martin Liska  <mliska@suse.cz>
9840
9841         PR hsa/70234
9842         * hsa-brig.c (emit_function_directives): Mark unemitted
9843         global variables for emission.
9844         * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
9845         (get_symbol_for_decl): Likewise.
9846         * hsa.h (struct hsa_symbol): New flag.
9847
9848 2016-03-21  Richard Biener  <rguenther@suse.de>
9849
9850         PR tree-optimization/70288
9851         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
9852         we do not estimate unsimplified all-constant conditionals or
9853         switches as optimized away.
9854
9855 2016-03-21  Andrey Belevantsev  <abel@ispras.ru>
9856
9857         PR rtl-optimization/69102
9858         * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
9859         when we have a readonly dependency context.
9860
9861 2016-03-18  Jeff Law  <law@redhat.com>
9862
9863         PR rtl-optimization/70263
9864         * ira.c (memref_used_between_p): Assert we found END in the insn chain.
9865         (update_equiv_regs): When trying to move a store to after the insn
9866         that sets the source of the store, make sure the store occurs after
9867         the insn that sets the source of the store.  When successful note
9868         the REG_EQUIV note created in the dump file.
9869
9870 2016-03-16  David Wohlferd  <dw@LimeGreenSocks.com>
9871             Bernd Schmidt  <bschmidt@redhat.com>
9872
9873         * doc/extend.texi: Document more potential problems with basic asms.
9874
9875 2016-03-18  Bernd Schmidt  <bschmidt@redhat.com>
9876
9877         PR rtl-optimization/70278
9878         * lra-constraints.c (split_reg): Handle the case where biggest_mode is
9879         VOIDmode.
9880
9881 2016-03-18  Jason Merrill  <jason@redhat.com>
9882
9883         * calls.c (load_register_parameters): Fix zero size sibcall logic.
9884
9885 2016-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
9886
9887         * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
9888         values to 128b regs.
9889
9890 2016-03-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
9891
9892         PR tree-optimization/70252
9893         * tree-vect-stmts.c (supportable_widening_operation): Check resulting
9894         boolean vector has a proper number of elements.
9895         (supportable_narrowing_operation): Likewise.
9896
9897 2016-03-18  Tom de Vries  <tom@codesourcery.com>
9898
9899         PR ipa/70269
9900         * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
9901
9902 2016-03-18  Jakub Jelinek  <jakub@redhat.com>
9903
9904         * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
9905         instead of replace_rtx for DEBUG_INSNs.
9906
9907 2016-03-18  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
9908
9909         * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
9910         load type reservations.
9911
9912 2016-03-17  John David Anglin  <danglin@gcc.gnu.org>
9913
9914         PR target/70188
9915         * config/pa/constraints.md: Revert 2015-02-13 change.  Use
9916         define_constraint for "Q" and "T" constraints.
9917
9918 2016-03-17  Evandro Menezes  <e.menezes@samsung.com>
9919
9920         Tweak the pipeline model for Exynos M1
9921
9922         * config/aarch64/aarch64.c (exynosm1_tunings):  Enable weak prefetching
9923         model.
9924
9925 2016-03-17  David Malcolm  <dmalcolm@redhat.com>
9926
9927         PR c/70264
9928         * diagnostic-show-locus.c (compatible_locations_p): Handle the case
9929         where one or both locations aren't within a line_map.
9930
9931 2016-03-17  H.J. Lu  <hongjiu.lu@intel.com>
9932
9933         PR driver/70192
9934         * opts.c (finish_options): Don't set flag_pie to the default if
9935         -fpic, -fPIC, -fno-pic or -fno-PIC is used.  Set flag_pic to 0
9936         if it is -1.
9937
9938 2016-03-17  Joern Rennecke  <joern.rennecke@embecosm.com>
9939
9940         * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
9941         true as ALL_REGS argument to replace_rtx.
9942
9943 2016-03-17  Richard Biener  <rguenther@suse.de>
9944
9945         PR debug/70271
9946         * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
9947         last.
9948
9949 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
9950
9951         PR target/70245
9952         * rtl.h (replace_rtx): Add ALL_REGS argument.
9953         * rtlanal.c (replace_rtx): Likewise.  If true, use REGNO
9954         equality and assert mode is the same, instead of just rtx pointer
9955         equality.
9956         * config/i386/i386.md (mov + arithmetics with load peephole): Pass
9957         true as ALL_REGS argument to replace_rtx.
9958
9959 2016-03-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
9960
9961         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
9962         for boolean vector with vector mode only.
9963         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
9964
9965 2016-03-17  Nick Clifton  <nickc@redhat.com>
9966
9967         PR target/70162
9968         * config/rx/rx.c (rx_print_integer): Print negative constants in
9969         decimal.
9970
9971 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
9972
9973         PR target/70261
9974         * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
9975
9976 2016-03-16  Richard Henderson  <rth@redhat.com>
9977             Richard Biener  <rguenth@suse.de>
9978
9979         PR middle-end/70240
9980         PR middle-end/68215
9981         PR tree-opt/68714
9982         * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
9983         first operand as is_gimple_condexpr.
9984
9985         PR middle-end/70240
9986         PR middle-end/68215
9987         Revert r231575
9988         2015-12-11  Eric Botcazou  <ebotcazou@adacore.com>
9989         * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
9990         Do not gimplify the result.
9991         (do_unop): Adjust call to tree_vec_extract.
9992         (do_binop): Likewise.
9993         (do_compare): Likewise.
9994         (do_plus_minus): Likewise.
9995         (do_negate): Likewise.
9996         (expand_vector_condition): Likewise.
9997         (do_cond): Likewise.
9998
9999 2016-03-16  Richard Henderson  <rth@redhat.com>
10000
10001         PR target/70048
10002         * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
10003         (aarch64_classify_address): Use it.
10004         (aarch64_legitimize_address): Force all subexpressions of PLUS
10005         into registers.  Simplify as (sfp+const)+reg or (reg+reg)+const.
10006
10007 2016-03-16  Jakub Jelinek  <jakub@redhat.com>
10008             Richard Biener  <rguenth@suse.de>
10009
10010         PR target/70245
10011         * rtlanal.c (replace_rtx): For REG, if from is a REG,
10012         return to even if only REGNO is equal, and assert
10013         mode is the same.
10014
10015 2016-03-11  Jeff Law  <law@redhat.com>
10016
10017         PR rtl-optimization/70224
10018         * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
10019
10020 2016-03-16  Richard Henderson  <rth@redhat.com>
10021
10022         PR middle-end/70199
10023         * function.h (struct function): Add has_forced_label_in_static.
10024         * gimplify.c (force_labels_r): Set it.
10025         * lto-streamer-in.c (input_struct_function_base): Read it.
10026         * lto-streamer-out.c (output_struct_function_base): Write it.
10027         * tree-inline.c (has_label_address_in_static_1): Remove.
10028         (copy_forbidden): Remove fndecl parameter; test
10029         has_forced_label_in_static.
10030         (inline_forbidden_p): Update call to copy_forbidden.
10031         (tree_versionable_function_p): Likewise.
10032         * ipa-chkp.c (chkp_instrumentable_p): Likewise.
10033         (chkp_versioning): Likewise.
10034         * tree-inline.h (copy_forbidden): Update decl.
10035
10036 2016-03-16  Marek Polacek  <polacek@redhat.com>
10037
10038         PR c/70093
10039         * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
10040         function being thunked if the result type doesn't have fixed size.
10041         * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
10042         doesn't have fixed size.
10043
10044 2016-03-16  Bin Cheng  <bin.cheng@arm.com>
10045
10046         * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
10047         reporting malformed loop nest.
10048
10049 2016-03-16  Tom de Vries  <tom@codesourcery.com>
10050
10051         PR lto/70187
10052         * ipa-devirt.c (possible_polymorphic_call_targets): Move
10053         nodes.length () == 1 test to before first nodes[0] access.
10054
10055 2016-03-16  Tom de Vries  <tom@codesourcery.com>
10056
10057         PR tree-optimization/68715
10058         * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
10059         single_pred_p test.
10060
10061 2016-03-16  Tom de Vries  <tom@codesourcery.com>
10062
10063         PR tree-optimization/68809
10064         * graphite-scop-detection.c (same_close_phi_node): Test if result types
10065         are the same.
10066
10067 2016-03-16  Carlos O'Donell  <carlos@redhat.com>
10068             Sandra Loosemore  <sandra@codesourcery.com>
10069
10070         * doc/extend.texi (Common Function Attributes): Describe ifunc impact
10071         on leaf attribute. Mention ELF interposition problems.
10072
10073 2016-03-16  Alan Modra  <amodra@gmail.com>
10074
10075         PR rtl-optimization/69195
10076         PR rtl-optimization/47992
10077         * ira.c (indirect_jump_optimize): Ignore artificial defs.
10078         Add comments.
10079
10080 2016-03-15  Eric Botcazou  <ebotcazou@adacore.com>
10081
10082         PR bootstrap/69513
10083         * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
10084
10085 2016-03-15  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
10086
10087         * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
10088
10089 2016-03-15  Jakub Jelinek  <jakub@redhat.com>
10090
10091         PR rtl-optimization/70222
10092         * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
10093         optimization if mode is different from result_mode, queue up masking
10094         of the result in outer_op.  Formatting fix.
10095
10096         PR middle-end/70239
10097         * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
10098         of safe_grow.
10099
10100 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
10101
10102         PR rtl-optimization/69032
10103         * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
10104         looping backwards over basic block insns.
10105
10106 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
10107
10108         PR target/66660
10109         * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
10110         to non-speculative when propagating trap bits.
10111
10112 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
10113
10114         PR rtl-optimization/63384
10115         * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
10116         DEBUG_INSN_P insns.
10117
10118 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
10119
10120         PR target/64411
10121         * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
10122         factored out from ...
10123         (sched_analyze_insn): ... here.
10124         * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
10125         * sel-sched-ir.c (setup_id_implicit_regs): New function, use
10126         get_implicit_reg_pending_clobbers in it.
10127         (setup_id_reg_sets): Use setup_id_implicit_regs.
10128         (deps_init_id): Ditto.
10129
10130 2016-03-15  Tom de Vries  <tom@codesourcery.com>
10131
10132         PR ipa/70161
10133         * cgraph.c (cgraph_node::get_body): Save, reset and restore
10134         dump_file_name.
10135         * passes.c (execute_one_ipa_transform_pass): Add missing argument to
10136         execute_function_dump.
10137         (execute_one_pass): Don't dump function if it will be dumped after ipa
10138         transform.
10139
10140 2016-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
10141
10142         * genrecog.c (match_pattern_2): If pred is NULL don't call
10143         safe_predicate_mode on it.
10144
10145 2016-03-14  Jakub Jelinek  <jakub@redhat.com>
10146
10147         PR middle-end/70219
10148         * lra-constraints.c (delete_move_and_clobber): Change assertion
10149         to also allow dregno == 0.
10150
10151 2016-03-14  Richard Henderson  <rth@redhat.com>
10152
10153         PR tree-opt/68714
10154         * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
10155         (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
10156         (reassociate_bb): Use optimize_vec_cond_expr; avoid
10157         optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
10158         on vectors.
10159
10160 2016-03-14  Bernd Schmidt  <bschmidt@redhat.com>
10161
10162         PR target/70083
10163         * lra-lives.c (process_bb_lives): Also update biggest mode for hard
10164         regs.
10165         (lra_create_live_ranges_1): initialize hard register biggest_mode to
10166         VOIDmode.
10167         * lra-constraints.c (split_reg): For hard regs, try to find the
10168         biggest single-register mode used in the function.
10169
10170 2016-03-14  Richard Biener  <rguenther@suse.de>
10171
10172         PR tree-optimization/56365
10173         * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
10174         constants to compare against.
10175
10176 2016-03-14  Segher Boessenkool  <segher@kernel.crashing.org>
10177
10178         PR target/70098
10179         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
10180         *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
10181         (define_split for the GPR case): Use int_reg_operand instead of
10182         gpc_reg_operand for the output.
10183
10184 2016-03-14  Tom de Vries  <tom@codesourcery.com>
10185
10186         PR tree-optimization/70045
10187         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
10188         create_empty_if_region_on_edge argument.
10189
10190 2016-03-13  Eric Botcazou  <ebotcazou@adacore.com>
10191
10192         * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
10193         (STACK_CHECK_PROTECT): Likewise.
10194         * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
10195         (STACK_CHECK_PROTECT): Likewise.
10196         * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
10197         (STACK_CHECK_PROTECT): Likewise.
10198         * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
10199         * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
10200         (STACK_CHECK_PROTECT): Likewise.
10201
10202 2016-03-12  Andrey Belevantsev  <abel@ispras.ru>
10203
10204         PR rtl-optimization/69307
10205         * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
10206         registers in modes that span more than one register.
10207
10208 2016-03-12  Vladimir Makarov  <vmakarov@redhat.com>
10209
10210         PR target/69614
10211         * lra-constraints.c (delete_move_and_clobber): New.
10212         (remove_inheritance_pseudos): Use it.
10213
10214 2016-03-12  Eric Botcazou  <ebotcazou@adacore.com>
10215
10216         PR ada/70017
10217         * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
10218         the libcall is LCT_THROW.
10219         * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
10220         for the checking routine.
10221
10222 2016-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
10223
10224         PR target/70131
10225         * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
10226         optimization if we have direct move.
10227         (roundu32<mode>2_fprs): Likewise.
10228
10229 2016-03-11  Bernd Schmidt  <bschmidt@redhat.com>
10230
10231         PR target/70123
10232         * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
10233         be rematerialized.
10234         (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
10235         Arguments swapped.  All callers changed.  Take reg_renumber into
10236         account, and Calculate and compare register ranges for hard regs.
10237
10238 2016-03-11  Jeff Law  <law@redhat.com>
10239
10240         PR tree-optimization/70190
10241         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
10242         Handle cases where we can not extract the taken edge, even though we
10243         found a constant value.
10244
10245         PR tree-optimization/64058
10246         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
10247         (num_coalesce_pairs): Move up earlier in file.
10248         (find_coalesce_pair): Initialize the INDEX field for each pair
10249         discovered.
10250         (compare_pairs): No longer sort on the elements in each pair.
10251         Instead break ties with the index of the coalesce pair.
10252
10253 2016-03-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10254
10255         PR target/70002
10256         * config/aarch64/aarch64-protos.h
10257         (aarch64_save_restore_target_globals): New prototype.
10258         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
10259         Call the above when popping pragma.
10260         * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
10261         New function.
10262         (aarch64_set_current_function): Rewrite using the above.
10263
10264 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
10265
10266         PR tree-optimization/70177
10267         * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
10268         (extract_ops_from_tree): ... this.  In the 2 argument
10269         overload remove _1 suffix.
10270         * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
10271         (extract_ops_from_tree): ... this.
10272         * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
10273         Adjust callers.
10274         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
10275         * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
10276         extract_ops_from_tree instead of 2 operand one.
10277
10278 2016-03-11  Alan Lawrence  <alan.lawrence@arm.com>
10279
10280         PR tree-optimization/70013
10281         * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
10282         for constant-pool entries.
10283
10284 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
10285
10286         PR rtl-optimization/70174
10287         * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
10288         followed by gen_lowpart on force_reg instead of just gen_lowpart.
10289
10290         PR tree-optimization/70169
10291         * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
10292         LABEL_DECL like VAR_DECL.  Emit nothing instead of gcc_unreachable
10293         for unknown codes.
10294
10295 2016-03-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
10296             Jakub Jelinek  <jakub@redhat.com>
10297
10298         PR target/70160
10299         * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
10300         of uninitialized values.
10301
10302 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10303
10304         * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
10305         define_expand.
10306         ("*trunctddd2"): New pattern definition.
10307         ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
10308         TD->DD truncation.
10309
10310 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10311
10312         * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
10313         definitions for BFP and DFP rounding modes.
10314         ("fixuns_truncdddi2", "fixuns_trunctddi2")
10315         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
10316         ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
10317         ("fix_trunctf<mode>2"): Use the new constants instead of magic
10318         numbers.
10319
10320 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10321
10322         * config/s390/constraints.md: Adjust comment.
10323         ("Y"): Adjust comment.  Rename s390_decompose_shift_count to
10324         s390_decompose_addrstyle_without_index.
10325         * config/s390/predicates.md (shift_count_or_setmem_operand):
10326         Rename to setmem_operand.
10327         * config/s390/s390-protos.h
10328         (s390_decompose_shift_count): Rename to
10329         s390_decompose_addrstyle_without_index.
10330         * config/s390/s390.c (s390_decompose_shift_count)
10331         (s390_mem_constraint, print_shift_count_operand)
10332         (print_operand_address, print_operand): Rename
10333         s390_decompose_shift_count to
10334         s390_decompose_addrstyle_without_index and rename
10335         print_shift_count_operand to print_addrstyle_operand troughout the
10336         file.
10337         * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
10338         ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
10339         Rename shift_count_or_setmem_operand to setmem_operand.
10340         * config/s390/vx-builtins.md ("vec_insert<mode>")
10341         ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
10342         nonmemory_operand.
10343
10344 2016-03-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
10345
10346         PR target/70168
10347         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
10348         Handle overlapping retval and newval.
10349
10350 2016-03-10  Nick Clifton  <nickc@redhat.com>
10351
10352         PR target/7044
10353         * config/aarch64/aarch64.c
10354         (aarch64_override_options_after_change_1): When forcing
10355         flag_omit_frame_pointer to be true, use a special value that can
10356         be detected if this function is called again, thus preventing
10357         flag_omit_leaf_frame_pointer from being forced to be false.
10358
10359 2016-03-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10360
10361         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
10362         Set x_flag_omit_leaf_frame_pointer when handling
10363         -momit-leaf-frame-pointer.
10364
10365 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
10366
10367         PR lto/69589
10368         * cgraph.c (cgraph_node::dump): Dump split_part and
10369         indirect_call_target.
10370         * cgraph.h (cgraph_node): Add indirect_call_target flag.
10371         * ipa.c (has_addr_references_p): Cleanup.
10372         (is_indirect_call_target_p): New.
10373         (walk_polymorphic_call_targets): Do not mark virtuals that may be
10374         called indirectly as local.
10375         (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
10376
10377 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
10378
10379         PR ipa/69630
10380         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
10381         on cxa_pure_virtual.
10382
10383 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
10384
10385         PR lto/69589
10386         * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
10387
10388 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
10389
10390         PR lto/69589
10391         * tree.c (need_assembler_name_p): Only record main variant type names.
10392
10393 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
10394
10395         PR target/70113.
10396         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
10397         Always define to 0 or 1.
10398         (TARGET_FIX_ERR_A53_843419): New macro.
10399         * config/aarch64/aarch64-elf-raw.h
10400         (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
10401         * config/aarch64/aarch64-linux.h: Likewise.
10402         * config/aarch64/aarch64.c
10403         (aarch64_override_options_after_change_1): Do not default
10404         aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
10405         843419 is on.
10406         (aarch64_attributes): Handle fix-cortex-a53-843419.
10407         (aarch64_can_inline_p): Likewise.
10408         * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
10409
10410 2016-03-10  Alan Lawrence  <alan.lawrence@arm.com>
10411         Jakub Jelinek <jakub@redhat.com>
10412
10413         * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
10414         * tree.c (array_at_struct_end_p): Do not limit to size of decl for
10415         DECL_COMMONS if flag_unconstrained_commons is set.
10416         * tree-dfa.c (get_ref_base_and_extent): Likewise.
10417         * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
10418         (funconstrained-commons): Document.
10419
10420 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
10421
10422         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
10423         aarch64-fusion-pairs.def and aarch64-tuning-flags.def
10424
10425 2016-03-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
10426
10427         * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
10428         has a proper number of elements.
10429
10430 2016-03-10  Alan Modra  <amodra@gmail.com>
10431
10432         PR rtl-optimization/69195
10433         PR rtl-optimization/47992
10434         * ira.c (recorded_label_ref): Delete.
10435         (update_equiv_regs): Return void.
10436         (indirect_jump_optimize): New function.
10437         (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
10438         before regstat_compute_ri.  Don't rebuild_jump_labels here.
10439         Delete update_regstat.
10440
10441 2016-03-10  Richard Biener  <rguenther@suse.de>
10442
10443         PR tree-optimization/70128
10444         * tree-ssa-structalias.c (set_uids_in_ptset): Set
10445         vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
10446
10447 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
10448
10449         PR tree-optimization/70152
10450         * tree-sra.c (replace_removed_params_ssa_names): Copy over
10451         SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
10452
10453         PR target/70086
10454         * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
10455         instead of gen_sse2_loadlpd.
10456         * config/i386/sse.md (*vec_concatv2df): Rename to...
10457         (vec_concatv2df): ... this.
10458
10459         PR tree-optimization/70127
10460         * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
10461
10462 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
10463
10464         PR c/68473
10465         PR c++/70105
10466         * diagnostic-show-locus.c (compatible_locations_p): New function.
10467         (layout::layout): Sanitize ranges using compatible_locations_p.
10468
10469 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
10470
10471         PR c/68473
10472         PR c++/70105
10473         * diagnostic-show-locus.c (layout_range::layout_range): Replace
10474         location_range param with three const expanded_locations * and a
10475         bool.
10476         (layout::layout): Replace call to
10477         rich_location::lazily_expand_location with get_expanded_location.
10478         Extract the range and perform location expansion here, passing
10479         the results to the layout_range ctor.
10480         * diagnostic.c (source_range::debug): Delete.
10481         * diagnostic.h (diagnostic_expand_location): Reimplement in terms
10482         of rich_location::get_expanded_location.
10483         * gcc-rich-location.c (get_range_for_expr): Delete.
10484         (gcc_rich_location::add_expr): Reimplement to avoid the
10485         rich_location::add_range overload that took a location_range,
10486         passing a location_t instead.
10487
10488 2016-03-09  Richard Biener  <rguenther@suse.de>
10489         Jakub Jelinek  <jakub@redhat.com>
10490
10491         PR tree-optimization/70138
10492         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
10493         Also skip vect_double_reduction_def.
10494
10495 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
10496
10497         PR target/70049
10498         * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
10499         if the operand is "m".
10500
10501 2016-03-09  Nathan Sidwell  <nathan@acm.org>
10502
10503         * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
10504
10505 2016-03-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
10506
10507         * config/i386/i386.c (processor_target_table): Fix cost table
10508         intialization order for znver1.
10509
10510 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
10511
10512         * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
10513         - becuase -> because.
10514         * ipa-reference.c (ignore_module_statics): Likewise.
10515         * cgraph.c (cgraph_node::get_body): Likewise.
10516         * ipa-inline.c (early_inliner): Likewise.
10517         * ipa-devirt.c (types_same_for_odr): Likewise.
10518         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
10519         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
10520
10521 2016-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10522
10523         * tree-ssa-math-opts.c: Fix typo in comment.
10524
10525 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
10526
10527         PR target/70110
10528         * config/i386/i386.c (scalar_chain::make_vector_copies,
10529         scalar_chain::convert_reg): Call end_sequence in between
10530         get_insns and emit_conversion_insns rather than after both
10531         calls.
10532
10533 2016-03-07  Uros Bizjak  <ubizjak@gmail.com>
10534
10535         PR target/70064
10536         * config/i386/i386.h (machine_function): Add
10537         pc_thunk_call_expanded flag.
10538         (ix86_pc_thunk_call_expanded): New define.
10539         * config/i386/i386.md (set_got, set_got_labelled): New expanders.
10540         (*set_got): Rename insn pattern from set_got.
10541         (*set_got_labelled): Rename inst pattern from set_got_labelled.
10542         * config/i386/i386.c (ix86_compute_frame_layout): Use
10543         ix86_pc_thunk_call_expanded to prevent red-zone.
10544
10545 2016-03-07  Martin Jambor  <mjambor@suse.cz>
10546
10547         * hsa.h (hsa_get_ctor_statements): Declare.
10548         (hsa_get_dtor_statements): Likewise.
10549         (hsa_get_kernel_dispatch_type): Likewise.
10550         * hsa.c (hsa_get_ctor_statements): New function.
10551         (hsa_get_dtor_statements): Likewise.
10552         (hsa_get_kernel_dispatch_type): Likewise.
10553         * hsa-brig.c (hsa_cdtor_statements): Removed.
10554         (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
10555         hsa_get_dtor_statements.
10556         * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
10557         (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
10558
10559 2016-03-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>
10560
10561         * config/arm/arm-cores.def (cortex-r8): New.
10562         * config/arm/arm-tables.opt (cortex-r8): Regenerate.
10563         * config/arm/arm-tune.md: Likewise.
10564         * doc/invoke.texi: Add cortex-r8 to list of cpu values.
10565
10566 2016-03-07  Martin Sebor  <msebor@redhat.com>
10567
10568         PR rtl-optimization/19705
10569         * doc/invoke.texi (Options That Control Optimization): Clarify
10570         -fno-branch-count-reg.
10571
10572 2016-02-26  Richard Biener  <rguenther@suse.de>
10573             Jeff Law  <law@redhat.com>
10574
10575         PR tree-optimization/69740
10576         * cfghooks.c (remove_edge): Request loop fixups if we delete
10577         an edge that might turn an irreducible loop into a natural
10578         loop.
10579         * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
10580         Move after definition of loops_state_clear.
10581
10582 2016-03-07  Bin Cheng  <bin.cheng@arm.com>
10583
10584         PR rtl-optimization/69052
10585         * rtlanal.c (commutative_operand_precedence): Set higher precedence
10586         to CONST_WIDE_INT.
10587
10588 2016-03-07  Tom de Vries  <tom@codesourcery.com>
10589
10590         PR tree-optimization/70116
10591         * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
10592         is_tm_ending stmts and ubsan/asan internal functions.
10593         (find_duplicate): Use it.  Don't test is_tm_ending here.
10594
10595 2016-03-07  Richard Biener  <rguenther@suse.de>
10596
10597         PR tree-optimization/70115
10598         * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
10599         (propagate_constants_for_unrolling): Use replace_uses_by.
10600
10601 2016-03-07  Nathan Sidwell  <nathan@codesourcery.com>
10602
10603         PR middle-end/69916
10604         * omp-low.c (struct oacc_loop): Add ifns.
10605         (new_oacc_loop_raw): Initialize it.
10606         (finish_oacc_loop): Clear mask & flags if no ifns.
10607         (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
10608         (oacc_loop_xform_loop): Add ifns arg & adjust.
10609         (oacc_loop_process): Adjust oacc_loop_xform_loop call.
10610
10611 2016-03-07  Richard Henderson  <rth@redhat.com>
10612
10613         PR rtl-opt/70061
10614         * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
10615         (insert_value_copy_on_edge): Likewise.
10616
10617 2016-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10618
10619         * config/arm/arm_neon.h: Show error if using with soft-float ABI.
10620
10621 2016-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10622
10623         PR target/62281
10624         * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
10625
10626 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
10627
10628         * config/i386/i386.c (znver1_cost): Fix Multiply cost.
10629
10630 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
10631
10632         Fix sseimul type attribute.
10633         * config/i386/znver1.md
10634         (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
10635         znver1_sseimul_avx256_load) : Fix the type attribute.
10636         (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
10637         pipe usage and latency.
10638
10639 2016-03-05  Jakub Jelinek  <jakub@redhat.com>
10640
10641         PR c++/70084
10642         * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
10643         of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
10644         to the right type.
10645
10646 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
10647
10648         PR c/69973
10649         * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
10650
10651         PR rtl-optimization/69941
10652         * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
10653         the reg share its mode.
10654
10655 2016-03-04  Jeff Law  <law@redhat.com>
10656
10657         PR tree-optimization/69196
10658         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
10659         If the both SSA_NAMEs are anonymous, then consider them unassociated
10660         and include the PHI in the statement count.
10661
10662 2016-03-05  Tom de Vries  <tom@codesourcery.com>
10663
10664         * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
10665         construct in oacc routine.  Check for oacc region in oacc routine.
10666
10667 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
10668
10669         PR target/70062
10670         * config/i386/i386.c (decide_alg): Add RECUR argument.  Revert
10671         2016-02-22 changes, instead don't recurse if RECUR is already true.
10672         Don't change *dynamic_check if RECUR.  Adjust recursive caller
10673         to pass true to the new argument.
10674         (ix86_expand_set_or_movmem): Adjust decide_alg caller.
10675
10676         PR target/70059
10677         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
10678         <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
10679         fixes.
10680         (vec_set_hi_<mode><mask_name>): Likewise.  Swap VEC_CONCAT operands.
10681
10682 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
10683
10684         PR rtl-optimization/57676
10685         * lra-assigns.c (lra_assign): Guard test for maximum iterations
10686         with flag_checking.
10687
10688 2016-03-04  Ilya Enkovich  <enkovich.gnu@gmail.com>
10689
10690         * tree-vect-patterns.c (search_type_for_mask): Handle
10691         comparison of booleans.
10692
10693 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
10694
10695         * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
10696         Fix @xref usage.
10697
10698         PR debug/69947
10699         * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
10700         all other ops that have dw_val_class_die_ref operands,
10701         and DW_OP_GNU_entry_value.
10702
10703 2016-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10704
10705         PR rtl-optimization/69904
10706         * config/arm/arm.c (arm_cannot_copy_insn_p):
10707         Return true for load-exclusive instructions.
10708
10709 2016-03-03  Jakub Jelinek  <jakub@redhat.com>
10710
10711         PR target/70021
10712         * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
10713         argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
10714         the pattern no matter if it is used just by non-pattern, pattern
10715         or mix thereof.
10716         (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
10717         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
10718         oprnd1 def_stmt is in pattern, don't look through it.
10719
10720 2016-03-03  Marek Polacek  <polacek@redhat.com>
10721
10722         PR middle-end/70050
10723         * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
10724
10725 2016-03-03  Martin Liska  <mliska@suse.cz>
10726
10727         PR tree-optimization/70043
10728         * tree-vect-loop.c (optimize_mask_stores): Move iterator to
10729         previous statement if we see a debug statement.
10730
10731 2016-03-03  Richard Biener  <rguenther@suse.de>
10732
10733         PR tree-optimization/55936
10734         * tree-vrp.c (compare_name_with_value): Add use_equiv_p
10735         parameter and guard unsafe equivalence use.
10736         (vrp_evaluate_conditional_warnv_with_ops): Always use
10737         safe equivalences but not via the quadratic compare_names
10738         helper.
10739
10740 2016-03-03  Michael Collison  <michael.collison@linaro.org>
10741
10742         PR target/70014
10743         * config/arm/arm.md (*subsi3_carryin_const): Change predicate
10744         for operand 1 to s_register_operand. Change predicate for operand
10745         2 to arm_not_immediate_operand.
10746
10747 2016-03-02  H.J. Lu  <hongjiu.lu@intel.com>
10748
10749         * doc/tm.texi: Regenerated.
10750
10751 2016-03-02  Richard Henderson  <rth@redhat.com>
10752
10753         PR rtl-opt/67145
10754         * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
10755         simplification when all args are positive non-fixed registers.
10756
10757 2016-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
10758
10759         * target.def (lra_p): Specify that new ports should use LRA.
10760
10761 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
10762
10763         PR libgomp/69555
10764         * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
10765         gimplify_type_sizes the type they refer to.
10766         (omp_notice_variable): Handle reference vars to VLAs.
10767         * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
10768         reference to VLA decls in the second pass instead of first pass.
10769
10770 2016-03-02  Tom de Vries  <tom@codesourcery.com>
10771
10772         PR tree-optimization/68659
10773         * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
10774         new_expr == NULL_TREE.
10775         (get_new_name): Handle ADDR_EXPR.
10776
10777 2016-03-02  Bin Cheng  <bin.cheng@arm.com>
10778
10779         PR rtl-optimization/69052
10780         * loop-invariant.c (canonicalize_address): New function.
10781         (inv_can_prop_to_addr_use): Check validity of address expression
10782         which is canonicalized by above function.
10783
10784 2016-03-02  Alan Modra  <amodra@gmail.com>
10785
10786         PR ipa/69990
10787         * ipa-icf.c (sem_variable::merge): Do not merge an alias with
10788         larger alignment.
10789
10790 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
10791
10792         PR target/70028
10793         * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
10794         (*movhi_internal): Put mask moves from and to memory separately
10795         from moves from/to GPRs.
10796
10797 2016-03-02  Richard Biener  <rguenther@suse.de>
10798
10799         * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
10800         GENERIC expressions in GIMPLE.
10801
10802 2016-03-02  Richard Biener  <rguenther@suse.de>
10803
10804         * config/i386/i386.c (type_natural_mode): Fix typo.
10805
10806 2016-03-02  Nick Clifton  <nickc@redhat.com>
10807
10808         * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
10809
10810 2016-03-02  Richard Biener  <rguenther@suse.de>
10811             Uros Bizjak  <ubizjak@gmail.com>
10812
10813         PR target/67278
10814         * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
10815
10816 2016-03-02  Richard Biener  <rguenther@suse.de>
10817
10818         PR middle-end/67278
10819         * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
10820
10821 2016-03-02  Marek Polacek  <polacek@redhat.com>
10822
10823         PR c/67854
10824         * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
10825         "is promoted to" warning.
10826
10827 2016-03-01  DJ Delorie  <dj@redhat.com>
10828
10829         * config.gcc: Deprecate mep-*.
10830
10831 2016-03-01  Vladimir Makarov  <vmakarov@redhat.com>
10832
10833         PR middle-end/70025
10834         * lra-constraints.c (regno_val_use_in): New.
10835         (match_reload): Use it instead of regno_use_in.
10836
10837 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
10838
10839         PR rtl-optimization/70007
10840         * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
10841         references present in REG_EQUAL notes attached to non-SET patterns.
10842
10843 2016-03-01  Jeff Law  <law@redhat.com>
10844
10845         PR tree-optimization/69196
10846         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
10847         Appropriately clamp the number of statements to copy when the
10848         thread path does not traverse a loop backedge.
10849
10850         PR tree-optimization/69196
10851         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
10852         Do count some PHIs in the thread path against the insn count.  Decrease
10853         final statement count by one as the control statement in the last
10854         block will get removed.  Remove special cased code for handling PHIs
10855         in the last block.
10856
10857 2016-03-01  Uros Bizjak  <ubizjak@gmail.com>
10858
10859         PR target/70027
10860         * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
10861         asm dialect alternatives to explicit GOTPCREL calls.
10862
10863 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
10864
10865         PR ada/70017
10866         * ira.c (do_reload): Issue warning for generic stack checking here...
10867         * reload1.c (reload): ...instead of here and streamline it.
10868
10869 2016-03-01  Nick Clifton  <nickc@redhat.com>
10870
10871         * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
10872
10873 2016-03-01  Richard Biener  <rguenther@suse.de>
10874
10875         PR tree-optimization/69983
10876         * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
10877         types and fall back to operand_equal_p.
10878
10879 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10880
10881         Revert
10882         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10883
10884         * config/s390/constraints.md ("jm8"): New constraint.
10885         * config/s390/predicates.md ("const_int_8bitset_operand"): New
10886         predicate.
10887         * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
10888         into ...
10889         ("*setmem_long<setmem_and>"): New pattern.
10890         ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
10891         into ...
10892         ("*setmem_long_31z<setmem_and>"): New pattern.
10893         * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
10894         New substitution rules with the required attributes.
10895
10896
10897 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10898
10899         Revert
10900         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10901
10902         * gensupport.c (process_substs_on_one_elem): Split loop to
10903         complete mark_operands_used_in_match_dup on all expressions in the
10904         vector first.
10905         (adjust_operands_numbers): Inline into process_substs_on_one_elem
10906         and remove function.
10907
10908 2016-03-01  Richard Biener  <rguenther@suse.de>
10909
10910         PR middle-end/70022
10911         * fold-const.c (fold_indirect_ref_1): Fix range checking for
10912         vector BIT_FIELD_REF extract.
10913
10914 2016-03-01  Richard Biener  <rguenther@suse.de>
10915
10916         PR tree-optimization/69994
10917         * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
10918
10919 2016-03-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
10920
10921         PR tree-optimization/69956
10922         * tree-vect-stmts.c (supportable_widening_operation): Support
10923         multi-step conversion of boolean vectors.
10924         (supportable_narrowing_operation): Likewise.
10925
10926 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10927
10928         * config/s390/s390.c (s390_decompose_address): Don't accept SImode
10929         anymore.
10930
10931 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10932
10933         * config/s390/subst.md (DSI_VI): New mode iterator.
10934         ("addr_style_op_subst"): Use DSI_VI instead of DSI.
10935         * config/s390/vector.md ("vec_set<mode>"): Move expander before
10936         the insn definition.
10937         ("*vec_set<mode>"): Change predicate and add alternative to
10938         support only either register or const_int operands as element
10939         selector.
10940         ("*vec_set<mode>_plus"): New pattern to support reg + const_int
10941         operands.
10942         ("vec_extract<mode>"): New expander.
10943         ("*vec_extract<mode>"): New insn definition supporting reg and
10944         const_int element selectors.
10945         ("*vec_extract<mode>_plus"): New insn definition supporting
10946         reg+const_int element selectors.
10947         ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
10948         following expander+insn definition.
10949         ("<vec_shifts_name><mode>3"): New expander.
10950         ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
10951
10952 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10953
10954         * config/s390/s390.md ("*tabort_1"): Change predicate to
10955         nonmemory_operand.  Add a second alternative to cover
10956         register as well as const int operands.
10957         ("*tabort_1_plus"): New pattern definition.
10958
10959 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10960
10961         * config/s390/s390.md ("*ashrdi3_cc_31")
10962         ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
10963         ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
10964         Merge insn definitions into ...
10965         ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
10966         New pattern definition.
10967         ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
10968         ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
10969         ("*ashr<mode>3_and"): Merge insn definitions into ...
10970         ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
10971         New pattern definition.
10972         * config/s390/subst.md ("addr_style_op_cc_subst")
10973         ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
10974         substitutions patterns plus attributes.
10975         Add ashiftrt to SUBST iterator.
10976
10977 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10978
10979         * config/s390/s390.md ("<shift><mode>3"): Change predicate of
10980         op2 to nonmemory_operand.
10981         ("*<shift>di3_31", "*<shift>di3_31_and"):
10982         Merge into single pattern definition ...
10983         ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
10984         ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
10985         pattern definition ...
10986         ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
10987         * config/s390/subst.md: Add ashift and lshiftrt to SUBST
10988         iterator.
10989
10990 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
10991
10992         * config/s390/predicates.md (const_int_6bitset_operand): New
10993         predicate.
10994         * config/s390/s390.md: Include subst.md.
10995         ("rotl<mode>3"): New expander.
10996         ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
10997         ...
10998         ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
10999         * config/s390/subst.md: New file.
11000
11001 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11002
11003         * config/s390/s390.md ("op_type", "atype", "length" attributes):
11004         Remove RRR type.  It doesn't really exist.
11005         ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
11006         attributes.
11007         ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
11008         ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
11009         ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
11010         ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
11011         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
11012         ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
11013         `enabled' attribute.
11014
11015 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11016
11017         * gensupport.c (process_substs_on_one_elem): Split loop to
11018         complete mark_operands_used_in_match_dup on all expressions in the
11019         vector first.
11020         (adjust_operands_numbers): Inline into process_substs_on_one_elem
11021         and remove function.
11022
11023 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
11024
11025         PR target/69706
11026         * config/sparc/sparc.c (NWORDS_UP): Rename to...
11027         (CEIL_NWORDS): ...this.  Use CEIL macro.
11028         (compute_fp_layout): Adjust to above renaming.
11029         (function_arg_union_value): Likewise.
11030         (sparc_arg_partial_bytes): Likewise.
11031         (sparc_function_arg_advance): Likewise.
11032
11033 2016-02-29  Jeff Law  <law@redhat.com>
11034
11035         PR tree-optimization/70005
11036         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
11037         where an object with a boolean range is compared against a value
11038         outside [0..1].
11039
11040         PR tree-optimization/69999
11041         * gimple-ssa-split-paths.c (split_paths): When duplicating a block
11042         with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
11043         loop cleanups.
11044
11045 2016-02-29  Richard Biener  <rguenther@suse.de>
11046
11047         PR tree-optimization/69994
11048         * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
11049         (get_unary_op): Look through nop conversions.
11050         (ops_equal_values_p): New function, look for equality diregarding
11051         nop conversions.
11052         (eliminate_plus_minus_pair): Use ops_equal_values_p
11053         (repropagate_negates): Do not use get_unary_op here.
11054
11055 2016-02-29  Martin Liska  <mliska@suse.cz>
11056
11057         * system.h: Poison ENABLE_CHECKING macro.
11058
11059 2016-02-29  Martin Liska  <mliska@suse.cz>
11060
11061         * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
11062         is presented in dump flags.
11063         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
11064         (hsa_regalloc): Likewise.
11065
11066 2016-02-19  Richard Biener  <rguenther@suse.de>
11067
11068         PR tree-optimization/69980
11069         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
11070         permutation of those we need to keep.
11071
11072 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
11073
11074         PR target/69706
11075         * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
11076         (NWORDS_UP): ...this
11077         (init_cumulative_args): Minor tweaks.
11078         (sparc_promote_function_mode): Likewise.
11079         (scan_record_type): Delete.
11080         (traverse_record_type): New function template.
11081         (classify_data_t): New structure type.
11082         (classify_registers): New inline function.
11083         (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
11084         exhausted.  Instantiate traverse_record_type on classify_registers and
11085         deal with the case of a structure passed in slot #15 with no FP field
11086         in the first word.
11087         (assign_data_t): New structure type.
11088         (compute_int_layout): New static function.
11089         (compute_fp_layout): Likewise.
11090         (count_registers): New inline function.
11091         (assign_int_registers): New static function.
11092         (assign_fp_registers): Likewise.
11093         (assign_registers): New inline function.
11094         (function_arg_record_value_1): Delete.
11095         (function_arg_record_value_2): Likewise.
11096         (function_arg_record_value_3): Likewise.
11097         (function_arg_record_value): Adjust to above changes.  Instantiate
11098         traverse_record_type on count_registers to first count the number of
11099         registers to be used and then on assign_registers to assign them.
11100         (function_arg_union_value): Adjust to above renaming.
11101         (sparc_function_arg_1); Minor tweaks.  Remove commented out code.
11102         (sparc_arg_partial_bytes): Adjust to above renaming.  Deal with the
11103         case of a structure passed in slot #15
11104         (sparc_function_arg_advance): Likewise.
11105         (function_arg_padding): Minor tweak.
11106
11107 2016-02-29  Richard Biener  <rguenther@suse.de>
11108
11109         PR tree-optimization/69720
11110         * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
11111         the adjustment_def path for possibly vectorized defs.
11112         (vect_create_epilog_for_reduction): Handle vectorized initial
11113         defs properly.
11114
11115 2016-02-28  Eric Botcazou  <ebotcazou@adacore.com>
11116
11117         * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
11118
11119 2016-02-27  Jeff Law  <law@redhat.com>
11120
11121         Revert
11122         2016-02-26  Richard Biener  <rguenther@suse.de>
11123                     Jeff Law  <law@redhat.com>
11124
11125         PR tree-optimization/69740
11126         * cfghooks.c (remove_edge): Request loop fixups if we delete
11127         an edge that might turn an irreducible loop into a natural
11128         loop.
11129
11130 2016-02-27  Jakub Jelinek  <jakub@redhat.com>
11131
11132         PR rtl-optimization/69896
11133         * tree-vect-generic.c (get_compute_type): Avoid single element
11134         vector types.
11135
11136 2016-02-26  Evandro Menezes  <e.menezes@samsung.com>
11137
11138         Rename the AArch64 tuning option and related functions to enable the
11139         Newton series for the reciprocal square root to reflect its
11140         approximative characteristic.
11141
11142         * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
11143         function to "aarch64_emit_approx_rsqrt".
11144         * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
11145         AARCH64_EXTRA_TUNE_APPROX_RSQRT.
11146         * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
11147         (xgene1_tunings): Likewise.
11148         (use_rsqrt_p): Likewise.
11149         (aarch64_emit_swrsqrt): Use new function name.
11150         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
11151         * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
11152         text explaining this option.
11153         * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
11154
11155 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
11156
11157         PR target/69969
11158         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
11159         complain about -mallow-movmisalign without -mvsx if
11160         TARGET_ALLOW_MOVMISALIGN was not set explicitly.
11161
11162 2016-02-26  Joel Sherrill  <joel@rtems.org>
11163
11164         * config.gcc: Add x86_64-*-rtems*.
11165         * config/i386/rtems-64.h: New file.
11166
11167 2016-02-26  Joel Sherrill  <joel@rtems.org>
11168
11169         * config.gcc: Add aarch64-*-rtems*.
11170         * config/aarch64/rtems.h: New file.
11171
11172 2016-02-26  Segher Boessenkool  <segher@kernel.crashing.org>
11173
11174         PR target/69946
11175         * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
11176         shift amount using %h.  Add comment.
11177
11178 2016-02-26  Richard Biener  <rguenther@suse.de>
11179             Jeff Law  <law@redhat.com>
11180
11181         PR tree-optimization/69740
11182         * cfghooks.c (remove_edge): Request loop fixups if we delete
11183         an edge that might turn an irreducible loop into a natural
11184         loop.
11185
11186 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11187
11188         PR middle-end/69920
11189         * tree-sra.c (sra_modify_assign): Do not remove loads of
11190         uninitialized aggregates to SSA_NAMEs.
11191
11192 2016-02-26  Richard Henderson  <rth@redhat.com>
11193
11194         PR target/69709
11195         * config/s390/s390.md (risbg and risbgn splitters): Allocate new
11196         pseudo in case the target rtx matches the source of the left
11197         shift.
11198
11199 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11200
11201         PR hsa/69568
11202         * hsa.h (hsa_type_packed_p): Declare.
11203         * hsa.c (hsa_type_packed_p): New function.
11204         * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
11205         loads.
11206         (gen_hsa_insns_for_store): Use hsa_type_packed_p.
11207         * hsa-brig.c (emit_basic_insn): Likewise.
11208
11209 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11210
11211         pr hsa/69674
11212         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
11213         pointers.
11214         (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
11215
11216 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11217
11218         * hsa.h (is_a_helper): New overload for hsa_op_immed for
11219         hsa_op_with_type operands.
11220         (hsa_unsigned_type_for_type): Declare.
11221         * hsa.c (hsa_unsigned_type_for_type): New function.
11222         * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
11223         (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
11224         the finalizer.  Do not emit extra move.
11225
11226 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11227
11228         * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
11229         atomic operations in private segment.
11230
11231 2016-02-26  Martin Jambor  <mjambor@suse.cz>
11232
11233         * omp-low.c (grid_find_ungridifiable_statement): Store problematic
11234         statements to wi->info.  Also disallow omp simd constructs.
11235         (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
11236         for not gridifying.  Dump special string for omp_for.
11237
11238 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11239
11240         PR target/69245
11241         * config/aarch64/aarch64.c (aarch64_set_current_function):
11242         Save/restore target globals when switching to
11243         target_option_default_node.
11244
11245 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11246
11247         PR target/69613
11248         * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
11249         Return 0 if !SHIFT_COUNT_TRUNCATED.
11250
11251 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
11252             Eric Botcazou  <ebotcazou@adacore.com>
11253
11254         PR rtl-optimization/69891
11255         * dse.c (scan_insn): If we can't figure out memset arguments
11256         or they are non-constant, call clear_rhs_from_active_local_stores.
11257
11258 2016-02-26  Martin Liska  <mliska@suse.cz>
11259
11260         * doc/extend.texi: Mention clog10, clog10f an clog10l
11261         in Builtins section.
11262
11263 2016-02-26  Martin Liska  <mliska@suse.cz>
11264
11265         * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
11266         CHECKING_P.
11267         (resolve_args_picking_1): Likewise.
11268         * dwarf2out.h (struct GTY): Likewise.
11269
11270 2016-02-26  Martin Liska  <mliska@suse.cz>
11271
11272         * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
11273         with flag_checking.
11274         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
11275
11276 2016-02-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
11277             Martin Liska  <mliska@suse.cz>
11278
11279         * doc/install.texi: Mention --enable-valgrind-annotations.
11280
11281 2016-02-26  Richard Biener  <rguenther@suse.de>
11282
11283         PR tree-optimization/69551
11284         * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
11285         looking through aliases adjust DECL_PT_UID to refer to the
11286         ultimate alias target.
11287
11288 2016-02-25  Martin Liska  <mliska@suse.cz>
11289
11290         PR middle-end/69919
11291         * alloc-pool.c (after_memory_report): New variable.
11292         * alloc-pool.h (base_pool_allocator ::release): Do not use
11293         the infrastructure if after_memory_report.
11294         * toplev.c (toplev::main): Mark after memory report.
11295
11296 2016-02-25  Richard Biener  <rguenther@suse.de>
11297
11298         PR tree-optimization/48795
11299         * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
11300
11301 2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>
11302
11303         PR driver/68463
11304         * config/gnu-user.h (CRTOFFLOADBEGIN): Define.  Add crtoffloadbegin.o if
11305         offloading is enabled and -fopenacc or -fopenmp is specified.
11306         (CRTOFFLOADEND): Likewise.
11307         (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
11308         (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
11309         * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
11310         (offload_objects_file_name): New static var.
11311         (tool_cleanup): Remove offload_objects_file_name file.
11312         (find_offloadbeginend): Replace with ...
11313         (find_crtoffloadtable): ... this.
11314         (run_gcc): Remove offload_argc and offload_argv.
11315         Get offload_objects_file_name from -foffload-objects=... option.
11316         Read names of object files with offload from this file, pass them to
11317         compile_images_for_offload_targets.  Don't call find_offloadbeginend and
11318         don't pass offloadbegin and offloadend to the linker.  Don't pass
11319         offload non-LTO files to the linker, because now they're not claimed.
11320
11321 2016-02-25  Jan Hubicka  <hubicka@ucw.cz>
11322
11323         PR ipa/69630
11324         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
11325         on builtin_unreachable.
11326
11327 2016-02-25  Jakub Jelinek  <jakub@redhat.com>
11328
11329         PR rtl-optimization/69896
11330         * regcprop.c: Include cfgrtl.h.
11331         (copyprop_hardreg_forward_1): If noop_p insn uses narrower
11332         than remembered mode, either delete it (if noop_move_p), or
11333         treat like copy_p but not noop_p instruction.
11334
11335 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
11336
11337         PR debug/69705
11338         * dwarf2out.c (gen_variable_die): Work around buggy LTO
11339         - allow NULL decl for Fortran DW_TAG_common_block variables.
11340
11341 2016-02-24  Jason Merrill  <jason@redhat.com>
11342
11343         * common.opt (flifetime-dse): Add -flifetime-dse=1.
11344
11345 2016-02-24  Richard Biener  <rguenther@suse.de>
11346             Jakub Jelinek  <jakub@redhat.com>
11347
11348         PR middle-end/69760
11349         * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
11350         conditionally executed ops to well-defined overflow behavior.
11351
11352 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
11353
11354         PR middle-end/69915
11355         * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
11356         elements.
11357
11358 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11359
11360         PR rtl-optimization/69886
11361         * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
11362         argument.  Use it when checking validity of set instructions.
11363         (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
11364         (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
11365         callsite.
11366         * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
11367         * store-motion.c (find_moveable_store): Update
11368         can_assign_to_reg_without_clobbers_p callsite.
11369
11370 2016-02-24  Richard Biener  <rguenther@suse.de>
11371
11372         PR middle-end/68963
11373         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
11374         bogus check.
11375         (record_nonwrapping_iv): Do not fall back to the low/high bound
11376         for non-constant IV bases if the stmt is not always executed.
11377
11378 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11379
11380         * config/arm/arm-cores.def (cortex-a32): New entry.
11381         * config/arm/arm-tables.opt: Regenerate.
11382         * config/arm/arm-tune.md: Regenerate.
11383         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
11384         * config/arm/t-aprofile: Handle mcpu=cortex-a32.
11385         * doc/invoke.texi (ARM Options): Document cortex-a32 as value
11386         for -mcpu and -mtune.
11387
11388 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11389
11390         PR target/69875
11391         * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
11392         * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
11393         * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
11394         (atomic_loaddi_1): Delete.
11395         (atomic_loaddi): Rewrite expander using the above changes.
11396
11397 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
11398
11399         PR c/69918
11400         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
11401         2 to 3.
11402
11403 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
11404             Richard Biener  <rguenth@suse.de>
11405
11406         PR middle-end/69909
11407         * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
11408         set_mem_attributes if tem is SSA_NAME which got expanded
11409         as a MEM.
11410
11411 2016-02-24  Richard Biener  <rguenther@suse.de>
11412
11413         PR tree-optimization/69907
11414         * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
11415         end of permutations for BB vectorization.
11416
11417 2016-02-24  Christian Bruel  <christian.bruel@st.com>
11418
11419         * config/arm/arm-c.c (arm_option_override): Initialize
11420         target_option_current_node.
11421         * config/arm/arm.c (arm_pragma_target_parse): Replace
11422         build_target_option_node call by target_option_current_node.
11423         Set target_option_current_node.
11424         Fix comments.
11425
11426 2016-02-23  David Edelsohn  <dje.gcc@gmail.com>
11427
11428         PR target/69810
11429         * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
11430         define_insn_and_split to define_insn.
11431         (zero_extendqi<mode>2_dot2): Same.
11432         (extendqi<mode>2_dot): Same.
11433         (extendqi<mode>2_dot2): Same.
11434
11435 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
11436
11437         * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
11438         and add bypass for AES{D,E} and AESMC pairs.
11439         * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
11440         and AESMC pairs.
11441
11442 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
11443
11444         * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
11445         series for reciprocal square root in Exynos M1.
11446
11447 2016-02-23  Martin Sebor  <msebor@redhat.com>
11448
11449         PR c/69759
11450         * doc/extend.texi (Other Builtins): Document __builtin_alloca and
11451         __builtin_alloca_with_align.
11452
11453 2016-02-23  Richard Henderson  <rth@redhat.com>
11454
11455         * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
11456         (ix86_register_pragmas): Remove __seg_tls.
11457         * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
11458         * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
11459         (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
11460         (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
11461         (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
11462         * doc/extend.texi (__seg_tls): Remove item.
11463
11464 2016-02-23  Richard Biener  <rguenther@suse.de>
11465
11466         * alloc-pool.h (struct allocation_object): Make id member
11467         conditional on CHECKING_P again.
11468         (get_instance): Adjust.
11469         (base_pool_allocator): Likewise.
11470
11471 2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>
11472
11473         * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
11474         (parallelize_loops): In OpenACC kernels mode, set n_threads to
11475         zero.
11476         (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
11477         flag_openacc.
11478         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
11479
11480 2016-02-23  Richard Biener  <rguenther@suse.de>
11481
11482         * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
11483         * bitmap.h (struct bitmap_usage): Likewise.
11484         (bitmap_move): Declare.
11485         * bitmap.c (register_overhead): Take size_t argument.
11486         (bitmap_move): New function.
11487         * df-problems.c (df_rd_transfer_function): Use bitmap_move
11488         to properly account overhead.
11489         * tree.c (free_node): Use tree_size.
11490
11491 2016-02-23  Jakub Jelinek  <jakub@redhat.com>
11492
11493         PR c++/69902
11494         * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
11495         when inverting comparison.
11496
11497         PR c/69900
11498         * common.opt (Wunreachable-code): Add Warning flag.
11499
11500 2016-02-23  Mark Wielaard  <mjw@redhat.com>
11501             Jakub Jelinek  <jakub@redhat.com>
11502
11503         PR c/69911
11504         * cgraphunit.c (check_global_declaration): Check main_input_filename
11505         and DECL_SOURCE_FILE are not NULL.
11506
11507 2016-02-23  Martin Jambor  <mjambor@suse.cz>
11508
11509         PR tree-optimization/69666
11510         * tree-sra.c (sra_modify_assign): Do not attempt to create
11511         default_def replacements for unscalarizable regions.
11512
11513 2016-02-20  Mark Wielaard  <mjw@redhat.com>
11514
11515         PR c/28901
11516         * cgraphunit.c (check_global_declaration): Check level of
11517         warn_unused_const_variable and main_input_filename.
11518         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
11519         (-Wunused-variable): For C implies -Wunused-const-variable=1.
11520         (-Wunused-const-variable): Explain levels 1 and 2.
11521
11522 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
11523
11524         PR target/69888
11525         * config/i386/i386.c (decide_alg): Ensure we don't recurse with
11526         identical arguments.  Formatting and spelling fixes.
11527
11528         PR target/69885
11529         * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
11530         be specified.
11531
11532         PR target/69894
11533         PR target/69895
11534         * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
11535         and m68k-devices.def.
11536         * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
11537         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
11538
11539 2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>
11540
11541         * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
11542         and HImode registers.
11543
11544 2016-02-22  Richard Biener  <rguenther@suse.de>
11545
11546         PR tree-optimization/69882
11547         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
11548         preserve permutations present because of gaps.
11549         (vect_supported_load_permutation_p): Always continue checking
11550         permutations after vect_attempt_slp_rearrange_stmts.
11551
11552 2016-02-22  Bin Cheng  <bin.cheng@arm.com>
11553
11554         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
11555         min_profitable_estimate, rather than min_profitable_iters.
11556
11557 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
11558
11559         PR target/69885
11560         * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
11561         SImode for last match_operand.
11562
11563 2016-02-22  Martin Liska  <mliska@suse.cz>
11564
11565         * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
11566         return bitsize - 1 as the return value.
11567
11568 2016-02-22  Oleg Endo  <olegendo@gcc.gnu.org>
11569
11570         PR target/69806
11571         PR target/54089
11572         * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
11573         Handle negative shift counts.
11574         * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
11575         force_reg on the shift constant.
11576         (lshrsi3): Likewise.  Expand into lshrsi3_n* instead of lshrsi3_d.
11577         (lshrsi3_d): Handle negative shift counts.
11578
11579 2016-02-22  Richard Biener  <rguenther@suse.de>
11580             Tom de Vries  <tom@codesourcery.com>
11581
11582         * graph.c: Include dumpfile.h.
11583         (print_graph_cfg): Split into three overloads.
11584         * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
11585
11586 2016-02-22  Tom de Vries  <tom@codesourcery.com>
11587
11588         * gdbhooks.py (class DumpFn): Add and instantiate, adding command
11589         dump-fn.
11590
11591 2016-02-22  Richard Biener  <rguenther@suse.de>
11592
11593         PR ipa/37448
11594         * ipa-inline-transform.c (inline_call): When not updating
11595         overall summaries adjust self size by the growth estimate.
11596         * ipa-inline.c (inline_to_all_callers_1): Add to the callers
11597         hash-set, do not update overall summaries here.  Renamed from ...
11598         (inline_to_all_callers): ... this which is now wrapping the
11599         above and performing delayed overall summary update.
11600         (early_inline_small_functions): Delay updating of the overall
11601         summary.
11602
11603 2016-02-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
11604
11605         * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
11606         variable.
11607
11608 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
11609
11610         PR driver/69805
11611         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
11612         :%* in %:gt() argument.
11613         (greater_than_spec_func): Adjust for expecting only numbers,
11614         if there are more than two numbers, compare the last two.
11615
11616 2016-02-19  Jonathan Wakely  <jwakely@redhat.com>
11617
11618         * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
11619         -Wnarrowing with -std.
11620
11621 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
11622
11623         PR c++/69851
11624         * expr.c (store_field): Don't use bit-field path if exp is
11625         COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
11626         different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
11627         and the assignment can be performed by bitwise copy.  Formatting
11628         fix.
11629
11630         PR middle-end/69838
11631         * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
11632         call copy_reg_eh_region_note_forward on before and/or after sequences
11633         and remove note from insn if it no longer can throw.
11634
11635         PR target/69820
11636         * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
11637         if TARGET_AVX512BW.
11638
11639 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11640
11641         * config/s390/vector.md: Add missing commutative operand markers
11642         to the patterns which qualify for one.
11643         * config/s390/vx-builtins.md: Likewise.
11644
11645 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11646
11647         * config/s390/vector.md (VI, VI_QHS): Add single element vector
11648         types to mode iterators.
11649         (vec_double): ... and mode attribute.
11650         * config/s390/vx-builtins.md (non_vec_int): Likewise.
11651
11652 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11653
11654         * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
11655         Change the predicate of op2 from nonimmediate to general and let
11656         reload fix it if necessary.
11657
11658 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11659
11660         * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
11661
11662 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11663
11664         * config/s390/s390.c (s390_expand_vcond): Use the compare operand
11665         mode.
11666
11667 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11668
11669         * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
11670         * config/s390/s390.c (s390_expand_vec_movstr): New function.
11671         * config/s390/s390.md ("movstr<P:mode>"): Call
11672         s390_expand_vec_movstr.
11673
11674 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11675
11676         * config/s390/s390.md: Add missing output modifier for operand 1
11677         to print it as address properly.
11678
11679 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11680
11681         * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
11682         * config/s390/2964.md: New file.
11683         * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
11684         of insn grouping attributes depending on the CPU level.
11685         (s390_get_unit_mask): New function.
11686         (s390_sched_score): Remove the OOO from the scheduling macros.
11687         Add loop to calculate a score for the instruction mix.
11688         (s390_sched_reorder): Likewise plus improve debug output.
11689         (s390_sched_variable_issue): Rename macros as above.  Calculate
11690         the unit distances after actually scheduling an insn.  Improve
11691         debug output.
11692         (s390_sched_init): Clear last_scheduled_unit_distance array.
11693         * config/s390/s390.md: Include 2964.md.
11694
11695 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
11696
11697         PR target/69671
11698         * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
11699         *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
11700         *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
11701         *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
11702         *avx512f_<code>v8div16qi2_mask_1): New insns.
11703
11704 2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
11705
11706         PR target/68404
11707         * config/rs6000/predicates.md (fusion_gpr_addis): Revert
11708         2016-02-09 change.
11709
11710         * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
11711         earlyclobber from target.  Use wF constraint for fused memory
11712         address.
11713         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
11714
11715 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
11716             Martin Liska  <mliska@suse.cz>
11717
11718         PR sanitizer/69863
11719         * cfgexpand.c (asan_sanitize_stack_p): New function.
11720         (partition_stack_vars): Use the function.
11721         (expand_stack_vars): Likewise.
11722         (defer_stack_allocation): Likewise.
11723         (expand_used_vars): Likewise.
11724
11725 2016-02-18  Richard Biener  <rguenther@suse.de>
11726
11727         PR middle-end/69553
11728         * fold-const.c (operand_equal_p): Properly compare offsets for
11729         IMAGPART_EXPR and ARRAY_REF.
11730
11731 2016-02-18  Nick Clifton  <nickc@redhat.com>
11732
11733         PR target/62254
11734         PR target/69610
11735         * config/arm/arm.c (arm_option_override_internal): Disable
11736         interworking if the target does not support thumb instructions.
11737         (arm_reload_in_hi): Handle the case where a register to register
11738         move needs reloading because there is no simple pattern to handle
11739         it.
11740         (arm_reload_out_hi): Likewise.
11741
11742 2016-02-18  Richard Biener  <rguenther@suse.de>
11743
11744         PR middle-end/69854
11745         * match.pd: Don't use fold_binary or fold_unary for folding
11746         constants.
11747
11748 2016-02-17  Jakub Jelinek  <jakub@redhat.com>
11749
11750         PR c++/69850
11751         * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
11752         on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
11753         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
11754         warn on gimple_no_warning_p statements.
11755
11756 2016-02-17  Jonathan Wakely  <jwakely@redhat.com>
11757
11758         * doc/extend.texi (C++ Attributes): Correct description of
11759         warn_unused type attribute.
11760
11761 2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
11762
11763         * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
11764         correct instruction.
11765
11766 2016-02-17  Richard Biener  <rguenther@suse.de>
11767
11768         PR rtl-optimization/69609
11769         * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
11770         (find_traces_1_round): When ending a trace update cached priority
11771         of successors.
11772         (bb_to_key): Use cached priority when available.
11773         (copy_bb): Initialize cached priority.
11774         (reorder_basic_blocks_software_trace_cache): Likewise.
11775
11776 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11777
11778         PR target/69161
11779         * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
11780         New predicate.
11781         (aarch64_comparison_operator): Break overly long line into two.
11782         (aarch64_comparison_operation): Likewise.
11783         * config/aarch64/aarch64.md (cstorecc4): Use
11784         aarch64_comparison_operator_mode instead of
11785         aarch64_comparison_operator.
11786         (cstore<mode>4): Likewise.
11787         (aarch64_cstore<mode>): Likewise.
11788         (*cstoresi_insn_uxtw): Likewise.
11789         (cstore<mode>_neg): Likewise.
11790         (*cstoresi_neg_uxtw): Likewise.
11791
11792 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11793
11794         PR target/69161
11795         * config/arm/predicates.md (arm_comparison_operator_mode):
11796         New predicate.
11797         * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
11798         instead of arm_comparison_operator.
11799         (*mov_negscc): Likewise.
11800         (*mov_notscc): Likewise.
11801         * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
11802         (*thumb2_mov_negscc): Likewise.
11803         (*thumb2_mov_negscc_strict_it): Likewise.
11804         (*thumb2_mov_notscc): Likewise.
11805         (*thumb2_mov_notscc_strict_it): Likewise.
11806
11807 2016-02-17  Wilco Dijkstra  <wdijkstr@arm.com>
11808
11809         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
11810         Add missing return.
11811
11812 2016-02-17  Eric Botcazou  <ebotcazou@adacore.com>
11813
11814         * config/visium/visium.c (machine_libfunc_index): New enum.
11815         (machine_libfuncs): New structure.
11816         (visium_libfuncs): New static variable.
11817         (TARGET_INIT_LIBFUNCS): Define to...
11818         (visium_init_libfuncs): ...this.  New function.
11819         (expand_block_move_4): Use the appropriate libfunc.
11820         (expand_block_move_2): Likewise.
11821         (expand_block_move_1): Likewise.
11822         (expand_block_set_4): Likewise.
11823         (expand_block_set_2): Likewise.
11824         (expand_block_set_1): Likewise.
11825         (visium_trampoline_init): Likewise.
11826
11827 2016-02-17  Nick Clifton  <nickc@redhat.com>
11828
11829         * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
11830         TI's devices.csv file as of March 2016.
11831
11832 2016-02-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
11833
11834         PR Target/48344
11835         * opts-global.c (handle_common_deferred_options): Introduce and
11836         initialize two global variables to remember command-line options
11837         specifying a stack-limiting register.
11838         * opts.h: Add extern declarations of the two new global variables.
11839         * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
11840         variable based on the values of the two new global variables.
11841
11842 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
11843
11844         PR c/69835
11845         * common.opt (Wnonnull-compare): New warning.
11846         * doc/invoke.texi (-Wnonnull): Remove text about comparison
11847         of arguments against NULL.
11848         (-Wnonnull-compare): Document.
11849         * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
11850         * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
11851         * passes.def (pass_warn_nonnull_compare): Add.
11852         * gimple-ssa-nonnull-compare.c: New file.
11853
11854 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
11855
11856         * config/aarch64/aarch64.c (cortexa57_tunings): Remove
11857         AARCH64_EXTRA_TUNE_RECIP_SQRT.
11858
11859 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
11860
11861         * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
11862         reciprocal sqrt for -mlow-precision-recip-sqrt.
11863
11864 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
11865             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11866
11867         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
11868         always use lane loads to construct non-constant vectors.
11869
11870 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
11871
11872         * config/aarch64/aarch64.md
11873         (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
11874         constraints for operand 3.
11875         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
11876
11877 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
11878             Richard Biener  <rguenther@suse.de>
11879
11880         PR tree-optimization/69820
11881         * tree-vect-patterns.c (type_conversion_p): Return false if
11882         *orig_type is unsigned single precision or boolean.
11883         (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
11884         Formatting fix.
11885
11886 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
11887
11888         PR rtl-optimization/69764
11889         PR rtl-optimization/69771
11890         * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
11891         op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
11892
11893 2016-02-16  Richard Biener  <rguenther@suse.de>
11894
11895         PR tree-optimization/69776
11896         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
11897         sets from caller.
11898         (indirect_refs_may_alias_p): Likewise.
11899         (refs_may_alias_p_1): Pass alias sets as from ao_ref.
11900         * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
11901         according to tbaa_p.
11902         * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
11903         (optimize_stmt): For redundant store discovery do not allow tbaa.
11904
11905 2016-02-16  Bernd Schmidt  <bschmidt@redhat.com>
11906
11907         PR tree-optimization/69714
11908         * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
11909         Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
11910
11911 2016-02-16  Claudiu Zissulescu  <claziss@synopsys.com>
11912
11913         * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
11914         * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
11915         (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
11916         * config/arc/arc.c (arc_init): Check FPU options.
11917         (get_arc_condition_code): Handle new CC_FPU* modes.
11918         (arc_select_cc_mode): Likewise.
11919         (arc_conditional_register_usage): Allow 64 bit datum into even-odd
11920         register pair only. Allow access for ARCv2 accumulator.
11921         (gen_compare_reg): Whenever we have FPU support use FPU compare
11922         instructions.
11923         (arc_reorg): Don't generate brcc insns when FPU compare
11924         instructions are involved.
11925         * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
11926         (TARGET_OPTFPE): Add condition when ARC EM can use optimized
11927         floating point emulation.
11928         (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
11929         (REVERSE_CONDITION): Add new CC_FPU* modes.
11930         (TARGET_FP_SP_BASE): Define.
11931         (TARGET_FP_DP_BASE): Likewise.
11932         (TARGET_FP_SP_FUSED): Likewise.
11933         (TARGET_FP_DP_FUSED): Likewise.
11934         (TARGET_FP_SP_CONV): Likewise.
11935         (TARGET_FP_DP_CONV): Likewise.
11936         (TARGET_FP_SP_SQRT): Likewise.
11937         (TARGET_FP_DP_SQRT): Likewise.
11938         (TARGET_FP_DP_AX): Likewise.
11939         * config/arc/arc.md (ARCV2_ACC): New constant.
11940         (type): New fpu type attribute.
11941         (SDF): Conditional iterator.
11942         (cstore<mode>, cbranch<mode>): Change expand condition.
11943         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
11944         handles FPU/FPX cases as well.
11945         * config/arc/arc.opt (mfpu): New option.
11946         * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
11947         Renamed.
11948         (adddf3, muldf3, subdf3): Removed.
11949         * config/arc/predicates.md (proper_comparison_operator): Recognize
11950         CC_FPU* modes.
11951         * config/arc/fpu.md: New file.
11952         * doc/invoke.texi (ARC Options): Document mfpu option.
11953
11954 2016-02-16  Richard Biener  <rguenther@suse.de>
11955
11956         PR rtl-optimization/69291
11957         * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
11958         noce_operand_ok check.
11959
11960 2016-02-16  Tom de Vries  <tom@codesourcery.com>
11961
11962         PR lto/67709
11963         * omp-low.c (simd_clone_create): Remove call to
11964         symtab->call_cgraph_insertion_hooks.
11965
11966 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
11967
11968         PR tree-optimization/69802
11969         * tree-ssa-reassoc.c (update_range_test): If op is
11970         SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
11971         op == 1 test of precision 1 integral op, otherwise handle
11972         that case as op itself.  Fix up formatting.
11973         (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
11974         up formatting.
11975
11976 2016-02-16  Richard Biener  <rguenther@suse.de>
11977
11978         PR tree-optimization/69586
11979         * tree-vrp.c (register_edge_assert_for_2): Handle all integral
11980         types for conversion sources.
11981
11982 2016-02-16  Richard Biener  <rguenther@suse.de>
11983
11984         PR middle-end/69801
11985         * fold-const.c (operand_equal_p): For COND_EXPR zero operand
11986         mask OEP_ADDRESS_OF.
11987
11988 2016-02-16  Alan Modra  <amodra@gmail.com>
11989
11990         PR target/68973
11991         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
11992         (p8_mtvsrd_df, p8_mtvsrd_sf): New.
11993         (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
11994         (p8_mtvsrwz): New.
11995         (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
11996         (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
11997         (p8_fmrgow_<mode>): Likewise.
11998         (reload_vsx_from_gpr<mode>): Make clobber IF.  Adjust for above
11999         changes.
12000         (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
12001         (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
12002         to use movdi_internal64.  Remove op0_di.
12003         * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
12004
12005 2016-02-15  Evandro Menezes  <e.menezes@samsung.com>
12006
12007         Add support for the FCCMP insn types
12008
12009         * config/aarch64/aarch64.md (fccmp): Change insn type.
12010         (fccmpe): Likewise.
12011         * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
12012         * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
12013         * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
12014         * config/arm/xgene1.md (xgene1_fcmp): Likewise.
12015         * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
12016         * config/arm/types.md (fccmps): Add new insn type.
12017         (fccmpd): Likewise.
12018
12019 2016-02-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
12020
12021         * alias.c (get_alias_set): Fix a typo in comment.
12022
12023 2016-02-15  Richard Biener  <rguenther@suse.de>
12024
12025         PR tree-optimization/69595
12026         * match.pd: Complete range test simplification to true.
12027
12028 2016-02-15  Bernd Schmidt  <bschmidt@redhat.com>
12029
12030         PR rtl-optimization/69648
12031         * lra-constraints.c (update_ebb_live_info): Don't remove sets of
12032         pic_offset_table_rtx.
12033
12034         PR rtl-optimization/69752
12035         * ira.c (update_equiv_regs): When looking for more than a single SET,
12036         also take other side effects into account.
12037
12038 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
12039
12040         * config/s390/s390.c (s390_function_profiler): Add a new sequence
12041         for z900+ CPUs in 31-bit mode.
12042
12043 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
12044
12045         * common/config/s390/s390-common.c (s390_supports_split_stack):
12046         New function.
12047         (TARGET_SUPPORTS_SPLIT_STACK): New macro.
12048         * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
12049         * config/s390/s390.c (struct machine_function): New field
12050         split_stack_varargs_pointer.
12051         (s390_register_info): Mark r12 as clobbered if it'll be used as temp
12052         in s390_emit_prologue.
12053         (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
12054         vararg pointer.
12055         (morestack_ref): New global.
12056         (SPLIT_STACK_AVAILABLE): New macro.
12057         (s390_expand_split_stack_prologue): New function.
12058         (s390_live_on_entry): New function.
12059         (s390_va_start): Use split-stack vararg pointer if appropriate.
12060         (s390_asm_file_end): Emit the split-stack note sections.
12061         (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
12062         * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
12063         (UNSPECV_SPLIT_STACK_CALL): New unspec.
12064         (UNSPECV_SPLIT_STACK_DATA): New unspec.
12065         (split_stack_prologue): New expand.
12066         (split_stack_space_check): New expand.
12067         (split_stack_data): New insn.
12068         (split_stack_call): New expand.
12069         (split_stack_call_*): New insn.
12070         (split_stack_cond_call): New expand.
12071         (split_stack_cond_call_*): New insn.
12072
12073 2016-02-15  Richard Biener  <rguenther@suse.de>
12074
12075         PR tree-optimization/69783
12076         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
12077         Add trivially correct cases.
12078
12079 2016-02-15  Tom de Vries  <tom@codesourcery.com>
12080
12081         PR lto/69655
12082         * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
12083         do_force_output.
12084         * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
12085
12086 2016-02-15  Richard Biener  <rguenther@suse.de>
12087
12088         PR tree-optimization/69776
12089         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
12090         * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
12091         indicate whether we can use TBAA to disambiguate against stores.
12092         Use alias-set zero if not.
12093         (visit_reference_op_store): Do not use TBAA when looking up
12094         redundant stores.
12095         * tree-ssa-pre.c (compute_avail): Use TBAA here.
12096         (eliminate_dom_walker::before_dom_children): But not when looking
12097         up redundant stores.
12098
12099 2016-02-14  John David Anglin  <danglin@gcc.gnu.org>
12100
12101         * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
12102
12103 2016-02-14  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
12104
12105         *  config/i386/znver1.md
12106         (znver1_pop, znver1_pop_mem,
12107         znver1_load_imov_double_store,
12108         znver1_load_imov_direct_store,
12109         znver1_load_imov_direct_load,
12110         znver1_load_imov_double_load): Add new.
12111         (znver1_insn, znver1_insn_load): Add icmov type.
12112         (znver1_sseavx_fma,
12113         znver1_sseavx_fma_load,
12114         znver1_avx256_fma,
12115         znver1_avx256_fma_load): Fix pipe usage.
12116
12117 2016-02-14  Alan Modra  <amodra@gmail.com>
12118
12119         PR target/68973
12120         * reloads.c (find_reloads_address_1): For pre/post-inc/dec
12121         with an invalid hard reg, reload just the reg not the entire
12122         pre/post-inc/dec address expression.
12123
12124 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
12125
12126         PR target/67260
12127         * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
12128         fixed R1_REG scratch reg.
12129         (sibcall_value_pcrel_fdpic): Likewise.
12130
12131 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
12132
12133         PR target/67636
12134         PR target/64345
12135         * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
12136
12137 2016-02-12  Walter Lee  <walt@tilera.com>
12138
12139         * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
12140         * config/tilegx/t-tilegx: Likewise.
12141
12142 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
12143
12144         PR other/69554
12145         * diagnostic-show-locus.c (struct line_span): New struct.
12146         (layout::get_first_line): Delete.
12147         (layout::get_last_line): Delete.
12148         (layout::get_num_line_spans): New member function.
12149         (layout::get_line_span): Likewise.
12150         (layout::print_heading_for_line_span_index_p): Likewise.
12151         (layout::get_expanded_location): Likewise.
12152         (layout::calculate_line_spans): Likewise.
12153         (layout::m_first_line): Delete.
12154         (layout::m_last_line): Delete.
12155         (layout::m_line_spans): New field.
12156         (layout::layout): Update comment.  Replace m_first_line and
12157         m_last_line with m_line_spans, replacing their initialization
12158         with a call to calculate_line_spans.
12159         (diagnostic_show_locus): When printing source lines and
12160         annotations, rather than looping over a single span
12161         of lines, instead loop over each line_span within
12162         the layout, with an inner loop over the lines within them.
12163         Call the context's start_span callback when changing line spans.
12164         * diagnostic.c (diagnostic_initialize): Initialize start_span.
12165         (diagnostic_build_prefix): Break out the building of the location
12166         part of the string into...
12167         (diagnostic_get_location_text): ...this new function, rewriting
12168         it from nested ternary expressions to a sequence of "if"
12169         statements.
12170         (default_diagnostic_start_span_fn): New function.
12171         * diagnostic.h (diagnostic_start_span_fn): New typedef.
12172         (diagnostic_context::start_span): New field.
12173         (default_diagnostic_start_span_fn): New prototype.
12174
12175 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
12176
12177         PR driver/69779
12178         * gcc.c (driver::finalize): Fix cleanup of "specs".
12179
12180 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
12181
12182         PR driver/69265
12183         PR driver/69453
12184         * gcc.c (driver::driver): Initialize m_option_suggestions.
12185         (driver::~driver): Clean up m_option_suggestions.
12186         (suggest_option): Convert to...
12187         (driver::suggest_option): ...this, and split out into
12188         driver::build_option_suggestions and find_closest_string.
12189         (driver::build_option_suggestions): New function, from
12190         first half of suggest_option.  Special-case
12191         OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
12192         the sanitizer_opts array.  For options of enum types, add the
12193         various enum values to the candidate strings.
12194         (driver::handle_unrecognized_options): Remove "const".
12195         * gcc.h (driver::handle_unrecognized_options): Likewise.
12196         (driver::build_option_suggestions): New decl.
12197         (driver::suggest_option): New decl.
12198         (driver::m_option_suggestions): New field.
12199         * opts-common.c (add_misspelling_candidates): New function.
12200         * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
12201         and make non-static.
12202         * opts.h (sanitizer_opts): New array decl.
12203         (add_misspelling_candidates): New function decl.
12204         * spellcheck.c (find_closest_string): New function.
12205         * spellcheck.h (find_closest_string): New function decl.
12206
12207 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
12208
12209         PR rtl-optimization/69764
12210         PR rtl-optimization/69771
12211         * optabs.c (expand_binop_directly): For shift_optab_p, force
12212         convert_modes with VOIDmode if xop1 has VOIDmode.
12213
12214 2016-02-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
12215
12216         PR target/69729
12217         * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
12218         to correctly determine instrumentation thunks.
12219
12220 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
12221
12222         PR ipa/69241
12223         * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
12224         type by reference, force lhs on the call.
12225
12226         PR ipa/68672
12227         * ipa-split.c (split_function): Don't compute/use main_part_return_p.
12228         Compute retval and retbnd early in all cases if split_part_return_p
12229         and return_bb is not EXIT.  Remove all clobber stmts and reset
12230         all debug stmts that refer to SSA_NAMEs defined in split part,
12231         except if it is retval, in that case replace the old retval with the
12232         lhs of the call to the split part.
12233
12234 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
12235
12236         revert:
12237         2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
12238
12239         PR middle-end/66726
12240         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
12241         whose result is used in PHI.
12242         (maybe_optimize_range_tests): Likewise.
12243         (final_range_test_p): Likweise.
12244
12245 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
12246
12247         PR middle-end/66726
12248         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
12249         whose result is used in PHI.
12250         (maybe_optimize_range_tests): Likewise.
12251         (final_range_test_p): Likweise.
12252
12253 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
12254
12255         * cgraph.c: Spelling fixes - behaviour -> behavior and
12256         neighbour -> neighbor.
12257         * target.def: Likewise.
12258         * sel-sched.c: Likewise.
12259         * config/mips/mips.c: Likewise.
12260         * config/arc/arc.md: Likewise.
12261         * config/arm/cortex-a57.md: Likewise.
12262         * config/arm/arm.c: Likewise.
12263         * config/arm/neon.md: Likewise.
12264         * config/arm/arm-c.c: Likewise.
12265         * config/vms/vms-c.c: Likewise.
12266         * config/s390/s390.c: Likewise.
12267         * config/i386/znver1.md: Likewise.
12268         * config/i386/i386.c: Likewise.
12269         * config/ia64/hpux-unix2003.h: Likewise.
12270         * config/msp430/msp430.md: Likewise.
12271         * config/rx/rx.c: Likewise.
12272         * config/rx/rx.md: Likewise.
12273         * config/aarch64/aarch64-simd.md: Likewise.
12274         * config/aarch64/aarch64.c: Likewise.
12275         * config/nvptx/nvptx.c: Likewise.
12276         * config/bfin/bfin.c: Likewise.
12277         * config/cris/cris.opt: Likewise.
12278         * config/rs6000/rs6000.c: Likewise.
12279         * target.h: Likewise.
12280         * spellcheck.c: Likewise.
12281         * ira-build.c: Likewise.
12282         * tree-inline.c: Likewise.
12283         * builtins.c: Likewise.
12284         * lra-constraints.c: Likewise.
12285         * explow.c: Likewise.
12286         * hwint.h: Likewise.
12287         * targhooks.c: Likewise.
12288         * tree-vect-data-refs.c: Likewise.
12289         * expr.c: Likewise.
12290         * doc/tm.texi: Likewise.
12291         * doc/extend.texi: Likewise.
12292         * doc/install.texi: Likewise.
12293         * doc/md.texi: Likewise.
12294         * tree-ssa-tail-merge.c: Likewise.
12295         * sched-int.h: Likewise.
12296         * match.pd: Likewise.
12297         * sched-ebb.c: Likewise.
12298         * target.def (omit_struct_return_reg): Likewise.
12299         * gimple-ssa-isolate-paths.c: Likewise.
12300         (find_implicit_erroneous_behaviour): Renamed to...
12301         (find_implicit_erroneous_behavior): ... this.
12302         (find_explicit_erroneous_behaviour): Renamed to...
12303         (find_explicit_erroneous_behavior): ... this.
12304         (gimple_ssa_isolate_erroneous_paths): Adjust caller.
12305
12306 2016-02-11  Segher Boessenkool  <segher@kernel.crashing.org>
12307
12308         PR rtl-optimization/64682
12309         PR rtl-optimization/69567
12310         PR rtl-optimization/69737
12311         * combine.c (distribute_notes) <REG_DEAD>: If the register is set
12312         in I2 as well, just lose it.
12313
12314 2016-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12315
12316         * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
12317         New variable.
12318         (aarch64_last_printed_tune_string): Likewise.
12319         (aarch64_declare_function_name): Only output .arch assembler
12320         directive if it will be different from the previously output
12321         directive.  Same for .tune comment but only if -dA is set.
12322         (aarch64_start_file): New function.
12323         (TARGET_ASM_FILE_START): Define.
12324
12325 2016-02-11  David Malcolm  <dmalcolm@redhat.com>
12326
12327         PR plugins/69758
12328         * Makefile.in (PLUGIN_HEADERS): Add params.list.
12329
12330 2016-02-11  Jakub Jelinek  <jakub@redhat.com>
12331
12332         PR target/65313
12333         * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
12334         -Wmaybe-uninitialized warning.
12335
12336 2016-02-11  Oleg Endo  <olegendo@gcc.gnu.org>
12337
12338         PR target/69713
12339         * config/sh/sh.md (casesi_worker_0): Add T_REG use.
12340
12341 2016-02-11  Richard Biener  <rguenther@suse.de>
12342
12343         PR rtl-optimization/69291
12344         * ifcvt.c (noce_try_store_flag_constants): Do not allow
12345         subexpressions affected by changing the result.
12346
12347 2016-02-10  Vladimir Makarov  <vmakarov@redhat.com>
12348
12349         PR target/69148
12350         * lra-constraints.c (curr_insn_transform): Find in/out operands
12351         for secondary memory moves.  Update dups.
12352
12353 2016-02-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
12354
12355         PR tree-optimization/69652
12356         * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
12357         to nested loop, did source re-formatting, skip debug statements,
12358         add check on statement with volatile operand, remove dead scalar
12359         statements.
12360
12361 2016-02-10  Jakub Jelinek  <jakub@redhat.com>
12362             Patrick Palka  <ppalka@gcc.gnu.org>
12363
12364         PR ipa/69241
12365         PR c++/69649
12366         * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
12367         calls if the return type is TREE_ADDRESSABLE.
12368         * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
12369         * ipa-split.c (split_function): Fix doubled "we" in comment.
12370         Use void return type for the split part even if
12371         !split_point->split_part_set_retval.
12372
12373 2016-02-10  Bin Cheng  <bin.cheng@arm.com>
12374
12375         PR tree-optimization/68021
12376         * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
12377         when computing the value of biv cand by itself.
12378
12379 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
12380
12381         * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
12382         (cortexa57_tunings): Likewise.
12383         (cortexa72_tunings): Likewise.
12384         (arch_macro_fusion_pair_p): Add support for AES fusion.
12385         * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
12386         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
12387         Allow virtual registers before reload so early scheduling works.
12388         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
12389         correct latency and pipeline.
12390         (cortex_a57_crypto_complex): Likewise.
12391         (cortex_a57_crypto_xor): Likewise.
12392         (define_bypass): Add AES bypass.
12393
12394 2016-02-10  Richard Biener  <rguenther@suse.de>
12395
12396         PR tree-optimization/69726
12397         * passes.def: Add DCE pass before late uninit.
12398         * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
12399         really fixup if-conversions job.
12400
12401 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
12402
12403         * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
12404         (arm_cortex_a57_tune): Likewise.
12405         (aarch_macro_fusion_pair_p): Add support for AES fusion.
12406         * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
12407
12408 2016-02-10  Eric Botcazou  <ebotcazou@adacore.com>
12409
12410         * timevar.def (TV_PHASE_DBGINFO): Delete.
12411         (TV_PHASE_CHECK_DBGINFO): Likewise.
12412         * varpool.c (varpool_node::assemble_decl): Do not change timevar.
12413
12414 2016-02-10  Richard Biener  <rguenther@suse.de>
12415
12416         PR tree-optimization/69719
12417         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
12418         Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
12419
12420 2016-02-09  Andrew Pinski  <apinski@cavium.com>
12421
12422         PR tree-opt/69282
12423         * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
12424         get_vcond_mask_icode returns false.
12425
12426 2016-02-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
12427
12428         PR target/68404
12429         * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
12430         an ADDIS that adds a pointer to a large constant that sets the
12431         upper16 bits with a load operation.
12432
12433 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
12434
12435         PR target/68532
12436         * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
12437         order.
12438         * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
12439         endian.
12440         (vzipq_s16): Likewise.
12441         (vzipq_s32): Likewise.
12442         (vzipq_f32): Likewise.
12443         (vzipq_u8): Likewise.
12444         (vzipq_u16): Likewise.
12445         (vzipq_u32): Likewise.
12446         (vzipq_p8): Likewise.
12447         (vzipq_p16): Likewise.
12448
12449 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
12450
12451         PR target/68532
12452         * config/arm/arm.c (neon_endian_lane_map): New function.
12453         (neon_vector_pair_endian_lane_map): New function.
12454         (arm_evpc_neon_vuzp): Allow for big endian lane order.
12455         * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
12456         endian.
12457         (vuzpq_s16): Likewise.
12458         (vuzpq_s32): Likewise.
12459         (vuzpq_f32): Likewise.
12460         (vuzpq_u8): Likewise.
12461         (vuzpq_u16): Likewise.
12462         (vuzpq_u32): Likewise.
12463         (vuzpq_p8): Likewise.
12464         (vuzpq_p16): Likewise.
12465
12466 2016-02-11  Alexandre Oliva  <aoliva@redhat.com>
12467
12468         PR target/69634
12469         * regstat.c (regstat_bb_compute_calls_crossed): Disregard
12470         debug insns.
12471
12472 2016-02-09  Uros Bizjak  <ubizjak@gmail.com>
12473
12474         * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
12475         truncate const_int operand 1 to QImode.
12476
12477 2016-02-09  Eric Botcazou  <ebotcazou@adacore.com>
12478
12479         * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
12480         corresponding to an abnormal edge.
12481
12482 2016-02-09  Tom de Vries  <tom@codesourcery.com>
12483
12484         PR tree-optimization/69599
12485         * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
12486         function.
12487         (find_func_aliases_for_builtin_call, find_func_clobbers)
12488         (ipa_pta_execute):  Handle case that foo and foo._0 are not in same lto
12489         partition.
12490
12491 2016-02-09  Richard Biener  <rguenther@suse.de>
12492
12493         PR tree-optimization/69715
12494         * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
12495         LHS on calls as non-rewritable.
12496
12497 2016-02-09  Tom de Vries  <tom@codesourcery.com>
12498
12499         PR lto/69707
12500         * lto-wrapper.c (append_diag_options): New function.
12501         (compile_offload_image): Call append_diag_options.
12502
12503 2016-02-08  Sandra Loosemore  <sandra@codesourcery.com>
12504
12505         PR other/69722
12506         * doc/extend.texi (Flag Output Operands): Correct sectioning.
12507         Minor copy-edit to fix verb tenses.
12508
12509 2016-02-08  Jakub Jelinek  <jakub@redhat.com>
12510
12511         PR tree-optimization/69209
12512         * ipa-split.c (split_function): If split part is not
12513         returning retval, retval has gimple type but is not
12514         gimple value, force it into a SSA_NAME first.
12515
12516 2016-02-08  Nicklas Bo Jensen  <nbjensen@gmail.com>
12517
12518         * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
12519         outdated section.
12520
12521 2016-02-08  Jason Merrill  <jason@redhat.com>
12522
12523         PR c++/69631
12524         * convert.c (convert_to_integer_1): Check dofold on truncation
12525         distribution.
12526         (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
12527         (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
12528         Rename from *_nofold.
12529         * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
12530         (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
12531
12532 2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
12533
12534         PR target/60410
12535         * tree.c (build_common_tree_nodes): Remove short_double argument.
12536         All callers changed.
12537         * tree.h (build_common_tree_nodes): Adjust declaration.
12538         * doc/invoke.texi (-fshort-double): Remove documentation.
12539         * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
12540         MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
12541         * lto-wrapper.c (merge_and_complain, append_compiler_options)
12542         (append_linker_options): Don't handle OPT_fshort_double.
12543
12544         PR rtl-optimization/68730
12545         * lra-remat.c (insn_to_cand_activation): New static variable.
12546         (lra_remat): Allocate and free it.
12547         (create_cand): New arg activation. Initialize a field in
12548         insn_to_cand_activation if it is nonnull.
12549         (create_cands): Pass the activation insn to create_cand when making
12550         a candidate involving an output reload.  Reorganize code a little.
12551         (do_remat): Keep track of active status of candidates in a separate
12552         bitmap.
12553
12554 2016-02-08  Richard Biener  <rguenther@suse.de>
12555
12556         PR tree-optimization/69719
12557         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
12558         Properly use absolute of the difference of the two offsets to
12559         compare or adjust the segment length.
12560
12561 2016-02-08  Richard Biener  <rguenther@suse.de>
12562             Jeff Law  <law@redhat.com>
12563
12564         PR target/68273
12565         * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
12566         types for anonymous SSA names.
12567
12568 2016-02-08   Richard Biener  <rguenther@suse.de>
12569
12570         PR rtl-optimization/69274
12571         * ira.c (ira_setup_alts): Do not change recog_data.operand order.
12572
12573 2016-02-08  Jeff Law  <law@redhat.com>
12574
12575         PR tree-optimization/65917
12576         * tree-ssa-dom.c (record_temporary_equivalences): Record both
12577         equivalences from if (x == y) style conditionals.
12578         (loop_depth_of_name): Remove.
12579         (record_equality): Remove loop depth check.
12580         * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
12581         (const_and_copies::record_const_or_copy_raw): New member function.
12582         * tree-ssa-scopedtables.c
12583         (const_and_copies::record_const_or_copy_raw): New, factored out of
12584         (const_and_copies::record_const_or_copy): Call new member function.
12585
12586 2016-02-05  Jeff Law  <law@redhat.com>
12587
12588         PR tree-optimization/68541
12589         * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
12590         (count_stmts_in_block): New function.
12591         (poor_ifcvt_candidate_code): Likewise.
12592         (is_feasible_trace): Add some heuristics to determine when path
12593         splitting is profitable.
12594         (find_block_to_duplicate_for_splitting_paths): Make sure the graph
12595         is a diamond with a single exit.
12596
12597 2016-02-05  Martin Sebor  <msebor@redhat.com>
12598
12599         PR c++/69662
12600         * doc/invoke.texi: Update -Wplacement-new to take an optional
12601         argument.
12602
12603 2016-02-06  Richard Henderson  <rth@redhat.com>
12604
12605         PR c/69643
12606         * tree.c (tree_nop_conversion_p): Do not strip casts into or
12607         out of non-standard address spaces.
12608
12609 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
12610
12611         PR rtl-optimization/69691
12612         * lra-eliminations.c (move_plus_up): Don't add the addend twice.
12613
12614 2016-02-05  Pat Haugen  <pthaugen@us.ibm.com>
12615
12616         * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
12617         * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
12618         (*ieee128_mfvsrd_64bit): Likewise.
12619         (*ieee128_mfvsrd_32bit): Likewise.
12620
12621 2016-02-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
12622
12623         PR target/69369
12624         Revert r232560:
12625         2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
12626
12627         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
12628         instrumented_version.
12629
12630 2016-01-05  Jeremy Bennett  <jeremy.bennett@embecosm.com>
12631
12632         * doc/invoke.texi (Optimize Options): In table of --param options
12633         rename second occurrence of tracer-min-branch-ratio to
12634         tracer-min-branch-probability, rename
12635         tracer-min-branch-ratio-feedback to
12636         tracer-min-branch-probability-feedback and clarify description,
12637         rename sched-spec-state-edge-prob-cutoff to
12638         sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
12639         to selsched-insns-to-rename, rename lto-minpartition to
12640         lto-min-partition, delete reorder-blocks-duplicate and
12641         reorder-blocks-duplicate-feedback.
12642
12643 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12644
12645         * config/s390/s390.c (s390_register_info_set_ranges): Remove
12646         superfluous loops.
12647
12648 2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
12649
12650         * doc/extend.texi: S/390: Correct some typos.
12651
12652 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12653
12654         * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
12655
12656 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
12657
12658         PR target/69625
12659         * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
12660         (s390_register_info_gprtofpr): Use new macros above.
12661         (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
12662         its name.
12663         (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
12664         its name.  Adjust restore and save gpr ranges.
12665         (s390_register_info_set_ranges): New function.
12666         (s390_register_info): Use new macros above.  Call
12667         s390_register_info_set_ranges.
12668         (s390_optimize_register_info): Likewise.
12669         (s390_hard_regno_rename_ok): Use new macros.
12670         (s390_hard_regno_scratch_ok): Likewise.
12671         (s390_emit_epilogue): Likewise.
12672         (s390_can_use_return_insn): Likewise.
12673         (s390_optimize_prologue): Likewise.
12674         * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
12675
12676 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
12677
12678         PR bootstrap/69677
12679         * config/i386/i386.c (convert_scalars_to_vector): Readd stack
12680         alignment fixes.
12681         (ix86_option_override_internal): Disable TARGET_STV even for
12682         -m{incoming,preferred}-stack-boundary=3.
12683
12684 2016-02-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
12685
12686         * config.gcc: Mark deprecated rtems targets as obsolete.
12687
12688 2016-02-04  Segher Boessenkool  <segher@kernel.crashing.org>
12689
12690         PR rtl-optimization/64682
12691         PR rtl-optimization/69567
12692         * combine.c (distribute_notes) <REG_DEAD>: Place the death note
12693         before I2 only if the register is both used and set in I2.
12694
12695 2016-02-04  DJ Delorie  <dj@redhat.com>
12696
12697         * config/msp430/msp430.c (msp430_start_function): Add function type.
12698
12699 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
12700
12701         PR fortran/69368
12702         * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
12703
12704 2016-02-04  Uros Bizjak  <ubizjak@gmail.com>
12705
12706         PR rtl-optimization/69577
12707         Revert:
12708         2015-10-29  Richard Henderson  <rth@redhat.com>
12709
12710         PR target/68124
12711         PR rtl-opt/67609
12712         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
12713         sse check to the exact conditions of PR 67609.
12714
12715 2016-02-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
12716
12717         PR target/69667
12718         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
12719         instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
12720         not allowed into the traditional Altivec registers.
12721         (movtd_64bit_nodm): Likewise.
12722         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
12723
12724 2016-02-04  David Malcolm  <dmalcolm@redhat.com>
12725
12726         * config/aarch64/cortex-a57-fma-steering.c
12727         (aarch64_register_fma_steering): Remove "static" from arguments
12728         to register_pass.
12729
12730 2016-02-04  Wilco Dijkstra  <wdijkstr@arm.com>
12731
12732         PR target/69619
12733         * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
12734         twice when complex.
12735
12736 2016-02-04  Mike Frysinger  <vapier@gentoo.org>
12737
12738         * doc/invoke.texi: Delete -mno-fma4.
12739
12740 2016-02-04  Richard Sandiford  <richard.sandiford@arm.com>
12741
12742         PR rtl-optimization/69577
12743         * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
12744         (find_subregs_of_mode): Update accordingly.  Iterate over partial
12745         definitions.
12746
12747 2016-02-04  Alan Lawrence  <alan.lawrence@arm.com>
12748
12749         * config/arm/arm-protos.h (neon_reinterpret): Remove.
12750         * config/arm/arm.c (neon_reinterpret): Remove.
12751         * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
12752         vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
12753         vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
12754         vreinterpretti): Remove.
12755         * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
12756         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
12757         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
12758         neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
12759         neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
12760         neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
12761         * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
12762         vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
12763         vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
12764         vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
12765         vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
12766         vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
12767         vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
12768         vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
12769         vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
12770         vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
12771         vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
12772         vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
12773         vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
12774         vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
12775         vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
12776         vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
12777         vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
12778         vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
12779         vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
12780         vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
12781         vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
12782         vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
12783         vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
12784         vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
12785         vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
12786         vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
12787         vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
12788         vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
12789         vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
12790         vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
12791         vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
12792         vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
12793         vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
12794         vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
12795         vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
12796         vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
12797         vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
12798         vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
12799         vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
12800         vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
12801         vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
12802         vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
12803         vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
12804         vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
12805         vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
12806         vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
12807         vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
12808         vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
12809         vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
12810         vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
12811         vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
12812         vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
12813         vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
12814         vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
12815         vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
12816         vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
12817         vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
12818         vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
12819         vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
12820         vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
12821         vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
12822         vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
12823         vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
12824         vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
12825         vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
12826         vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
12827         vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
12828         vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
12829         vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
12830         vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
12831         vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
12832         vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
12833         vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
12834         vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
12835         vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
12836         vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
12837         vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
12838         vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
12839         vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
12840         vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
12841         vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
12842         vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
12843         vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
12844         vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
12845         vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
12846         vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
12847         vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
12848         vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
12849         vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
12850         vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
12851         vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
12852         vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
12853         vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
12854         vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
12855         vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
12856         vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
12857         vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
12858
12859 2016-02-04  Martin Liska  <mliska@suse.cz>
12860
12861         PR sanitizer/69276
12862         * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
12863         that are gimple_store_p.
12864         (maybe_instrument_call): Likewise.
12865
12866 2016-02-04  Bin Cheng  <bin.cheng@arm.com>
12867
12868         * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
12869         register scaling out of memory reference and comment why.
12870
12871 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12872
12873         PR target/65932
12874         PR target/67714
12875         * cse.c (cse_insn): Pass NULL to fold_rtx when initially
12876         folding the source of a SET.
12877
12878 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12879
12880         PR target/65932
12881         PR target/67714
12882         * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
12883         the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
12884
12885 2016-02-04  Jim Wilson  <jim.wilson@linaro.org>
12886
12887         PR target/65932
12888         PR target/67714
12889         * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
12890         HImode.
12891
12892 2016-02-04  Christian Bruel  <christian.bruel@st.com>
12893
12894         * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
12895         * config/arm/arm.c (arm_set_current_function): Likewise.
12896
12897 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
12898             Ilya Enkovich  <enkovich.gnu@gmail.com>
12899             H.J. Lu  <hongjiu.lu@intel.com>
12900
12901         PR target/69454
12902         * config/i386/i386.c (convert_scalars_to_vector): Remove
12903         stack alignment fixes.
12904         (ix86_option_override_internal): Disable TARGET_STV if stack
12905         might not be aligned enough.
12906         (ix86_minimum_alignment): Assert that TARGET_STV is false.
12907
12908 2016-02-04  Victoria Stepanyan  <victoria.stepanyan@amd.com>
12909
12910         * config/i386/x86-tune.def: Disable default prefetching
12911         for -march=znver1.
12912
12913 2016-02-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
12914             Vladimir Makarov  <vmakarov@redhat.com>
12915
12916         PR target/69461
12917         * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
12918         in validating fused toc addresses.
12919
12920 2016-02-03  Jakub Jelinek  <jakub@redhat.com>
12921
12922         PR c/69627
12923         * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
12924         range->m_caret fields if range->m_show_caret_p is false.
12925
12926         PR target/69644
12927         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
12928         Force oldval into register if it does not satisfy reg_or_short_operand
12929         predicate.  Fix up formatting.
12930
12931 2016-02-03  Vladimir Makarov  <vmakarov@redhat.com>
12932             Alexandre Oliva  <aoliva@redhat.com>
12933
12934         PR target/69461
12935         * lra-constraints.c (simplify_operand_subreg): Check additionally
12936         address validity after potential reloading.
12937         (process_address_1): Check insns validity.  In case of failure do
12938         nothing.
12939
12940 2016-02-03  Kirill Yukhin  <kirill.yukhin@intel.com>
12941
12942         PR target/69118
12943         * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
12944         Fix target.
12945
12946 2016-02-02  Jakub Jelinek  <jakub@redhat.com>
12947
12948         * wide-int.cc (canonize_uhwi): New function.
12949         (wi::divmod_internal): Use it.
12950
12951 2016-02-02  James Norris  <jnorris@codesourcery.com
12952
12953         * gimplify.c (omp_notice_variable): Add usage check.
12954
12955 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
12956
12957         * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
12958         like LE, GE, LT, GT when emitting relational operator.
12959
12960 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
12961
12962         * ira-costs.c (find_costs_and_classes): Add extra argument.
12963         * target.def (ira_change_pseudo_allocno_class): Add parameter.
12964         * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
12965         * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
12966         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
12967         Add best_class parameter, and return it if not ALL_REGS.
12968         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
12969         Add parameter.
12970         * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
12971         Update target hook.
12972
12973 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
12974
12975         * config/aarch64/aarch64.c
12976         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
12977         (aarch64_ira_change_pseudo_allocno_class): New function.
12978
12979 2016-02-02  Uros Bizjak  <ubizjak@gmail.com>
12980
12981         PR target/67032
12982         * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
12983
12984 2016-02-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
12985
12986         * config/avr/avr.c (avr_option_override): Set
12987         PARAM_ALLOW_STORE_DATA_RACES to 1.
12988
12989 2016-02-02  Richard Biener  <rguenther@suse.de>
12990
12991         PR tree-optimization/69595
12992         * match.pd: Add range test simplifications to true/false.
12993
12994 2016-02-02  Thomas Schwinge  <thomas@codesourcery.com>
12995
12996         * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
12997         * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
12998         instead.
12999
13000 2016-02-02  Richard Biener  <rguenther@suse.de>
13001
13002         PR tree-optimization/69606
13003         * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
13004         info on the result before moving a stmt.
13005
13006 2016-02-02  Yuri Rumyantsev  <ysrumyan@gmail.com>
13007
13008         PR middle-end/68542
13009         * config/i386/i386.c (ix86_expand_branch): Add support for conditional
13010         branch with vector comparison.
13011         * config/i386/sse.md (VI48_AVX): New mode iterator.
13012         (define_expand "cbranch<mode>4): Add support for conditional branch
13013         with vector comparison.
13014         * tree-vect-loop.c (optimize_mask_stores): New function.
13015         * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
13016         has_mask_store field of vect_info.
13017         * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
13018         vectorized loops having masked stores after vec_info destroy.
13019         * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
13020         correspondent macros.
13021         (optimize_mask_stores): Add prototype.
13022
13023 2016-02-02  Alan Modra  <amodra@gmail.com>
13024
13025         PR target/69548
13026         * config/rs6000/predicates.md (quad_int_reg_operand): Don't
13027         allow subregs.
13028
13029 2016-02-02  Alan Modra  <amodra@gmail.com>
13030
13031         PR target/68662
13032         * config/rs6000/rs6000.c (need_toc_init): New var, set it
13033         whenever toc_label_name used.
13034         (rs6000_file_start): Don't set up toc section here,
13035         (rs6000_output_function_epilogue): do so here instead,
13036         (rs6000_xcoff_file_start): and here.
13037         * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
13038         (load_toc_aix_di): Likewise.
13039
13040 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
13041
13042         PR rtl-optimization/69592
13043         * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
13044         (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
13045         (num_sign_bit_copies_binary_arith_p): New inline function.
13046         (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
13047
13048 2016-02-01  Jeff Law  <law@redhat.com>
13049
13050         PR tree-optimization/69580
13051         * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
13052         * tree-ssa-threadbackward.c
13053         (fsm_find_control_statement_thread_paths): Do not try to walk
13054         through large PHI nodes.
13055
13056 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
13057
13058         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
13059         when count is incremented above limit, don't analyze further
13060         insns afterwards.
13061
13062         * omp-low.c (oacc_parse_default_dims): Avoid
13063         -Wsign-compare warning, make sure value fits into int
13064         rather than just unsigned int.
13065
13066 2016-02-01  Bin Cheng  <bin.cheng@arm.com>
13067
13068         PR tree-optimization/67921
13069         * fold-const.c (split_tree): New parameters.  Convert pointer
13070         type variable part to proper type before negating.
13071         (fold_binary_loc): Pass new arguments to split_tree.
13072
13073 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
13074
13075         * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
13076         (nvptx_goacc_validate_dims): Extend to handle global defaults.
13077         * target.def (OACC_VALIDATE_DIMS): Extend documentation.
13078         * doc/tm.texti: Rebuilt.
13079         * doc/invoke.texi (fopenacc-dim): Document.
13080         * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
13081         (append_compiler_options): Likewise.
13082         * omp-low.c (oacc_default_dims, oacc_min_dims): New.
13083         (oacc_parse_default_dims): New.
13084         (oacc_validate_dims): Add USED arg.  Select non-unity default when
13085         possible.
13086         (oacc_loop_fixed_partitions): Return mask of used partitions.
13087         (oacc_loop_auto_partitions): Emit dump info.
13088         (oacc_loop_partition): Return mask of used partitions.
13089         (execute_oacc_device_lower): Parse default dimension arg.  Adjust
13090         loop partitioning and validation calls.
13091
13092 2016-02-01  Richard Biener  <rguenther@suse.de>
13093
13094         PR middle-end/69556
13095         * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
13096
13097 2016-02-01  Richard Biener  <rguenther@suse.de>
13098
13099         PR tree-optimization/69574
13100         * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
13101         of asserting return chrec_dont_know.
13102
13103 2016-02-01  Martin Liska  <mliska@suse.cz>
13104
13105         * mem-stats-traits.h: Add copyright header.
13106         * mem-stats.h: Likewise.
13107
13108 2016-02-01  Richard Biener  <rguenther@suse.de>
13109
13110         PR tree-optimization/69579
13111         * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
13112         Do not propagate through abnormal PHI results.
13113
13114 2016-02-01  Eric Botcazou  <ebotcazou@adacore.com>
13115
13116         * postreload.c (reload_cse_simplify): Remove dead code.
13117
13118 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
13119
13120         PR rtl-optimization/69570
13121         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
13122         if there is more than one set, not if there is a single set.
13123
13124 2016-02-01  Richard Henderson  <rth@redhat.com>
13125
13126         PR rtl-opt/69535
13127         * combine.c (make_compound_operation): When looking through a
13128         subreg, make sure to re-extend to the width of the outer mode.
13129
13130 2016-01-30  Jakub Jelinek  <jakub@redhat.com>
13131
13132         PR tree-optimization/69546
13133         * wide-int.cc (wi::divmod_internal): For unsigned division
13134         where both operands fit into uhwi, if o1 is 1 and o0 has
13135         msb set, if divident_prec is larger than bits per hwi,
13136         clear another quotient word and return 2 instead of 1.
13137         Similarly for remainder with msb in HWI set, if dividend_prec
13138         is larger than bits per hwi.
13139
13140 2016-01-29  Martin Jambor  <mjambor@suse.cz>
13141
13142         * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
13143         Use short lowercase names.
13144         (get_memory_order): Mask with MEMMODEL_BASE_MASK.  Support
13145         MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
13146         acq_rel one.  Protect warning agains segfaults if
13147         get_memory_order_name returns NULL.
13148         (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
13149         with release semantics.  Do not warn if get_memory_order already did.
13150         (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
13151         semantics.  Fix check for relaxed or acquire semantics.  Do not warn
13152         if get_memory_order already did.
13153
13154 2016-01-29  Sebastian Pop  <s.pop@samsung.com>
13155
13156         * doc/install.texi: Document that isl-0.16 is supported.
13157
13158 2016-01-29  Vladimir Makarov  <vmakarov@redhat.com>
13159
13160         PR target/69299
13161         * config/i386/constraints.md (Bm): Describe as special memory
13162         constraint.
13163         * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
13164         * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
13165         * genpreds.c (struct constraint_data): Add is_special_memory.
13166         (have_special_memory_constraints, special_memory_start): New
13167         static vars.
13168         (special_memory_end): Ditto.
13169         (add_constraint): Add new arg is_special_memory.  Add code to
13170         process its true value.  Update have_special_memory_constraints.
13171         (process_define_constraint): Pass the new arg.
13172         (process_define_register_constraint): Ditto.
13173         (choose_enum_order): Process special memory.
13174         (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
13175         function insn_extra_special_memory_constraint.
13176         (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
13177         * gensupport.c (process_rtx): Process
13178         DEFINE_SPECIAL_MEMORY_CONSTRAINT.
13179         * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
13180         * ira-lives.c (single_reg_class): Use
13181         insn_extra_special_memory_constraint.
13182         * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
13183         * lra-constraints.c (process_alt_operands): Ditto.
13184         (curr_insn_transform): Use insn_extra_special_memory_constraint.
13185         * recog.c (asm_operand_ok, preprocess_constraints): Process
13186         CT_SPECIAL_MEMORY.
13187         * reload.c (find_reloads): Ditto.
13188         * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
13189         * stmt.c (parse_input_constraint): Use
13190         insn_extra_special_memory_constraint.
13191
13192 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
13193
13194         PR target/69530
13195         * lra-splill.c (lra_final_code_change): Revert r229087 by
13196         removing all sub-registers.
13197
13198 2016-01-29  Steve Ellcey  <sellcey@imgtec.com>
13199
13200         PR target/65604
13201         * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
13202
13203 2016-01-29  Jakub Jelinek  <jakub@redhat.com>
13204
13205         PR target/69551
13206         * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
13207         SSE1, copy target into the temporary reg first before recursing
13208         on it.
13209
13210 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
13211
13212         * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
13213         with vm.
13214
13215 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
13216
13217         * ginclude/stdarg.h: Test __cplusplus instead of
13218         __GXX_EXPERIMENTAL_CXX0X__.
13219
13220 2016-01-29  Richard Biener  <rguenther@suse.de>
13221
13222         PR tree-optimization/69547
13223         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
13224         Do not mark clobbers necessary.
13225         (mark_all_reaching_defs_necessary_1): Likewise.
13226
13227 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
13228
13229         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
13230         declaration name with %qs and print it in both error messages.
13231         Also fix indentation.
13232
13233 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
13234
13235         PR other/69006
13236         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
13237         trailing blank line from error message.
13238
13239 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
13240
13241         PR c++/69462
13242         * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
13243         for C++-11.
13244
13245 2016-01-29  Richard Biener  <rguenther@suse.de>
13246
13247         PR middle-end/69537
13248         * match.pd: Allow all integral types when simplifying a
13249         widening or sign-changing conversion.
13250
13251 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
13252
13253         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
13254         back to setting codegen_error to fail codegen.
13255
13256 2016-01-28  Uros Bizjak  <ubizjak@gmail.com>
13257
13258         PR target/69459
13259         * config/i386/constraints.md (C): Only accept constant zero operand.
13260         (BC): New constraint.
13261         * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
13262         instead of C constraint.
13263         * doc/md.texi (Machine Constraints): Update description
13264         of C constraint.
13265
13266 2016-01-28  Steve Ellcey  <sellcey@imgtec.com>
13267
13268         PR target/68400
13269         * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
13270
13271 2016-01-28  Jakub Jelinek  <jakub@redhat.com>
13272
13273         PR middle-end/69542
13274         * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
13275         non-debug insns.
13276
13277 2016-01-28  Pat Haugen  <pthaugen@us.ibm.com>
13278
13279         * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
13280         branches if using guessed profile.
13281
13282 2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>
13283
13284         * graphite-optimize-isl.c (optimize_isl): Fix dump.
13285
13286 2016-01-28  Richard Henderson  <rth@redhat.com>
13287
13288         PR target/69305
13289         * config/aarch64/aarch64-modes.def (CC_Cmode): New
13290         * config/aarch64/aarch64-protos.h: Update.
13291         * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
13292         (aarch64_select_cc_mode): Add check for use of CC_Cmode.
13293         (aarch64_get_condition_code_1): Handle CC_Cmode.
13294         * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
13295         (*add<mode>3_compareC_cconly_imm): New.
13296         (*add<mode>3_compareC_cconly): New.
13297         (*add<mode>3_compareC_imm): New.
13298         (add<mode>3_compareC): New.
13299         (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
13300         to be first.  Use aarch64_carry_operation.
13301         (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
13302         (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
13303         (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
13304         (subti3): Use subdi3_compare1.
13305         (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
13306         (sub<mode>3_compare1): New.
13307         (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
13308         (*sub<mode>3_carryin): Use aarch64_borrow_operation.
13309         (*subsi3_carryin_uxtw): Likewise.
13310         (*ngc<mode>, *ngcsi_uxtw): Likewise.
13311         (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
13312         * config/aarch64/iterators.md (DWI): New.
13313         * config/aarch64/predicates.md (aarch64_carry_operation): New.
13314         (aarch64_borrow_operation): New.
13315
13316 2016-01-28  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
13317
13318         * graphite-optimize-isl.c (optimize_isl): Print a different debug
13319         message when isl does not return a valid schedule.
13320
13321 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
13322
13323         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
13324         Remove comments from class declarations: they are already in the code
13325         close by the defs.
13326
13327 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
13328
13329         * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
13330         codegen_error_p.
13331         (ternary_op_to_tree): Same.
13332         (unary_op_to_tree): Same.
13333         (nary_op_to_tree): Same.
13334         (gcc_expression_from_isl_expr_op): Same.
13335         (gcc_expression_from_isl_expression): Same.
13336         (graphite_create_new_loop): Same.
13337         (graphite_create_new_loop_guard): Same.
13338         (build_iv_mapping): Same.
13339         (graphite_create_new_guard): Same.
13340         (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
13341         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
13342
13343 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
13344
13345         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
13346         instead of setting codegen_error to fail codegen.
13347
13348 2016-01-28  Jason Merrill  <jason@redhat.com>
13349
13350         * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
13351
13352 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
13353
13354         * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
13355         Remove CONST_INT_P check in CCMP cost calculation.
13356
13357 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
13358
13359         * config/aarch64/aarch64.c (generic_vector_cost):
13360         Set vec_permute_cost.
13361         (cortexa57_vector_cost): Likewise.
13362         (exynosm1_vector_cost): Likewise.
13363         (xgene1_vector_cost): Likewise.
13364         (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
13365         * config/aarch64/aarch64-protos.h (cpu_vector_cost):
13366         Add vec_permute_cost entry.
13367
13368 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
13369
13370         * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
13371         immediate as %1.
13372         (add<mode>3_compare0): Likewise.
13373         (addsi3_compare0_uxtw): Likewise.
13374         (add<mode>3nr_compare0): Likewise.
13375         (compare_neg<mode>): Likewise.
13376         (<optab><mode>3): Likewise.
13377
13378 2016-01-28  Ilya Enkovich  <enkovich.gnu@gmail.com>
13379
13380         * tree-vect-stmts.c (vectorizable_comparison): Add
13381         NULL check for vectype.
13382
13383 2016-01-28  Richard Biener  <rguenther@suse.de>
13384
13385         PR tree-optimization/69466
13386         * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
13387         Account for PHIs we couldn't duplicate.
13388
13389 2016-01-28  Martin Liska  <mliska@suse.cz>
13390
13391         PR pch/68758
13392         * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
13393         instead of ENABLE_VALGRIND_CHECKING.
13394
13395 2016-01-27  Richard Henderson  <rth@redhat.com>
13396
13397         PR rtl-opt/69447
13398         * lra-remat.c (subreg_regs): New.
13399         (dump_candidates_and_remat_bb_data): Dump it.
13400         (operand_to_remat): Reject if operand in subreg_regs.
13401         (set_bb_regs): Collect subreg_regs.
13402         (lra_remat): Init and free subreg_regs.  Compute
13403         calculate_local_reg_remat_bb_data before create_cands.
13404
13405 2016-01-27  H.J. Lu  <hongjiu.lu@intel.com>
13406
13407         PR target/68986
13408         * config/i386/i386.c (ix86_update_stack_boundary): Don't
13409         change stack_alignment_needed for __tls_get_addr call.
13410
13411 2016-01-27  Segher Boessenkool  <segher@kernel.crashing.org>
13412
13413         * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
13414
13415 2016-01-27  Jeff Law  <law@redhat.com>
13416
13417         PR tree-optimization/68398
13418         PR tree-optimization/69196
13419         * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
13420         (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
13421         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
13422         Only count PHIs in the last block in the path.  The others will
13423         const/copy propagate away.  Add heuristic to allow more irreducible
13424         subloops to be created when it is likely profitable to do so.
13425
13426         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
13427         Fix typo in comment.  Use gsi_after_labels and remove the GIMPLE_LABEL
13428         check from within the loop.  Use gsi_next_nondebug rather than gsi_next.
13429
13430 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
13431
13432         PR lto/69254
13433         * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
13434         END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
13435         * asan.c (DEF_BUILTIN_STUB): Temporarily define.
13436         * tree-streamer-in.c: Include asan.h.
13437         (streamer_get_builtin_tree): For builtins in sanitizer
13438         range call initialize_sanitizer_builtins and retry.
13439
13440 2016-01-27  Ian Lance Taylor  <iant@google.com>
13441
13442         * common.opt (fkeep-gc-roots-live): New undocumented option.
13443         * tree-ssa-loop-ivopts.c (add_candidate_1): If
13444         -fkeep-gc-roots-live, skip pointers.
13445         (add_iv_candidate_for_biv): Handle add_candidate_1 returning
13446         NULL.
13447
13448 2016-01-27  Uros Bizjak  <ubizjak@gmail.com>
13449
13450         PR target/69512
13451         * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
13452         (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
13453
13454 2016-01-27  Thomas Klausner  <wiz@NetBSD.org>
13455
13456         PR target/68380
13457         * configure.ac: NetBSD provides SSP in its C library.
13458         * configure: Updated.
13459
13460 2016-01-27  Richard Biener  <rguenther@suse.de>
13461
13462         PR tree-optimization/69166
13463         * tree-vect-loop.c (vect_is_simple_reduction): Always check
13464         reduction code for commutativity / associativity.
13465
13466 2016-01-27  Martin Jambor  <mjambor@suse.cz>
13467
13468         PR tree-optimization/69355
13469         * tree-sra.c (analyze_access_subtree): Correct hole detection when
13470         total_scalarization fails.
13471
13472 2016-01-27  David Edelsohn  <dje.gcc@gmail.com>
13473
13474         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
13475         power9.
13476
13477 2016-01-27  Christian Bruel  <christian.bruel@st.com>
13478
13479         PR target/69245
13480         * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
13481         Move arm_reset_previous_fndecl and set_target_option_current_node in
13482         the conditional part.  Call save_restore_target_globals.
13483         * config/arm/arm.c (arm_set_current_function):
13484         Refactor to better support #pragma target and attribute mix.
13485         Call save_restore_target_globals.
13486         * config/arm/arm-protos.h (save_restore_target_globals): New function.
13487
13488 2016-01-27  Martin Liska  <mliska@suse.cz>
13489
13490         * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
13491         reference for an HSA kernel and its host function.
13492
13493 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
13494
13495         PR tree-optimization/69399
13496         * wide-int.h (wi::lrshift): For larger precisions, only
13497         use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
13498
13499 2016-01-27  Claudiu Zissulescu  <claziss@synopsys.com>
13500
13501         * config/arc/predicates.md (proper_comparison_operator): Reject
13502         constant-constant comparison.
13503
13504 2016-01-26  Tom de Vries  <tom@codesourcery.com>
13505
13506         PR tree-optimization/69110
13507         * tree-data-ref.c (initialize_data_dependence_relation): Handle
13508         DR_NUM_DIMENSIONS == 0.
13509
13510 2016-01-26  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
13511             Sebastian Pop  <s.pop@samsung.com>
13512
13513         * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
13514         isl_ast_op_cond and isl_ast_op_select.
13515         (gcc_expression_from_isl_expr_op): Same.
13516
13517 2016-01-26  Jason Merrill  <jason@redhat.com>
13518
13519         PR c++/68782
13520         * tree.c (recompute_constructor_flags): Split out from
13521         build_constructor.
13522         (verify_constructor_flags): New.
13523         * tree.h: Declare them.
13524
13525 2016-01-26  Iain Buclaw  <ibuclaw@gdcproject.org>
13526
13527         PR rtl-optimization/69217
13528         * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
13529         are no TYPE_FIELDS set for the record type.
13530
13531 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
13532
13533         PR target/68662
13534         * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
13535         toc_label_name unconditionally.
13536         (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
13537         SYMBOL_REF string.  Use toc_label_name instead of constructing
13538         LCTOC1.
13539         (rs6000_elf_declare_function_name): Use toc_label_name instead of
13540         constructing LCTOC1.
13541
13542 2016-01-26  Martin Sebor  <msebor@redhat.com>
13543
13544         PR other/69477
13545         * doc/extend.texi (Common Type Attributes): Move text that talks about
13546         attribute packed from attribute aligned to the section discussing
13547         the former attribute for clarity.
13548
13549 2016-01-26  Richard Henderson  <rth@redhat.com>
13550
13551         PR middle-end/60908
13552         * trans-mem.c (tm_region_init): Mark entry block as visited.
13553
13554 2016-01-26  David Malcolm  <dmalcolm@redhat.com>
13555
13556         PR other/69006
13557         * diagnostic-show-locus.c (layout::print_source_line): Replace
13558         call to pp_newline with call to layout::print_newline.
13559         (layout::print_annotation_line): Likewise.
13560         (layout::move_to_column): Likewise.
13561         (layout::print_any_fixits): After printing any fixits, print a
13562         trailing newline, if necessary.
13563         (layout::print_newline): New method, resetting any colorization
13564         before a newline.
13565         (diagnostic_show_locus): Move the pp_newline to before the
13566         early bailout.  Remove dummy block enclosing the layout instance.
13567         * diagnostic.c (default_diagnostic_finalizer): Replace invocation
13568         of pp_newline_and_flush with pp_flush.
13569         (diagnostic_append_note): Delete use of pp_newline.
13570         (diagnostic_append_note_at_rich_loc): Delete.
13571         * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
13572         * pretty-print.h (output_buffer_append_r): Reset buff->line_length
13573         when newline characters are added to the buffer.
13574
13575 2016-01-26  Michael Matz  <matz@suse.de>
13576
13577         * configure.ac (ac_cv_std_swap_in_utility): New test.
13578         * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
13579         * configure: Regenerate.
13580         * config.in: Regenerate.
13581
13582 2016-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
13583
13584         * config/arc/arc.md (cstoresi4): Force operand into register.
13585         (arcset<code>): Fix predicate.
13586         (arcsetltu): Likewise.
13587         (arcsetgeu): Likewise.
13588         (arcsethi): Likewise.
13589         (arcsetls): Likewise.
13590
13591 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
13592
13593         PR tree-optimization/69483
13594         * gimple-fold.c (canonicalize_constructor_val): Return NULL
13595         if base has error_mark_node type.
13596
13597 2016-01-26  Christophe Lyon  <christophe.lyon@linaro.org>
13598
13599         PR target/68620
13600         * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
13601         * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
13602         New helper macros.
13603         (vget_lane_f16): Handle big-endian.
13604         (vgetq_lane_f16): Likewise.
13605         (vset_lane_f16): Likewise.
13606         (vsetq_lane_f16): Likewise.
13607         * config/arm/iterators.md (VQXMOV): Add V8HF.
13608         (VDQ): Add V4HF and V8HF.
13609         (V_reg): Handle V4HF and V8HF.
13610         (Is_float_mode): Likewise.
13611         * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
13612         neon_vdup_nv8hf): New patterns.
13613         (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
13614         Use VD_LANE iterator.
13615         (neon_vld1_dup<mode>): Use VQ2 iterator.
13616
13617 2016-01-26  Nathan Sidwell  <nathan@acm.org>
13618
13619         * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
13620         (set_oacc_fn_attrib): Add IS_KERNEL arg.
13621         * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
13622         (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
13623         (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
13624         (oacc_validate_dims): Add LEVEL arg, don't return level.
13625         (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
13626         oacc_validate_dims.
13627         (execute_oacc_device_lower): Adjust, add more dump output.
13628         * tree-ssa-loop.c (gate_oacc_kernels): Use
13629         oacc_fn_attrib_kernels_p.
13630         * tree-parloops.c (create_parallel_loop): Adjust
13631         set_oacc_fn_attrib call.
13632
13633 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
13634
13635         PR lto/69254
13636         * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
13637         (append_compiler_options): Handle -fcilkplus.
13638         (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
13639
13640 2016-01-26  Nick Clifton  <nickc@redhat.com>
13641
13642         PR target/66655
13643         * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
13644         been marked as DECL_ONE_ONLY but we do not the means to make it
13645         so, then do not allow it to bind locally.
13646
13647 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
13648
13649         PR lto/69254
13650         * opts.h (parse_sanitizer_options): New prototype.
13651         * opts.c (sanitizer_opts): New array.
13652         (parse_sanitizer_options): New function.
13653         (common_handle_option): Use parse_sanitizer_options.
13654
13655 2016-01-26  H.J. Lu  <hongjiu.lu@intel.com>
13656
13657         PR target/68986
13658         * config/i386/i386.c (ix86_compute_frame_layout): Move stack
13659         alignment adjustment to ...
13660         (ix86_update_stack_boundary): Here.  Don't over-align stack for
13661         __tls_get_addr.
13662         (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
13663         if __tls_get_addr is called.
13664
13665 2016-01-26  Christian Bruel  <christian.bruel@st.com>
13666
13667         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
13668
13669 2016-01-26  Eric Botcazou  <ebotcazou@adacore.com>
13670
13671         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
13672
13673 2016-01-26  Richard Biener  <rguenther@suse.de>
13674
13675         PR middle-end/69467
13676         * match.pd: Guard X * CST CMP 0 pattern with single_use.
13677
13678 2016-01-26  Richard Biener  <rguenther@suse.de>
13679
13680         PR tree-optimization/69452
13681         * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
13682         (move_computations_dom_walker::before_dom_children): Rename
13683         to ...
13684         (move_computations_worker): This.
13685         (move_computations): Perform an RPO rather than a DOM walk.
13686
13687 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
13688
13689         PR target/69442
13690         * combine.c (combine_instructions): For REG_EQUAL note with
13691         SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
13692         to the underlying register.
13693         * doc/rtl.texi (REG_EQUAL): Document the behavior of
13694         REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
13695
13696 2016-01-26  Roger Ferrer Ibáñez  <rofirrim@gmail.com>
13697
13698         PR target/67896
13699         * config/aarch64/aarch64-builtins.c
13700         (aarch64_init_simd_builtin_types): Do not set structural
13701         equality to __Poly{8,16,64,128}_t types.
13702
13703 2016-01-26  Richard Sandiford  <richard.sandiford@arm.com>
13704
13705         PR tree-optimization/69400
13706         * wide-int.cc (wi_pack): Take the precision as argument and
13707         perform canonicalization here rather than in the callers.
13708         Use the main loop to handle all full-width HWIs.  Add a
13709         zero HWI if in_len isn't a full result.
13710         (wi::divmod_internal): Update accordingly.
13711         (wi::mul_internal): Likewise.  Simplify.
13712
13713 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
13714             Sebastian Pop  <s.pop@samsung.com>
13715
13716         * graphite-poly.c (apply_poly_transforms): Simplify.
13717         (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
13718         (print_isl_map): Same.
13719         (print_isl_union_map): Same.
13720         (print_isl_schedule): New.
13721         (debug_isl_schedule): New.
13722         * graphite-dependences.c (scop_get_reads): Do not call
13723         isl_union_map_add_map that is undocumented isl functionality.
13724         (scop_get_must_writes): Same.
13725         (scop_get_may_writes): Same.
13726         (scop_get_original_schedule): Remove.
13727         (scop_get_dependences): Do not call isl_union_map_compute_flow that
13728         is deprecated in isl 0.15.  Instead, use isl_union_access_* interface.
13729         (compute_deps): Remove.
13730         * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
13731         (debug_schedule_ast): New.
13732         (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
13733         set_separate_option.
13734         (graphite_regenerate_ast_isl): Add dump.
13735         (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
13736         from scop->transformed_schedule.
13737         (graphite_regenerate_ast_isl): Add more dump.
13738         * graphite-optimize-isl.c (optimize_isl): Set
13739         scop->transformed_schedule.  Check whether schedules are equal.
13740         (apply_poly_transforms): Move here.
13741         * graphite-poly.c (apply_poly_transforms): ... from here.
13742         (free_poly_bb): Static.
13743         (free_scop): Static.
13744         (pbb_number_of_iterations_at_time): Remove.
13745         (print_isl_ast): New.
13746         (debug_isl_ast): New.
13747         (debug_scop_pbb): New.
13748         * graphite-scop-detection.c (print_edge): Move.
13749         (print_sese): Move.
13750         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
13751         (build_scop_scattering): Remove.
13752         (create_pw_aff_from_tree): Assert instead of bailing out.
13753         (add_condition_to_pbb): Remove unused code, do not fail.
13754         (add_conditions_to_domain): Same.
13755         (add_conditions_to_constraints): Remove.
13756         (build_scop_context): New.
13757         (add_iter_domain_dimension): New.
13758         (build_iteration_domains): Initialize pbb->iterators.
13759         Call add_conditions_to_domain.
13760         (nested_in): New.
13761         (loop_at): New.
13762         (index_outermost_in_loop): New.
13763         (index_pbb_in_loop): New.
13764         (outermost_pbb_in): New.
13765         (add_in_sequence): New.
13766         (add_outer_projection): New.
13767         (outer_projection_mupa): New.
13768         (add_loop_schedule): New.
13769         (build_schedule_pbb): New.
13770         (build_schedule_loop): New.
13771         (embed_in_surrounding_loops): New.
13772         (build_schedule_loop_nest): New.
13773         (build_original_schedule): New.
13774         (build_poly_scop): Call build_original_schedule.
13775         * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
13776         (free_poly_dr): Remove.
13777         (struct poly_bb): Add iterators.  Remove schedule, transformed, saved.
13778         (free_poly_bb): Remove.
13779         (debug_loop_vec): Remove.
13780         (print_isl_ast): Declare.
13781         (debug_isl_ast): Declare.
13782         (scop_do_interchange): Remove.
13783         (scop_do_strip_mine): Remove.
13784         (scop_do_block): Remove.
13785         (flatten_all_loops): Remove.
13786         (optimize_isl): Remove.
13787         (pbb_number_of_iterations_at_time): Remove.
13788         (debug_scop_pbb): Declare.
13789         (print_schedule_ast): Declare.
13790         (debug_schedule_ast): Declare.
13791         (struct scop): Remove schedule.  Add original_schedule,
13792         transformed_schedule.
13793         (free_gimple_poly_bb): Remove.
13794         (print_generated_program): Remove.
13795         (debug_generated_program): Remove.
13796         (unify_scattering_dimensions): Remove.
13797         * sese.c (print_edge): ... here.
13798         (print_sese): ... here.
13799         (debug_edge): ... here.
13800         (debug_sese): ... here.
13801         * sese.h (print_edge): Declare.
13802         (print_sese): Declare.
13803         (dump_edge): Declare.
13804         (dump_sese): Declare.
13805
13806 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
13807             Sebastian Pop  <s.pop@samsung.com>
13808
13809         * Makefile.in: Set ISLVER in site.exp.
13810
13811 2016-01-25  Jakub Jelinek  <jakub@redhat.com>
13812
13813         * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
13814         DECL_VALUE_EXPR of new_var even for the non-array case.  Look
13815         through DECL_VALUE_EXPR for expansion.
13816
13817 2016-01-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
13818
13819         * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
13820         the frame info after reload completed.
13821
13822 2016-01-25  Jeff Law  <law@redhat.com>
13823
13824         PR tree-optimization/69196
13825         PR tree-optimization/68398
13826         * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
13827         tree-ssa-threadupdate.c.
13828         (determine_bb_domination_status): Prototype
13829         * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
13830         (determine_bb_domination_status): No longer static.
13831         (valid_jump_thread_path): Remove code to detect characteristics
13832         of the jump thread path not associated with correctness.
13833         * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
13834         Correct test for thread path length.  Count PHIs for real operands as
13835         statements that need to be copied.  Do not count ASSERT_EXPRs.
13836         Look at all the blocks in the thread path.  Compute and selectively
13837         filter thread paths based on threading through the latch, threading
13838         a multiway branch or crossing a multiway branch.
13839
13840 2016-01-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13841
13842         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled):  Add
13843         decl with __attribute__ ((unused)) annotation.
13844
13845 2016-01-25  Ilya Enkovich  <enkovich.gnu@gmail.com>
13846
13847         PR target/69421
13848         * tree-vect-stmts.c (vectorizable_condition): Check vectype
13849         of operands is compatible with a statement vectype.
13850
13851 2016-01-25  Eric Botcazou  <ebotcazou@adacore.com>
13852
13853         * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
13854         improve wording for mixed storage order support.
13855
13856 2016-01-25  Bilyan Borisov  <bilyan.borisov@arm.com>
13857
13858         * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
13859         (vcvt_u64_f64): Likewise.
13860         (vcvta_s64_f64): Likewise.
13861         (vcvta_u64_f64): Likewise.
13862         (vcvtm_s64_f64): Likewise.
13863         (vcvtm_u64_f64): Likewise.
13864         (vcvtn_s64_f64): Likewise.
13865         (vcvtn_u64_f64): Likewise.
13866         (vcvtp_s64_f64): Likewise.
13867         (vcvtp_u64_f64): Likewise.
13868
13869 2016-01-25  Claudiu Zissulescu  <claziss@synopsys.com>
13870
13871         * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
13872         (arc_init): Check validity mll64 option.
13873         (arc_save_restore): Use double load/store instruction.
13874         (arc_expand_movmem): Likewise.
13875         (arc_split_move): Don't split if we have double load/store
13876         instructions. Returns a boolean.
13877         (arc_process_double_reg_moves): Change function to return boolean
13878         instead of a sequence of instructions.
13879         (arc_dwarf_register_span): New function.
13880         * config/arc/arc-protos.h (arc_split_move): Change prototype.
13881         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
13882         * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
13883         (*movdf_insn): Likewise.
13884         * config/arc/arc.opt (mll64): New option.
13885         * config/arc/predicates.md (even_register_operand): New predicate.
13886         * doc/invoke.texi (ARC Options): Add mll64 documentation.
13887
13888 2016-01-25  Richard Biener  <rguenther@suse.de>
13889
13890         PR lto/69393
13891         * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
13892         * tree-streamer-out.c (pack_ts_base_value_fields): Stream
13893         DECL_NAMELESS.
13894         * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
13895
13896 2016-01-25  Richard Biener  <rguenther@suse.de>
13897
13898         PR tree-optimization/69376
13899         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
13900         flag.
13901         (VN_INFO_ANTI_RANGE_P): New inline.
13902         (VN_INFO_RANGE_TYPE): Likewise.
13903         * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
13904         SSA_NAME_ANTI_RANGE_P.
13905         (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
13906         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
13907         Properly query VN_INFO_RANGE_TYPE.
13908
13909 2016-01-25  Nick Clifton  <nickc@redhat.com>
13910
13911         PR target/66655
13912         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
13913
13914 2016-01-23  Tom de Vries  <tom@codesourcery.com>
13915
13916         PR tree-optimization/69426
13917         * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
13918         removed clobber.
13919
13920 2016-01-23  Jakub Jelinek  <jakub@redhat.com>
13921
13922         * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
13923         "the the" with "the" in the comments.
13924         * ipa-devirt.c (build_type_inheritance_graph,
13925         update_type_inheritance_graph): Likewise.
13926         * tree.c (build_function_type_list_1): Likewise.
13927         * cfgloopmanip.c (scale_loop_profile): Likewise.
13928         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
13929         * gimple-ssa-split-paths.c
13930         (find_block_to_duplicate_for_splitting_paths): Likewise.
13931         * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
13932         * expr.c (convert_move): Likewise.
13933         * var-tracking.c (vt_stack_adjustments): Likewise.
13934         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
13935         * tree-vrp.c (test_for_singularity): Likewise.
13936
13937         * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
13938         directly instead of building a temporary tree.
13939
13940         PR bootstrap/69434
13941         * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
13942         remove <algorithm> include.
13943
13944 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
13945
13946         PR target/69432
13947         * config/i386/i386.c: Include dojump.h.
13948         (expand_small_movmem_or_setmem,
13949         expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
13950         fixes.
13951         (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
13952         if dynamic_check != -1.
13953
13954 2016-01-21  Jeff Law  <law@redhat.com>
13955
13956         PR middle-end/69347
13957         * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
13958         record_temporary_equivalences.  Rewritten to avoid unnecessary calls
13959         into dominated_by_p.
13960         (cprop_into_successor_phis): Avoid unnecessary tests.
13961
13962 2016-01-22  Richard Henderson  <rth@redhat.com>
13963
13964         PR target/69416
13965         * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
13966         (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
13967
13968 2016-01-22  Michael Matz  <matz@suse.de>
13969
13970         * system.h (string, algorithm): Include only conditionally.
13971         (new): Include always under C++.
13972         * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
13973         * final.c (toplevel): Ditto.
13974         * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
13975         * genconditions.c (write_header): Make gencondmd.c define
13976         INCLUDE_STRING.
13977         * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
13978
13979         * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
13980         * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
13981
13982 2016-01-22  Christian Bruel  <christian.bruel@st.com>
13983
13984         PR target/68674
13985         * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
13986
13987 2016-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13988
13989         PR target/69403
13990         * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
13991         define_insn_and_split.  Ensure operands[1] and operands[0] do not
13992         get assigned the same register.
13993
13994 2016-01-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
13995
13996         * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
13997
13998 2016-01-22  Christian Bruel  <christian.bruel@st.com>
13999
14000         * config/arm/arm-c.c (arm_pragma_target_parse):
14001         Remove warn_builtin_macro_redefined overwrite.
14002
14003 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
14004
14005         * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
14006         flag_non_call_exceptions compatibility.
14007
14008 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
14009
14010         PR debug/66668
14011         * dwarf2out.c (add_child_die_after): New function.
14012         (dwarf_qual_info_t): New type.
14013         (dwarf_qual_info): New variable.
14014         (qualified_die_p): New function.
14015         (modified_type_die): For -fdebug-types-section, ensure
14016         canonical order of qualifiers.  Put qualified DIEs adjacent
14017         to the corresponding non-qualified type DIE and search there
14018         for existing qualified DIEs.
14019
14020 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
14021
14022         * doc/extend.texi (scalar_storage_order type attribute): Document
14023         restriction on type punning and aliasing, and remove future tense.
14024
14025 2016-01-21  Roman Zhuykov  <zhroma@ispras.ru>
14026
14027         PR target/69252
14028         * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
14029         first stage.
14030
14031 2016-01-21  Jeff Law  <law@redhat.com>
14032
14033         PR middle-end/69347
14034         * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
14035         useless call to record_temporary_equivalences.
14036         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
14037         allocate 10 slots in the bb_path vector and let it grow as needed.
14038         (fsm_find_control_statement_thread_paths): Similarly for the next_path
14039         vector.
14040
14041 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
14042
14043         * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
14044         Detangle.
14045         * configure: Regenerate.
14046
14047 2016-01-21  Pat Haugen  <pthaugen@us.ibm.com>
14048
14049         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
14050         * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
14051
14052 2016-01-21  Bernd Schmidt  <bschmidt@redhat.com>
14053
14054         PR middle-end/66178
14055         * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
14056         drop EXPAND_INITIALIZER.
14057         * rtl.h (contains_symbolic_reference_p): Declare.
14058         * rtlanal.c (contains_symbolic_reference_p): New function.
14059         * simplify-rtx.c (simplify_binary_operation_1): Don't turn
14060         a subtraction into a NOT if symbolic constants are involved.
14061
14062 2016-01-21  Anton Blanchard  <anton@samba.org>
14063             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14064
14065         PR target/63354
14066         * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
14067         #define.
14068         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
14069         function.
14070
14071 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
14072
14073         * config/microblaze/microblaze.c
14074         (get_branch_target): New.
14075         (insert_wic_for_ilb_runout): New.
14076         (insert_wic): New.
14077         (microblaze_machine_dependent_reorg): New.
14078         (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
14079         * config/microblaze/microblaze.md
14080         (UNSPEC_IPREFETCH): Define.
14081         (iprefetch): New pattern
14082         * config/microblaze/microblaze.opt
14083         (mxl-prefetch): New flag.
14084
14085 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
14086
14087         * config/microblaze/microblaze.h
14088         (FIXED_REGISTERS): Update in macro.
14089         (CALL_USED_REGISTERS): Update in macro.
14090
14091 2016-01-21  Yuri Rumyantsev  <ysrumyan@gmail.com>
14092
14093         PR rtl-optimization/68920
14094         * ifcvt.c (cond_move_process_if_block): Limit number of conditional
14095         moves.
14096
14097 2016-01-21  Vladimir Makarov  <vmakarov@redhat.com>
14098
14099         PR rtl-optimization/68990
14100         * lra-coalesce.c (lra_coalesce): Invalidate value for the result
14101         pseudo instead of inheritance ones.
14102
14103 2016-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
14104             Nick Clifton  <nickc@redhat.com>
14105
14106         PR target/69129
14107         PR target/69012
14108         * config/mips/mips.c (mips_compute_frame_info): Initialise
14109         args_size and hard_frame_pointer_offset fields of the frame
14110         structure before calling mips_global_pointer.
14111
14112 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
14113
14114         * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
14115         label reference.
14116         * configure: Regenerate.
14117
14118 2016-01-21  Richard Biener  <rguenther@suse.de>
14119
14120         * graphite-optimize-isl.c (get_schedule_map): Fix typo.
14121
14122 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
14123
14124         * config/s390/s390.c (s390_asm_declare_function_size): Add code
14125         to actually emit the .size directive.
14126
14127 2016-01-21   Stefan Sørensen  <stefan.sorensen@spectralink.com>
14128              Jakub Jelinek  <jakub@redhat.com>
14129
14130         PR target/69187
14131         PR target/65624
14132         * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
14133         args array size by one to avoid buffer overflow.
14134
14135 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
14136
14137         * config/s390/s390.md (pool_section_start): Use switch_to_section
14138         to select proper read-only data section instead of hardcoding
14139         .rodata.
14140         (pool_section_end): Use switch_to_section to match the above.
14141
14142 2016-01-21  Richard Biener  <rguenther@suse.de>
14143
14144         PR tree-optimization/69378
14145         * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
14146         (set_ssa_val_to): Use it for dominance checks taking into
14147         account not executable edges.
14148
14149 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
14150
14151         PR c++/69355
14152         * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
14153         for bitsize instead of GET_MODE_PRECISION (mode).
14154
14155 2016-01-20  Martin Sebor  <msebor@redhat.com>
14156
14157         PR c/52291
14158         * extend.texi (__sync Builtins): Clarify the semantics of
14159         __sync_fetch_and_OP built-ins on pointers.
14160         (__atomic Builtins): Same.
14161
14162 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14163             Sebastian Pop  <s.pop@samsung.com>
14164
14165         * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
14166         (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
14167         (is_valid_rename): Same.
14168         (translate_isl_ast_to_gimple::get_rename): Same.
14169         (translate_isl_ast_to_gimple::rename_all_uses): Same.
14170         (translate_isl_ast_to_gimple::rename_uses): Same.
14171         (get_new_name): Check for close_phi nodes.
14172         (copy_loop_phi_args): Use phi_node_kind.
14173         (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
14174         (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
14175
14176 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14177             Sebastian Pop  <s.pop@samsung.com>
14178
14179         Revert commit r229783.
14180         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
14181         Remove use of parameter_rename_map.
14182         (copy_def): Remove.
14183         (copy_internal_parameters): Remove.
14184         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
14185         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
14186         (free_sese_info): Do not free parameter_rename_map.
14187         (set_rename): Do not use parameter_rename_map.
14188         (rename_uses): Update call to set_rename.
14189         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
14190         * sese.h (parameter_rename_map_t): Remove.
14191         (struct sese_info_t): Remove field parameter_rename_map.
14192
14193 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14194             Sebastian Pop  <s.pop@samsung.com>
14195
14196         * graphite-isl-ast-to-gimple.c: Fix comment.
14197         * graphite-scop-detection.c (defined_in_loop_p): New.
14198         (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
14199         names defined in loop.
14200
14201 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14202             Sebastian Pop  <s.pop@samsung.com>
14203
14204         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
14205         Discard unstructured if-then-else regions.
14206
14207 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14208             Sebastian Pop  <s.pop@samsung.com>
14209
14210         * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
14211         (cleanup_loop_iter_dom): Remove.
14212         (build_loop_iteration_domains): Remove.
14213         (build_scop_context): Remove.
14214         (build_scop_iteration_domain): Remove.
14215         (add_loop_constraints): New.
14216         (build_iteration_domains): New.
14217         (build_poly_scop): Call build_iteration_domains.
14218
14219 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14220             Sebastian Pop  <s.pop@samsung.com>
14221
14222         * graphite-scop-detection.c
14223         (scop_detection::harmful_loop_in_region): Free dom and loops.
14224         (scop_detection::loop_body_is_valid_scop): Free bbs.
14225
14226 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14227             Sebastian Pop  <s.pop@samsung.com>
14228
14229         * graphite-scop-detection.c (record_loop_in_sese): New.
14230         (gather_bbs::before_dom_children): Call record_loop_in_sese.
14231         (build_scops): Remove call to build_sese_loop_nests.
14232         * sese.c (sese_record_loop): Remove.
14233         (build_sese_loop_nests): Remove.
14234         (new_sese_info): Remove region->loops.
14235         (free_sese_info): Same.
14236         * sese.h (sese_contains_loop): Same.
14237         (build_sese_loop_nests): Remove.
14238         (sese_contains_loop): Remove.
14239
14240 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14241             Sebastian Pop  <s.pop@samsung.com>
14242
14243         * graphite-scop-detection.c (loop_is_valid_scop): Renamed
14244         loop_is_valid_in_scop.
14245         (scop_detection::harmful_stmt_in_region): Renamed
14246         harmful_loop_in_region.
14247         Call loop_is_valid_in_scop.
14248
14249 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14250             Sebastian Pop  <s.pop@samsung.com>
14251
14252         * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
14253         isl_ast_node_mark.
14254
14255 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14256             Sebastian Pop  <s.pop@samsung.com>
14257
14258         * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
14259         * graphite.h (struct poly_bb): Remove field is_reduction.
14260         (PBB_IS_REDUCTION): Remove.
14261
14262 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
14263             Sebastian Pop  <s.pop@samsung.com>
14264
14265         * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
14266         (add_pdr_constraints): Same.
14267         (scop_get_reads): Same.
14268         (scop_get_must_writes): Same.
14269         (scop_get_may_writes): Same.
14270         (scop_get_original_schedule): Same.
14271         (extend_schedule): Same.
14272         (apply_schedule_on_deps): Same.
14273         (carries_deps): Same.
14274         (compute_deps): Same.
14275         (scop_get_dependences): Same.
14276         * graphite-isl-ast-to-gimple.c
14277         (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
14278         * graphite-optimize-isl.c (get_schedule_for_band): Same.
14279         (get_schedule_for_band_list): Same.
14280         (get_schedule_map): Same.
14281         (apply_schedule_map_to_scop): Same.
14282         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
14283         (build_loop_iteration_domains): Same.
14284         (add_condition_to_pbb): Same.
14285         (add_param_constraints): Same.
14286         (pdr_add_memory_accesses): Same.
14287         (pdr_add_data_dimensions): Same.
14288
14289 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
14290
14291         * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
14292         requirements.
14293
14294 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
14295
14296         * common.opt (feliminate-dwarf2-dups): Replace references to
14297         "DWARF 2" with just "DWARF".
14298         * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
14299         * doc/extend.texi: Likewise.
14300         * doc/cpp.texi: Likewise.
14301         * doc/invoke.texi: Likewise.
14302         (Option Summary): Add -gdwarf to list of Debugging Options.
14303         (Debugging Options): Document -gdwarf.
14304         * doc/contrib.texi: Spell "DWARF" like that.
14305
14306 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
14307
14308         * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
14309         warning.  Fix up formatting.
14310
14311         PR middle-end/67653
14312         * gimplify.c (gimplify_asm_expr): Warn if it is too late to
14313         attempt to mark memory input operand addressable and
14314         call prepare_gimple_addressable in that case.  Don't adjust
14315         input_location for diagnostics, use error_at instead.
14316
14317 2016-01-20  Peter Bergner  <bergner@vnet.ibm.com>
14318
14319         * config/rs6000/ppc-auxv.h: New file.
14320         * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
14321         (cpu_is): Likewise.
14322         (cpu_supports): Likewise.
14323         * config/rs6000/rs6000.c: include "ppc-auxv.h".
14324         (cpu_is_info): New variable.
14325         (cpu_supports_info): Likewise.
14326         (tcb_verification_symbol): Likewise.
14327         (cpu_builtin_p): Likewise.
14328         (cpu_expand_builtin): New function.
14329         (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
14330         (rs6000_init_builtins): Likewise.
14331         (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
14332         * config/rs6000/rs6000.h (TLS_REGNUM): New define.
14333         * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
14334         * configure: Regenerate.
14335         * config.in: Likewise.
14336         * doc/extend.texi (PowerPC Built-in Functions): Document
14337         __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
14338
14339 2016-01-20  David Edelsohn  <dje.gcc@gmail.com>
14340
14341         PR target/68609
14342         * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
14343         domain check.
14344         * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
14345         for V4SFmode.
14346
14347 2016-01-20  Richard Henderson  <rth@redhat.com>
14348
14349         PR bootstrap/69343
14350         PR bootstrap/69339
14351         PR tree-opt/68964
14352         Revert:
14353         * tree.c (tm_define_builtin): New.
14354         (find_tm_vector_type): New.
14355         (build_tm_vector_builtins): New.
14356         (build_common_builtin_nodes): Call it.
14357
14358 2016-01-20  Christophe Lyon  <christophe.lyon@linaro.org>
14359
14360         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
14361         (arm_fp_ok): Likewise.
14362         (arm_fp): Likewise.
14363         (arm_crypto): Likewise.
14364
14365 2016-01-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
14366             Richard Biener  <rguenther@suse.de>
14367
14368         PR tree-optimization/69328
14369         * tree-vect-stmts.c (vect_is_simple_cond): Check compared
14370         vectors have same number of elements.
14371         (vectorizable_condition): Fix masked version recognition.
14372
14373 2016-01-20  Richard Biener  <rguenther@suse.de>
14374
14375         PR tree-optimization/69345
14376         * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
14377         (VN_INFO_PTR_INFO): Likewise.
14378         * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
14379         info when it is equal between non-dominating SSA names.
14380         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
14381         Make sure to look at original SSA infos.
14382
14383 2016-01-20  Jeff Law  <law@redhat.com>
14384
14385         PR target/25114
14386         * config/m68k/predicates.md (pow2_m1_operand): New predicate
14387         extracted from ...
14388         (reg_or_pow2_m1_operand): Call pow2_m1_operand.
14389         (pc_or_label_operand): New predicate.
14390         * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
14391         tests for small integers that are 2^n - 1.
14392
14393 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
14394
14395         * doc/invoke.texi (Options Summary): Add '.' after @xref.
14396
14397 2016-01-19  Jeff Law  <law@redhat.com>
14398
14399         PR middle-end/69347
14400         * tree-ssa-threadbackwards.c
14401         (fsm_find_control_statement_thread_paths): Do not try to lookup
14402         FSM paths for SSA_NAMEs appearing in abnormal PHIs.
14403
14404 2016-01-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
14405
14406         * doc/lto.texi: Remove text that says only Gold has linker plugin
14407         support.
14408
14409 2016-01-19  Eric Botcazou  <ebotcazou@adacore.com>
14410
14411         * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
14412         (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
14413         the DIE accordingly.
14414         (modified_type_die): Add REVERSE parameter and pass it recursively,
14415         as well as to base_type_die.  Adjust presence check accordingly.
14416         (base_type_for_mode): Adjust call to modified_type_die.
14417         (add_type_attribute): Add REVERSE parameter and pass it to
14418         modified_type_die.
14419         (generic_parameter_die): Adjust call to add_type_attribute.
14420         (add_scalar_info): Likewise.
14421         (add_subscript_info): Likewise.
14422         (gen_array_type_die): Likewise.
14423         (gen_descr_array_type_die): Likewise.
14424         (gen_entry_point_die): Likewise.
14425         (gen_enumeration_type_die): Likewise.
14426         (gen_formal_parameter_die): Likewise.
14427         (gen_subprogram_die): Likewise.
14428         (gen_variable_die ): Likewise.
14429         (gen_const_die): Likewise.
14430         (gen_field_die): Likewise.
14431         (gen_pointer_type_die): Likewise.
14432         (gen_reference_type_die): Likewise.
14433         (gen_ptr_to_mbr_type_die): Likewise.
14434         (gen_inheritance_die): Likewise.
14435         (gen_subroutine_type_die): Likewise.
14436         (gen_typedef_die): Likewise.
14437         (force_type_die): Adjust call to modified_type_die.
14438
14439 2016-01-19  Sandra Loosemore  <sandra@codesourcery.com>
14440
14441         * doc/standards.texi: Copy-editing for grammar, markup, and sentence
14442         flow throughout the file.  Fix broken link to Objective-C 2.0
14443         documentation.
14444         * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
14445         errors.
14446
14447 2016-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
14448
14449         * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
14450
14451 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
14452
14453         PR ipa/66223
14454         * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
14455         (maybe_record_node): Record cxa_pure_virtual as the only possible
14456         target if there are not ohter candidates.
14457         (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
14458
14459 2016-01-19  Richard Biener  <rguenther@suse.de>
14460
14461         * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
14462         (get_memory_order): Likewise.
14463
14464 2016-01-19  Kirill Yukhin  <kirill.yukhin@intel.com>
14465
14466         * tree-vect-stmts.c (vectorizable_store): Check
14467         rhs vectype.
14468
14469 2016-01-19  David Malcolm  <dmalcolm@redhat.com>
14470
14471         PR jit/68446
14472         * gcc.c (driver::decode_argv): Add call to
14473         init_opts_obstack before init_options_struct.
14474         * opts.c (init_opts_obstack): Remove idempotency.
14475         (init_options_struct): Replace call to init_opts_obstack
14476         with a gcc_assert to verify that it has already been called.
14477         * toplev.c (toplev::main): Add call to init_opts_obstack before
14478         calls to init_options_struct.
14479         (toplev::finalize): Move cleanup of opts_obstack next to
14480         cleanup of save_decoded_options, clearing the latter, and
14481         save_decoded_options_count.
14482
14483 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14484
14485         PR target/69135
14486         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
14487         attribute to unconditional.  Remove %? from output template.
14488
14489 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
14490             Jiong Wang  <jiong.wang@arm.com>
14491
14492         * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
14493         generated from different expand order.
14494
14495 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
14496
14497         * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
14498         Add support for CCMP costing.
14499
14500 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
14501
14502         * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
14503         * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
14504         (fccmpe<mode>): Likewise.
14505         (fcmp): Rename to fcmp and globalize pattern.
14506         (fcmpe): Likewise.
14507         * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
14508         (aarch64_gen_ccmp_next): Add FP support.
14509
14510 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
14511
14512         * target.def (gen_ccmp_first): Update documentation.
14513         (gen_ccmp_next): Likewise.
14514         * doc/tm.texi (gen_ccmp_first): Update documentation.
14515         (gen_ccmp_next): Likewise.
14516         * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
14517         expand_ccmp_expr_1.  Improve comments.
14518         * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
14519         (ccmp_ior<mode>): Remove pattern.
14520         (cmp<mode>): Remove expand.
14521         (cmp): Globalize pattern.
14522         (cstorecc4): Use cc_register.
14523         (mov<mode>cc): Remove ccmp_cc_register check.
14524         * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
14525         Simplify after removal of CC_DNE/* modes.
14526         (aarch64_ccmp_mode_to_code): Remove.
14527         (aarch64_print_operand): Remove 'K' case.  Merge 'm' and 'M' cases.
14528         In 'k' case use integer as condition.
14529         (aarch64_nzcv_codes): Remove inverted cases.
14530         (aarch64_code_to_ccmode): Remove.
14531         (aarch64_gen_ccmp_first): Use cmp pattern directly.  Return the correct
14532         comparison with CC register to be used in folowing CCMP/branch/CSEL.
14533         (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
14534         pattern.  Return the comparison with CC register.  Invert conditions
14535         when bitcode is OR.
14536         * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
14537         * config/aarch64/predicates.md (ccmp_cc_register): Remove.
14538
14539 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
14540
14541         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
14542         instrumented_version.
14543
14544 2016-01-19  Richard Biener  <rguenther@suse.de>
14545
14546         PR tree-optimization/69336
14547         * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
14548         handled components with get_ref_base_and_extent.
14549         (equal_mem_array_ref_p): Adjust.
14550
14551 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
14552
14553         PR debug/65779
14554         * shrink-wrap.c: Include valtrack.h.
14555         (move_insn_for_shrink_wrap): Add DEBUG argument.  If
14556         MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
14557         in between insn and where it will be moved to.  Call
14558         dead_debug_insert_temp.
14559         (prepare_shrink_wrap): Adjust caller.  Call dead_debug_local_init
14560         first and dead_debug_local_finish at the end.
14561         For uses and defs bitmap, handle all regs in between REGNO and
14562         END_REGNO, not just the first one.
14563
14564 2016-01-19  Richard Biener  <rguenther@suse.de>
14565
14566         PR tree-optimization/69352
14567         * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
14568         (equal_mem_array_ref_p): Constrain size and max size properly.
14569         Compare the reverse flag.
14570
14571 2016-01-19  Bernd Schmidt  <bschmidt@redhat.com>
14572
14573         * ira.c (ira): Update regstat data if we deleted insns.
14574
14575 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
14576
14577         PR rtl-optimization/68955
14578         PR rtl-optimization/64557
14579         * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
14580         here.  Fix up formatting.
14581         * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
14582
14583 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
14584
14585         PR lto/69133
14586         * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
14587         assume that the node has body.
14588         * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
14589         check.
14590
14591 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
14592
14593         * lto-streamer-out.c (lto_output): Do not stream instrumentation
14594         thunks.
14595
14596 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
14597
14598         * symtab.c (symtab_node::asm_name): Do not call printable name directly.
14599         (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
14600
14601 2016-01-19  Martin Jambor  <mjambor@suse.cz>
14602             Martin Liska  <mliska@suse.cz>
14603             Michael Matz  <matz@suse.de>
14604
14605         * Makefile.in (OBJS): Add new source files.
14606         (GTFILES): Add hsa.c.
14607         * common.opt (disable_hsa): New variable.
14608         (-Whsa): New warning.
14609         * config.in (ENABLE_HSA): New.
14610         * configure.ac: Treat hsa differently from other accelerators.
14611         (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
14612         $enable_offloading.
14613         (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
14614         * doc/install.texi (Configuration): Document --with-hsa-runtime,
14615         --with-hsa-runtime-include, --with-hsa-runtime-lib and
14616         --with-hsa-kmt-lib.
14617         * doc/invoke.texi (-Whsa): Document.
14618         (hsa-gen-debug-stores): Likewise.
14619         * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
14620         to invoke offload compiler for hsa acclerator.
14621         * opts.c (common_handle_option): Determine whether HSA offloading
14622         should be performed.
14623         * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
14624         * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
14625         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
14626         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
14627         * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
14628         * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
14629         GF_OMP_FOR_KIND_GRID_LOOP.
14630         (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
14631         (pp_gimple_stmt_1): Likewise.
14632         * gimple-walk.c (walk_gimple_stmt): Likewise.
14633         * gimple.c (gimple_build_omp_grid_body): New function.
14634         (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
14635         * gimple.def (GIMPLE_OMP_GRID_BODY): New.
14636         * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
14637         GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
14638         GF_OMP_TEAMS_GRID_PHONY.
14639         (gimple_statement_omp_single_layout): Updated comments.
14640         (gimple_build_omp_grid_body): New function.
14641         (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
14642         (gimple_omp_for_grid_phony): New function.
14643         (gimple_omp_for_set_grid_phony): Likewise.
14644         (gimple_omp_parallel_grid_phony): Likewise.
14645         (gimple_omp_parallel_set_grid_phony): Likewise.
14646         (gimple_omp_teams_grid_phony): Likewise.
14647         (gimple_omp_teams_set_grid_phony): Likewise.
14648         (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
14649         * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
14650         (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
14651         (BUILT_IN_GOMP_TARGET): Updated type.
14652         * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
14653         (adjust_for_condition): New function.
14654         (get_omp_for_step_from_incr): Likewise.
14655         (extract_omp_for_data): Moved parts to adjust_for_condition and
14656         get_omp_for_step_from_incr.
14657         (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
14658         (fixup_child_record_type): Bail out if receiver_decl is NULL.
14659         (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
14660         (scan_omp_parallel): Do not create child functions for phony
14661         constructs.
14662         (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
14663         (scan_omp_1_op): Checking assert we are not remapping to
14664         ERROR_MARK.  Also also handle GIMPLE_OMP_GRID_BODY.
14665         (parallel_needs_hsa_kernel_p): New function.
14666         (expand_parallel_call): Register apprpriate parallel child
14667         functions as HSA kernels.
14668         (grid_launch_attributes_trees): New type.
14669         (grid_attr_trees): New variable.
14670         (grid_create_kernel_launch_attr_types): New function.
14671         (grid_insert_store_range_dim): Likewise.
14672         (grid_get_kernel_launch_attributes): Likewise.
14673         (get_target_argument_identifier_1): Likewise.
14674         (get_target_argument_identifier): Likewise.
14675         (get_target_argument_value): Likewise.
14676         (push_target_argument_according_to_value): Likewise.
14677         (get_target_arguments): Likewise.
14678         (expand_omp_target): Call get_target_arguments instead of looking
14679         up for teams and thread limit.
14680         (grid_expand_omp_for_loop): New function.
14681         (grid_arg_decl_map): New type.
14682         (grid_remap_kernel_arg_accesses): New function.
14683         (grid_expand_target_kernel_body): New function.
14684         (expand_omp): Call it.
14685         (lower_omp_for): Do not emit phony constructs.
14686         (lower_omp_taskreg): Do not emit phony constructs but create for them
14687         a temporary variable receiver_decl.
14688         (lower_omp_taskreg): Do not emit phony constructs.
14689         (lower_omp_teams): Likewise.
14690         (lower_omp_grid_body): New function.
14691         (lower_omp_1): Call it.
14692         (grid_reg_assignment_to_local_var_p): New function.
14693         (grid_seq_only_contains_local_assignments): Likewise.
14694         (grid_find_single_omp_among_assignments_1): Likewise.
14695         (grid_find_single_omp_among_assignments): Likewise.
14696         (grid_find_ungridifiable_statement): Likewise.
14697         (grid_target_follows_gridifiable_pattern): Likewise.
14698         (grid_remap_prebody_decls): Likewise.
14699         (grid_copy_leading_local_assignments): Likewise.
14700         (grid_process_kernel_body_copy): Likewise.
14701         (grid_attempt_target_gridification): Likewise.
14702         (grid_gridify_all_targets_stmt): Likewise.
14703         (grid_gridify_all_targets): Likewise.
14704         (execute_lower_omp): Call grid_gridify_all_targets.
14705         (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
14706         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
14707         (tree_omp_clause): Added union field dimension.
14708         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
14709         * tree.c (omp_clause_num_ops): Added number of arguments of
14710         OMP_CLAUSE__GRIDDIM_.
14711         (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
14712         (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
14713         * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
14714         (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
14715         (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
14716         (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
14717         * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
14718         * tree-pass.h (make_pass_gen_hsail): Declare.
14719         (make_pass_ipa_hsa): Likewise.
14720         * ipa-hsa.c: New file.
14721         * lto-section-in.c (lto_section_name): Add hsa section name.
14722         * lto-streamer.h (lto_section_type): Add hsa section.
14723         * timevar.def (TV_IPA_HSA): New.
14724         * hsa-brig-format.h: New file.
14725         * hsa-brig.c: New file.
14726         * hsa-dump.c: Likewise.
14727         * hsa-gen.c: Likewise.
14728         * hsa.c: Likewise.
14729         * hsa.h: Likewise.
14730         * toplev.c (compile_file): Call hsa_output_brig.
14731         * hsa-regalloc.c: New file.
14732
14733 2016-01-18  Jeff Law  <law@redhat.com>
14734
14735         PR tree-optimization/69320
14736         * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
14737         ranged object, do nothing if the RHS constant is not [0..1].
14738         (optimize_stmt): Comparing a boolean ranged object against a
14739         constant outside [0..1] results in a compile-time constant.
14740
14741         * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
14742         test.
14743
14744 2016-01-18  Sandra Loosemore  <sandra@codesourcery.com>
14745
14746         * doc/invoke.texi (Invoking GCC): Add new section to menu.
14747         (Option Summary): Update to reflect new section and moved options.
14748         (C++ Dialect Options): Move -fstats to new section.
14749         (Debugging Options): Move all dump, statistics, and other GCC
14750         developer options to new section.  Rewrite section introduction
14751         and re-order remaining options to put the more basic ones first.
14752         (Optimization Options): Move -fira-verbose and -flto-report* to
14753         new section.
14754         (Developer Options): New section incorporating moved options.
14755         * doc/cppopts.texi (-dM): Update cross-reference.
14756
14757 2016-01-18  Richard Henderson  <rth@redhat.com>
14758
14759         PR target/69176
14760         * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
14761         operands to pseudo only if CSE is expected.  Split long immediate
14762         operands only after reload, and for the stack pointer.
14763         (*add<GPI>3_pluslong): Remove.
14764         (*addsi3_aarch64, *adddi3_aarch64): Merge into...
14765         (*add<GPI>3_aarch64): ... here.  Add r/rk/Upl alternative.
14766         (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
14767         (*add<GPI>3 peepholes): New.
14768         (*add<GPI>3 splitters): New.
14769         * config/aarch64/constraints.md (Upl): New.
14770         * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
14771
14772 2016-01-18  Richard Biener  <rguenther@suse.de>
14773
14774         PR tree-optimization/69297
14775         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
14776         stmt at most once.
14777         (vect_bb_vectorization_profitable_p): Clear visited flag again.
14778
14779 2016-01-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
14780
14781         PR middle-end/68542
14782         * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
14783         of mixind vector and scalar types.
14784         (fold_relational_const): Add handling of vector
14785         comparison with boolean result.
14786         * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
14787         comparison of vector operands with boolean result for EQ/NE only.
14788         (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
14789         (verify_gimple_cond): Likewise.
14790         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
14791         valid type of VAL.
14792
14793 2016-01-18  Joseph Myers  <joseph@codesourcery.com>
14794
14795         * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
14796         !TARGET_OCTEON.
14797
14798 2016-01-18  Richard Biener  <rguenther@suse.de>
14799
14800         PR middle-end/69308
14801         * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
14802
14803 2016-01-18  Tom de Vries  <tom@codesourcery.com>
14804
14805         * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
14806
14807 2016-01-18  Tom de Vries  <tom@codesourcery.com>
14808
14809         * omp-low.c (set_oacc_fn_attrib): Make extern.
14810         * omp-low.h (set_oacc_fn_attrib): Declare.
14811         * tree-parloops.c (struct reduction_info): Add reduc_addr field.
14812         (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
14813         (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
14814         Add and handle function parameter oacc_kernels_p.
14815         (find_reduc_addr, get_omp_data_i_param): New function.
14816         (ref_conflicts_with_region, oacc_entry_exit_ok_1)
14817         (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
14818         (parallelize_loops): Add and handle function parameter oacc_kernels_p.
14819         Calculate dominance info.  Skip loops that are not in a kernels region
14820         in oacc_kernels_p mode.  Skip inner loops of parallelized loops.
14821         (pass_parallelize_loops::execute): Call parallelize_loops with
14822         oacc_kernels_p argument.
14823         (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
14824         New member function.
14825         (pass_parallelize_loops::bool oacc_kernels_p): New member var.
14826         * passes.def: Add argument to pass_parallelize_loops instantation.
14827
14828 2016-01-18  Tom de Vries  <tom@codesourcery.com>
14829
14830         * tree-parloops.c (pass_parallelize_loops::execute): Allow
14831         pass_parallelize_loops to be run outside the loop pipeline.
14832
14833 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
14834
14835         * tree-scalar-evolution.c (follow_copies_to_constant): New.
14836         (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
14837
14838 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
14839
14840         PR target/63679
14841         * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
14842         using get_ref_base_and_extent.
14843         (equal_mem_array_ref_p): New.
14844         (hashable_expr_equal_p): Add call to previous.
14845
14846 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
14847
14848         PR target/63679
14849         * tree-sra.c (disqualified_constants, constant_decl_p): New.
14850         (sra_initialize): Allocate disqualified_constants.
14851         (sra_deinitialize): Free disqualified_constants.
14852         (disqualify_candidate): Update disqualified_constants when appropriate.
14853         (create_access): Scan for constant-pool entries as we go along.
14854         (scalarizable_type_p): Add check against type_contains_placeholder_p.
14855         (maybe_add_sra_candidate): Allow constant-pool entries.
14856         (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
14857         (initialize_constant_pool_replacements): New.
14858         (sra_modify_assign): Avoid mangling assignments created by previous,
14859         and don't generate writes into constant pool.
14860         (sra_modify_function_body): Call initialize_constant_pool_replacements.
14861
14862 2016-01-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
14863
14864         * config/i386/i386.c (scalar_to_vector_candidate_p): Support
14865         andnot instruction.
14866         (scalar_chain::convert_op): Likewise.
14867         * config/i386/i386.md (*andndi3_doubleword): New.
14868
14869 2016-01-18  Richard Biener  <rguenther@suse.de>
14870
14871         PR tree-optimization/69170
14872         * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
14873         building a vector from scalar results of a pattern stmt.
14874
14875 2016-01-18  Jakub Jelinek  <jakub@redhat.com>
14876
14877         * haifa-sched.c (autopref_multipass_init): Work around
14878         -Wmaybe-uninitialized warning.
14879
14880 2016-01-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
14881
14882         * config/arm/arm.c (thumb1_reorg): Check that the comparison is
14883         against the constant 0.
14884
14885 2016-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
14886
14887         PR tree-optimization/68799
14888         * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
14889         look up phi candidates in the statement-candidate map.
14890         (phi_add_costs): Likewise.
14891         (record_phi_increments): Likewise.
14892         (phi_incr_cost): Likewise.
14893         (ncd_with_phi): Likewise.
14894         (all_phi_incrs_profitable): Likewise.
14895
14896 2016-01-17  Jakub Jelinek  <jakub@redhat.com>
14897
14898         * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
14899         -Wmaybe-uninitialized warning.
14900
14901 2016-01-16  Sandra Loosemore  <sandra@codesourcery.com>
14902
14903         * doc/invoke.texi (Invoking GCC): Add new section to menu.
14904         (Option Summary): Update to reflect new section and moved options.
14905         (C++ Dialect Options): Move -fvtable-verify and related options.
14906         (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
14907         and profiling-related options.
14908         (Optimization Options): Move profile generation options and
14909         -fstack-protector and related options.
14910         (Instrumentation Options): New section incorporating moved options.
14911         (Code Generation Options): Move -finstrument-functions and
14912         related options, -fstack-check, -fstack-limit*, and -fbounds-check.
14913
14914 2016-01-16  Tom de Vries  <tom@codesourcery.com>
14915
14916         * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
14917
14918 2016-01-16  Tom de Vries  <tom@codesourcery.com>
14919
14920         * omp-low.c (expand_omp_atomic_fetch_op):  Release defs of update stmt.
14921
14922 2016-01-16  Richard Sandiford  <richard.sandiford@arm.com>
14923
14924         * hash-table.h (hash_table::empty): Turn into an inline wrapper
14925         that checks whether the table is already empty.  Rename the
14926         original implementation to...
14927         (hash_table::empty_slot): ...this new private function.
14928
14929 2016-01-15  David Malcolm  <dmalcolm@redhat.com>
14930
14931         PR diagnostic/68899
14932         * diagnostic-show-locus.c (layout::print_source_line): Move x
14933         offset of line until after call to
14934         get_line_width_without_trailing_whitespace.
14935
14936 2016-01-15  Jeff Law  <law@redhat.com>
14937
14938         PR tree-optimization/69270
14939         * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
14940         tree-ssa-dom.c.  Improve test for [0..1] ranve from VRP.
14941         * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
14942         * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
14943         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
14944         ssa_name_has_boolean_range and constant_boolean_node.
14945
14946 2016-01-15  Vladimir Makarov  <vmakarov@redhat.com>
14947
14948         PR rtl-optimization/69030
14949         * lra-spills.c (remove_pseudos): Check nrefs and make the function
14950         returning bool.
14951         (spill_pseudos): Delete debug insn for dead pseudo.
14952         (lra_spill): Initiate spill_hard_reg and slots memory separately.
14953
14954 2016-01-15  Jiong Wang  <jiong.wang@arm.com>
14955
14956         * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
14957         New.
14958         (TYPES_UNOPUS): Likewise.
14959         * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
14960         builtin type, from UNOP to UNOPUS.
14961         (lbtruncuv4sf): Likewise.
14962         (lbtruncuv2df): Likewise.
14963         (lrounduv2sf): Likewise.
14964         (lrounduv4sf): Likewise.
14965         (lrounduv2df): Likewise.
14966         (lroundusf): Likewise.
14967         (lroundusf): Likewise.
14968         (lceiluv2sf): Likewise.
14969         (lceiluv4sf): Likewise.
14970         (lceiluv2df): Likewise.
14971         (lceilusf): Likewise.
14972         (lceiludf): Likewise.
14973         (lflooruv2sf): Likewise.
14974         (lflooruv4sf): Likewise.
14975         (lflooruv2df): Likewise.
14976         (lfloorusf): Likewise.
14977         (lfloorudf): Likewise.
14978         (lfrintnuv2sf): Likewise.
14979         (lfrintnuv4sf): Likewise.
14980         (lfrintnuv2df): Likewise.
14981         (lfrintnusf): Likewise.
14982         (lfrintnudf): Likewise.
14983         * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
14984         conversion.
14985         (vcvtq_u32_f32): Likewise.
14986         (vcvtq_u64_f64): Likewise.
14987         (vcvta_u32_f32): Likewise.
14988         (vcvtaq_u32_f32): Likewise.
14989         (vcvtaq_u64_f64): Likewise.
14990         (vcvtm_u32_f32): Likewise.
14991         (vcvtmq_u32_f32): Likewise.
14992         (vcvtmq_u64_f64): Likewise.
14993         (vcvtn_u32_f32): Likwise.
14994         (vcvtnq_u32_f32): Likewise.
14995         (vcvtnq_u64_f64): Likewise.
14996         (vcvtp_u32_f32): Likewise.
14997         (vcvtpq_u32_f32): Likewise.
14998         (vcvtpq_u64_f64): Likewise.
14999         (vcvtmd_u64_f64): Likewise.
15000         (vcvtms_u32_f32): Likewise.
15001         (vcvtad_u64_f64): Likewise.
15002         (vcvtas_u32_f32): Likewise.
15003         (vcvtnd_u64_f64): Likewise.
15004         (vcvtns_u32_f32): Likewise.
15005         (vcvtpd_u64_f64): Likewise.
15006         (vcvtps_u32_f32): Likewise.
15007
15008 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15009
15010         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
15011         CSEL of zero_extended registers.
15012
15013 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15014
15015         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
15016         Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
15017
15018 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15019
15020         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
15021         false when argument string is not found in the attributes table
15022         at all.
15023
15024 2016-01-15  David Edelsohn  <dje.gcc@gmail.com>
15025
15026         PR target/68609
15027         * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
15028         (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
15029         * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
15030         precision estimate.
15031
15032 2016-01-15  Richard Biener  <rguenther@suse.de>
15033
15034         PR tree-optimization/66856
15035         * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
15036         * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
15037         (vect_create_new_slp_node): Increment stmt reference count.
15038         (vect_get_and_check_slp_defs): Make sure stmts are nor already in
15039         an SLP tree before swapping operands.
15040         (vect_build_slp_tree): Likewise.
15041         (destroy_bb_vec_info): Free stmt info after SLP instances.
15042         * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
15043         * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
15044         (STMT_VINFO_NUM_SLP_USES): New macro.
15045
15046 2016-01-15  Richard Biener  <rguenther@suse.de>
15047
15048         PR debug/69137
15049         * dwarf2out.c (add_linkage_name_raw): New function split out from ...
15050         (add_linkage_name): ... here.
15051         (gen_typedef_die): Use add_linkage_name_raw instead of
15052         add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
15053         if necessary.
15054
15055 2016-01-15  Cesar Philippidis  <cesar@codesourcery.com>
15056
15057         * gimplify.c (oacc_default_clause): Decode reference and pointer
15058         types for both kernels and parallel regions.
15059
15060 2016-01-15  Richard Sandiford  <richard.sandiford@arm.com>
15061
15062         PR middle-end/69246
15063         * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
15064
15065 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
15066
15067         * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
15068         (convert_scalars_to_vector): Likewise.
15069
15070 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
15071
15072         * doc/extend.texi (Type Traits): Fix grammar.
15073
15074 2016-01-15  Martin Jambor  <mjambor@suse.cz>
15075
15076         * tree-inline.c (remap_decl): Use existing dclarations if
15077         remapping a type and prevent_decl_creation_for_types.
15078         (replace_locals_stmt): Do an initial remapping of non-VLA typed
15079         decls first.  Do real remapping with
15080         prevent_decl_creation_for_types set.
15081         * tree-inline.h (copy_body_data): New field
15082         prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
15083         padding.
15084
15085 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
15086
15087         * config/s390/s390.opt (mmvcle): More verbose help text.
15088
15089 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
15090
15091         * config/s390/s390.opt: Add period to -mzvector option text.
15092
15093 2016-01-15  Richard Biener  <rguenther@suse.de>
15094
15095         PR tree-optimization/68961
15096         * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
15097         of invariants in stores again.
15098
15099 2016-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
15100
15101         * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
15102
15103 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
15104
15105         * config/i386/i386.c (ix86_expand_branch): Don't split
15106         DI mode xor instruction to SI mode.
15107
15108 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
15109
15110         PR ipa/68148
15111         * ipa-icf.c (sem_function::merge): Virtual functions may become
15112         reachable even if they address is not taken and there are no
15113         idrect calls.
15114
15115 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
15116
15117         * lto-streamer-out.c (subtract_estimated_size): New function.
15118         (get_symbol_initial_value): Use it.
15119
15120 2016-01-15  Christian Bruel  <christian.bruel@st.com>
15121
15122         PR target/65837
15123         * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
15124         (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
15125         (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
15126         use add_builtin_function_ext_scope instead of add_builtin_function.
15127         (neon_set_p, neon_crypto_set_p): Remove.
15128         (arm_init_builtins): Always call arm_init_neon_builtins and
15129         arm_init_crypto_builtins.
15130         (arm_expand_builtin): Check that builtins are allowed for the arch.
15131         * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
15132         * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
15133         arm_init_neon_builtins call.
15134
15135 2016-01-15  Richard Biener  <rguenther@suse.de>
15136
15137         PR tree-optimization/69117
15138         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
15139         * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
15140         of the leader conservatively.
15141         (free_scc_vn): Restore original SSA name infos.
15142
15143 2016-01-14  Jeff Law  <law@redhat.com>
15144
15145         PR tree-optimization/69270
15146         * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
15147         single bit of precision, verify it's also unsigned.
15148         (record_edge_info): Use constant_boolean_node rather than fold_convert
15149         to convert boolean_true/boolean_false to the right type.
15150
15151 2016-01-14  Richard Henderson  <rth@redhat.com>
15152
15153         PR rtl-opt/69014
15154         * loop-doloop.c (record_reg_sets): New.
15155         (doloop_optimize): Reject the transform if the sequence
15156         clobbers registers live at the end of the loop block.
15157         (doloop_optimize_loops): Enable df_live if needed.
15158
15159 2016-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
15160
15161         * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
15162         * config/rs6000/rs6000.c: Likewise.
15163         * config/rs6000/rs6000.h: Likewise.
15164         * config/rs6000/rs6000.md: Likewise.
15165         * doc/extend.texi: Likewsie.
15166
15167 2016-01-14  Jeff Law  <law@redhat.com>
15168
15169         * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
15170         typo.
15171
15172 2016-01-14  Richard Henderson  <rth@redhat.com>
15173
15174         PR c/69272
15175         PR tree-opt/68964
15176         * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
15177         * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
15178         instead of builtin_decl_declared_p to test for declaration.
15179
15180 2016-01-14  Nicklas Bo Jensen  <nbjensen@gmail.com>
15181
15182         * doc/loop.texi (Loop Analysis and Representation): Document
15183         loop_depth function.
15184
15185 2016-01-14  Tom de Vries  <tom@codesourcery.com>
15186
15187         PR tree-optimization/68773
15188         * omp-low.c (expand_omp_target): Don't set force_output.
15189         * varpool.c (varpool_node::get_create): Same.
15190         * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
15191         offload_funcs with force_output.
15192
15193 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
15194
15195         PR debug/69244
15196         * lra-eliminations.c (move_plus_up): Don't change anything if either
15197         the outer or inner subreg mode is not MODE_INT.
15198         * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
15199         integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
15200
15201 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
15202
15203         * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
15204         reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
15205         reduc_uplus_@var{m}): Remove.
15206         * expr.c (expand_expr_real_2): Remove expansion path for
15207         reduc_[us](min|max|plus) optabs.
15208         * optabs-tree.c (scalar_reduc_to_vector): Remove.
15209         * optabs-tree.h (scalar_reduc_to_vector): Remove.
15210         * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
15211         reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
15212         * tree-vect-loop.c (vectorizable_reduction): Remove test for
15213         reduc_[us](min|max|plus) optabs.
15214
15215 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
15216
15217         * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
15218         (reduc_plus_scal_v2sf): New.
15219         (reduc_smax_v2sf): Rename to...
15220         (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
15221         (reduc_smin_v2sf): Rename to...
15222         (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
15223
15224 2016-01-14  Jan Hubicka  <hubicka@ucw.cz>
15225
15226         * alias.c (compare_base_symbol_refs): New function.
15227         (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
15228         it.
15229
15230 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
15231
15232         PR middle-end/68146
15233         PR tree-optimization/69155
15234         * tree-complex.c: Include cfganal.h.
15235         (phis_to_revisit): New variable.
15236         (extract_component): Add phiarg_p argument.  Assert that returned
15237         SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
15238         (update_phi_components): Partly rewrite to use loop over real/imag
15239         components instead of code duplication.  If extract_component returns
15240         SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
15241         create_tmp_reg into the PHI node instead, and mention the phi triplet
15242         in phis_to_revisit.
15243         (tree_lower_complex): Walk bbs in rpo order.  Adjust phis recorded
15244         in phis_to_revisit at the end.
15245
15246 2016-01-14  Richard Biener  <rguenther@suse.de>
15247
15248         PR tree-optimization/68060
15249         * tree-vect-loop.c (vect_is_simple_reduction): Check the
15250         outer loop reduction is only used in the inner loop before
15251         detecting a double reduction.
15252
15253 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
15254
15255         PR target/68269
15256         * combine.c (expand_field_assignment): Punt if compute_mode is
15257         unsupported scalar mode.
15258
15259 2016-01-14  Richard Biener  <rguenther@suse.de>
15260
15261         PR tree-optimization/66856
15262         * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
15263         SLP node only if it built successfully.
15264         (vect_analyze_slp_instance): Adjust.
15265
15266 2016-01-14  Jeff Law  <law@redhat.com>
15267
15268         PR tree-optimization/69270
15269         * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
15270         (record_edge_info): Use it.  Convert boolean_{true,false}_node
15271         to the type of op0.
15272
15273 2016-01-13  Jan Hubicka  <hubicka@ucw.cz>
15274
15275         PR ipa/66487
15276         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
15277         use block_ultimate_origin
15278         (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
15279
15280 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
15281
15282         * doc/invoke.texi (Submodel Options): Rename section to
15283         "Machine-Dependent Options" to better reflect its content.
15284         Rewrite introductory text to remove archaic CPU names.
15285         Update references.
15286
15287 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
15288
15289         * doc/invoke.texi (Code Gen Options): Move section up in file,
15290         before target-specific options.  Update menu and option summary
15291         to reflect the new section ordering.
15292
15293 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
15294
15295         * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
15296         (C++ Dialect Options): Add cross-reference to -std option.
15297         * doc/standards.texi (C++ Language): Document C++14 support.
15298
15299 2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
15300
15301         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
15302         for pack/unpack functions for __ibm128.
15303         (PACK_IF): Likewise.
15304         (UNPACK_IF): Likewise.
15305
15306         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
15307         support for __ibm128 pack/unpack functions.
15308         (rs6000_invalid_builtin): Likewise.
15309         (rs6000_init_builtins): Likewise.
15310         (rs6000_opt_masks): Likewise.
15311
15312         * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
15313         (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
15314         functions
15315         (RS6000_BTM_COMMON): Likewise.
15316
15317         * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
15318         (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
15319         disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
15320         128-bit floating point.  Add support for the double values to be
15321         in Altivec registers for TF/IF packing and unpacking, but restrict
15322         TD packing sub-fields to be FPR registers.  Don't allow overlapped
15323         register support for packing.  Allow pack inputs to be memory
15324         locations.  Don't build generator functions for unpack<mode>_dm
15325         and unpack<mode>_nodm.
15326         (unpack<mode>_dm): Likewise.
15327         (unpack<mode>_nodm): Likewise.
15328         (pack<mode>): Likewise.
15329
15330         * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
15331         built-in functions to pack/unpack explicit __ibm128 values.
15332         (__builtin_unpack_ibm128): Likewise.
15333
15334         * doc/extend.texi (PowerPC Built-in Functions): Document
15335         __builtin_pack_ibm128 and __builtin_unpack_ibm128.
15336
15337 2016-01-13  Bernd Schmidt  <bschmidt@redhat.com>
15338
15339         PR c/66208
15340         * c-common.c (check_function_nonnull): Remove unnecessary declaration.
15341         Add new arg loc and pass it down as context.
15342         (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
15343         to the location to use for the warning.
15344         (check_function_arguments): New arg loc.  All callers changed.  Pass
15345         it to check_function_nonnull.
15346         * c-common.h (check_function_arguments): Adjust declaration.
15347
15348 2016-01-13  Jakub Jelinek  <jakub@redhat.com>
15349
15350         PR tree-optimization/69156
15351         * gimple.c (validate_type): Removed.
15352         (gimple_builtin_call_types_compatible_p): Use
15353         useless_type_conversion_p instead of validate_type.
15354         * value-prof.c (gimple_stringop_fixed_value): Fold
15355         icall_size to correct type.
15356
15357 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
15358
15359         * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
15360         effects.
15361
15362 2016-01-13  Richard Henderson  <rth@redhat.com>
15363
15364         PR tree-opt/68964
15365         * target.def (builtin_tm_load, builtin_tm_store): Remove.
15366         * config/i386/i386.c (ix86_builtin_tm_load): Remove.
15367         (ix86_builtin_tm_store): Remove.
15368         (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
15369         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
15370         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
15371         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
15372         * doc/tm.texi: Rebuild.
15373
15374         * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
15375         (BUILT_IN_TM_MEMCPY_RTWN): New.
15376         * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
15377         fallback from vector to integer helpers.
15378         (build_tm_load): Handle vector types directly, instead of
15379         via target hook.
15380         (build_tm_store): Likewise.
15381         (expand_assign_tm): Prepare for register types not handled by
15382         the above.  Copy them to memory and use memcpy.
15383         * tree.c (tm_define_builtin): New.
15384         (find_tm_vector_type): New.
15385         (build_tm_vector_builtins): New.
15386         (build_common_builtin_nodes): Call it.
15387
15388 2016-01-13  Uros Bizjak  <ubizjak@gmail.com>
15389
15390         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
15391         TARGET_SSE_MATH without TARGET_SSE2.  Rewrite.
15392
15393 2016-01-13  Tom de Vries  <tom@codesourcery.com>
15394
15395         PR tree-optimization/69169
15396         * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
15397         handled_struct_type param.
15398         (create_variable_info_for, intra_create_variable_infos): Call
15399         create_variable_info_for_1 with extra arg.
15400
15401 2016-01-13  Yvan Roux  <yvan.roux@linaro.org>
15402
15403         * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
15404         and "armv8.1-a+crc" entries.
15405
15406 2016-01-13  Alexander Fomin  <alexander.fomin@intel.com>
15407
15408         PR target/69228
15409         * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
15410         Change first operand predicate from register_or_constm1_operand
15411         to register_operand.
15412         (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
15413         (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
15414         (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
15415         (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
15416         (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
15417         (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
15418         (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
15419         * config/i386/i386.c (ix86_expand_builtin): Remove first operand
15420         comparison with constm1_rtx from vec_prefetch_gen part.
15421
15422 2016-01-13  Richard Biener  <rguenther@suse.de>
15423
15424         PR tree-optimization/69013
15425         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
15426         Exchange assert for a test.
15427
15428 2016-01-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15429
15430         PR target/69247
15431         * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
15432
15433 2016-01-13  Richard Biener  <rguenther@suse.de>
15434
15435         PR tree-optimization/69242
15436         * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
15437         assert with a check.
15438
15439 2016-01-13  Richard Biener  <rguenther@suse.de>
15440
15441         PR tree-optimization/69186
15442         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
15443         Properly guard vect_update_misalignment_for_peel call.
15444
15445 2016-01-12  Jeff Law  <law@redhat.com>
15446
15447         PR tree-optimization/pr67755
15448         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
15449         "need_profile_correction".
15450         (thread_block_1): Initialize new field to false by default.  If we
15451         have multiple thread paths through a common joiner to different
15452         final targets, then set new field to true.
15453         (compute_path_counts): Only do count adjustment when it's really
15454         needed.
15455
15456 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
15457
15458         * doc/invoke.texi (Spec Files): Move section down in file, past
15459         all command-line option descriptions.
15460
15461 2016-01-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
15462
15463         PR middle-end/54809
15464         * doc/gty.texi: Remove documentation of mark_hook.
15465         * gengtype.c (struct write_types_data): Remove code to support
15466         mark_hook attribute.
15467         (walk_type): Likewise.
15468         (write_func_for_structure): Likewise.
15469
15470 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
15471
15472         * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
15473         Directory Options, and -specs= to Overall Options.
15474         (Overall Options): Adjust similarly.  Reorder to group related
15475         options together.  Make -specs= cross-reference the spec file details.
15476         (Directory Options): Adjust similarly.
15477
15478 2016-01-12  Jeff Law  <law@redhat.com>
15479
15480         * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
15481
15482 2016-01-12  Olivier Hainque  <hainque@adacore.com>
15483
15484         * gcc.c (spec_undefvar_allowed): New global.
15485         (process_command): Set to true when running for --version or --help,
15486         alone or together.
15487         (getenv_spec_function): When the variable is not defined, use the
15488         variable name as the variable value if we're allowed not to issue
15489         a fatal error.
15490
15491 2016-01-12  Bin Cheng  <bin.cheng@arm.com>
15492
15493         PR tree-optimization/68911
15494         * tree-vrp.c (adjust_range_with_scev): Check overflow in range
15495         information computed for expression "init + nit * step".
15496
15497 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
15498
15499         * doc/invoke.texi (Invoking GCC): Copy-edit.  Incorporate information
15500         about name of GCC executable.  Remove deleted node from menu.
15501         (Directory Options) <-B>: Remove cross-reference to deleted node.
15502         (Target Options): Delete section.
15503
15504 2016-01-12  Christian Bruel  <christian.bruel@st.com>
15505
15506         PR target/69180
15507         * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
15508         for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
15509
15510 2016-01-12  Jakub Jelinek  <jakub@redhat.com>
15511
15512         PR target/69198
15513         * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
15514         aligned_mem is properly set for AVX512-VL floating point masked
15515         stores.
15516
15517         PR target/69175
15518         * ifcvt.c (cond_exec_process_if_block): When removing the last
15519         insn from then_bb, remove also any possible barriers that follow it.
15520
15521 2016-01-12  H.J. Lu  <hongjiu.lu@intel.com>
15522
15523         PR target/68456
15524         PR target/69226
15525         * config/i386/iamcu.h (SIZE_TYPE): New macro.
15526         (PTRDIFF_TYPE): Likewise.
15527         (WCHAR_TYPE): Likewise.
15528         (WCHAR_TYPE_SIZE): Likewise.
15529         (STDINT_LONG32): Likewise.
15530
15531 2016-01-12  Richard Biener  <rguenther@suse.de>
15532
15533         PR tree-optimization/69053
15534         * tree-vect-loop.c (get_initial_def_for_reduction): Properly
15535         convert initial value for cond reductions.
15536
15537 2016-01-12  Richard Biener  <rguenther@suse.de>
15538
15539         PR tree-optimization/69007
15540         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
15541         widen_sum after dot_prod and sad.
15542
15543 2016-01-12  Richard Biener  <rguenther@suse.de>
15544
15545         PR tree-optimization/69168
15546         * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
15547         pattern stmt SLP type.
15548         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
15549         end up unused so cope with that case.
15550
15551 2016-01-12  Richard Biener  <rguenther@suse.de>
15552
15553         PR tree-optimization/69157
15554         * tree-vect-stmts.c (vectorizable_mask_load_store): Check
15555         stmts def type only during analyze phase.
15556         (vectorizable_call): Likewise.
15557         (vectorizable_simd_clone_call): Likewise.
15558         (vectorizable_conversion): Likewise.
15559         (vectorizable_assignment): Likewise.
15560         (vectorizable_shift): Likewise.
15561         (vectorizable_operation): Likewise.
15562         (vectorizable_store): Likewise.
15563         (vectorizable_load): Likewise.
15564
15565 2016-01-12  Richard Biener  <rguenther@suse.de>
15566
15567         PR tree-optimization/69174
15568         * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
15569         space.
15570         (vectorizable_load): Properly compute the number of loads needed
15571         for permuted strided SLP loads and do not spuriously assign
15572         to SLP_TREE_VEC_STMTS.
15573
15574 2016-01-12  Andris Pavenis  <andris.pavenis@iki.fi>
15575
15576         * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
15577         (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
15578         (MD_EXEC_PREFIX): Remove.
15579         (MD_STARTFILE_PREFIX) Removee.
15580         (FILE_NAME_ABSOLUTE_P): Remove.
15581         (CPP_SPEC): Do not read macros from sys/version.h.
15582         (LINK_COMMAND_SPEC): Remove.
15583         (LOCAL_INCLUDE_DIR): Remove.
15584         (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
15585         (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
15586         (POST_LINK_SPEC): Define to invoke stubify after linker
15587         (LIBSTDCXX): Remove define
15588         (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
15589         (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
15590         (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
15591         (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
15592         (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
15593         (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
15594         (i386_djgpp_asm_named_section): Add propotype of new procedure
15595
15596         * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
15597         (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
15598         (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
15599         in config/i386/djgpp.h).
15600         (STANDARD_STARTFILE_PREFIX_2): Define identical to
15601         STANDARD_STARTFILE_PREFIX_1.
15602         (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
15603         (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
15604         installation errors.
15605         (MAX_OFILE_ALIGNMENT): Define to 128.
15606         (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
15607
15608         * config/i386/djgpp.c: New file. Add implementation of
15609         i386_djgpp_asm_named_section.
15610
15611         * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
15612
15613         * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
15614         Add rule for building djgpp.o.
15615
15616 2016-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15617
15618         * config/rs6000/rs6000.c (v2df_reduction_p): New function.
15619         (rtx_is_swappable_p): Reductions are swappable.
15620         (insn_is_swappable_p): V2DF reductions are swappable.
15621
15622 2016-01-11  John David Anglin  <danglin@gcc.gnu.org>
15623
15624         * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
15625         reloads for other unsupported memory operands.
15626
15627 2016-01-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
15628             Jim Wilson  <jim.wilson@linaro.org>
15629
15630         PR target/69194
15631         * config/arm/arm-builtins.c (arm_expand_neon_args): Call
15632         copy_to_mode_reg instead of force_reg.
15633
15634 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
15635
15636         PR target/69225
15637         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
15638         TARGET_80387 is true.
15639
15640 2016-01-11  Jakub Jelinek  <jakub@redhat.com>
15641
15642         PR target/69071
15643         * lra-eliminations.c (move_plus_up): Only move plus up
15644         if subreg of the constant can be simplified into constant
15645         and use the simplified subreg of the constant instead of
15646         the original constant.
15647
15648         * fold-const.c (fold_convertible_p): Don't return true
15649         for conversion of VECTOR_TYPE to same sized integral type.
15650         (fold_convert_loc): Fix up formatting.  Fold conversion of
15651         VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
15652         instead of NOP_EXPR.
15653
15654         PR tree-optimization/69214
15655         * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
15656         innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
15657         Formatting fix.
15658
15659         PR tree-optimization/69207
15660         * tree-vect-slp.c (vect_get_constant_vectors): For
15661         VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
15662         fold_convertible_p to vector_type's element type, and always
15663         use VCE for non-VECTOR_BOOLEAN_TYPE_P.
15664
15665 2016-01-11  Richard Biener  <rguenther@suse.de>
15666
15667         PR tree-optimization/69173
15668         * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
15669         fixup the cycle if all stmts are in a pattern.
15670
15671 2016-01-11  Uros Bizjak  <ubizjak@gmail.com>
15672
15673         PR middle-end/68999
15674         * alias.c (base_alias_check): Move check for addresses with
15675         alignment ANDs before the call for compare_base_decls.
15676         (memrefs_conflict_p): Return -1 for different decls
15677         that went through alignment adjustments.
15678
15679 2016-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15680
15681         PR rtl-optimization/68796
15682         * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
15683         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
15684         and QImode comparisons against zero with CC_NZmode.
15685         * config/aarch64/iterators.md (short_mask): New mode_attr.
15686
15687 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
15688
15689         * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
15690         (<avx512>_store<mode>_mask): Likewise.
15691
15692 2016-01-11  Bernd Schmidt  <bschmidt@redhat.com>
15693             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15694
15695         PR rtl-optimization/68841
15696         * ifcvt.c (struct noce_if_info): Add orig_x field.
15697         (bbs_ok_for_cmove_arith): Add to_rename parameter.
15698         Don't record conflicts on to_rename if it's present.
15699         Allow memory destinations in sets.
15700         (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
15701         blocks, passing orig_x to the checks.
15702         (noce_process_if_block): Set if_info->orig_x appropriately.
15703
15704 2016-01-11  Tom de Vries  <tom@codesourcery.com>
15705
15706         PR tree-optimization/69069
15707         * tree-parloops.c (create_parallel_loop): Add missing phi args.
15708
15709 2016-01-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
15710
15711         PR rtl-optimization/68920
15712         * config/i386/i386.c (ix86_option_override_internal): Restrict number
15713         of conditional moves for  RTL if-conversion to 1 for
15714         TARGET_ONE_IF_CONV_INSN.
15715         * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
15716         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
15717         * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
15718         parameter to restirct number of conditional moves for
15719         RTL if-conversion.
15720         * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
15721         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
15722         conditionl moves.
15723
15724 2016-01-11  Alexandre Oliva  <aoliva@redhat.com>
15725
15726         PR bootstrap/69123
15727         * var-tracking.c (drop_overlapping_mem_locs): Operate on all
15728         onepart vars.  Fix typo in comment.  Fix reversed condition in
15729         unshare test.
15730         (dataflow_set_remove_mem_locs): Operate on all onepart vars.
15731
15732         PR bootstrap/69123
15733         * var-tracking.c (dump_onepart_variable_differences): New.
15734         (dataflow_set_different): If a detailed dump is requested,
15735         delay early returns and dump differences between onepart
15736         variables present before and after, and added variables.
15737
15738 2016-01-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
15739
15740         PR target/69010
15741         * expr.c (expand_expr_real_1): For boolean vector constants
15742         with a scalar mode use const_scalar_mask_from_tree.
15743         (const_scalar_mask_from_tree): New.
15744         * optabs.c (expand_vec_cond_mask_expr): Use mask mode
15745         assigned to a mask type to handle constants.
15746
15747 2016-01-11  Martin Jambor  <mjambor@suse.cz>
15748
15749         PR ipa/69044
15750         * ipa-cp.c (estimate_local_effects): Do not clone for removal of
15751         useless parameters if we cannot change function signature.
15752
15753 2016-01-11  Martin Jambor  <mjambor@suse.cz>
15754
15755         PR ipa/66616
15756         * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
15757         flag.
15758
15759 2016-01-11  Tom de Vries  <tom@codesourcery.com>
15760
15761         PR tree-optimization/69109
15762         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
15763         latch with phi.
15764
15765 2016-01-11  Tom de Vries  <tom@codesourcery.com>
15766
15767         PR tree-optimization/69108
15768         * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
15769         res is not used in a phi.
15770
15771 2016-01-11  Yury Gribov  <y.gribov@samsung.com>
15772
15773         PR 67425
15774         * common.opt (frandom-seed): Fix parameter name.
15775         * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
15776
15777 2016-01-11  Tom de Vries  <tom@codesourcery.com>
15778
15779         PR tree-optimization/69058
15780         * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
15781         not supported.
15782
15783 2016-01-11  Andrew Burgess  <andrew.burgess@embecosm.com>
15784
15785         * config/arc/arc.opt (mdiv-rem): Add period to the end.
15786         (mcode-density): Likewise.
15787
15788 2016-01-10  Tom de Vries  <tom@codesourcery.com>
15789
15790         PR tree-optimization/69062
15791         * tree-parloops.c (loop_has_phi_with_address_arg): New function.
15792         (parallelize_loops): Don't paralelize loop that has phi with address
15793         arg.
15794
15795 2016-01-10  Tom de Vries  <tom@codesourcery.com>
15796
15797         PR tree-optimization/69039
15798         * tree-parloops.c (try_create_reduction_list): Only allow single exit
15799         phi for reduction.
15800
15801 2016-01-09  John David Anglin  <danglin@gcc.gnu.org>
15802
15803         PR middle-end/68743
15804         * match.pd: Require target has function_c99_misc before doing
15805         truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
15806
15807 2016-01-09  Gerald Pfeifer  <gerald@pfeifer.com>
15808
15809         * configure.ac (isl_options_set_schedule_serialize_sccs): Also
15810         use GMPINC.
15811         * configure: Regenerate.
15812
15813 2016-01-09  Jakub Jelinek  <jakub@redhat.com>
15814
15815         PR middle-end/50865
15816         PR tree-optimization/69097
15817         * fold-const.h (expr_not_equal_to): New prototype.
15818         * fold-const.c: Include stringpool.h and tree-ssanames.h.
15819         (expr_not_equal_to): New function.
15820         * match.pd (X % -Y is the same as X % Y): Don't optimize
15821         unless X is known not to be equal to minimum or Y is known
15822         not to be equal to -1.
15823         * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
15824         fold TRUNC_MOD_EXPR if the second argument is not a power of two.
15825         (simplify_stmt_using_ranges): Adjust caller.
15826         (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
15827         substitute_and_fold.
15828
15829 2016-01-09  Jan Hubicka  <hubicka@ucw.cz>
15830
15831         * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
15832         w/o DECL_NAME.
15833
15834 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
15835
15836         PR tree-optimization/69167
15837         * gimple-fold.c (replace_stmt_with_simplification): Also punt if
15838         new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
15839         ops[0] comparison.
15840         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
15841
15842 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
15843             Richard Biener  <rguenther@suse.de>
15844
15845         PR tree-optimization/68707
15846         * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
15847         instances that can be handled via vect_load_lanes.
15848
15849 2016-01-08  Uros Bizjak  <ubizjak@gmail.com>
15850
15851         * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
15852         if we can't determine address equivalence.
15853         * alias.c (compare_base_decl): Update for changed return value of
15854         symtab_node::equal_address_to.
15855
15856 2016-01-08  Jason Merrill  <jason@redhat.com>
15857
15858         PR c++/68983
15859         PR c++/67557
15860         * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
15861         * expr.c (store_field): Not here.
15862         * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
15863         call with TREE_ADDRESSABLE type.
15864         * tree-cfg.c (verify_gimple_call): Adjust.
15865
15866 2016-01-08  Olivier Hainque  <hainque@adacore.com>
15867
15868         * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
15869         libc_internal.
15870
15871 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
15872
15873         * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
15874         (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
15875         (reduc_smin_v2sf): Rename to...
15876         (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
15877         (reduc_splus_v2sf): Rename to...
15878         (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
15879
15880 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
15881
15882         PR tree-optimization/69162
15883         * gimplify.c (gimplify_va_arg_expr): Encode original type of
15884         valist argument in another argument.
15885         (gimplify_modify_expr): Adjust for the above change.  Cleanup.
15886         * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
15887         to determine the va_list type, build a MEM_REF instead of
15888         build_fold_indirect_ref.
15889
15890         PR tree-optimization/69172
15891         * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
15892         gimple_build.
15893
15894 2016-01-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
15895
15896         PR tree-optimization/67781
15897         * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
15898         and cmpnop in two steps: first the ones not accessed in original
15899         gimple expression in a endian independent way and then the ones not
15900         accessed in the final result in an endian-specific way.
15901
15902 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
15903
15904         PR tree-optimization/69083
15905         * tree-vect-slp.c (vect_get_constant_vectors): For
15906         VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
15907         element type.  If op is fold_convertible_p to vector_type's element
15908         type, use NOP_EXPR instead of VCE.
15909
15910 2016-01-08  Segher Boessenkool  <segher@kernel.crashing.org>
15911
15912         PR rtl-optimization/67778
15913         PR rtl-optimization/68634
15914         PR rtl-optimization/68909
15915         * shrink-wrap.c (try_shrink_wrapping): Add comment.  Don't pop
15916         block from the stack until done with it.  Remove a superfluous
15917         bitmap set.  Remove a superfluous bitmap test.
15918
15919 2016-01-07  Martin Sebor  <msebor@redhat.com>
15920
15921         PR c/68966
15922         * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
15923         constraint on the type of arguments.
15924
15925 2016-01-07  Andreas Tobler  <andreast@gcc.gnu.org>
15926
15927         * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
15928         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
15929         unaligned_access on the gcc_options set.
15930         * config/arm/arm.c (arm_option_override_internal): Use
15931         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
15932
15933 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
15934
15935         PR target/69140
15936         * config/i386/i386.c (ix86_frame_pointer_required): Enable
15937         frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
15938
15939 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
15940
15941         Revert
15942         2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
15943
15944         PR target/69140
15945         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
15946         depending on frame_pointer_needed before remaining integer and SSE
15947         registers are saved.
15948
15949 2016-01-07  Sandra Loosemore  <sandra@codesourcery.com>
15950
15951         PR 1078
15952         * doc/extend.texi (Nvidia PDX Function Attributes): New section.
15953
15954 2016-01-07  H.J. Lu  <hongjiu.lu@intel.com>
15955
15956         PR target/69171
15957         * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
15958         Use the "xBm" constraint.
15959         (float<sseintvecmodelower><mode>2<mask_name><round_name):
15960         Likewise.
15961         (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
15962         (sse_cvtsi2ssq<round_name>): Likewise.
15963         (sse_cvtss2si<round_name>): Likewise.
15964         (sse_cvtss2siq<round_name>): Likewise.
15965         (sse2_cvtsi2sdq<round_name>): Likewise.
15966         (sse2_cvtsd2si<round_name>): Likewise.
15967         (sse2_cvtsd2siq<round_name>): Likewise.
15968         * config/i386/subst.md (round_nimm_scalar_predicate): New
15969         predicate.
15970
15971 2015-12-15  Bernd Schmidt  <bschmidt@redhat.com>
15972
15973         PR middle-end/67639
15974         * varasm.c (make_decl_rtl): Mark invalid register vars as
15975         DECL_EXTERNAL.
15976
15977         PR rtl-optimization/66206
15978         * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
15979         All callers changed.
15980
15981 2016-01-07  Jakub Jelinek  <jakub@redhat.com>
15982
15983         PR tree-optimization/69141
15984         * tree-ssa-pre.c: Include langhooks.h.
15985         (eliminate_dom_walker::before_dom_children): Use
15986         lang_hooks.decl_printable_name instead of
15987         cgraph_node::get ()->name ().
15988
15989         PR middle-end/68960
15990         * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
15991         it and DECL_ALIGN too.
15992
15993 2016-01-06  Robert Suchanek  <robert.suchanek@imgtec.com>
15994
15995         * config/mips/mips-ftypes.def: Sort to lexicographical order.
15996
15997 2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
15998
15999         PR target/69140
16000         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
16001         depending on frame_pointer_needed before remaining integer and SSE
16002         registers are saved.
16003
16004 2015-01-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16005
16006         * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
16007         mode iterator with VSX_M2.
16008         (*p9_vecstore_<mode>): Likewise.
16009         (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
16010         (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
16011         (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
16012         (define_split for VSX_LE128 stores): Likewise.
16013         (define_peephole2 for TImode LE swaps): Likewise.
16014         (define_split for VSX_LE128 post-reload stores): Likewise.
16015
16016 2016-01-06  Marek Polacek  <polacek@redhat.com>
16017
16018         PR sanitizer/69099
16019         * convert.c (convert_to_integer_1): Adjust call to
16020         ubsan_instrument_float_cast.  Use NULL_TREE instead of NULL.
16021         * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter.  Use
16022         EXPR instead of ARG.
16023         * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
16024
16025 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
16026
16027         PR 1078
16028         * doc/extend.texi (RL78 Variable Attributes): New section.
16029
16030 2016-01-05  Marek Polacek  <polacek@redhat.com>
16031
16032         PR c/69104
16033         * builtins.c (get_memmodel): Use expansion point location rather than
16034         the input location.  Call warning_at rather than warning.
16035         (expand_builtin_atomic_compare_exchange): Likewise.
16036         (expand_builtin_atomic_load): Likewise.
16037         (expand_builtin_atomic_store): Likewise.
16038         (expand_builtin_atomic_clear): Likewise.
16039
16040 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
16041
16042         PR target/68991
16043         * config/i386/i386.c (ix86_expand_vector_logical_operator):
16044         Replace nonimmediate_operand with vector_operand.
16045         * config/i386/predicates.md (vector_operand): New predicate.
16046         (general_vector_operand): Replace nonimmediate_operand with
16047         vector_operand.
16048         * config/i386/sse.md: Replace nonimmediate_operand with
16049         vector_operand and m constraint with Bm constraint on SSE
16050         patterns with 16-byte memory operand.
16051         * config/i386/subst.md (round_nimm_predicate): Replace
16052         nonimmediate_operand with vector_operand.
16053         (round_saeonly_nimm_predicate): Likewise.
16054         (round_saeonly_nimm_scalar_predicate): New.
16055
16056 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
16057
16058         PR target/68991
16059         * config/i386/constraints.md (Bm): New constraint.
16060         * config/i386/predicates.md (vector_memory_operand): New
16061         predicate.
16062         * config/i386/sse.md: Replace xm with xBm in plusminus and
16063         any_logic patterns.
16064
16065 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
16066
16067         PR 1078
16068         * doc/extend.texi (V850 Function Attributes): New section.
16069         (V850 Variable Attributes): New section.
16070
16071 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
16072
16073         PR 1078
16074         * doc/extend.texi (MicroBlaze Function Attributes): Document
16075         interrupt_handler and fast_interrupt attributes.
16076
16077 2016-01-05  Sergei Trofimovich  <siarheit@google.com>
16078
16079         PR other/60465
16080         * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
16081         for local symbolic operands.
16082         * config/ia64/predicates.md (local_symbolic_operand64): New
16083         predicate.
16084
16085 2016-01-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16086
16087         PR rtl-optimization/68651
16088         * combine.c (combine_simplify_rtx): Canonicalize x + x into
16089         x << 1.
16090
16091 2016-01-05  Nathan Sidwell  <nathan@acm.org>
16092
16093         * alias.c (compare_base_decls): Use symtab_node::get.
16094
16095 2016-01-05  Nick Clifton  <nickc@redhat.com>
16096
16097         PR target/68770
16098         * ira-costs.c (copy_cost): Initialise the t_icode field of the
16099         secondary_reload_info structure.
16100
16101         PR target/66655
16102         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
16103         decls if weak support is available.
16104
16105 2016-01-04  Martin Sebor  <msebor@redhat.com>
16106
16107         * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
16108
16109 2016-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
16110
16111         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
16112         OPTION_MASK_P9_DFORM.
16113
16114         * config/rs6000/constraints.md (wo constraint): New constraint for
16115         ISA 3.0 (power9).
16116
16117         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
16118         for wo constraint.
16119         (rs6000_init_hard_regno_mode_ok): Likewise.
16120
16121         * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
16122         wo constraint.
16123
16124         * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
16125         expanders not to have constraints.  Add support for ISA 3.0 xxperm
16126         instruction.  Add support for fusing xxlor with xxperm.
16127         (altivec_vperm_<mode>_internal): Likewise.
16128         (altivec_vperm_v8hiv16qi): Likewise.
16129         (altivec_vperm_<mode>v16q): Likewise.
16130         (altivec_vperm_<mode>_uns): Likewise.
16131         (vperm_v8hiv4si): Likewise.
16132         (vperm_v16qiv8hi): Likewise.
16133
16134         * doc/md.texi (RS/6000 constraints): Document wo constraint.
16135
16136 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
16137
16138         Update copyright years.
16139
16140         * gcc.c (process_command): Update copyright notice dates.
16141         * gcov-dump.c (print_version): Ditto.
16142         * gcov.c (print_version): Ditto.
16143         * gcov-tool.c (print_version): Ditto.
16144         * gengtype.c (create_file): Ditto.
16145         * doc/cpp.texi: Bump @copying's copyright year.
16146         * doc/cppinternals.texi: Ditto.
16147         * doc/gcc.texi: Ditto.
16148         * doc/gccint.texi: Ditto.
16149         * doc/gcov.texi: Ditto.
16150         * doc/install.texi: Ditto.
16151         * doc/invoke.texi: Ditto.
16152
16153 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
16154
16155         * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
16156         modes larger than TImode as TImode if NEON is not enabled.
16157
16158 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
16159
16160         PR target/69100
16161         * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
16162         mode for %f0-%f31 only if TARGET_FPU.
16163
16164 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
16165
16166         PR target/69072
16167         * config/sparc/sparc.c (scan_record_type): Take into account subfields
16168         to compute the PACKED_P predicate.
16169         (function_arg_record_value): Minor tweaks.
16170
16171 2016-01-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
16172
16173         * doc/install.texi (--with-multilib-list): Describe the meaning of the
16174         option for arm*-*-* targets.
16175
16176 2016-01-03  Sandra Loosemore  <sandra@codesourcery.com>
16177
16178         * doc/extend.texi (Common Function Attributes): Move docs for
16179         MSP430-specific attributes to....
16180         (MSP430 Function Attributes): ...here.  Delete the redundant
16181         entries and copy-edit the remaining text.
16182         (MSP430 Variable Attributes): Use uniform format for index
16183         entries and add a cross-reference to the corresponding function
16184         attribute docs.
16185
16186 2016-01-03  Vladimír Čunát  <vcunat@gmail.com>
16187
16188         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
16189         -finite-math typo.
16190         (x86 Options): Likewise.
16191
16192 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
16193
16194         PR 1078
16195
16196         * extend.texi (Common Function Attributes) <no_stack_limit>: New.
16197         * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
16198         to corresponding attribute.
16199
16200 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
16201
16202         * doc/extend.texi (Common Function Attributes) <noplt>: Move
16203         to correct alphabetization of table.  Copy-edit and correct
16204         markup.
16205         <stack_protect>: Likewise.
16206         <target_clones>: Likewise.
16207         <simd>: Likewise.
16208         * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
16209         Correct punctuation.
16210         (Code Gen Options) <-fno-plt>: Copy-edit.
16211
16212 2016-01-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
16213
16214         PR target/68917
16215         * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
16216         SI values.  Explicitly convert SI to DI and vice-versa.
16217
16218 2016-01-01  Jakub Jelinek  <jakub@redhat.com>
16219
16220         PR tree-optimization/69070
16221         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
16222         REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
16223
16224         PR sanitizer/69055
16225         * ubsan.c (ubsan_instrument_float_cast): Call
16226         initialize_sanitizer_builtins.
16227
16228         PR target/69015
16229         * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
16230 \f
16231 Copyright (C) 2016 Free Software Foundation, Inc.
16232
16233 Copying and distribution of this file, with or without modification,
16234 are permitted in any medium without royalty provided the copyright
16235 notice and this notice are preserved.